从shp提取栅格数据 python
时间: 2023-07-30 09:02:53 浏览: 251
ArcGIS根据SHP裁剪栅格的Python代码
要从shp文件提取栅格数据,可以使用Python中的GDAL库。GDAL是地理空间数据抽象库,提供了许多用于处理和转换地理空间数据的函数和工具。
首先,需要安装GDAL库。可以使用pip命令在Python环境中安装GDAL:
```
pip install gdal
```
然后,可以使用下面的代码提取shp文件中的栅格数据:
```python
import gdal
# 打开shp文件
shp_path = 'path_to_shp_file.shp'
shp_dataset = gdal.OpenEx(shp_path, gdal.OF_VECTOR)
# 获取第一个图层
layer = shp_dataset.GetLayer(0)
# 创建栅格数据集
raster_path = 'path_to_output_raster.tif'
raster_driver = gdal.GetDriverByName('GTiff')
raster_dataset = raster_driver.Create(raster_path, width, height, 1, gdal.GDT_Float32)
# 设置投影信息
raster_dataset.SetProjection(layer.GetSpatialRef().ExportToWkt())
raster_dataset.SetGeoTransform(layer.GetExtent())
# 设置栅格的像素值
band = raster_dataset.GetRasterBand(1)
band.Fill(0) # 可以自定义栅格背景颜色
band.SetNoDataValue(-9999) # 设置无效值
# 根据shp文件的几何信息,在栅格上进行栅格化处理
gdal.RasterizeLayer(raster_dataset, [1], layer, options=['ALL_TOUCHED=TRUE'])
# 关闭数据集
shp_dataset = None
raster_dataset = None
```
以上代码中,需要将`path_to_shp_file.shp`替换为实际的shp文件路径,将`path_to_output_raster.tif`替换为输出栅格文件的路径。`width`和`height`可以根据需要进行设置,代表栅格数据集的宽度和高度。
运行代码后,将会生成一个包含栅格数据的TIFF文件。这个文件可以使用其他GIS软件进行打开和处理。
阅读全文