python 批量裁剪栅格 shp
时间: 2023-08-13 08:00:56 浏览: 337
在Python中用GDAL实现矢量对栅格的切割实例
5星 · 资源好评率100%
Python可以使用GDAL库来实现批量裁剪栅格数据和shp文件。GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据处理库,可以用于处理各种栅格和矢量数据格式。
以下是使用Python批量裁剪栅格数据和shp文件的步骤:
1. 导入必要的库
```python
from osgeo import gdal, ogr
```
2. 定义批量裁剪函数
```python
def batch_clip(raster_path, shapefile_path, output_path):
# 打开栅格数据
raster_dataset = gdal.Open(raster_path)
# 打开shp文件
shapefile_dataset = ogr.Open(shapefile_path)
# 获取栅格数据的范围
raster_extent = raster_dataset.GetGeoTransform()
# 获取shp文件中的要素
shapefile_layer = shapefile_dataset.GetLayer()
for feature in shapefile_layer:
# 获取要素的外包框
feature_geometry = feature.GetGeometryRef()
feature_extent = feature_geometry.GetEnvelope()
# 裁剪栅格数据
gdal.Warp(output_path + feature.GetField('id') + '.tif', raster_dataset, outputBounds=feature_extent)
```
3. 调用批量裁剪函数
```python
raster_path = 'input_raster.tif'
shapefile_path = 'input_shapefile.shp'
output_path = 'output/'
batch_clip(raster_path, shapefile_path, output_path)
```
这将会将栅格数据按照shp文件中每个要素的外包框进行裁剪,并将裁剪后的栅格数据保存到指定的输出路径。
需要注意的是,这里假设栅格数据和shp文件的投影是一致的,如果投影不一致,需要先进行投影转换。同时也可以根据不同的需求对裁剪的方法进行调整,比如指定裁剪使用的插值方法、裁剪后的栅格分辨率等。
阅读全文