使用 rasterio 对栅格进行重采样 - 网格间距的简单修改
Resampling a raster using rasterio - simple modification of grid spacing
我正在使用 Python 的栅格对栅格数据进行重采样。查看 rasterio.enums.Resampling
class,似乎唯一的方法是在相邻的栅格网格之间进行插值,从根本上平滑数据。
有没有什么方法可以进行简单的上采样,有效地将一个栅格网格划分为多个栅格并保留所有子栅格的原始值?
我的重采样脚本如下-目前使用的是双线性法:
with rasterio.open(str(rasterpath+filename), crs="EPSG:4326") as src:
data = src.read(
out_shape=(
src.count,
int(src.height * upscale_factor),
int(src.width * upscale_factor)
),
resampling=Resampling.bilinear)
# scale image transform
transform = src.transform * src.transform.scale(
(src.width / data.shape[-1]),
(src.height / data.shape[-2])
)
有什么建议吗?我认为会内置对离散数据的某种处理,但尚未找到...
我找到了解决方案。
删除 resampling=Resampling.bilinear
避免插值并执行“简单”重采样。
我正在使用 Python 的栅格对栅格数据进行重采样。查看 rasterio.enums.Resampling
class,似乎唯一的方法是在相邻的栅格网格之间进行插值,从根本上平滑数据。
有没有什么方法可以进行简单的上采样,有效地将一个栅格网格划分为多个栅格并保留所有子栅格的原始值?
我的重采样脚本如下-目前使用的是双线性法:
with rasterio.open(str(rasterpath+filename), crs="EPSG:4326") as src:
data = src.read(
out_shape=(
src.count,
int(src.height * upscale_factor),
int(src.width * upscale_factor)
),
resampling=Resampling.bilinear)
# scale image transform
transform = src.transform * src.transform.scale(
(src.width / data.shape[-1]),
(src.height / data.shape[-2])
)
有什么建议吗?我认为会内置对离散数据的某种处理,但尚未找到...
我找到了解决方案。
删除 resampling=Resampling.bilinear
避免插值并执行“简单”重采样。