Changeset 793 for trunk/UTIL/PYTHON/mcd/proto/cgi-bin
- Timestamp:
- Sep 21, 2012, 5:11:37 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UTIL/PYTHON/mcd/proto/cgi-bin/mcdcgi.py
r761 r793 1 #!/home/aymeric/Software/epd-7.0-2-rh5-x86/bin/python 1 #!/usr/bin/python 2 ###!/home/aymeric/Software/epd-7.0-2-rh5-x86/bin/python 3 ####!/home/marshttp/EPD/epd-7.0-2-rh5-x86_64/bin/python 2 4 ### here the version used to f2py the MCD Fortran routines 3 5 … … 9 11 ### (see mcdtest.py for examples of use) ### 10 12 ################################################## 13 ### ajouts et corrections par Franck Guyon 09/2012 11 14 12 15 import cgi, cgitb 13 16 import numpy as np 14 from mcd import mcd 17 #from mcd import mcd 18 from modules import * 19 from modules import mcd 20 15 21 import cStringIO 16 22 import os as daos 17 23 import matplotlib.pyplot as mpl 18 import Image24 from PIL import Image 19 25 20 26 # for debugging in web browser … … 25 31 26 32 # create a MCD object 27 query = mcd() 33 #query = mcd() 34 query=mcd.mcd() #FG: import from module mcd 28 35 29 36 # Get data from user-defined fields and define free dimensions 37 # FG: add tests if var==None to have values in local without forms ones 30 38 getlat = form.getvalue("latitude") 39 if getlat == None: getlat = 1 40 31 41 if getlat == "all": islatfree = 1 ; query.lat = -9999. 32 42 else: islatfree = 0 ; query.lat = float(getlat) 33 43 getlon = form.getvalue("longitude") 44 if getlon == None: getlon = 1 34 45 if getlon == "all": islonfree = 1 ; query.lon = -9999. 35 46 else: islonfree = 0 ; query.lon = float(getlon) 47 36 48 getloct = form.getvalue("localtime") 49 50 if getloct == None: getloct = 1 37 51 if getloct == "all": isloctfree = 1 ; query.loct = -9999. 38 52 else: isloctfree = 0 ; query.loct = float(getloct) 53 39 54 getalt = form.getvalue("altitude") 55 if getalt == None: getalt = 1 40 56 if getalt == "all": isaltfree = 1 ; query.xz = -9999. 41 57 else: isaltfree = 0 ; query.xz = float(getalt) 58 42 59 sumfree = islatfree + islonfree + isloctfree + isaltfree 43 60 if sumfree > 2: exit() ## only 1D or 2D plots for the moment 44 query.xdate = float(form.getvalue("ls")) 45 query.hrkey = int(form.getvalue("hrkey")) 46 query.dust = int(form.getvalue("dust")) 61 62 try: query.xdate = float(form.getvalue("ls")) 63 except: query.xdate = float(1) 64 try: query.hrkey = int(form.getvalue("hrkey")) 65 except: query.hrkey = int(1) 66 try: query.dust = int(form.getvalue("dust")) 67 except: query.dust = int(1) 47 68 # self.zkey = 3 # specify that xz is the altitude above surface (m) 48 69 # self.perturkey = 0 #integer perturkey ! perturbation type (0: none) … … 55 76 var3 = form.getvalue("var3") 56 77 var4 = form.getvalue("var4") 57 vartoplot = [var1] 78 79 # fg: vartoplot is not None without form values 80 # vartoplot = [var1] 81 # fg: init var as with form values 82 if var1 == None: var1="t" 83 if var2 == None: var2="p" 84 85 vartoplot = [] 86 if var1 != "none": vartoplot = np.append(vartoplot,var1) 58 87 if var2 != "none": vartoplot = np.append(vartoplot,var2) 59 if var3 != "none": vartoplot = np.append(vartoplot,var3) 60 if var4 != "none": vartoplot = np.append(vartoplot,var4) 88 if var3 != "none" and var3 != None: vartoplot = np.append(vartoplot,var3) 89 if var4 != "none" and var4 != None: vartoplot = np.append(vartoplot,var4) 90 61 91 iswind = form.getvalue("iswind") 62 92 if iswind == "on": iswindlog = True … … 68 98 # reference name (to test which figures are already in the database) 69 99 reference = str(islatfree)+str(islonfree)+str(isloctfree)+str(isaltfree)+query.getnameset()+str(var1)+str(var2)+str(var3)+str(var4)+str(iswind)+str(isfixedlt) 70 figname = 'img/'+reference+'.jpg' 100 figname = '../img/'+reference+'.png' 101 71 102 testexist = daos.path.isfile(figname) 72 103 … … 85 116 86 117 ### generic building of figure 87 #query.plot1d(["t","p","u","v"],vertplot=isaltfree) 88 query.plot1d(vartoplot,vertplot=isaltfree) 89 mpl.savefig("img/temp.png",dpi=85,bbox_inches='tight',pad_inches=0.25) 90 Image.open("img/temp.png").save(figname,'JPEG') 118 query.htmlplot1d(vartoplot,vertplot=isaltfree,figname=figname) 119 #mpl.savefig("img/temp.png",dpi=85,bbox_inches='tight',pad_inches=0.25) 120 #Image.open("../img/temp.png").save(figname,'JPEG') 91 121 92 122 ### 2D plots … … 104 134 105 135 ## This is quite common 106 print "Content-type:text/html\r\n\r\n" 107 print "<html>" 108 print "<head>" 109 print "<title>MCD. Simple Python interface</title>" 110 print "</head>" 111 print "<body>" 136 print "Content-type:text/html\n" 137 print " " #Apache needs a space after content-type 138 139 #entete="""<?xml version="1.0" encoding="UTF-8"?> 140 #<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"> 141 #<html xmlns="http://www.w3.org/1999/xhtml"> """ 142 143 header="""<html><head><title>Mars Climate Database: The Web Interface</title></head><body>""" 144 145 print header 112 146 113 147 ## Now the part which differs 114 148 if sumfree == 0: query.update() ; query.htmlprinttabextvar(vartoplot) #query.printmeanvar() 115 elif sumfree >= 1: print "<img src='../"+figname+"'><br />" 116 else: exit() 149 elif sumfree >= 1: print "<img src='"+figname+"'><br />" 150 else: print "<h1>ERROR : sumfree is not or badly defined ...</h1></body></html>" 151 117 152 118 153 ## This is quite common 119 #print "Based on the <a href='http://www-mars.lmd.jussieu.fr'>Mars Climate Database</a> (c) LMD/OU/IAA/ESA/CNES.<br />" 120 print "<hr>" 121 print "<a href='../index.html'>Click here to start a new query</a>." 122 #query.printset() 123 print "<hr>" 124 print "</body>" 125 print "</html>" 154 bottom = "<hr><a href='../index.html'>Click here to start a new query</a>.<hr></body></html>" 155 print bottom 126 156 127 157 ##write to file object
Note: See TracChangeset
for help on using the changeset viewer.