AgRS-FE 是一个专门为农业遥感研究设计的特征提取工具库。它能够从多源遥感数据(多光谱影像、DSM、激光点云)中自动提取光谱、植被指数、纹理信息及三维结构特征,并将这些特征融合为可以直接用于机器学习建模的训练数据集。
本项目由五个核心模块组成,涵盖了农业遥感特征提取的全流程:
- 基础光谱提取 (
a_Extract_Bandvalue.py):支持点(窗口平均)和多边形矢量范围的光谱均值提取,并能够自动处理 WGS84 经纬度到影像投影坐标系的转换。 - 植被指数计算 (
b_Calculate_Indices.py):基于 VMID 库,根据自定义波段名称自动计算常用的植被指数(如 NDVI, RVI, EVI 等),并自动关联实测目标变量以生成训练样本。 - 点云结构特征 (
c_Extract_PC_Feature.py):处理.las格式点云数据,提取指定半径范围内的点云密度、最大高度、高度百分位数、偏度与峰度等空间结构统计量。 - DSM 高度特征 (
d_Extract_DSM_Feature.py):从数字表面模型(DSM)中提取地物高度统计信息,包括均值、中值、变异系数(CV)及各高度分位数。 - GLCM 纹理特征 (
e_Calculate_GLCM.py):计算多光谱影像的灰度共生矩阵(GLCM)特征,包括同质性、对比度、熵、相关性等,用于定量描述作物的生长空间分布。
项目通过 main.py 驱动整体流水线,具体流程如下:
- 数据输入准备:将多光谱影像 (.tif)、采样点坐标 (.xlsx)、点云 (.las) 和 DSM (.tif) 放入指定数据目录。
- 坐标自动化转换:系统自动读取影像坐标系,并将采样点的经纬度映射至对应的像素行列号或投影平面坐标。
- 多源特征并行提取:主程序依次调用五个模块,分别从光谱维度、空间结构维度和纹理维度提取特征。
- 分步结果输出:每个模块提取的结果将独立保存至
result/目录下,便于用户分阶段检查中间数据质量。
| 特征类别 | 包含的主要指标 |
|---|---|
| 光谱反射率 (Spectral) | 各单波段原始反射率均值 |
| 植被指数 (Indices) | NDVI, RVI, EVI, NDRE 等117个指数(已整合至VMID.py) |
| 高度特征 (DSM) | CHM_max, CHM_mean, CHM_CV, CHM_percentile_75 等9个特征 |
| 点云统计 (PC) | point_density, kurtosis, skewness, iqr_height等9个特征 |
| 纹理特征 (Texture) | homogeneity, contrast, entropy, correlation 等9个特征 |
项目开发基于 Python 环境,核心依赖库包括:
- 地理空间处理:
rasterio,geopandas,pyproj - 点云处理:
laspy - 数据分析:
pandas,numpy,scipy - 图像分析:
scikit-image
打开 main.py 文件,在 1. 全局路径与参数配置 区域修改以下核心变量:
- MS_tif_path: 多光谱遥感影像路径(.tif)。
- field_data_path: 采样点坐标文件(.xlsx),需包含经纬度或投影坐标。
- las_path: 高精度点云数据(.las)。
- dsm_path: 数字表面模型文件(.tif)。
MS_tif_path = "exp_data/0317_MS.tif" # 多光谱遥感文件
field_data_path = "exp_data/0317_coordinate.xlsx" # 采样点坐标文件
las_path = "exp_data/0317_PC.las" # 点云文件(.las)
dsm_path = "exp_data/0317_DSM.tif" # DSM文件- band_match: 这是一个字符串列表,必须严格对应 TIF 影像中的实际波段顺序。
- target_value: 您的研究目标变量名称(如 "N", "SPAD" 或 "Biomass"),需与 Excel 表头一致。
- window_size / radius: 决定了特征提取的覆盖范围。
程序将按顺序执行以下五个模块,每个模块生成一个独立的特征文件:
| 步骤 | 模块功能 | 输出文件 | 提取内容描述 |
|---|---|---|---|
| Step 1 | 光谱基础提取 | a_spectral.xlsx |
提取样点中心窗口内的各波段原始反射率均值。 |
| Step 2 | 植被指数计算 | b_indices.xlsx |
自动计算 NDVI、RVI 等常用遥感生理指标。 |
| Step 3 | 点云结构统计 | c_point_cloud.xlsx |
基于 LAS 数据提取高度分位数、点云密度及离散度。 |
| Step 4 | DSM 高度提取 | d_DSM.xlsx |
提取样点周围的微地形高度特征(如百分位高度)。 |
| Step 5 | GLCM 纹理分析 | e_GLCM.xlsx |
提取影像的能量、对比度、相关性等纹理特征。 |
- 结果检查:所有生成的 Excel 文件将自动存放在
result/目录下。 - 波段匹配:在使用前请确保您的多光谱影像波段顺序与 main.py 中的 band_match 参数配置一致。
- 坐标一致性:请确保所有输入影像(MS, DSM, LAS)的坐标系(CRS)一致,或通过模块 A 脚本进行预转换。
- 数据融合:所有特征提取完成后,建议将这 5 张表格按照“样点 ID”进行横向合并,即可作为机器学习模型的训练数据集。