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

问题描述 投票:0回答:1

我正在尝试将 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 arrays geospatial clipping rasterio
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.