帮我写一个python代码实现基于站点shp数据,实现在另一个文件夹内多个tif栅格数据批量提取到点的值,记录写入到一个EXCEL表
时间: 2023-03-31 07:03:06 浏览: 175
好的,我可以回答这个问题。以下是一个基于站点shp数据,实现在另一个文件夹内多个tif栅格数据批量提取到点的值,并将记录写入到一个EXCEL表的Python代码示例:
```python
import os
import glob
import pandas as pd
import geopandas as gpd
import rasterio as rio
# 设置站点shp文件路径和栅格数据文件夹路径
shp_path = 'path/to/site.shp'
raster_folder = 'path/to/raster/folder'
# 读取站点shp文件
sites = gpd.read_file(shp_path)
# 获取所有tif栅格数据文件路径
raster_files = glob.glob(os.path.join(raster_folder, '*.tif'))
# 遍历所有栅格数据文件
for raster_file in raster_files:
# 读取栅格数据
with rio.open(raster_file) as src:
# 获取栅格数据的值
values = [x[] for x in src.sample(sites.geometry)]
# 将栅格数据的值添加到站点shp文件中
sites[raster_file] = values
# 将站点shp文件中的数据保存到Excel表中
sites.to_excel('path/to/output.xlsx', index=False)
```
这个代码会读取站点shp文件和栅格数据文件夹中的所有tif文件,然后将栅格数据的值提取到站点shp文件中,并将结果保存到Excel表中。
阅读全文