安装rasterio遇阻,求替代工具实现栅格文件按shp裁剪
替代Rasterio的Shapefile裁剪Raster工具方案
1. GDAL Python绑定
GDAL是栅格/矢量处理的底层核心库,Rasterio本身基于它开发,直接使用GDAL的Python接口可实现相同功能,且安装通常更稳定。
示例代码:
from osgeo import gdal def clip_raster(input_raster_path, shapefile_path, output_raster_path): # 配置裁剪参数 warp_options = gdal.WarpOptions( cutlineDSName=shapefile_path, cropToCutline=True, dstNodata=0 # 可根据你的栅格数据调整无数据值 ) # 执行裁剪 gdal.Warp(output_raster_path, input_raster_path, options=warp_options) # 调用示例 clip_raster("input.tif", "clip_boundary.shp", "clipped_output.tif")
安装命令:
- Conda:
conda install gdal -y - Pip:
pip install gdal(注:pip安装可能需要提前在系统层面安装GDAL依赖库)
2. PyRSGIS
这是封装了GDAL的轻量Python库,API更简洁,适合快速实现栅格矢量操作,安装依赖少、速度快。
示例代码:
from pyrsgis import raster, vector # 读取输入数据 raster_ds, raster_data = raster.read("input.tif") vector_ds = vector.read("clip_boundary.shp") # 执行裁剪 clipped_data, clipped_ds = raster.clip(raster_data, raster_ds, vector_ds) # 保存结果 raster.write(clipped_data, clipped_ds, "clipped_output.tif")
安装命令:pip install pyrsgis
3. GDAL命令行工具(无需Python代码)
如果不需要编写Python脚本,直接用GDAL自带的gdalwarp命令行工具是最快的方式,无需额外Python库,只要系统安装了GDAL即可。
执行命令:
gdalwarp -cutline clip_boundary.shp -crop_to_cutline input.tif clipped_output.tif
安装GDAL命令行工具:
- Conda:
conda install gdal -y - Linux(Debian/Ubuntu系):
sudo apt install gdal-bin - Windows:通过OSGeo4W或Conda安装
内容的提问来源于stack exchange,提问作者Jui Sen
相关产品推荐
相关产品推荐

