卫星农情分析技术白皮书
版本 1.0
卫星农情分析技术白皮书
1. 数据源选型
| 数据源 | 分辨率 | 免费 | 获取方式 | 是否适合自动化 |
|---|---|---|---|---|
| 高分一号 WFV / 六号 | 16m | 免费开放 | 单位注册+人工审批+网页下载,无公开 API | 否 |
| 高分二号 | 1m | 不免费 | 商业渠道 | 否 |
| Sentinel-2(本服务) | 10m | 免费开放 | STAC API 编程拉取 | 是 |
Sentinel-2 由 ESA 运营,全球覆盖(含中国全境地块),5 天重访,10m 分辨率满足大田农情分析需求。
2. 数据源切换
- 默认:Microsoft Planetary Computer,
https://planetarycomputer.microsoft.com/api/stac/v1,无需注册。 - 备选:ESA Copernicus Data Space,需免费注册 Client ID/Secret,国内访问更稳定;通过
SAT_STAC_URL切换。 - 国内慢时设
HTTPS_PROXY环境变量。
3. 接口
POST /analyze
{
"center_lng": 116.4074, "center_lat": 39.9042,
"radius_m": 1000, "start_date": "2026-07-01", "end_date": "2026-08-19",
"max_cloud": 20, "index": "ndvi"
}
返回:指数类型、中心/半径、最优景元数据、统计(均值/最值/标准差/有效像素)、面积(㎡/亩)、分级占比、热力图 URL。
POST /scenes(趋势扫描缺口)
列出候选影像元数据(只搜 STAC,不读波段),主系统用"候选景 − 已入库景 = 缺口"。
POST /analyze_scene(趋势增量补数据)
按景 id 直接计算目标区域指数均值,可重复调用任意次,历史影像算过一次永远有效。
4. 算法(V1)
- 输入:中心点 + 半径,圆形区域裁剪(COG 远程 range 读取,无需下载整景)。
- NDVI = (NIR−R)/(NIR+R);NDWI = (G−NIR)/(G+NIR)。
- 影像按整景云量筛选(默认 ≤20%),逐像素云掩膜(SCL 波段)列为 V2 增强项。
- 输出:统计 JSON + 伪彩热力图 PNG。
5. 部署(systemd 参考)
[Unit]
Description=Satellite Analyzer Service
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/smartfarmer/satellite-analyzer
ExecStart=/home/ubuntu/smartfarmer/satellite-analyzer/.venv/bin/uvicorn app:app --host 0.0.0.0 --port 8002
Restart=always
[Install]
WantedBy=multi-user.target
6. 后续增强
- 支持地块边界 GeoJSON(不规则地块)。
- SCL 逐像素云/阴影掩膜,提升多云季节精度。
- 时间序列趋势、Java 侧集成(已完成)。