gpt4 book ai didi

python - 在 Python 中使用 Rasterio 掩码的重叠错误

转载 作者:行者123 更新时间:2023-12-04 01:44:45 24 4
gpt4 key购买 nike

我有一个卫星图像光栅文件和一个由多个离散多边形组成的 Shapefile。我想从光栅文件中为每个多边形单独提取(或屏蔽)Numpy 图像数组。

目前,我使用 Fiona 导入 Shapefile 并创建多边形列表。我一次使用所有 多边形来屏蔽光栅文件没有问题。但是,当我尝试使用列表中的单个多边形时,出现错误:“ValueError:输入形状不与栅格重叠。”。尽管之前获得了成功的结果,并且两个文件都使用相同的 CRS,但还是如此。

import rasterio
import shapefile
import fiona
import numpy as np

with fiona.open("test.shp", "r") as shapefile:

features = [feature["geometry"] for feature in shapefile]

features = [x for x in features if x is not None]

这个有效:

with rasterio.open('sat_img_B01.jp2') as src:

out_image, out_transform = rasterio.mask.mask(src, features,
crop=True)

这不起作用(WindowError:窗口不相交并且ValueError:输入形状不与栅格重叠):

index = 0

with rasterio.open('sat_img_B01.jp2') as src:

out_image, out_transform = rasterio.mask.mask(src, [features[index]], crop=True)

我想我缺少一些基本的东西!是否有一种优雅的方法可以从光栅图像中提取“特征”列表中的每个多边形作为单独的图像文件/numpy 数组?

谢谢!!

最佳答案

您必须确保 shapefile 和光栅图像都使用相同的 crs(坐标引用系统):尝试打印它们。

关于python - 在 Python 中使用 Rasterio 掩码的重叠错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55762795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com