Python osgeo.gdal.GRA_Average() Examples
The following are 6
code examples of osgeo.gdal.GRA_Average().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
osgeo.gdal
, or try the search function
.
Example #1
Source File: base.py From geoio with MIT License | 5 votes |
def _upsample_from_gdalobj(self,src,dst,method='bilinear'): """Hidden to run the actual reprojection gdal code that is called from two higher level methods.""" # Set reprojection method if isinstance(method,int): pass elif method == "nearest": method = gdal.GRA_NearestNeighbour elif method == "bilinear": method = gdal.GRA_Bilinear elif method == "cubic": method = gdal.GRA_Cubic elif method == "average": method = gdal.GRA_Average else: raise ValueError("requested method is not understood.") # Do the reprojection gdal.ReprojectImage(src, dst, self.meta.projection_string, dst.GetProjection(), method) # Return data and free the temp image. return dst.ReadAsArray()
Example #2
Source File: gdal_python.py From PyRate with Apache License 2.0 | 5 votes |
def gdal_average(dst_ds, src_ds, src_ds_mem, thresh): """ Perform subsampling of an image by averaging values :param gdal.Dataset dst_ds: Destination gdal dataset object :param str input_tif: Input geotif :param float thresh: NaN fraction threshold :return resampled_average: resampled image data :rtype: ndarray :return src_ds_mem: Modified in memory src_ds with nan_fraction in Band2. The nan_fraction is computed efficiently here in gdal in the same step as the that of the resampled average (band 1). This results is huge memory and computational efficiency :rtype: gdal.Dataset """ src_gt = src_ds.GetGeoTransform() src_ds_mem.SetGeoTransform(src_gt) data = src_ds_mem.GetRasterBand(1).ReadAsArray() # update nan_matrix # if data==nan, then 1, else 0 nan_matrix = np.isnan(data) # all nans due to phase data + coh masking if used src_ds_mem.GetRasterBand(2).WriteArray(nan_matrix) gdal.ReprojectImage(src_ds_mem, dst_ds, '', '', gdal.GRA_Average) # dst_ds band2 average is our nan_fraction matrix nan_frac = dst_ds.GetRasterBand(2).ReadAsArray() resampled_average = dst_ds.GetRasterBand(1).ReadAsArray() resampled_average[nan_frac >= thresh] = np.nan return resampled_average, src_ds_mem
Example #3
Source File: test_gdal_python.py From PyRate with Apache License 2.0 | 5 votes |
def test_reproject_average_resampling(self): data = np.array([[4, 7, 7, 7, 2, 7.], [4, 7, 7, 7, 2, 7.], [4, 7, 7, 7, 2, 7.], [4, 7, 7, 2, 2, 7.], [4, 7, 7, 2, 2, 7.], [4, 7, 7, 10, 2, 7.]], dtype=np.float32) src_ds = gdal.GetDriverByName('MEM').Create('', 6, 6, 1, gdalconst.GDT_Float32) src_ds.GetRasterBand(1).WriteArray(data) src_ds.GetRasterBand(1).SetNoDataValue(2) src_ds.SetGeoTransform([10, 1, 0, 10, 0, -1]) dst_ds = gdal.GetDriverByName('MEM').Create('', 3, 3, 1, gdalconst.GDT_Float32) dst_ds.GetRasterBand(1).SetNoDataValue(3) dst_ds.GetRasterBand(1).Fill(3) dst_ds.SetGeoTransform([10, 2, 0, 10, 0, -2]) gdal.ReprojectImage(src_ds, dst_ds, '', '', gdal.GRA_Average) got_data = dst_ds.GetRasterBand(1).ReadAsArray() expected_data = np.array([[5.5, 7, 7], [5.5, 7, 7], [5.5, 8, 7]]) np.testing.assert_array_equal(got_data, expected_data)
Example #4
Source File: test_gdal_python.py From PyRate with Apache License 2.0 | 5 votes |
def test_reproject_average_resampling_with_2bands(self): data = np.array([[[4, 7, 7, 7, 2, 7.], [4, 7, 7, 7, 2, 7.], [4, 7, 7, 7, 2, 7.], [4, 7, 7, 2, 2, 7.], [4, 7, 7, 2, 2, 7.], [4, 7, 7, 10, 2, 7.]], [[2, 0, 0, 0, 0, 0.], [2, 0, 0, 0, 0, 2.], [0, 1., 0, 0, 0, 1.], [0, 0, 0, 0, 0, 2], [0, 0, 0, 0, 0, 0.], [0, 0, 0, 0, 0, 0.]]], dtype=np.float32) src_ds = gdal.GetDriverByName('MEM').Create('', 6, 6, 2, gdalconst.GDT_Float32) src_ds.GetRasterBand(1).WriteArray(data[0, :, :]) src_ds.GetRasterBand(1).SetNoDataValue(2) src_ds.GetRasterBand(2).WriteArray(data[1, :, :]) # src_ds.GetRasterBand(1).SetNoDataValue() src_ds.SetGeoTransform([10, 1, 0, 10, 0, -1]) dst_ds = gdal.GetDriverByName('MEM').Create('', 3, 3, 2, gdalconst.GDT_Float32) dst_ds.GetRasterBand(1).SetNoDataValue(3) dst_ds.GetRasterBand(1).Fill(3) dst_ds.SetGeoTransform([10, 2, 0, 10, 0, -2]) gdal.ReprojectImage(src_ds, dst_ds, '', '', gdal.GRA_Average) got_data = dst_ds.GetRasterBand(1).ReadAsArray() expected_data = np.array([[5.5, 7, 7], [5.5, 7, 7], [5.5, 8, 7]]) np.testing.assert_array_equal(got_data, expected_data) band2 = dst_ds.GetRasterBand(2).ReadAsArray() np.testing.assert_array_equal(band2, np.array([[1., 0., 0.5], [0.25, 0., 0.75], [0., 0., 0.]]))
Example #5
Source File: raster.py From wradlib with MIT License | 4 votes |
def get_raster_elevation(dataset, resample=None, **kwargs): """Return surface elevation corresponding to raster dataset The resampling algorithm is chosen based on scale ratio Parameters ---------- dataset : gdal.Dataset raster image with georeferencing (GeoTransform at least) resample : GDALResampleAlg If None the best algorithm is chosen based on scales. GRA_NearestNeighbour = 0, GRA_Bilinear = 1, GRA_Cubic = 2, GRA_CubicSpline = 3, GRA_Lanczos = 4, GRA_Average = 5, GRA_Mode = 6, GRA_Max = 8, GRA_Min = 9, GRA_Med = 10, GRA_Q1 = 11, GRA_Q3 = 12 kwargs : keyword arguments passed to wradlib.io.dem.get_strm() Returns ------- elevation : :class:`numpy:numpy.ndarray` Array of shape (rows, cols, 2) containing elevation """ extent = get_raster_extent(dataset) src_ds = wradlib.io.dem.get_srtm(extent, **kwargs) driver = gdal.GetDriverByName("MEM") dst_ds = driver.CreateCopy("ds", dataset) if resample is None: src_gt = src_ds.GetGeoTransform() dst_gt = dst_ds.GetGeoTransform() src_scale = min(abs(src_gt[1]), abs(src_gt[5])) dst_scale = min(abs(dst_gt[1]), abs(dst_gt[5])) ratio = dst_scale / src_scale resample = gdal.GRA_Bilinear if ratio > 2: resample = gdal.GRA_Average if ratio < 0.5: resample = gdal.GRA_NearestNeighbour gdal.ReprojectImage( src_ds, dst_ds, src_ds.GetProjection(), dst_ds.GetProjection(), resample ) elevation = read_gdal_values(dst_ds) return elevation
Example #6
Source File: test_gdal_python.py From PyRate with Apache License 2.0 | 4 votes |
def check(driver_type): temp_tif = tempfile.mktemp(suffix='.tif') data = np.array([[[4, 7, 7, 7, 2, 7.], [4, 7, 7, 7, 2, 7.], [4, 7, 7, 7, 2, 7.], [4, 7, 7, 2, 2, 7.], [4, 7, 7, 2, 2, 7.], [4, 7, 7, 10, 2, 7.]], [[2, 0, 0, 0, 0, 0.], [2, 0, 0, 0, 0, 2.], [0, 1., 0, 0, 0, 1.], [0, 0, 0, 0, 0, 2], [0, 0, 0, 0, 0, 0.], [0, 0, 0, 0, 0, 0.]]], dtype=np.float32) src_ds = gdal.GetDriverByName(driver_type).Create(temp_tif, 6, 6, 2, gdalconst.GDT_Float32) src_ds.GetRasterBand(1).WriteArray(data[0, :, :]) src_ds.GetRasterBand(1).SetNoDataValue(2) src_ds.GetRasterBand(2).WriteArray(data[1, :, :]) src_ds.GetRasterBand(2).SetNoDataValue(3) src_ds.SetGeoTransform([10, 1, 0, 10, 0, -1]) src_ds.FlushCache() dst_ds = gdal.GetDriverByName('MEM').Create('', 3, 3, 2, gdalconst.GDT_Float32) dst_ds.GetRasterBand(1).SetNoDataValue(3) dst_ds.GetRasterBand(1).Fill(3) dst_ds.SetGeoTransform([10, 2, 0, 10, 0, -2]) gdal.ReprojectImage(src_ds, dst_ds, '', '', gdal.GRA_Average) band1 = dst_ds.GetRasterBand(1).ReadAsArray() np.testing.assert_array_equal(band1, np.array([[5.5, 7, 7], [5.5, 7, 7], [5.5, 8, 7]])) band2 = dst_ds.GetRasterBand(2).ReadAsArray() np.testing.assert_array_equal(band2, np.array([[1., 0., 0.5], [0.25, 0., 0.75], [0., 0., 0.]])) if os.path.exists(temp_tif): try: os.remove(temp_tif) except PermissionError: print("File opened by another process.")