main
生菜温室轨道多光谱分析 Demo
1. 项目简介
这是一个用于温室轨道多光谱农业表型分析的示例工程,当前对象是生菜。
工程包含 4 个采集日期的多光谱图像、RGB 图像、分析脚本、诊断图和本地网页报告。
当前采集日期:
2025-04-102025-04-162025-04-192025-04-21
每个日期包含:
- 多光谱波段图像:
550 / 660 / 720 / 840 nm - 对应 RGB 图像
- 已生成的分析结果与诊断图
2. 目录结构
0410/、0416/、0419/、0421/按采集日期整理的原始图像数据scripts/generate_greenhouse_report.py多光谱表型提取与网页报告生成脚本greenhouse_report/已生成的 HTML 报告、CSV 指标表、时序摘要和诊断图
3. 当前主要输出
当前流程会输出以下结果:
- 多光谱 EXIF 汇总表
- 表型指标总表
- 各位置时序变化摘要
- 每个位置的植被指数时序图
- 诊断图
- 本地交互式网页报告
报告入口:
greenhouse_report/index.htmlgreenhouse_report/summary.html
主要数据表:
greenhouse_report/phenotype_metrics_all_dates.csvgreenhouse_report/phenotype_core_traits.csvgreenhouse_report/ms_exif_summary_all_dates.csvgreenhouse_report/position_time_series_summary.csv
4. 处理方法说明
脚本会读取多光谱 TIFF 图像中的 EXIF 信息,提取曝光时间和 ISO 增益,并进行曝光增益归一化,之后再计算植被指数和表型指标。
当前使用的相对辐射归一化公式:
I_norm = DN / (ExposureTime_s * (ISO / 100))
说明:
- 这是相对辐射校正,不是绝对反射率
- 适合做不同时间点、不同位置之间的相对比较
- 如果后续加入白板、暗场等标定数据,可以进一步扩展为绝对反射率流程
当前已输出的核心植被指数包括:
NDVIGNDVINDREOSAVISAVISRMSRCIgreenCIrededgeDVIRDVIGRVINPCIMCARIMTCIMSAVINLI
当前已提取的核心表型指标包括:
- 多光谱植被覆盖率
ms_cover_ratio - RGB 覆盖率
rgb_cover_ratio - 主连通域面积
ms_largest_area_px - 主轴长度
ms_major_axis_px - 次轴长度
ms_minor_axis_px - 紧实度
ms_solidity
5. 运行环境
推荐使用以下 Python 环境:
- Conda 环境:
clear_conda_main
建议运行方式:
C:\Users\clear\.conda\envs\clear_conda_main\python.exe .\scripts\generate_greenhouse_report.py
6. 本次对话已完成的工作总结
本次已经完成的关键工作如下:
- 审阅了 4 个日期的数据结构,确认每个日期包含 8 个位置点以及
550/660/720/840/RGB五类图像。 - 验证了多光谱 TIFF 中 EXIF 字段可读取,确认
ExposureTime与ISOSpeedRatings可用于曝光增益归一化。 - 编写并完善了统一分析脚本
scripts/generate_greenhouse_report.py。 - 将 4 个日期、共 32 个样本纳入统一处理流程。
- 修正了 RGB 与多光谱文件在位置命名上的小数偏差问题,采用“按最近位置容差匹配”来保证样本完整配对。
- 生成了主报告
greenhouse_report/index.html和摘要页greenhouse_report/summary.html。 - 增加了每个位置的时序增减幅度汇总,以及“最值得关注的位置”排序。
- 按用户要求,把表型总表对应的核心指标改成“横轴为时间、纵轴为数值、8 个位置各自多条彩色线”的时序图。
- 初始化了 git 仓库,创建并推送到了 Gitea。
- 远程仓库名调整为包含
demo和multispectral的形式,并把README改成中文。 - 项目目录已从桌面复制到新的工作路径:
D:\ClearCore\开发工作\ClearPro2026\2025_Lettuce
7. 当前仓库与版本控制信息
当前工程路径:
D:\ClearCore\开发工作\ClearPro2026\2025_Lettuce
远程仓库地址:
http://107.173.157.41:3000/clear/lettuce_multispectral_demo
说明:
- 本地仓库已初始化
- 当前分支为
main - 已成功推送到远程 Gitea
- 后续如果对图表、算法、报告版式等进行了较满意的修改,可以继续提交并推送
8. 给后续 AI / 开发者的接手说明
后续如果由其他 AI 工具或开发者继续处理,建议先理解以下几点,避免重复走弯路:
8.1 数据配对规则
- 多光谱文件名里的位置通常是整数形式,如
400.0 / 1600.0 / 6400.0 - RGB 文件名里有时会出现轻微偏差,如
400.02 / 1600.1 / 6400.62 / 7600.64 - 因此不能简单做“文件名位置完全相等匹配”,而应使用“最近位置容差匹配”
- 当前脚本已经处理了这个问题,不要轻易改回严格相等匹配
8.2 采集时序风险
- 每个日期中
0 mm位置通常比其他位置晚约 125 分钟采集 - 因此
0 mm点与其他位置做横向比较时,要额外考虑温室光照时变带来的影响 - 这不是脚本错误,而是数据采集顺序本身带来的风险
8.3 图表设计要求
用户已经明确表达过以下偏好:
- 表型总表是最重要的内容,应放在报告最前面
- 时序图应使用:
- 横轴:时间
- 纵轴:指标值
- 同一张图中:多个位置用多条不同颜色线表示
- 不要把多个量纲差异很大的指标硬塞到同一张 faceting 图里,否则视觉上容易“像只有一根线”
8.4 报告重点
当前报告中优先关注的内容是:
- 表型总表时序曲线
- 各位置时序增减幅度
- 最值得关注的位置排序
- 每个点的植被指数时序图
8.5 后续适合继续优化的方向
后续值得继续推进的方向包括:
- 增加白板/暗场标定,升级为绝对反射率流程
- 优化植株分割策略,提高不同日期间的稳定性
- 增加更多农业表型指标,如圆度、形状复杂度、纹理统计等
- 对关注位置做异常检测或自动预警
- 将报告样式进一步整理成更适合汇报的版本
9. 推荐的后续协作方式
如果后续继续让 AI 工具协助,推荐直接说明以下信息:
- 当前工程路径:
D:\ClearCore\开发工作\ClearPro2026\2025_Lettuce - 主脚本:
scripts/generate_greenhouse_report.py - 主报告:
greenhouse_report/index.html - 摘要页:
greenhouse_report/summary.html - Python 环境:
clear_conda_main - 当前远程仓库:
clear/lettuce_multispectral_demo
推荐直接给 AI 的任务描述方式:
- “请基于现有脚本继续修改,不要重做整个流程”
- “保留当前位置匹配逻辑,不要改回严格文件名匹配”
- “表型总表时序曲线放在最上面,横轴是时间,多个位置用多条颜色线”
- “修改完成后更新 README,并按需提交 git”
10. 版本管理说明
这个仓库用于持续记录:
- 原始数据
- 分析脚本
- 报告输出
- 后续逐步优化的版本
如果后续有新的分析改进、图表调整、流程优化或报告版式升级,建议继续基于当前仓库提交和追踪版本。
Description
Greenhouse multispectral lettuce analysis data, scripts, and reports
461 MiB
0 Stars
1 Watchers
0 Forks
Languages
Python
100%