Skip to content

Repository files navigation

AgRS-FE (Agricultural Remote Sensing Feature Extraction)

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 驱动整体流水线,具体流程如下:

  1. 数据输入准备:将多光谱影像 (.tif)、采样点坐标 (.xlsx)、点云 (.las) 和 DSM (.tif) 放入指定数据目录。
  2. 坐标自动化转换:系统自动读取影像坐标系,并将采样点的经纬度映射至对应的像素行列号或投影平面坐标。
  3. 多源特征并行提取:主程序依次调用五个模块,分别从光谱维度、空间结构维度和纹理维度提取特征。
  4. 分步结果输出:每个模块提取的结果将独立保存至 result/ 目录下,便于用户分阶段检查中间数据质量。

📊 提取特征概览(全部特征请查看 Feature_table.xlsx)

特征类别 包含的主要指标
光谱反射率 (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. 全局路径与参数配置 区域修改以下核心变量:

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文件

2. 关键参数设置

  • 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 提取影像的能量、对比度、相关性等纹理特征。

📊 注意事项

  1. 结果检查:所有生成的 Excel 文件将自动存放在 result/ 目录下。
  2. 波段匹配:在使用前请确保您的多光谱影像波段顺序与 main.py 中的 band_match 参数配置一致。
  3. 坐标一致性:请确保所有输入影像(MS, DSM, LAS)的坐标系(CRS)一致,或通过模块 A 脚本进行预转换。
  4. 数据融合:所有特征提取完成后,建议将这 5 张表格按照“样点 ID”进行横向合并,即可作为机器学习模型的训练数据集。

About

Feature extraction of agricultural remote sensing modeling

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages