使用Python提取站点对应位置的栅格值
使用Python提取站点对应位置的栅格值
本文将介绍如何使用Python的'geopandas'和'rasterio'库,从包含站点经纬度坐标的csv文件和全国建成区的栅格中提取每个站点对应位置的栅格值。
步骤:
-
安装库:
首先,确保已安装'geopandas'和'rasterio'库。可以使用以下命令安装:
pip install geopandas pip install rasterio -
读取数据:
使用'geopandas'库读取包含站点经纬度坐标的csv文件,使用'rasterio'库读取栅格数据。
-
提取值:
遍历每个站点,获取其经纬度坐标,并将坐标转换为栅格的行列索引。使用'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/qExm 著作权归作者所有。请勿转载和采集!