自然语言能够降低 STAC 参数门槛,但不能替代可复现的时空查询。Development Seed 的 STAC Semantic Search 原型把一句影像需求拆解为时间、地点、集合和属性过滤,再回到 STAC API 查询真实目录。这个路径适合遥感检索的交互入口,却也要求团队验收每个中间参数,而不能只看模型给出的影像列表。

可核查事实

  • Development Seed 的 STAC Semantic Search 项目支持用自然语言查找卫星影像和地理空间数据;示例包括“查找 2023 年巴黎上空无云 Sentinel-2 影像”。
  • 项目称可处理时间、空间、集合专属要求,并自动处理云量、日期范围和空间范围。
  • 查询流程由 Temporal、Spatial、Collection 与 Filter agents 分工:Temporal 抽取时间范围,Spatial 识别地点并转为坐标,Collection 用向量相似度找相关集合,Filter 创建云量等 STAC API 条件。
  • 集合描述由 sentence transformers 嵌入并存储在 ChromaDB 中进行语义搜索。
  • LLM 会按原始问题对候选结果重新排序,最终参数用于查询实际 STAC catalog 的真实数据。
  • 默认目录是 Microsoft Planetary Computer,也可配置任何 STAC-compliant catalog。
  • 项目提供 POST /searchPOST /items/search;后者示例接收自然语言 querylimit
  • README 将项目标记为仍在积极开发的 early prototype,部署前提包括 Docker、STAC catalog 和 Geodini instance。

核心机制:语言层只负责提出参数,STAC 负责执行检索

正确的架构是把自然语言层与目录执行层分开。模型可将“夏季、少云、某城市附近”的表达转换成候选日期、地理范围、集合与云量条件;真正的资产筛选仍应由 STAC API 根据这些参数完成。这样每次结果都能显示 bbox、时间窗、集合、云量上限、排序依据和实际 API 请求。

向量检索适合解决“用户不知道集合名”的问题,但它不能保证集合适配具体任务。LLM 重排也只能辅助相关性排序,不能凭空增加覆盖、消除云层或修复几何错误。系统应让用户在执行前查看并修改结构化参数,特别是 AOI、时间范围、集合、云量和结果上限。

GIS 场景

遥感样本发现。 分析师用自然语言起草检索,再把候选影像固化为 STAC 请求和清单,供变化检测、标注或模型训练复现。

业务自助查询。 非技术用户描述“去年雨季某流域的低云影像”,界面展示系统解析的范围和日期,允许业务人员确认后才运行。

多目录迁移。 同一查询语义可面向不同兼容目录,但团队应分别验收集合定义、元数据字段、云量口径和许可;兼容 STAC 不代表数据含义相同。

技术路径:六项最小验收

  1. 保存原始问题与解析出的时间、bbox、集合、属性过滤和 limit。
  2. 在运行前提供参数预览和人工修改;地点歧义或范围过大时要求确认。
  3. 将最终 STAC API 请求、响应项 ID、资产链接和数据版本保存到结果记录。
  4. 用已知 AOI、日期和集合的基准问题测试解析准确率;将语义集合推荐与最终 API 命中分开评估。
  5. 对云量、坐标系、反日期线、无结果和多个同名地名建立边界测试。
  6. 以 early prototype 的标准发布:只读访问、限额、超时、错误提示和人工复核,不让自然语言直接触发高成本下载或生产处理。

检查清单

  • 每个答案是否可还原为完整 STAC 参数和原始目录响应?
  • AOI、日期、集合、云量阈值和 limit 是否可见并可编辑?
  • 向量集合推荐与实际目录检索是否分别记录和评估?
  • 目录更换后是否重新核对元数据口径、覆盖和许可?
  • 地点歧义、无结果与高成本查询是否有明确的确认或限额?
  • 是否保留结果项 ID、资产链接和数据版本以支持复现?

风险边界

该项目自己标注为 early prototype。自然语言解析、向量推荐和 LLM 重排都可能把模糊需求变成错误参数;STAC 兼容性也不保证不同目录的集合与字段口径一致。系统应将其作为受控检索入口,保留结构化参数、目录响应和人工确认,而非作为自动选景或分析结论。

结论

自然语言 STAC 搜索最可靠的价值,是把问题翻译成可检查的目录参数。只要每次检索都能回到时间、空间、集合、过滤条件和真实 STAC 响应,团队就能获得更易用的入口而不牺牲遥感工作的可复现性。

资料来源