当我使用 rasterio.mask 裁剪光栅图像时,为什么要创建额外的行和列?

Why am I creating an extra row and column when I use rasterio.mask to clip a raster image?

提问人:Vance 提问时间:11/10/2023 更新时间:11/16/2023 访问量:37

问:

我正在尝试将 Raster2 剪辑到 Raster1 的范围内。剪辑工作成功,但我在输出栅格中获得了额外的行和列。

Raster1 是缅因州范围内的栅格。Raster2 是 NLCD 全国范围的数据集。我得到了 Raster1 的边界框,并使用 rasterio.mask 裁剪了 Raster2 以创建 Raster3。但是,与 Raster1/ 的原始形状相比,Raster3 的形状具有额外的行和列

src = rasterio.open(f'Raster1.tif')
idArray = src.read()[0]
idArray.shape
#(45006, 41551)

geometry = box(*src.bounds)

with rasterio.open(r'Raster2') as src2:
    NLCD, NLCD_transform = rasterio.mask.mask(src2, [geometry], crop=True)
    out_meta = src2.meta

NLCD[0].shape
#(45007, 41552)

这两个数据集位于同一坐标系中,但我唯一能想到的是它们的网格没有完全对齐,但我无法弄清楚这将如何为我提供额外的行和列。这里的任何见解都会很棒。

Python 数组 地理空间 裁剪 栅格

评论


答:

0赞 Sam 11/16/2023 #1

这可能与两个栅格的分辨率精度有关。如果两个栅格的精度(以及有效分辨率)不同,则同一边界框在第二个栅格中容纳的行数和列数可能略有不同。