本文整理汇总了Python中osgeo.gdal.GRA_Bilinear方法的典型用法代码示例。如果您正苦于以下问题:Python gdal.GRA_Bilinear方法的具体用法?Python gdal.GRA_Bilinear怎么用?Python gdal.GRA_Bilinear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osgeo.gdal
的用法示例。
在下文中一共展示了gdal.GRA_Bilinear方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_reproject_raster_dataset
# 需要导入模块: from osgeo import gdal [as 别名]
# 或者: from osgeo.gdal import GRA_Bilinear [as 别名]
def test_reproject_raster_dataset(self):
georef.reproject_raster_dataset(
self.ds, spacing=0.005, resample=gdal.GRA_Bilinear, align=True
)
georef.reproject_raster_dataset(
self.ds, size=(1000, 1000), resample=gdal.GRA_Bilinear, align=True
)
with pytest.raises(NameError):
georef.reproject_raster_dataset(self.ds)
dst = georef.epsg_to_osr(25832)
georef.reproject_raster_dataset(
self.ds,
spacing=100.0,
resample=gdal.GRA_Bilinear,
align=True,
projection_target=dst,
)
示例2: _upsample_from_gdalobj
# 需要导入模块: from osgeo import gdal [as 别名]
# 或者: from osgeo.gdal import GRA_Bilinear [as 别名]
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()
示例3: scale_query_to_tile
# 需要导入模块: from osgeo import gdal [as 别名]
# 或者: from osgeo.gdal import GRA_Bilinear [as 别名]
def scale_query_to_tile(dsquery, dstile, tiledriver, options, tilefilename=''):
"""Scales down query dataset to the tile dataset"""
querysize = dsquery.RasterXSize
tilesize = dstile.RasterXSize
tilebands = dstile.RasterCount
if options.resampling == 'average':
# Function: gdal.RegenerateOverview()
for i in range(1, tilebands+1):
# Black border around NODATA
res = gdal.RegenerateOverview(dsquery.GetRasterBand(i), dstile.GetRasterBand(i),
'average')
if res != 0:
exit_with_error("RegenerateOverview() failed on %s, error %d" % (
tilefilename, res))
elif options.resampling == 'antialias':
# Scaling by PIL (Python Imaging Library) - improved Lanczos
array = numpy.zeros((querysize, querysize, tilebands), numpy.uint8)
for i in range(tilebands):
array[:, :, i] = gdalarray.BandReadAsArray(dsquery.GetRasterBand(i+1),
0, 0, querysize, querysize)
im = Image.fromarray(array, 'RGBA') # Always four bands
im1 = im.resize((tilesize, tilesize), Image.ANTIALIAS)
if os.path.exists(tilefilename):
im0 = Image.open(tilefilename)
im1 = Image.composite(im1, im0, im1)
im1.save(tilefilename, tiledriver)
else:
if options.resampling == 'near':
gdal_resampling = gdal.GRA_NearestNeighbour
elif options.resampling == 'bilinear':
gdal_resampling = gdal.GRA_Bilinear
elif options.resampling == 'cubic':
gdal_resampling = gdal.GRA_Cubic
elif options.resampling == 'cubicspline':
gdal_resampling = gdal.GRA_CubicSpline
elif options.resampling == 'lanczos':
gdal_resampling = gdal.GRA_Lanczos
# Other algorithms are implemented by gdal.ReprojectImage().
dsquery.SetGeoTransform((0.0, tilesize / float(querysize), 0.0, 0.0, 0.0,
tilesize / float(querysize)))
dstile.SetGeoTransform((0.0, 1.0, 0.0, 0.0, 0.0, 1.0))
res = gdal.ReprojectImage(dsquery, dstile, None, None, gdal_resampling)
if res != 0:
exit_with_error("ReprojectImage() failed on %s, error %d" % (tilefilename, res))
示例4: get_raster_elevation
# 需要导入模块: from osgeo import gdal [as 别名]
# 或者: from osgeo.gdal import GRA_Bilinear [as 别名]
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
示例5: scale_query_to_tile
# 需要导入模块: from osgeo import gdal [as 别名]
# 或者: from osgeo.gdal import GRA_Bilinear [as 别名]
def scale_query_to_tile(dsquery, dstile, tiledriver, options, tilefilename=''):
"""Scales down query dataset to the tile dataset"""
querysize = dsquery.RasterXSize
tilesize = dstile.RasterXSize
tilebands = dstile.RasterCount
if options.resampling == 'average':
# Function: gdal.RegenerateOverview()
for i in range(1, tilebands + 1):
# Black border around NODATA
res = gdal.RegenerateOverview(dsquery.GetRasterBand(i), dstile.GetRasterBand(i),
'average')
if res != 0:
exit_with_error("RegenerateOverview() failed on %s, error %d" % (
tilefilename, res))
elif options.resampling == 'antialias':
# Scaling by PIL (Python Imaging Library) - improved Lanczos
array = numpy.zeros((querysize, querysize, tilebands), numpy.uint8)
for i in range(tilebands):
array[:, :, i] = gdalarray.BandReadAsArray(dsquery.GetRasterBand(i + 1),
0, 0, querysize, querysize)
im = Image.fromarray(array, 'RGBA') # Always four bands
im1 = im.resize((tilesize, tilesize), Image.ANTIALIAS)
if os.path.exists(tilefilename):
im0 = Image.open(tilefilename)
im1 = Image.composite(im1, im0, im1)
im1.save(tilefilename, tiledriver)
else:
if options.resampling == 'near':
gdal_resampling = gdal.GRA_NearestNeighbour
elif options.resampling == 'bilinear':
gdal_resampling = gdal.GRA_Bilinear
elif options.resampling == 'cubic':
gdal_resampling = gdal.GRA_Cubic
elif options.resampling == 'cubicspline':
gdal_resampling = gdal.GRA_CubicSpline
elif options.resampling == 'lanczos':
gdal_resampling = gdal.GRA_Lanczos
# Other algorithms are implemented by gdal.ReprojectImage().
dsquery.SetGeoTransform((0.0, tilesize / float(querysize), 0.0, 0.0, 0.0,
tilesize / float(querysize)))
dstile.SetGeoTransform((0.0, 1.0, 0.0, 0.0, 0.0, 1.0))
res = gdal.ReprojectImage(dsquery, dstile, None, None, gdal_resampling)
if res != 0:
exit_with_error("ReprojectImage() failed on %s, error %d" % (tilefilename, res))