Пример #1
0
    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)      
Пример #2
0
# 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)
Пример #4
0
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)