使用Python提取站点对应位置的栅格值

本文将介绍如何使用Python的'geopandas'和'rasterio'库,从包含站点经纬度坐标的csv文件和全国建成区的栅格中提取每个站点对应位置的栅格值。

步骤:

  1. 安装库:

    首先,确保已安装'geopandas'和'rasterio'库。可以使用以下命令安装:

    pip install geopandas
    pip install rasterio
    
  2. 读取数据:

    使用'geopandas'库读取包含站点经纬度坐标的csv文件,使用'rasterio'库读取栅格数据。

  3. 提取值:

    遍历每个站点,获取其经纬度坐标,并将坐标转换为栅格的行列索引。使用'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)

注意:

  • 请根据实际情况修改代码中的文件路径和字段名称。
  • 这段代码将提取每个站点对应位置的栅格值,并将其添加到站点数据中。
使用Python提取站点对应位置的栅格值

原文地址: https://www.cveoy.top/t/topic/qExm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录