帮我写一个python代码实现站点shp数据将文件夹内多个栅格的值提取,写入到csv
时间: 2023-03-31 22:03:23 浏览: 136
文件中。
可以的,这个问题可以回答。以下是代码示例:
```python
import os
import shapefile
import csv
# 设置站点shp文件路径
shp_path = "path/to/site.shp"
# 设置栅格文件夹路径
raster_folder = "path/to/raster/folder"
# 打开站点shp文件
sf = shapefile.Reader(shp_path)
# 获取站点shp文件中的所有站点
sites = sf.shapes()
# 创建CSV文件
with open("output.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
# 写入CSV文件表头
writer.writerow(["站点名称", "栅格值"])
# 遍历所有站点
for site in sites:
# 获取站点名称
site_name = site.record[]
# 设置栅格文件名
raster_name = site_name + ".tif"
# 设置栅格文件路径
raster_path = os.path.join(raster_folder, raster_name)
# 判断栅格文件是否存在
if os.path.exists(raster_path):
# 打开栅格文件
with rasterio.open(raster_path) as src:
# 获取栅格值
values = src.sample([site.points[]])
# 写入CSV文件
writer.writerow([site_name, values[][]])
else:
print("栅格文件不存在:", raster_name)
```
这个代码可以提取站点shp文件中的所有站点,然后遍历栅格文件夹中的所有栅格文件,提取每个站点在每个栅格文件中的值,并将站点名称和栅格值写入CSV文件中。
阅读全文