本项目面向遥感影像课程设计场景,基于 LangGraph 多智能体框架构建 Sentinel-2 四波段影像指数分析系统。系统通过 Planner、Executor、Critic、Finalizer 四个智能体节点协同完成任务规划、工具调用、结果审查和报告生成。
- 读取 Sentinel-2 四波段 GeoTIFF 影像基本信息。
- 计算 NDVI 植被指数,并输出 GeoTIFF 与 PNG 可视化结果。
- 计算 NDWI 水体指数,并输出 GeoTIFF 与 PNG 可视化结果。
- 汇总影像信息、指数统计和输出路径。
- 生成《遥感影像指数分析报告》。
- 提供 Streamlit 前端,支持上传 1 个四波段 stack tif/tiff,或按 B02、B03、B04、B08 顺序上传 4 个单波段 tif/tiff,也可使用默认示例影像。
系统保留四节点多智能体结构:
- Planner:根据用户需求规划遥感指数分析任务。
- Executor:调用 raster_info_tool、ndvi_tool、ndwi_tool、summary_tool。
- Critic:检查影像信息、NDVI、NDWI、统计结果和报告依据是否完整。
- Finalizer:生成最终遥感解译报告。
.
├── agents.py
├── app.py
├── graph.py
├── raster_tools.py
├── tools.py
├── state.py
├── pyproject.toml
├── requirements.txt
├── uploads/
├── outputs/
│ ├── ndvi/
│ ├── ndwi/
│ └── reports/
├── data/
│ └── demo/
├── screenshots/
└── docs/
使用 uv:
uv sync
uv run streamlit run app.py不使用 uv:
pip install -r requirements.txt
streamlit run app.py请分析这幅 Sentinel-2 裁剪影像的植被和水体分布,计算 NDVI 和 NDWI,并生成一份遥感解译报告。
- NDVI GeoTIFF:
outputs/ndvi/ndvi.tif - NDVI 可视化图:
outputs/ndvi/ndvi.png - NDWI GeoTIFF:
outputs/ndwi/ndwi.tif - NDWI 可视化图:
outputs/ndwi/ndwi.png - 报告文本:
outputs/reports/remote_sensing_report.md
- 默认示例影像路径为
data/demo/sentinel2_demo_stack.tif。 - Sentinel-2 四波段 stack 默认顺序为 Band 1 = B02 蓝光,Band 2 = B03 绿光,Band 3 = B04 红光,Band 4 = B08 近红外。
- 若上传 4 个单波段 tif,请在前端按 B02、B03、B04、B08 的顺序选择文件,系统会自动合成为四波段 stack 后再计算指数。
- NDVI 可视化采用离散分级渲染:[-1,-0.6]、[-0.6,-0.2]、[-0.2,0.2]、[0.2,0.6]、[0.6,1]。
- NDVI 高值区域阈值采用 NDVI > 0.3。
- NDWI 水体候选区域阈值采用 NDWI > 0。
- 指数阈值为经验阈值,正式分析应结合人工目视解译、地面样本或其他辅助数据复核。