专栏名称: 走天涯徐小洋地理数据科学
一个爱生活的地理土博,分享GIS、遥感、空间分析、R语言、景观生态等地理数据科学实操教程、经典文献、数据资源
目录
相关文章推荐
51好读  ›  专栏  ›  走天涯徐小洋地理数据科学

一个提供超过50PB地理空间数据的云平台

走天涯徐小洋地理数据科学  · 公众号  ·  · 2025-02-26 18:00

正文

点击下面卡片,快速关注本公众号


随着气候变化、生物多样性丧失和资源管理等全球性挑战日益严峻,技术创新成为应对这些问题的关键驱动力。微软的Planetary Computer(行星计算机) 是其AI for Earth计划的重要组成部分,旨在通过云计算、人工智能和地理空间数据,为科学研究和可持续发展提供强大支持。该平台整合了超过50PB的地理空间和环境数据,提供了直观的API接口和可扩展的计算环境,使研究人员、开发者能够以前所未有的规模监测、建模和管理地球生态系统。

本文将介绍 Planetary Computer 的技术架构、数据目录、API功能及其应用场景。

什么是Planetary Computer

Planetary Computer是一个基于微软Azure云计算基础设施的云原生平台,专为处理地理空间和环境数据的时空复杂性而设计。它通过整合PB级的数据目录、直观的AP 和强大的计算能力,将原始数据转化为可操作的洞察。例如,用户可以利用它分析卫星影像以追踪森林砍伐,或结合气候模型预测水资源可用性。平台于2020年发布,面向全球科研社区提供开放资源访问。

其核心组件包括:

  • 数据目录: 超过50PB 的分析就绪地理空间数据。
  • STAC API: 基于 REST 的时空查询接口。
  • 云计算环境: 支持分布式计算(JupyterHub于2024年6月停止服务,但数据和API仍可用)。
  • 应用生态: 与合作伙伴开发数据应用软件工具,应用于实际场景。

主要功能组成

Planetary Computer的架构充分利用了Azure的云计算基础设施,结合地理空间数据的特性,提供了高效、可扩展的数据分析云平台环境。

1. 数据目录与存储

数据目录是Planetary Computer的基础,存储在Azure Blob Storage中,总量超过50PB,涵盖卫星影像、气候模型和生物多样性记录等。数据采用云优化格式,确保高效访问:

  • COG(云优化 GeoTIFF): 分块存储的栅格格式,支持 HTTP 范围请求,适用于 Sentinel-2 和 Landsat 等影像数据。
  • Zarr: 分片多维数组,适合时间序列数据,如 ECMWF ERA5 气候再分析。
  • Parquet/GeoParquet: 列式存储格式,用于表格数据(如 GBIF 生物多样性记录)或矢量数据(如 Open Buildings)。

数据遵循STAC(时空资产目录)标准,以JSON格式组织元数据。每个STAC Item代表一个独立资产,例如:

{
  "id":"S2A_MSIL2A_20250101T123456",
"bbox":[-55,-15,-50,-10],
"properties":{"datetime":"2025-01-01T12:34:56Z","eo:cloud_cover":10},
"assets":{"B04":{"href":"https://.../B04.tif","type":"image/tiff"}}
}

Collection则聚合相关Item(如所有 Sentinel-2 L2A 数据),由Azure Cosmos DB索引支持快速查询。

数据汇聚流程包括:

  • 采集: 从数据提供者(如 USGS、ESA)获取原始数据。
  • 预处理: 通过Azure Data Factory进行投影、切片和格式转换等预处理。
  • 存储: 以云优化格式写入Blob Storage,资产URL附带SAS令牌(24小时有效)。

2. STAC API:数据访问接口

STAC API是Planetary Computer的动态查询接口,部署在Azure App Service上,使用FastAPI实现,地址为:
https://planetarycomputer.microsoft.com/api/stac/v1 。它将静态 STAC 目录转化为可编程服务,支持以下主要端点:

  • 根路径 (/): 返回目录概览和链接。
  • 集合 (/collections): 列出数据集,如sentinel-2-l2a、landsat-c2-l2。
  • 搜索 (/search): 支持时空和属性过滤,接受 GET 或 POST 请求。

搜索示例: 查询2025年亚马逊地区云覆盖低于20%的Sentinel-2数据:

from pystac_client import Client
client = Client.open("https://planetarycomputer.microsoft.com/api/stac/v1")
search = client.search(
    collections=["sentinel-2-l2a"],
    bbox=[-55, -15, -50, -10],
    datetime="2025-01-01/2025-02-23",
    query={"eo:cloud_cover": {"lt"20}}
)
items = list(search.items())

返回GeoJSON FeatureCollection,包含匹配的STAC Items。

3. 云计算分析环境

在2024年6月之前,Planetary Computer Hub提供基于JupyterHub的计算环境,运行在Azure Kubernetes Service (AKS) 上,使用Standard_D4s_v5虚拟机(4 vCPU,16 GB RAM),预装 pystac-client、dask和xarray等工具。JupyterHub停止服务后,用户需要自行配置计算资源,例如:

  • • Azure Machine Learning:支持 GPU 加速的模型训练。
  • • Dask 集群:通过 dask_cloudprovider 在 Azure VM Scale Sets 上部署:
from dask_cloudprovider.azure import AzureVMCluster
cluster = AzureVMCluster(vm_size="Standard_D4s_v5", n_workers=4)

性能优化:

  • 分块: COG 和 Zarr 数据预分片(如 256x256 像素),减少 I/O 开销。
  • 协同定位: 存储和计算在同一Azure区域(如East US),延迟低于10ms。
  • 并行处理: Dask 调度任务至多核或多节点。

4. 平台使用示例

以下示例展示如何使用Planetary Computer计算亚马逊地区的归一化植被指数(NDVI):

  • 查询数据
from pystac_client import Client
client = Client.open("https://planetarycomputer.microsoft.com/api/stac/v1")
search = client.search(
    collections=["sentinel-2-l2a"],
    bbox=[-55, -15, -50, -10],
    datetime="2025-01-01/2025-02-23",
    query={"eo:cloud_cover"






请到「今天看啥」查看全文