返回首页

按水位选择卫星影像

“Uroven-Sputnik”平台通过水文站水位自动化选择 Landsat 和 Sentinel-2 卫星图像。从 Google Earth Engine 原型到基于 PostgreSQL、PostGIS、STAC 和 Microsoft Planetary Computer 的架构。该服务处理 2800 万个观测数据,用于河道和洪泛平原分析。

按河流水位选择空间图像用于分析的服务
Advertisement 728x90

# 水位卫星平台:河流水位与影像精准匹配

“水位-卫星”服务解决了根据特定河流水位选择卫星影像的难题。水文专家常遇到这种情况:影像可用,但当时水位与分析需求不符。该平台不仅按日期和云量过滤 Landsat 和 Sentinel-2 数据集,还结合俄罗斯国家水文登记联邦信息系统(AIS GMVO)的水文数据,提供河道、洪泛区和淹没区分析所需的精准影像。

Google Earth Engine 原型:早期瓶颈

初始原型在 Google Earth Engine 中为一个流域区构建,使用 AIS GMVO 数据。通过水位站几何过滤影像时暴露问题:界面迟钝、数据集处理缓慢、配额耗尽。改用 GEE API 预处理生成查找表(水位站、影像 ID、云量),减轻前端负担。

但此方案有缺陷:

Google AdInline article slot
  • 处理一个流域需 8–10 小时;20 多个流域则不现实。
  • 新数据添加时需重新计算。
  • 任何步骤出错都得从头来过。

极端条件下数据采集

AIS GMVO 水文数据访问面临中断风险。批量下载解析器在野外——船上用 AI 优化。截止前 17:55 成功下载,获得数百万观测记录数据库。如今数据本地存储,无需依赖外部源。

转向 STAC 和 Microsoft Planetary Computer

关键升级是采用 STAC 标准编目卫星影像,并用 Microsoft Planetary Computer (MPC) 访问 API。STAC 统一跨数据集元数据,支持按几何和时间跨提供商搜索。

架构简化为:

Google AdInline article slot
  • 水位站和观测数据库。
  • 按水位、时段、云量过滤。
  • 按元数据在 MPC 搜索影像。
  • 按需加载影像。

摒弃繁重数据集过滤,实现闪电般速度。

数据库架构

从 CSV/Excel 转向 PostgreSQL + PostGIS,处理 2800 万观测记录。核心实体关联“水文观测 → 日期 → 卫星影像”。查询毫秒级完成:先水文过滤,再影像搜索,最后加载。

数据库包含表:

Google AdInline article slot
  • 水位站(坐标、几何)。
  • 观测(水位、流量、日期)。
  • 影像元数据(ID、云量、数据集)。

日期和几何索引加速 JOIN 操作。

当前实现与技术栈

用户选择水位站、水位范围、时段和过滤条件——服务在地图上返回影像并支持导出。Leaflet.js 驱动地图,Chart.js 生成水文图表。

技术栈:

| 层级 | 技术 |

|-------|------|

| 后端 | Python, Flask, Gunicorn |

| 数据库 | PostgreSQL, PostGIS (2800 万记录) |

| 卫星数据 | Microsoft Planetary Computer |

| 前端 | Leaflet.js, Chart.js |

| 基础设施 | Docker, nginx, HTTPS |

服务上线:level-satellite.ru,开源仓库:github.com/ruorv/level-satellite-public。

核心收获

  • 影像选择直接绑定实际水位,避免不可比数据。
  • STAC/MPC 提供灵活访问,无 GEE 配额限制。
  • PostGIS 加速海量数据集空间查询。
  • 可扩展架构:新增水位站/数据无需全量重建。
  • 开源代码欢迎社区贡献。

— Editorial Team

Advertisement 728x90

继续阅读