Changeset 821 for trunk/UTIL/PYTHON/mcd/proto
- Timestamp:
- Oct 29, 2012, 11:06:27 AM (12 years ago)
- Location:
- trunk/UTIL/PYTHON/mcd/proto
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UTIL/PYTHON/mcd/proto/cgi-bin/mcdcgi.py
r812 r821 17 17 import cgi, cgitb 18 18 import numpy as np 19 #from mcd import mcd20 19 from modules import * 21 20 from modules import mcd … … 24 23 import os as daos 25 24 import matplotlib.pyplot as mpl 26 from PIL import Image27 28 29 25 30 26 ### a function to read HTML arguments for coordinates 31 27 def gethtmlcoord(userinput,defmin,defmax): 32 # accepted separators 33 separators = [":",";",",","/"] 28 import string 29 # accepted separators. the symbol - should always be last. 30 separators = [":",";",",","/","_"] 34 31 # initial values 35 32 val = -9999. ; vals = None ; vale = None ; foundinterv = False 36 33 if userinput == None: userinput = "1" 37 # the main work. either all -- or an interval -- or a single value. 34 # the main work. either all, or an interval, or a single value. 35 # ... all 38 36 if userinput == "all": isfree = 1 ; vals = defmin ; vale = defmax ; foundinterv = True 37 # ... an interval 39 38 else: 40 39 for sep in separators: 40 if not foundinterv: 41 41 isfree = 1 ; ind = userinput.find(sep) 42 42 if ind != -1: vals = float(userinput[:ind]) ; vale = float(userinput[ind+1:]) ; foundinterv = True 43 if not foundinterv: isfree = 0 ; val = float(userinput) 43 # ... a single value (or an error) 44 if not foundinterv: 45 # treat the difficult case of possible - separator 46 test = userinput[1:].find("-") # at this stage: 47 # * if - is found in the first position, it could not be a separator 48 # * if - found at positions > 0, it must be considered as a separator 49 if test != -1: 50 isfree = 1 ; ind=test+1 51 vals = float(userinput[:ind]) ; vale = float(userinput[ind+1:]) ; foundinterv = True 52 else: 53 # check if input is valid (each character is numeric or -) 54 for char in userinput: 55 if char not in string.digits: 56 if char not in ["-","."]: userinput="yorgl" 57 # either we are OK. if we are not we set isfree to -1. 58 if userinput != "yorgl": isfree = 0 ; val = float(userinput) 59 else: isfree = -1 44 60 # return values 45 61 return isfree, val, vals, vale 46 62 63 # set an errormess variable which must stay to None for interface to proceed 64 errormess = "" 47 65 48 66 # for debugging in web browser … … 53 71 54 72 # create a MCD object 55 #query = mcd() 56 query=mcd.mcd() #FG: import from module mcd 73 query=mcd.mcd() 57 74 58 75 # Get the kind of vertical coordinates and choose default behavior for "all" 59 76 try: query.zkey = int(form.getvalue("zkey")) 60 77 except: query.zkey = int(3) 61 if query.zkey == 2: minxz = -5000. ; maxxz = 1 00000.62 elif query.zkey == 3: minxz = 0. ; maxxz = 120000.63 elif query.zkey == 5: minxz = -5000. ; maxxz = 1 00000.64 elif query.zkey == 4: minxz = 1 000. ; maxxz = 0.00178 if query.zkey == 2: minxz = -5000. ; maxxz = 150000. 79 elif query.zkey == 3: minxz = 0. ; maxxz = 250000. 80 elif query.zkey == 5: minxz = -5000. ; maxxz = 150000. 81 elif query.zkey == 4: minxz = 1.e3 ; maxxz = 1.e-6 65 82 elif query.zkey == 1: minxz = 3396000. ; maxxz = 3596000. 66 83 … … 70 87 isloctfree, query.loct, query.locts, query.locte = gethtmlcoord( form.getvalue("localtime"), 0., 24. ) 71 88 isaltfree, query.xz, query.xzs, query.xze = gethtmlcoord( form.getvalue("altitude"), minxz, maxxz) 72 73 sumfree = islatfree + islonfree + isloctfree + isaltfree74 if sumfree > 2: exit() ## only 1D or 2D plots for the moment75 89 76 90 try: query.datekey = int(form.getvalue("datekeyhtml")) … … 84 98 query.loct = 0. 85 99 100 # Prevent the user from doing bad 101 badinterv = (islatfree == -1) or (islonfree == -1) or (isloctfree == -1) or (isaltfree == -1) 102 if badinterv: 103 errormess = errormess+"<li>Bad syntax. Write a value (or) a range val1;val2 (or) 'all'. Separator shall be either ; : , / _ " 104 badls = (query.datekey == 1 and (query.xdate < 0. or query.xdate > 360.)) 105 if badls: 106 errormess = errormess+"<li>Solar longitude must be between 0 and 360." 107 badloct = (isloctfree == 0 and query.loct > 24.) \ 108 or (isloctfree == 1 and (query.locts > 24. or query.locte > 24.)) \ 109 or (isloctfree == 0 and query.loct < 0.) \ 110 or (isloctfree == 1 and (query.locts < 0. or query.locte < 0.)) 111 if badloct: 112 errormess = errormess+"<li>Local time must be less than 24 martian hours (and not a negative number)." 113 badlat = (islatfree == 0 and abs(query.lat) > 90.) \ 114 or (islatfree == 1 and (abs(query.lats) > 90. or abs(query.late) > 90.)) 115 if badlat: 116 errormess = errormess+"<li>Latitude coordinates must be between -90 and 90." 117 badlon = (islonfree == 0 and abs(query.lon) > 360.) \ 118 or (islonfree == 1 and (abs(query.lons) > 360. or abs(query.lone) > 360.)) 119 if badlon: 120 errormess = errormess+"<li>Longitude coordinates must be between -360 and 360." 121 badalt = (isaltfree == 0 and (query.zkey in [3]) and query.xz < 0.) \ 122 or (isaltfree == 1 and (query.zkey in [3]) and (query.xzs < 0. or query.xze < 0.)) 123 if badalt: 124 errormess = errormess+"<li>Vertical coordinates must be positive when requesting altitude above surface." 125 badalt2 = (isaltfree == 0 and (query.zkey in [1,4]) and query.xz <= 0.) \ 126 or (isaltfree == 1 and (query.zkey in [1,4]) and (query.xzs <= 0. or query.xze <= 0.)) 127 if badalt2: 128 errormess = errormess+"<li>Vertical coordinates must be <b>strictly</b> positive when requesting pressure levels or altitude above Mars center." 129 badalt3 = (isaltfree == 0 and query.zkey == 4 and query.xz > 1500.) \ 130 or (isaltfree == 1 and query.zkey == 4 and min(query.xzs,query.xze) > 1500.) 131 if badalt3: 132 errormess = errormess+"<li>Pressure values larger than 1500 Pa are unlikely to be encountered in the Martian atmosphere." 133 badrange = (isloctfree == 1 and query.locts == query.locte) \ 134 or (islatfree == 1 and query.lats == query.late) \ 135 or (islonfree == 1 and query.lons == query.lone) \ 136 or (isaltfree == 1 and query.xzs == query.xze) 137 if badrange: 138 errormess = errormess+"<li>One or several coordinate intervals are not... intervals. Set either a real range or an unique value." 139 140 # Get how many free dimensions we have 141 sumfree = islatfree + islonfree + isloctfree + isaltfree 142 if sumfree >= 3: errormess = errormess + "<li>3 or more free dimensions are set... but only 1D and 2D plots are supported!" 143 144 # Get additional parameters 86 145 try: query.hrkey = int(form.getvalue("hrkey")) 87 146 except: query.hrkey = int(1) … … 91 150 # self.seedin = 1 #random number generator seed (unused if perturkey=0) 92 151 # self.gwlength = 0. #gravity Wave wavelength (unused if perturkey=0) 152 try: query.colorm = form.getvalue("colorm") 153 except: query.colorm = "jet" 93 154 94 155 # Get variables to plot … … 98 159 var4 = form.getvalue("var4") 99 160 100 # fg: vartoplot is not None without form values101 # vartoplot = [var1]102 161 # fg: init var as with form values 103 162 if var1 == None: var1="t" 104 #if var2 == None: var2="p"105 163 106 164 vartoplot = [] … … 114 172 else: iswindlog = False 115 173 isfixedlt = form.getvalue("isfixedlt") 116 if isfixedlt == "on": input_fixedlt=True 117 else: input_fixedlt=False 118 119 # reference name (to test which figures are already in the database) 120 reference = query.getnameset()+str(var1)+str(var2)+str(var3)+str(var4)+str(iswind)+str(isfixedlt) 121 figname = '../img/'+reference+'.png' 122 txtname = '../txt/'+reference 123 testexist = daos.path.isfile(figname) 124 125 # extract data from MCD if needed 126 if not testexist: 174 if isfixedlt == "on": query.fixedlt=True 175 else: query.fixedlt=False 176 iszonmean = form.getvalue("zonmean") 177 if iszonmean == "on": query.zonmean=True 178 else: query.zonmean=False 179 180 ### now, proceed... 181 if errormess == "": 182 183 # reference name (to test which figures are already in the database) 184 reference = query.getnameset()+str(var1)+str(var2)+str(var3)+str(var4)+str(iswind)+str(isfixedlt)+str(iszonmean)+query.colorm 185 figname = '../img/'+reference+'.png' 186 txtname = '../txt/'+reference+'.txt' 187 testexist = daos.path.isfile(figname) 188 189 # extract data from MCD if needed 190 if not testexist: 127 191 128 192 ### 1D plots … … 130 194 131 195 ### getting data 132 if isloctfree == 1: query.diurnal(nd=2 4)196 if isloctfree == 1: query.diurnal(nd=25) 133 197 elif islonfree == 1: query.zonal(nd=64) 134 198 elif islatfree == 1: query.meridional(nd=48) … … 139 203 query.getascii(vartoplot,filename=txtname) 140 204 query.htmlplot1d(vartoplot,figname=figname) 141 #mpl.savefig("img/temp.png",dpi=85,bbox_inches='tight',pad_inches=0.25)142 #Image.open("../img/temp.png").save(figname,'JPEG')143 205 144 206 ### 2D plots … … 146 208 147 209 ### getting data 148 if islatfree == 1 and islonfree == 1: 149 query.htmlmap2d(vartoplot,incwind=iswindlog,fixedlt=input_fixedlt,figname=figname) 150 #mpl.savefig("img/temp.png",dpi=110,bbox_inches='tight',pad_inches=0.4) 151 #Image.open("img/temp.png").save(figname,'JPEG') ##lighter images 152 ### http://www.pythonware.com/library/pil/handbook/introduction.htm 153 elif isaltfree == 1 and islonfree == 1: 154 query.htmlplot2d(vartoplot,fixedlt=input_fixedlt,figname=figname) 155 elif isaltfree == 1 and islatfree == 1: 156 query.htmlplot2d(vartoplot,fixedlt=input_fixedlt,figname=figname) 157 else: 158 exit() 210 if islatfree == 1 and islonfree == 1: query.htmlmap2d(vartoplot,incwind=iswindlog,figname=figname) 211 else: query.htmlplot2d(vartoplot,figname=figname) 212 213 #### NOW WRITE THE HTML PAGE TO USER 159 214 160 215 ## This is quite common … … 172 227 #print "<br />" 173 228 174 175 #print "<a href='../index.html'>Click here to start a new query</a><br />"176 #print "<hr>"177 178 229 ## Now the part which differs 179 if sumfree == 0: query.update() ; query.htmlprinttabextvar(vartoplot) #query.printmeanvar() 180 elif sumfree == 2: print "<img src='"+figname+"'><br />" 181 elif sumfree == 1: 182 print "<a href='"+txtname+"'>Click here to download an ASCII file containing data</a><br />" 183 print "<hr>" 184 print "<img src='"+figname+"'><br />" 185 else: print "<h1>ERROR : sumfree is not or badly defined ...</h1></body></html>" 186 230 if errormess != "": 231 print "<h1>Ooops!</h1>" 232 print "Please correct the following problems before submitting again." 233 print "<ul>" 234 print errormess 235 print "</ul>" 236 else: 237 if sumfree == 0: query.update() ; query.htmlprinttabextvar(vartoplot) 238 elif sumfree == 2: print "<img src='"+figname+"'><br />" 239 elif sumfree == 1: 240 print "<a href='"+txtname+"'>Click here to download an ASCII file containing data</a><br />" 241 print "<hr>" 242 print "<img src='"+figname+"'><br />" 187 243 188 244 ## This is quite common 189 bottom = "<hr><a href='../index.html'>Click here to start a new query</a>.<hr></body></html>" 190 #print bottom 191 192 ##write to file object 193 #f = cStringIO.StringIO() 194 #mpl.savefig(f) 195 #f.seek(0) 196 197 ##output to browser 198 #print "Content-type: image/png\n" 199 #print f.read() 200 #exit() 201 202 #print "Content-type:text/html\r\n\r\n" 203 #print "<html>" 204 #print "<head>" 205 #print "<title>MCD. Simple Python interface</title>" 206 #print "</head>" 207 #print "<body>" 208 209 210 211 212 213 214 ## HTTP Header 215 #print "Content-Type:application/octet-stream; name=\"FileName\"\r\n"; 216 #print "Content-Disposition: attachment; filename=\"FileName\"\r\n\n"; 217 ## Actual File Content will go hear. 218 #fo = open("foo.txt", "rb") 219 #str = fo.read(); 220 #print str 221 ## Close opend file 222 #fo.close() 223 245 bottom = "</body></html>" 246 print bottom -
trunk/UTIL/PYTHON/mcd/proto/index.html
r812 r821 1 2 1 <!-- Author Aymeric Spiga LMD --> 3 4 2 <!DOCTYPE html> 5 3 <html> … … 13 11 <body onload="DefaultDateValues();DefaultTimeValues();Convert2Ls();PlaceValues(0.,0.);DefaultSpaceTime()"> 14 12 13 <form name="calendar" action="./cgi-bin/mcdcgi.py" method="post" target="_blank"> 15 14 <!-- aussi possible: get a la place de post. pour avoir un beau lien --> 16 17 <!--<form name="calendar" action="/marscgi-bin/mcdcgi.py" method="post"-->18 <form name="calendar" action="./cgi-bin/mcdcgi.py" method="post" target="_blank"> <!--target="_new">-->19 15 20 16 <center> 21 17 <b style="font-size: 125%;">Mars Climate Database: The Web Interface</b><br> 22 <!--Welcome! To reset your query, click on the Mars panorama.-->23 18 <a href="index.html"><img src="PIA03610_red.jpg" height=80 width=1200></a><br> 24 19 </center> … … 54 49 <b><font color="red">MARS date</font></b> 55 50 Solar longitude <input type="text" size="3" name="ls"> degrees<br /> 56 Local Time <input type="text" size="4" name="localtime" value="0."> Martian hour<br /> 51 Local Time <input type="text" size="3" name="localtime" value="0."> Martian hour<br /> 52 <span style="font-size: 80%;">write a value (or) a range val1;val2 (or) 'all'</span><br /> 57 53 <br /> 58 54 <input type="radio" name="datekeyhtml" value="0"> … … 64 60 </td> 65 61 <td align="center"> 66 Option for 2D maps:local time value is<br />62 If longitude is a free dimension, local time value is<br /> 67 63 <input type="radio" name="isfixedlt" value="off" checked /> at longitude 0 68 64 <input type="radio" name="isfixedlt" value="on" /> fixed for the whole planet<br /> … … 83 79 <input type="radio" name="tata" value="Evening" onClick="PlaceValues2(21.)">Evening 84 80 <input type="radio" name="tata" value="Night" onClick="PlaceValues2(3.)">Night<br /> 85 <!--<input type="radio" name="tata" value="Whole day!" onClick="PlaceValues2('all')"><i>Whole day!</i><br />-->86 81 <hr> 87 82 <b>3) ALTITUDE</b> … … 89 84 <input type="radio" name="toto" value="Boundary layer" onClick="PlaceValues3(1000.)">Boundary layer 90 85 <input type="radio" name="toto" value="Troposphere" onClick="PlaceValues3(10000.)">Troposphere<br/> 91 <input type="radio" name="toto" value="Mesophere" onClick="PlaceValues3(80000.)">Mesosphere <br />92 < !--<input type="radio" name="toto" value="Whole profile!" onClick="PlaceValues3('all')"><i>Whole profile!</i><br />-->86 <input type="radio" name="toto" value="Mesophere" onClick="PlaceValues3(80000.)">Mesosphere 87 <input type="radio" name="toto" value="Thermosphere" onClick="PlaceValues3(180000.)">Thermosphere<br /> 93 88 <hr> 94 <!--95 <b>4) COORDINATES</b> Automatic! <br />96 <input type="button" value="... or click here for global map!" onClick="PlaceValues('all','all')"><br />97 -->98 <!--99 <b>4)</b>100 <input type="button" value="Click here for a global map!" onClick="PlaceValues('all','all')"><br />101 -->102 <!--103 <input type="radio" name="titi" value="Global map" onClick="PlaceValues('all','all')">Global map<br />104 <input type="radio" name="toto" value="Vertical profile" onClick="PlaceValues3('all')">Vertical profile105 <input type="radio" name="tata" value="Diurnal cycle" onClick="PlaceValues2('all')">Diurnal cycle<br />106 -->107 89 </td> 108 90 <td align="center"> 109 91 <b>CUSTOMIZE COORDINATES ON MARS</b><br /> 110 write a value (or) a range val1;val2 (or) 'all'<br />92 <span style="font-size: 80%;">write a value (or) a range val1;val2 (or) 'all'</span><br /> 111 93 <ul> 112 94 <li>Latitude <input type="text" size="7" name="latitude" value="0."> degree North … … 121 103 --> 122 104 </select> 123 <!--124 <li>Latitude125 <input type="radio" name="islatfree" value="0" checked> Value: <input type="text" size="2" name="latitude" value="0.">126 <input type="radio" name="islatfree" value="1"> All [-90 ; 90]127 </li>128 <li>Longitude129 <input type="radio" name="islonfree" value="0" checked> Value: <input type="text" size="2" name="longitude" value="0.">130 <input type="radio" name="islonfree" value="1"> All [-180 ; 180]131 </li>132 <li>Local Time133 <input type="radio" name="isloctfree" value="0" checked> Value: <input type="text" size="2" name="localtime" value="0.">134 <input type="radio" name="isloctfree" value="1"> All [0 ; 24]135 </li>136 <li>Altitude137 <input type="radio" name="isaltfree" value="0" checked> Value: <input type="text" size="2" name="altitude" value="10.">138 <input type="radio" name="isaltfree" value="1"> All [0 ; 100000] m139 </li>140 -->141 105 </ul> 142 106 </td> 143 107 <td align="center"> 144 <!--[Advanced settings for well-informed Martians]<br />-->145 108 <ul> 146 <li>High resolution topography? <input type="radio" name="hrkey" value="1" checked /> Yes <input type="radio" name="hrkey" value="0" /> No </li>109 <li>High resolution mode? <input type="radio" name="hrkey" value="1" checked /> Yes <input type="radio" name="hrkey" value="0" /> No </li> 147 110 <li>Dust scenario? <select name="dust"> 148 111 <option value="1" >MY24 min solar</option> … … 155 118 <option value="8" >cold scenario (low dust, min solar)</option> 156 119 </select></li> 157 <!--<li>Presets158 <input type="button" value="Now!" onClick="DefaultDateValues();DefaultTimeValues();Convert2Ls();">159 <input type="button" value="Curiosity" onClick="DateAndTimeValues(2012,8,6,05,30,00);Convert2Ls();PlaceValues(137.4,-4.6)">160 <input type="button" value="Phoenix" onClick="DateAndTimeValues(2008,5,25,23,38,23);Convert2Ls();PlaceValues(234.25,68.22)">161 <input type="button" value="Opportunity" onClick="DateAndTimeValues(2004,1,25,4,55,0);Convert2Ls();PlaceValues(354.47,-1.95)">162 <input type="button" value="Spirit" onClick="DateAndTimeValues(2004,1,4,4,26,0);Convert2Ls();PlaceValues(175.48,-14.57)">163 <input type="button" value="Pathfinder" onClick="DateAndTimeValues(1997,7,4,16,56,55);Convert2Ls();PlaceValues(-33.22,19.13)">164 <input type="button" value="Viking Lander 2" onClick="DateAndTimeValues(1976,9,3,22,58,20);Convert2Ls();PlaceValues(-225.74,47.97)">165 <input type="button" value="Viking Lander 1" onClick="DateAndTimeValues(1976,7,20,11,53,6);Convert2Ls();PlaceValues(-49.97,22.48)">166 </li>-->167 120 </ul> 168 121 </td> … … 171 124 <td align="center"> 172 125 <b>4) INTEREST</b> 173 <input type="radio" name="yeah" value="Atmosphere" onClick="PlaceVar('t','p','none','none')" checked>Atmosphere<br /> 174 <input type="radio" name="yeah" value="Winds" onClick="PlaceVar('u','v','none','none')">Winds 175 <input type="radio" name="yeah" value="Weather" onClick="PlaceVar('ps_ddv','t','none','none')">Weather<br /> 176 <input type="radio" name="yeah" value="Water clouds" onClick="PlaceVar('h2ovap','mtot','h2oice','icetot')">Water clouds 177 <input type="radio" name="yeah" value="Chemistry" onClick="PlaceVar('o3','h2ovap','o','co')">Chemistry<br /> 178 <input type="radio" name="yeah" value="Landing engineering" onClick="PlaceVar('rho','rho_ddv','cp','visc')">Landing engineering<br /> 179 <input type="radio" name="yeah" value="Glaciology" onClick="PlaceVar('tsurfmn','tsurfmx','co2ice','icetot')">Glaciology 180 <input type="radio" name="yeah" value="Surface meteorology" onClick="PlaceVar('ps','tsurf','none','none')">Surface meteorology<br /> 181 <input type="radio" name="yeah" value="Radiative balance" onClick="PlaceVar('lwdown','swdown','lwup','swup')">Radiative balance<br /> 182 <!--<input type="button" value="Surface data" onClick="PlaceVar('ps','tsurf','none','none')">--> 126 <input type="radio" name="yeah" value="Atmosphere" onClick="PlaceVar('t','p','none','none');ChooseColor('jet')" checked>Atmosphere<br /> 127 <input type="radio" name="yeah" value="Winds" onClick="PlaceVar('u','v','none','none');ChooseColor('RdBu_r')">Winds 128 <input type="radio" name="yeah" value="Weather" onClick="PlaceVar('ps_ddv','rho_ddv','none','none');ChooseColor('RdBu_r')">Weather<br /> 129 <input type="radio" name="yeah" value="Water cycle" onClick="PlaceVar('h2ovap','mtot','h2oice','icetot');ChooseColor('Blues')">Water cycle 130 <input type="radio" name="yeah" value="Chemistry" onClick="PlaceVar('o3','h2ovap','none','none');ChooseColor('jet')">Chemistry<br /> 131 <input type="radio" name="yeah" value="Landing engineering" onClick="PlaceVar('rho','visc','none','none');ChooseColor('YlOrRd')">Landing engineering<br /> 132 <input type="radio" name="yeah" value="Glaciology" onClick="PlaceVar('tsurfmn','tsurfmx','co2ice','icetot');ChooseColor('spectral')">Glaciology 133 <input type="radio" name="yeah" value="Surface meteorology" onClick="PlaceVar('ps','tsurf','none','none');ChooseColor('jet')">Surface meteorology<br /> 134 <input type="radio" name="yeah" value="Radiative balance" onClick="PlaceVar('lwdown','swdown','lwup','swup');ChooseColor('hot')">Radiative balance<br /> 183 135 </td> 184 136 <td align="center"> … … 301 253 </td> 302 254 <td align="center"> 303 <!--[Additional settings]<br />-->304 255 <ul> 305 256 <li> Add wind vectors 306 257 <input type="radio" name="iswind" value="off" checked /> No 307 258 <input type="radio" name="iswind" value="on" /> Yes</li> 308 <!-- 309 <li> Set same LT on whole planet 310 <input type="radio" name="isfixedlt" value="off" checked /> No 311 <input type="radio" name="isfixedlt" value="on" /> Yes</li> 312 --> 313 <!-- 314 <li> Add another variable 315 <input type="radio" name="superimposed" value="0" checked /> side-by-side 316 <input type="radio" name="superimposed" value="1" /> superimposed</li> 317 --> 318 <!-- 319 <li> 320 Presets 321 <input type="button" value="Usual meteorology" onClick="PlaceVar('p','t','u','v')"> 322 <input type="button" value="Surface data" onClick="PlaceVar('ps','tsurf','none','none')"> 323 <input type="button" value="Water cycle" onClick="PlaceVar('mtot','icetot','none','none')"> 324 </select> 325 --> 259 </li> 260 <li> Set colormap 261 <select name="colorm"> 262 <option value="jet" selected>blue green yellow red</option> 263 <option value="Greys" >grey</option> 264 <option value="Blues" >blue</option> 265 <option value="YlOrRd" >yellow orange red</option> 266 <option value="spectral" >rainbow</option> 267 <option value="hot" >black red yellow</option> 268 <option value="RdBu_r" >blue white red</option> 269 </select> 270 </li> 271 <li> Ask for zonal mean in lat/alt plot<br /> 272 <input type="radio" name="zonmean" value="off" checked /> No 273 <input type="radio" name="zonmean" value="on" /> Yes (please be patient) 326 274 </li> 327 275 </ul> … … 336 284 </td> 337 285 <td align="center"> 338 <input type="submit" value="SUBMIT" style="font-weight:bold"/> 339 <!--<input type="button" value="RESET" style="font-weight:bold" onClick="DefaultDateValues();DefaultTimeValues();Convert2Ls();PlaceValues(0.,0.);DefaultSpaceTime()"/><br />--> 286 <input type="button" value="SUBMIT" style="font-weight:bold" onClick="submit_form()"/> 340 287 <input type="button" value="RESET" style="font-weight:bold" onClick="window.open('index.html','_self')"/><br /> 341 288 </td> 342 289 <td align="center"> 343 290 <a href="http://www-mars.lmd.jussieu.fr">Mars Climate Database</a> (c) LMD/OU/IAA/ESA/CNES.<br /> 344 Python-based interface by <a href="http://www.lmd.jussieu.fr/~aslmd/">Aymeric Spiga</a> (LMD).<br /> 345 </td> 346 </tr> 347 348 291 Interface written by <a href="http://www.lmd.jussieu.fr/~aslmd/">A. Spiga</a> (LMD) using <a href="http://www.python.org">Python</a>.<br /> 292 </td> 293 </tr> 349 294 </table> 350 351 352 353 295 </body> 354 296 </html> 355 297 356 298 <!-- 357 <form action="/cgi-bin/checkbox.cgi" method="POST" target="_blank">358 299 <input type="checkbox" name="maths" value="on" /> Maths 359 <input type="checkbox" name="physics" value="on" /> Physics360 <input type="submit" value="Select Subject" />361 </form>362 300 --> -
trunk/UTIL/PYTHON/mcd/proto/martian_time.js
r812 r821 450 450 } 451 451 452 function ChooseColor(colorm){ 453 var colorm; 454 document.calendar.colorm.value=colorm; 455 } 452 456 453 457 function submit_form_beginner() { 454 document.calendar.submit(); 458 submit_form() 455 459 document.calendar.reset(); 456 460 DefaultDateValues(); … … 461 465 } 462 466 467 function submit_form() { 468 Convert2Julian(); 469 document.calendar.submit(); 470 }
Note: See TracChangeset
for help on using the changeset viewer.