def downscale_wrapper( arr, affine, crs, baseline, output_filename, downscaling_operation, post_downscale_function ): # rotate if ( self.data.ds.lon > 200.0 ).any() == True: dat, lons = utils.shiftgrid( 180., self.data.anomalies, self.historical.ds.lon, start=False ) a,b,c,d,e,f,g,h,i = affine #flip it to the greenwich-centering src_transform = affine.Affine( a, b, -180.0, d, e, 180.0 ) else: dat, lons = ( self.data.ds, self.historical.ds.lon ) src_transform = affine # reproject / resample src_crs = {'init':'epsg:4326'} src_nodata = None # DangerTown™ baseline_meta = baseline.meta baseline_meta.update( compress='lzw' ) output_arr = np.empty_like( baeline.read( 1 ) ) # TODO: make this function available for manipulation if used for different needs reproject( arr, output_arr, src_transform=src_transform, src_crs=src_crs, src_nodata=src_nodata, \ dst_transform=baseline_meta['affine'], dst_crs=baseline_meta['crs'],\ dst_nodata=None, resampling=RESAMPLING.cubic_spline, SOURCE_EXTRA=1000 ) # downscale return utils.downscale( arr, output_arr, output_filename, downscaling_operation, \ baseline_meta, post_downscale_function, mask=None, mask_value=0 )
def interp_ds( anom, base, output_filename, src_transform, downscaling_operation, post_downscale_function=None, mask=None, mask_value=0 ): from rasterio.warp import reproject, RESAMPLING # reproject / resample src_crs = {'init':'epsg:4326'} src_nodata = None # DangerTown™ baseline_meta = base.meta baseline_meta.update( compress='lzw' ) baseline_arr = base.read( 1 ) output_arr = np.empty_like( base.read( 1 ) ) # base should be a rasterio obj not arr... check this. # TODO: make this function available for manipulation if used for different needs reproject( output_arr, baseline_arr, src_transform=src_transform, src_crs=src_crs, src_nodata=src_nodata, \ dst_transform=baseline_meta['affine'], dst_crs=baseline_meta['crs'],\ dst_nodata=None, resampling=RESAMPLING.cubic_spline, SOURCE_EXTRA=1000 ) # downscale return utils.downscale( anom, output_arr, output_filename, downscaling_operation, \ baseline_meta, post_downscale_function, mask, mask_value )