ValueError: 输入形状不与光栅重叠
是在使用 Geopandas 和 Rasterio 进行地理空间数据处理时可能遇到的一个常见问题。这个错误通常发生在尝试对栅格数据进行掩码操作时,如果输入的几何形状(如点、线、多边形)与栅格数据的范围没有重叠,就会触发这个错误。
确保输入的几何形状与栅格数据有重叠部分。可以通过以下代码检查:
import geopandas as gpd
import rasterio
from rasterio.plot import show
from rasterio.mask import mask
# 读取栅格数据
raster_path = 'path_to_raster.tif'
raster = rasterio.open(raster_path)
# 读取几何形状数据
gdf = gpd.read_file('path_to_shapefile.shp')
# 检查重叠
if not raster.bounds.intersects(gdf.total_bounds):
print("几何形状与栅格数据无重叠")
确保几何形状和栅格数据的 CRS 一致。可以通过以下代码进行转换:
# 转换几何形状的 CRS
gdf = gdf.to_crs(raster.crs)
# 再次检查重叠
if not raster.bounds.intersects(gdf.total_bounds):
print("几何形状与栅格数据无重叠")
else:
# 进行掩码操作
out_image, out_transform = mask(raster, gdf.geometry, crop=True)
out_meta = raster.meta.copy()
out_meta.update({
"driver": "GTiff",
"height": out_image.shape[1],
"width": out_image.shape[2],
"transform": out_transform
})
with rasterio.open("masked_output.tif", "w", **out_meta) as dest:
dest.write(out_image)
这个错误常见于地理信息系统(GIS)项目中的空间分析,如土地利用变化分析、环境监测等。
通过以上方法,可以有效解决 ValueError: 输入形状不与光栅重叠
的问题,并确保地理空间数据的正确处理。
领取专属 10元无门槛券
手把手带您无忧上云