现有一个包含站点经纬度坐标的csv文件还有一个全国建成区的栅格现要求使用python提取每个站点对应位置的栅格的值
可以使用geopandas库来读取包含站点经纬度坐标的csv文件,并使用rasterio库来读取栅格数据并提取每个站点对应位置的栅格值。
首先,确保已安装geopandas和rasterio库。可以使用以下命令安装:
pip install geopandas
pip install rasterio
然后,可以使用以下代码来提取每个站点对应位置的栅格值:
import geopandas as gpd
import rasterio
# 读取站点经纬度坐标的csv文件
stations = gpd.read_file('stations.csv')
# 读取栅格数据
raster = rasterio.open('raster.tif')
# 创建一个空的列表用于存储每个站点对应位置的栅格值
values = []
# 遍历每个站点
for idx, station in stations.iterrows():
# 获取站点的经纬度坐标
lon = station['longitude']
lat = station['latitude']
# 将经纬度坐标转换为栅格的行列索引
row, col = raster.index(lon, lat)
# 读取栅格值
value = raster.read(1, window=((row, row+1), (col, col+1)))
# 将栅格值添加到列表中
values.append(value[0][0])
# 将栅格值添加到站点数据中
stations['raster_value'] = values
# 打印站点数据
print(stations)
请根据实际情况修改代码中的文件路径和字段名称。这段代码将提取每个站点对应位置的栅格值,并将其添加到站点数据中
原文地址: https://www.cveoy.top/t/topic/iYwf 著作权归作者所有。请勿转载和采集!