python根据点经纬度来提取遥感影像中对应的像元值(单张&多张影像)

问题:现在我有一些点坐标数据和一幅带有地理信息的遥感影像,如何提取这些点对应的遥感影像的光谱信息呢?

废话不多说,直接上码:

先导入一些包

import rasterio
import numpy as np
import os
import pandas as pd
from pyproj import Transformer

先定义函数

# 提取单张影像的像素值的函数
def extract_pixel_values_single_image(image_path, points_df):
    with rasterio.open(image_path) as src:
        transform = src.transform
        band1 = src.read(1)
        vals = []
        for _, row in points_df.iterrows():
            col, row = ~transform * (row['Longitude_degree'], row['Latitude_degree'])
            col, row = int(col), int(row)
            vals.append(band1[row, col])
    return vals

单张影像提取

如果是单张影像,直接利用这个函数即可,函数中band1 = src.read(1)是读取的第一个波段,参数image_path是遥感影像的路径,points_df是对应的点数据,这里Longitude_degree是经度所在列名,Latitude_degree是纬度所在列名

如࿱

为了制作植被与降雨分布的地图,可以采取以下几种方式: 使用地理信息系统 (GIS) 软件 选择一款适合的 GIS 软件,例如 ArcGIS, QGIS 等。这些软件提供了强大的空间数据分析功能以及制图能力。导入包含植被覆盖数据和降水数据的空间数据库文件(如 shapefile)。确保两个数据集拥有相同的坐标参考系统以保证正确叠加。 收集数据源 从可靠的气象机构或者环境监测部门获取最新的降水量统计数据;对于植被信息,则可以从卫星遥感影像服务提供商处获得分类后的土地覆被产品。也可以考虑访问公开的数据平台下载免费资源,比如美国地质勘探局提供的全球生态系统数据。 处理与分析 在 GIS 平台内部执行必要的预处理工作,包括但不限于重投影、裁剪边界范围内的兴趣区域等操作。接着应用合适的统计方法计算各网格单元上的平均值或其他特征指标来表征局部气候条件下的植物生长状况。 可视化呈现 设计美观易懂的颜色方案区分不同等级区间,并添加适当的注释文字解释关键要素含义。最终输出高质量图像格式保存成果用于报告展示或进一步分享交流。 编程绘制热力图 如果偏好编码实现的话,Python 是一个不错的选择。结合 Pandas 和 Matplotlib 库读取整理好的 CSV 文件中的经纬度坐标及对应属性字段之后,借助 Seaborn 或 Basemap 工具包轻松构建出直观反映两者关系变化趋势的专业级图形界面。 ```python import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 假设有一个CSV文件 'data.csv' 包含列 ['latitude', 'longitude', 'precipitation', 'vegetation'] df = pd.read_csv('data.csv') plt.figure(figsize=(10, 8)) sns.scatterplot(x='longitude', y='latitude', hue='precipitation', size='vegetation', sizes=(20, 200), data=df) plt.title('Vegetation and Precipitation Distribution Map') plt.show() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值