Planet Labs 开放卫星数据源
Planet Labs' open satellite feed

原始链接: https://tech.marksblogg.com/planet-labs-open-satellite-feed.html

本指南以尼泊尔近期山洪灾害数据为例,介绍了如何获取并分析用于灾害响应的卫星影像元数据。 事件数据集分为灾前和灾后影像,每类数据均包含一个 `items.parquet` 文件。这些文件记录了详尽的元数据信息。用户可以通过提供的直接链接,使用 `wget` 等命令行工具直接下载这些 Parquet 文件,从而绕过浏览器可能存在的网页访问限制。 下载完成后,可以使用 DuckDB 等工具对数据进行高效查询。元数据包含每项资产的详细信息,包括: * **技术规格:** 空间分辨率(GSD)、投影详情及波段统计。 * **数据可用性:** 可视化影像链接、全色锐化文件,以及用于质量控制的可用数据掩膜(UDM2)。 * **时效性分析:** 记录显示,影像在拍摄后最快 1.4 小时即可发布。 通过利用这些元数据文件,研究人员可以执行复杂的筛选操作,例如按卫星星座分析影像分辨率、评估云覆盖率或绘制覆盖范围图,从而简化灾害相关卫星影像的筛选与处理流程。

Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Planet Labs 的开放卫星数据源 (marksblogg.com) 21 点,由 marklit 发布于 47 分钟前 | 隐藏 | 过往 | 收藏 | 1 条评论 | 帮助 Avicebron 20 分钟前 [–] 感觉非常清爽,不像 AI 生成的。如果有人问我“软件工程是什么样子”,我会指着这个说。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请加入 YC | 联系 搜索:
相关文章

原文

There are two high-level categories of assets in any event: pre- and post-event imagery. I'll use the post-event imagery for Nepal for this walk-through.

In the folder listings for either pre- or post-event imagery, there will be an items.parquet file. Clicking the filename will bring up a webpage describing its contents, but next to the filename is a link that you can access from the command line and/or DuckDB, without Cloudflare blocking your client.

The following will download the 83 KB Parquet-formatted, post-event metadata file for the flash-flood disaster in Nepal last month.

$ wget -O nepal.post.parquet \
       https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/items.parquet

There are 24 records in this file.

SELECT COUNT(*)
FROM   'nepal.post.parquet';

This is an example record.

$ echo "FROM  'nepal.post.parquet'
        LIMIT 1" \
    | ~/duckdb -json \
    | jq -S .
[
  {
    "assets": {
      "analytic": null,
      "pansharpened": {
        "eo:bands": null,
        "href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_pansharpened.tif",
        "pl:asset_type": "ortho_pansharpened",
        "pl:bundle_type": "pansharpened_udm2",
        "proj:bbox": [
          335132.5,
          3125818.0,
          346500.5,
          3137230.5
        ],
        "proj:epsg": 32645,
        "proj:shape": [
          22825,
          22736
        ],
        "proj:transform": [
          0.5,
          0.0,
          335132.5,
          0.0,
          -0.5,
          3137230.5,
          0.0,
          0.0,
          1.0
        ],
        "raster:bands": [
          {
            "data_type": "uint16",
            "nodata": 0.0,
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 58588.0,
              "minimum": 11968.0
            }
          },
          {
            "data_type": "uint16",
            "nodata": 0.0,
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 33961.0,
              "minimum": 10257.0
            }
          },
          {
            "data_type": "uint16",
            "nodata": 0.0,
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 34764.0,
              "minimum": 7934.0
            }
          },
          {
            "data_type": "uint16",
            "nodata": 0.0,
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 29368.0,
              "minimum": 6403.0
            }
          },
          {
            "data_type": "uint16",
            "nodata": 0.0,
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 42197.0,
              "minimum": 7554.0
            }
          },
          {
            "data_type": "uint16",
            "nodata": 0.0,
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 39092.0,
              "minimum": 7926.0
            }
          }
        ],
        "roles": [
          "data"
        ],
        "title": "Pansharpened multiband ortho COG",
        "type": "image/tiff; application=geotiff; profile=cloud-optimized"
      },
      "thumbnail": {
        "href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_thumbnail.png",
        "roles": [
          "thumbnail"
        ],
        "title": "Thumbnail",
        "type": "image/png"
      },
      "udm": null,
      "udm2": {
        "eo:bands": null,
        "href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_udm2.tif",
        "pl:asset_type": "ortho_pansharpened_udm2",
        "pl:bundle_type": "pansharpened_udm2",
        "proj:bbox": [
          335132.5,
          3125818.0,
          346500.5,
          3137230.5
        ],
        "proj:epsg": 32645,
        "proj:shape": [
          22825,
          22736
        ],
        "proj:transform": [
          0.5,
          0.0,
          335132.5,
          0.0,
          -0.5,
          3137230.5,
          0.0,
          0.0,
          1.0
        ],
        "raster:bands": [
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 1.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 0.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 1.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 1.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 0.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 1.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 100.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 2.0,
              "minimum": 0.0
            }
          }
        ],
        "roles": [
          "data",
          "snow-ice",
          "cloud",
          "cloud-shadow"
        ],
        "title": "Usable Data Mask (UDM2) — per-pixel quality",
        "type": "image/tiff; application=geotiff; profile=cloud-optimized"
      },
      "visual": {
        "eo:bands": null,
        "href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009_visual.tif",
        "pl:asset_type": "ortho_visual",
        "pl:bundle_type": "visual",
        "proj:bbox": [
          335132.5,
          3125818.0,
          346500.5,
          3137230.5
        ],
        "proj:epsg": 32645,
        "proj:shape": [
          22825,
          22736
        ],
        "proj:transform": [
          0.5,
          0.0,
          335132.5,
          0.0,
          -0.5,
          3137230.5,
          0.0,
          0.0,
          1.0
        ],
        "raster:bands": [
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 255.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 255.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 255.0,
              "minimum": 0.0
            }
          },
          {
            "data_type": "uint8",
            "spatial_resolution": 0.5,
            "statistics": {
              "maximum": 255.0,
              "minimum": 0.0
            }
          }
        ],
        "roles": [
          "data",
          "visual"
        ],
        "title": "Visual (true-colour RGB) ortho COG",
        "type": "image/tiff; application=geotiff; profile=cloud-optimized"
      }
    },
    "bbox": {
      "xmax": 85.43406669026984,
      "xmin": 85.31918550951734,
      "ymax": 28.35121763114424,
      "ymin": 28.24911357422872
    },
    "collection": "post-event-pelican-2026-08-27",
    "constellation": "pelican",
    "created": "2026-08-27 10:33:45+03",
    "datetime": "2026-08-27 09:09:56.99105+03",
    "eo:cloud_cover": 85,
    "geometry": "POLYGON ((85.33889798257499 28.35121763114424, 85.31918550951734 28.2661375282364, 85.41382376956273 28.24911357422872, 85.43406669026984 28.334115698528574, 85.33889798257499 28.35121763114424))",
    "gsd": 0.55,
    "id": "20260827_060956_98_3009",
    "instruments": null,
    "links": [
      {
        "href": "../../../../catalog.json",
        "rel": "root",
        "title": "Planet Crisis Response — Bhote Koshi–Trishuli Outburst Flood, Nepal (2026)",
        "type": "application/json"
      },
      {
        "href": "../../collection.json",
        "rel": "parent",
        "title": null,
        "type": "application/json"
      },
      {
        "href": "../../collection.json",
        "rel": "collection",
        "title": null,
        "type": "application/json"
      },
      {
        "href": "https://data.source.coop/planet/disasterdata/nepal-flash-flood-2026-08-26/post-event/pelican-2026-08-27/items/20260827_060956_98_3009/20260827_060956_98_3009.json",
        "rel": "self",
        "title": null,
        "type": "application/json"
      },
      {
        "href": "./20260827_060956_98_3009_thumbnail.png",
        "rel": "thumbnail",
        "title": null,
        "type": "image/png"
      }
    ],
    "pl:data_version": null,
    "pl:ground_control": true,
    "pl:ground_control_ratio": null,
    "pl:item_type": "PelicanScene",
    "pl:pixel_resolution": 0.5,
    "pl:publishing_stage": "finalized",
    "pl:quality_category": "standard",
    "pl:strip_id": "20260827_060956_98_3009_strip",
    "platform": "3009",
    "published": "2026-08-27 10:33:45+03",
    "stac_extensions": [
      "https://stac-extensions.github.io/eo/v1.0.0/schema.json",
      "https://stac-extensions.github.io/view/v1.0.0/schema.json",
      "https://stac-extensions.github.io/raster/v1.1.0/schema.json",
      "https://stac-extensions.github.io/projection/v1.1.0/schema.json"
    ],
    "stac_version": "1.0.0",
    "type": "Feature",
    "updated": "2026-08-27 10:33:45+03",
    "view:azimuth": 255.9,
    "view:off_nadir": 3.8,
    "view:sun_azimuth": 171.2,
    "view:sun_elevation": 71.6
  }
]

These are the numbers of unique values for each field in the properties structure. I've excluded structures and lists.

These are the highest and lowest resolutions of the imagery captured, broken down by constellation.

The images have been published as quickly as 1.4 hours after being captured.

These are the locations of the footprints in relation to the whole of Nepal and southern China.

The imagery has been captured at different times and, in some cases, overlaps with other imagery that has already been collected.

联系我们 contact @ memedata.com