agribound
montimaj/agribound加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是联合国的农业数据分析师,需要统计全球小麦产量。你的第一步是什么?不是算产量,而是——把全球的麦田边界画出来。
传统方式靠人工目视解译卫星影像:分析师盯着屏幕,一个地块一个地块地描,一个非洲萨赫勒地区可能就要花上几周时间。全球呢?全球有 18 亿公顷 耕地,分布在 7 个大洲、横跨几十种气候带,从北欧的连片麦田到东南亚的零散梯田,形态差异巨大。人工绘制既慢、成本高,又无法保证每年更新。
2026 年 3 月,美国科罗拉多州立大学遥感实验室的研究团队推出了一款开源工具 agribound,专门解决这个痛点:给定一个地理区域,它能从卫星影像中自动划定农业田块边界,输出可直接使用的矢量多边形文件。整个过程一键完成,不需要你有任何遥感专业背景。
agribound 的核心是一个六阶段处理流水线,通过一个统一的 delineate() 入口暴露给用户:

agribound 的六阶段流水线:从卫星影像输入到矢量边界输出的完整处理链
在新墨西哥州东部 Lea 县,研究团队用 2020 年 NAIP 1 米分辨率影像测试:先用 DINOv3(SAT-493M,卫星预训练 ViT)在 NMOSE 参考边界数据上微调,划定初步区域,再由 SAM2 精细化边界。结果与政府参考数据高度吻合。

蓝色为模型预测边界,黄色为 NMOSE 政府参考边界,几乎完全重合
无需任何标注数据:TESSERA 128 维嵌入向量做无监督聚类 → Dynamic World 土地覆盖过滤农作物区域 → SAM2 精化边界。2024 年 Sentinel-2 影像输入,处理整个阿根廷潘帕斯粮仓区。

全自动化无监督流水线:阿根廷潘帕斯粮仓区的田块边界识别
agribound 在六大洲 9 种卫星数据源上均进行了验证:
| 地区 | 卫星 | 引擎 | 特点 |
|---|---|---|---|
| 🇺🇸 美国新墨西哥 | NAIP 1m / Landsat | DINOv3 + SAM2 | 有监督高分辨率 |
| 🇮🇳 印度恒河平原 | Sentinel-2 10m | 多引擎对比 | 零散梯田 |
| 🇦🇺 澳大利亚墨累-达令 | HLS 30m | 全流程 | 大规模灌溉农业 |
| 🇫🇷 法国博斯地区 | Sentinel-2 | 多引擎集成 | 典型欧洲集约农业 |
| 🇦🇷 阿根廷潘帕斯 | TESSERA 嵌入 | 无监督 | 全球粮食核心区 |
| 🇨🇳 中国华北平原 | SPOT 6/7 6m | 有监督 | 超大规模连片田 |
| 🇰🇪 肯尼亚小农区 | Sentinel-2 + FTW | FTW | 碎片化小农地块 |
| 🇨🇳 中国东北 | SPOT + 时间序列 | 多时相集成 | 一年一熟大豆玉米 |
| 🇺🇸 美国加州中央谷 | 多源对比 | 集成对比 | 高价值经济作物 |





核心语言:Python ≥ 3.10
地理信息处理(强依赖):
rasterio + geopandas + shapely:栅格/矢量数据 IO 和几何运算pyproj + fiona:坐标投影和文件格式支持pyarrow:高效列式存储深度学习引擎(按需安装):
torchgeo:NASA 主导的遥感深度学习库ultralytics(YOLO):Delineate-Anything 目标检测segmentation-models-pytorch:通用语义/实例分割框架lightning:PyTorch 训练框架kornia:可微分图像处理卫星数据访问:
earthengine-api + geemap + geedim:Google Earth Engine 云端处理leafmap:交互式地图可视化dask[distributed]:大规模并行瓦片处理部署模式:
pip install agribound,准备好卫星影像即可运行(需要 GPU)pip install agribound[gee],所有计算在 Google Earth Engine 完成,适合没有强大本地算力的用户import agribound
# 指定区域、时间、卫星源,一键出结果
polygons = agribound.delineate(
lat=34.5, lon=-103.5, # 新墨西哥州某处
radius_km=10,
year=2024,
sensor='sentinel2',
engine='tessera', # 无监督嵌入方案
output='fields.geojson'
)
agribound delineate --lat 34.5 --lon -103.5 --radius 10 --year 2024 \
--sensor sentinel2 --engine tessera --output fields.gpkg
如果研究区有自己的标注边界数据,还可以微调模型:
polygons = agribound.delineate(
region=my_shapefile,
engine='dinov3',
fine_tune=True,
reference_boundaries=my_labels.geojson,
fine_tune_epochs=50
)
agribound 并非完美,团队在文档和论文中坦诚列出了当前局限:
agribound 的出现填补了一个关键空白:此前农业遥感边界提取工具普遍存在单一引擎绑定(只能用 SAM,只能用 YOLO)、无农业过滤(把道路和农田混在一起)、全球覆盖不足(依赖特定地区的标注数据)等问题。agribound 通过多引擎集成+LULC 智能过滤+全球覆盖的设计,为以下场景提供了标准化工具链:
目前已有 Zenodo DOI 存档、PyPI 分发、科学引用格式(CFF),符合学术开源最佳实践。项目目前处于 Alpha 阶段,但 roadmap 中包含 LLM 智能编排(自动选择最优引擎组合)等前沿特性。