def execute(self): def callback(a,b): self.callback(a,b) tmpFolderPath=os.getcwd() os.chdir(home) import time from clipc_combine_process import clipc_combine_process self.status.set("Preparing....", 0) pathToAppendToOutputDirectory = "/WPS_"+self.identifier+"_" + datetime.now().strftime("%Y%m%dT%H%M%SZ") """ URL output path """ fileOutURL = os.environ['POF_OUTPUT_URL'] + pathToAppendToOutputDirectory+"/" """ Internal output path""" fileOutPath = os.environ['POF_OUTPUT_PATH'] + pathToAppendToOutputDirectory +"/" """ Create output directory """ mkdir_p(fileOutPath) self.status.set("Starting....", 1) """ Get output filename """ outputfile = self.outputfilename.getValue() adagucservice = "https://climate4impact.eu/impactportal/adagucserver?"; if( os.environ.get('SERVICE_ADAGUCSERVER') != None ): adagucservice = os.environ.get('SERVICE_ADAGUCSERVER') logging.debug("adagucservice: "+adagucservice) wcs_url1 = adagucservice+'source='+self.input1.getValue()+"&" wcs_url2 = adagucservice+'source='+self.input2.getValue()+"&" bbox = self.bbox.getValue()[0]+","+self.bbox.getValue()[1]+","+self.bbox.getValue()[2]+","+self.bbox.getValue()[3]; time1 = self.time1.getValue(); time2 = self.time2.getValue(); op = "*" if(self.operator.getValue() == "multiply"): op= "*" if(self.operator.getValue() == "add"): op= "+" if(self.operator.getValue() == "subtract"): op= "-" if(self.operator.getValue() == "divide"): op= "/" certfile = home+'/certs/creds.pem' norm1 = self.norm1.getValue() norm2 = self.norm2.getValue() width = self.width.getValue() height = self.height.getValue() capath= os.environ.get('CAPATH') logging.debug("CAPATH=["+capath+"]"); nc1 , nc2 , nc_combo = clipc_combine_process.combine_two_indecies_wcs(wcs_url1, wcs_url2, op , norm1 , norm2 , bbox , time1 , time2 , tmpFolderPath+'/wcs_nc1.nc' , tmpFolderPath+'/wcs_nc2.nc', fileOutPath+"/"+outputfile,width=width , height=height, callback=callback ,certfile=certfile, capath=capath) #The final answer url = fileOutURL+"/"+outputfile; self.result.setValue(url); self.status.set("Finished....", 100)
# python from clipc_combine_process import clipc_combine_process from clipc_combine_process import serve_netcdf # this does not work as it is contains a header for the WMS process..self. #wcs_url1 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/CDD/MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1/CDD_JAN_MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1_EUR-11_2006-2100.nc' #wcs_url2 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/CDD/MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1/CDD_MAR_MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1_EUR-11_2006-2100.nc' wcs_url1 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/vDTR/MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1-SMHI-DBS43-MESAN-1989-2010/vDTR_OCT_MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1-SMHI-DBS43-MESAN-1989-2010_EUR-11_2006-2100.nc' wcs_url2 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/TNn/MPI-M-MPI-ESM-LR_rcp85_r1i1p1_SMHI-RCA4_v1/TNn_OCT_MPI-M-MPI-ESM-LR_rcp85_r1i1p1_SMHI-RCA4_v1_EUR-11_2006-2100.nc' bbox = '-40,20,60,50' #None time1 = '2010-10-16T00:00:00Z' #None time2 = '2011-10-16T00:00:00Z' #None nc1 , nc2 , nc_combo = clipc_combine_process.combine_two_indecies_wcs(wcs_url1, wcs_url2, "*" , bbox , time1 , time2 , 'wcs_nc1.nc' , 'wcs_nc2.nc', 'wcs_combine.nc' ) serve_netcdf.visualise(nc1, nc2, nc_combo)
home = expanduser("~") wcs_url1 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/storyline_urbanheat/heatstresscase/SU_EUR-11_ICHEC-EC-EARTH_rcp85_r12i1p1_SMHI-RCA4_v1_yearlyaverage_20150101-20351231.nc' wcs_url2 = 'http://climate4impact.eu/impactportal/adagucserver?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tudo/tier3/FOREST_LUISA_2010-2050.nc' time1 = '2025-06-30T20:34:17.000Z' #None time2 = '2050-12-31T00:00:00.000Z' #None bbox = '-40,20,60,50' #None certfile = home + '/certs/creds.pem' def callback(message, percentage): print ":: " + message return nc1, nc2, nc_combo = clipc_combine_process.combine_two_indecies_wcs( wcs_url1=wcs_url1, wcs_url2=wcs_url2, operator_symbol="-", norm1="normminmax", norm2="normminmax", bbox=bbox, time1=time1, time2=time2, output_file1='wcs_nc1.nc', output_file2='wcs_nc2.nc', output_file3='wcs_combine.nc', certfile=certfile, callback=callback)
time2 = 'current' #None # this does not work as it is contains a header for the WMS process..self. #wcs_url1 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/CDD/MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1/CDD_JAN_MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1_EUR-11_2006-2100.nc' #wcs_url2 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/CDD/MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1/CDD_MAR_MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1_EUR-11_2006-2100.nc' wcs_url1 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/vDTR/MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1-SMHI-DBS43-MESAN-1989-2010/vDTR_OCT_MPI-M-MPI-ESM-LR_rcp45_r1i1p1_SMHI-RCA4_v1-SMHI-DBS43-MESAN-1989-2010_EUR-11_2006-2100.nc' wcs_url2 = 'http://climate4impact.eu/impactportal/ImpactService?source=http://opendap.knmi.nl/knmi/thredds/dodsC/CLIPC/tier1_indicators/icclim_cerfacs/TNn/MPI-M-MPI-ESM-LR_rcp85_r1i1p1_SMHI-RCA4_v1/TNn_OCT_MPI-M-MPI-ESM-LR_rcp85_r1i1p1_SMHI-RCA4_v1_EUR-11_2006-2100.nc' bbox = '-40,20,60,50' #None time1 = '2010-10-16T00:00:00Z' #None time2 = '1989-09-16T00:00:00' #None certfile = home+'/certs/creds.pem' nc1 , nc2 , nc_combo = clipc_combine_process.combine_two_indecies_wcs(wcs_url1, wcs_url2, "*" , "normnone" , "normminmax" , bbox , time1 , time2 , 'wcs_nc1.nc' , 'wcs_nc2.nc', 'wcs_combine.nc' , certfile=certfile ) serve_netcdf.visualise(nc1, nc2, nc_combo)