if variable == 'pr': # truncate to whole number rounder = np.rint downscaling_operation = 'mult' aoi_mask = aoi_mask_fn # make AOI_Mask input resolution for computing 95th percentiles... if aoi_mask_fn is not None: aoi_mask = Mask( aoi_mask_fn, historical, 1, 0 ) else: aoi_mask = None else: # round to 2 decimals rounder = partial( np.round, decimals=1 ) downscaling_operation = 'add' aoi_mask = None def round_it( x, mask ): arr = np.ma.masked_array( data=x, mask=mask ) return rounder( arr ) round_data = partial( round_it, mask=( mask==0 ) ) ar5 = downscale.DeltaDownscale( baseline, clim_begin, clim_end, historical, future, downscaling_operation=downscaling_operation, mask=mask, mask_value=0, ncpus=32, src_crs={'init':'epsg:4326'}, src_nodata=None, dst_nodata=None, post_downscale_function=round_data, varname=variable, modelname=modelname, anom=anom, fix_clim=fix_clim, aoi_mask=aoi_mask ) ar5.downscale( output_dir=output_path )
# SETUP DATASET output_dir = '/workspace/Shared/Tech_Projects/EPSCoR_Southcentral/project_data/test' future_fn = '/workspace/Shared/Tech_Projects/ESGF_Data_Access/project_data/snap_prepped_data/IPSL-CM5A-LR/hur/hur_Amon_IPSL-CM5A-LR_rcp26_r1i1p1_200601_210012.nc' historical_fn = '/workspace/Shared/Tech_Projects/ESGF_Data_Access/project_data/snap_prepped_data/IPSL-CM5A-LR/hur/hur_Amon_IPSL-CM5A-LR_historical_r1i1p1_185001_200512.nc' variable = 'hur' model = 'IPSL-CM5A-LR' scenario = 'rcp26' historical = downscale.Dataset( historical_fn, variable, model, scenario, units=None ) future = downscale.Dataset( future_fn, variable, model, scenario, units=None ) # DOWNSCALE mask = rasterio.open(baseline.filelist[0]).read_masks(1) clim_begin = '1961' clim_end = '1990' ar5 = downscale.DeltaDownscale( baseline, clim_begin, clim_end, historical, future, \ metric='mean', ds_type='absolute', level=1000, level_name='plev' )# add in the mask! ar5.downscale( output_dir=output_dir ) # CRU historical output_dir = '/workspace/Shared/Tech_Projects/ESGF_Data_Access/project_data/test' historical_fn = '/Data/Base_Data/Climate/World/CRU_grids/CRU_TS323/cru_ts3.23.1901.2014.cld.dat.nc' historical = downscale.Dataset( historical_fn, 'cld', 'cru_ts31', 'observed', units=None, interp=True ) clim_begin = '1961' clim_end = '1990' cru = downscale.DeltaDownscale( baseline, clim_begin, clim_end, historical, metric='mean', ds_type='relative' ) cru.downscale( output_dir=output_dir ) # filelist = [ os.path.join(root, fn) for root, subs, files in os.walk(base_dir) if len(files) > 0 for fn in files if variable in fn and scenario in fn and model in fn ]
historical_fn = '/workspace/Shared/Tech_Projects/ESGF_Data_Access/project_data/snap_prepped_data/IPSL-CM5A-LR/hur/hur_Amon_IPSL-CM5A-LR_historical_r1i1p1_185001_200512.nc' variable = 'hur' model = 'IPSL-CM5A-LR' scenario = 'rcp26' historical = downscale.Dataset(historical_fn, variable, model, scenario, units=None) future = downscale.Dataset(future_fn, variable, model, scenario, units=None) # DOWNSCALE mask = rasterio.open(baseline.filelist[0]).read_masks(1) clim_begin = '1961' clim_end = '1990' ar5 = downscale.DeltaDownscale( baseline, clim_begin, clim_end, historical, future, \ metric='mean', ds_type='absolute', level=1000, level_name='plev' )# add in the mask! ar5.downscale(output_dir=output_dir) # CRU historical output_dir = '/workspace/Shared/Tech_Projects/ESGF_Data_Access/project_data/test' historical_fn = '/Data/Base_Data/Climate/World/CRU_grids/CRU_TS323/cru_ts3.23.1901.2014.cld.dat.nc' historical = downscale.Dataset(historical_fn, 'cld', 'cru_ts31', 'observed', units=None, interp=True) clim_begin = '1961' clim_end = '1990' cru = downscale.DeltaDownscale(baseline, clim_begin,
scenario, project=project, units=units) future = downscale.Dataset(fn, variable, model, scenario, project=project, units=units) # convert from Kelvin to Celcius if historical: historical.ds[variable] = historical.ds[variable] - 273.15 historical.ds[variable]['units'] = units if future: future.ds[variable] = future.ds[variable] - 273.15 future.ds[variable]['units'] = units # DOWNSCALE mask = rasterio.open(baseline.filelist[0]).read_masks(1) clim_begin = '1961' clim_end = '1990' ar5 = downscale.DeltaDownscale( baseline, clim_begin, clim_end, historical, future, \ metric=metric, downscaling_operation='add', mask=mask, mask_value=0, ncpus=32, \ src_crs={'init':'epsg:4326'}, src_nodata=None, dst_nodata=None, post_downscale_function=None, modelname=modelname ) # -9999.0 ar5.downscale(output_dir=output_path)