【发布时间】:2020-07-20 04:48:01
【问题描述】:
如何使用双线性插值对单波段 GeoTIFF 进行重新采样?
import os
import rasterio
from rasterio.enums import Resampling
from rasterio.plot import show,show_hist
import numpy as np
if __name__ == "__main__":
input_Dir = 'sample.tif'
#src = rasterio.open(input_Dir)
#show(src,cmap="magma")
upscale_factor = 2
with rasterio.open(input_Dir) as dataset:
# resample data to target shape
data = dataset.read(
out_shape=(
dataset.count,
int(dataset.height * upscale_factor),
int(dataset.width * upscale_factor)
),
resampling=Resampling.bilinear
)
# scale image transform
transform = dataset.transform * dataset.transform.scale(
(dataset.width / data.shape[-1]),
(dataset.height / data.shape[-2])
)
show(dataset,cmap="magma",transform=transform)
我试过下面的代码,我的输出如下:
我正在尝试实现以下输出:
【问题讨论】:
-
如果您不需要保存重新采样的 tif,matplotlib 将为您进行插值matplotlib.org/3.1.1/gallery/images_contours_and_fields/…
-
但是,您没有显示重新采样的
data。你显示的是原始的dataset -
我必须创建一个新的栅格吗?原因只是在 show 方法中传递数据变量不会完成这项工作。
-
如果你直接使用matplotlib,不,你不需要像我说的那样创建一个新的tiff
-
谢谢。它奏效了
标签: python gis raster gdal rasterio