
2026/09/10 0:44
Planet Lab のオープン衛星データ配信
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
NATO 事務総長のマーク・ルッテ氏やフランスのフランシスコイロ大統領エマニュエル・マクロン氏など業界のリーダーによって認識されている、97 機の衛星を現在軌道上に保有し、15 年間にわたりサンフランシスコを拠点とする衛星運用会社 Planet Labs は、Cloudflare 上にホストされた「Disaster Data」フィードを通じて緊急対応を強化しています。该系统は災害発生直後に自然災害や人為的危機のニアリアルタイム・ハイスレゾリューション画像(0.5m から 3.0m)を提供し、ハリケーンメリッサやコロンビア、フィリピン、ベネズエラでの今後の地震といったイベントにおいて、事後画像を 1.4 時間以内に公開します。データは Parquet および JSON フォーマットで提供され、DuckDB および QGIS と互換性があります。本サービスでは、コロンビア地震などの特定の事前ベースマップを提供するとともに、Pelican、SkySat、Planetscope を含む衛星群を用いた災害直後のキャプチャも実施しています。Planet Labs が 2025 年後半から 2026 年中盤にかけて Pelican 5 から Pelican 11 の打ち上げによりコンステレーションを拡大するにつれて、ギリシャなどのホットスポットにおけるカバー範囲が拡大し、世界中での資源配分の迅速化や人道作戦の安全向上が支えられます。
本文
Planet Labs と災害データ:DuckDB で解析・処理するワークフロー
Planet Labs と Tanager 星座
Planet Labs は、サンフランシスコに本拠地を置く人工衛星製造・星座運用企業です。同社は以下の実績を持っています。
- 歴史: 設立から 15 年目を迎える老舗企業。
- 活動内容: 4 つ異なる人工衛星星座を運用し、毎日地球全陸域の画像を撮影しています。
- 組織規模: LinkedIn プロフィール上の関連メンバー数が約 1,751 名。
- 主要人物: CEO で共創業者のウィル・マーシャル氏(Will Marshall)が、欧州委員会のカヤ・カラス氏らと共に活動しています。
最新鋭衛星「Pelican-11」
- 打上げ日時: 7 月 7 日
- ミッション: SpaceX の Transporter 17 ミッション
- 軌道: 低地球軌道(LLEO)への投入が行われました。
衛星カタログ詳細情報
執筆時点での Planet Labs エフェメリデスサービスにおける在軌衛星数は 97 機。以下は GCAT から得られた最新の詳細情報です。
コマンド例:衛星リスト取得とフィルタリング
# データのダウンロード $ wget https://ephemerides.planet-labs.com/planet_mc.tle # NORAD ID を抽出して CSV 化 $ grep '^2.*' planet_mc.tle \ | cut -d' ' -f2 \ > NORAD_IDs.csv
DuckDB によるクエリと結果サマリー
以下は DuckDB を使用し、主要な衛星種別(SkySat, Flock, Pelican など)の軌道上情報を抽出した例です。
SELECT State, Name, * EXCLUDE(AltNames, Bus, Dest, Attach_flag, Subtype_flag, Orbit_flag, ID_flag, Status_or_failure_flag, Coarse_type, SDate, SDate_Year, "Primary", DDate, Manufacturer, Motor, JCAT, ODate, Type, OQUAL, PLName, Shape, Name, State, DryMass, TotMass) FROM 'satcat.parquet' WHERE Satcat IN (SELECT column0::VARCHAR FROM 'NORAD_IDs.csv') AND Status = 'In orbit' ORDER BY Launch_Tag, Name;
主要な衛星種別と特徴:
- SkySat: 初期の主力星座(例:SkySat A, C 系列)。質量は約 110kg。
- Flock シリーズ: 高密度に展開される小型衛星群(Flock 4q, 4be, 4g, 4h など)。
- 単個の質量は約 5.7kg と軽量。
- 2023 年から 2026 年にかけて順次打上げられており、常時多数が軌道上にあります。
- Pelican シリーズ: 大型衛星(質量約 160kg)。
- Pelican 1, 2, 5, 8, 9 などの各機体が在軌しています。
- Hyperspectral(ハイパースペクトル)撮影能力を持つのが特徴です。
- Tanager: 中規模衛星(質量約 150kg)。例:Tanager 1。
災害データ(Disaster Data)の活用と解析
Planet Labs は、自然災害や人為的災害から直後に撮影された画像を格納した「Disaster Data」フィードを提供しています。
- ホスティング: Cloudflare 上で公開。
- 形式: Parquet および JSON ファイル形式でのメタデータ配信。
- ツール連携: DuckDB, QGIS などとの相性が良好です。
ワークステーション環境
画像解析には高パフォーマンスなワークステーションを使用します。
- CPU: AMD Ryzen 9 9950X(16 コア / 32 スレッド、5.7 GHz)
- キャッシュ:L1 1.2MB, L2 16MB, L3 64MB
- 冷却:液体冷却システム搭載(Cooler Master HAF 700)
- メモリ: DDR5 96 GB(クロック 4,800 MT/s)
- ストレージ: Crucial T700 4 TB NVMe SSD(読み取り最大 12,400 MB/s、ヒートシンク装着)
- GPU: Nvidia GTX 1080
- OS: Windows 11 Pro 上で Ubuntu 24 LTS を動作(ArcGIS Pro のネイティブ対応のため)
- 電源: Corsair 完全モジュール式 PSU(1,200 W)
前提条件のインストール
画像処理には GDAL 3.9.3、データ変換には
jq を使用します。
$ sudo apt update $ sudo apt install \ gdal-bin \ jq
DuckDB の拡張機能設定
解析には以下の拡張機能を組み込みます(起動時に自動読み込み推奨)。
INSTALL h3 FROM community; INSTALL lindel FROM community; INSTALL json; INSTALL parquet; INSTALL spatial;
設定例:自動ロードスクリプト
.timer on .width 180 LOAD h3; LOAD lindel; LOAD json; LOAD parquet; LOAD spatial;
具体的な災害データ処理ワークフロー
1. 災害一覧リストの取得
プログラマティック手法でイベントの一覧を取得します。
# キャタログダウンロード $ touch catalog.json $ rm catalog.json $ wget https://data.source.coop/planet/disasterdata/catalog.json # URL スラッグを抽出・ソート $ jq -r '.links[]|.href' catalog.json \ | grep '.*[0-9]/catalog.json' \ | cut -d/ -f2 \ | sort
取得されたイベント例:
- colombia-earthquake-2026-08-10
- gironde-wildfire-2026
- hurricane-melissa-2025
- nepal-flash-flood-2026-08-26
2. ベースマップの取得と統合(コロンビア地震例)
発生前(Pre-event)の画像は、数週間前の衛星画像をモザイク化したものであり、雲の量を極力抑えています。
- 対象: コロンビア、ベネズエラなど。
- 形式: タイル形式(93 つの GeoTIFF + JSON メタデータ)。
タイルダウンロードと統合:
# パス作成と Parquet データの取得 $ mkdir -p colombia_basemap $ cd colombia_basemap $ wget https://data.source.coop/planet/disasterdata/Colombia-earthquake-2026-08-10/pre-event/basemap-2026q2/items.parquet # GeoTIFF URL を抽出・ダウンロード(並列 8 スレッド) $ echo "WITH a AS ( SELECT DISTINCT UNNEST([assets.visual.href]) AS url FROM READ_PARQUET('items.parquet') ) FROM a WHERE url IS NOT NULL" \ | ~/duckdb -csv -noheader \ | xargs \ -I% \ -P8 \ wget -c "%"
VRT 統合と WEBP コマンド化:
- サイズ削減: 外観を変えずにファイルサイズを 80% 以上削減可能。
- 結果: GeoTIFF ファイルは約 327 MB に圧縮。
$ gdalbuildvrt mosaic.vrt *visual.tif $ gdal_translate \ -co NUM_THREADS=ALL_CPUS \ -of COG \ -co COMPRESS=WEBP \ mosaic.vrt \ mosaic.tif
3. メタデータの解析と変換
JSON 形式のメタデータを単一の Parquet ファイルに変換し、フットプリント情報を整理します。
# JSON メタデータダウンロード $ echo "SELECT href FROM ( SELECT UNNEST(links, recursive := true) FROM READ_PARQUET('items.parquet') ) WHERE href LIKE 'https%'" \ | ~/duckdb -csv -noheader \ | xargs \ -I% \ -P8 \ wget -P metadata/ -c "%" # JSON を単一ファイルに統合 $ touch footprints.json; rm footprints.json $ for FILENAME in metadata/*.json; do jq -c . $FILENAME >> footprints.json done # Parquet に変換(ジオメトリ追従) COPY( SELECT * EXCLUDE(geometry), geometry: ST_GEOMFROMGEOJSON(geometry) FROM 'footprints.json' ) TO 'footprints.parquet' ( FORMAT 'PARQUET', CODEC 'ZSTD', COMPRESSION_LEVEL 22, ROW_GROUP_SIZE 15000);
4. メタデータのユニーク値分析
properties 構造内のフィールドごとのユニーク値を調査します。
| 項目 | タイプ | ユニーク数 | 概要 |
|---|---|---|---|
| constellation | VARCHAR | 1 | |
| datetime | TIMESTAMP | 1 | 撮影日時(統一) |
| gsd | DOUBLE | 1 | 4.78 m/px |
| pl:mosaic_id | UUID | 1 | モザイク固有 ID |
| quad_id | VARCHAR | 86 | ハメルコード(約 86 種類) |
5. ネパール洪水(Post-event)データ解析例
ネパールにおける突発的洪水(2026 年 8 月 26 日)の事後データを分析しました。
- データ量: Parquet ファイルは約 83 KB、レコード数 24 件。
- 公開までの時間: 撮影から最短 1.4 時間以内での公開を実現。
キーストーンなメトリクス
- 星座別の撮影頻度: Pelican, Planetscope, SkySat が連携して撮影を実施。
- 解像度: Pelican と SkySat は高解像度(0.5 m/px)、Planetscope は低解像度(3.0 m/px)。
- クラウドカバレッジ: 47% 〜 93% の範囲で変動。
クエリ例:星座別の画像数ピボット
PIVOT ( SELECT constellation, taken_on: datetime::DATE, cnt: COUNT(*) FROM 'nepal.post.parquet' GROUP BY 1, 2 ) ON constellation USING SUM(cnt) GROUP BY taken_on;
| 日付 | Pelican | Planetscope | SkySat |
|---|---|---|---|
| 2026-08-26 | - | 9 | - |
| 2026-08-27 | 3 | - | 2 |
| 2026-08-28 | - | 5 | - |
クエリ例:解像度範囲の確認
SELECT constellation, MIN("pl:pixel_resolution") AS min_, MAX("pl:pixel_resolution") AS max_ FROM 'nepal.post.parquet' GROUP BY 1;
- Pelican / SkySat: 0.5 m/px (一様)
- Planetscope: 3.0 m/px (一様)
6. データダウンロード(SkySat GeoTIFF)
事後画像をタイル形式でダウンロードします。
$ mkdir -p nepal_skysat $ cd nepal_skysat $ echo "SELECT href FROM ( SELECT UNNEST(assets.visual, recursive := true) FROM '../nepal.post.parquet' WHERE constellation = 'skysat' )" \ | ~/duckdb -csv -noheader \ | xargs \ -I% \ -P4 \ wget -c "%"
- 総容量: 約 1.9 GB。
7. 利用可能なデータマスク(UDM)
画像には、利用可能なデータマスク(UDM: Usable Data Mask)バージョンが同梱されています。
$ echo "SELECT href FROM ( SELECT UNNEST(assets.udm, recursive := true) FROM '../nepal.post.parquet' WHERE constellation = 'skysat' )" \ | ~/duckdb -csv -noheader \ | xargs \ -I% \ -P4 \ wget -c "%"
- 容量: 約 49 MB(画像本体の約 1/30)。
- 意味:
- 黒色: 地表が明確に見える。
- 白色: 雲で遮蔽されている。
- 灰色: 画像が存在しない領域。
高度なマスク機能: PlanetScope および Tanager 星座の画像には、UDM2 が付随しており、以下の要素を識別可能です。
- 雲
- 影(Shadow)
- 霞(Haze)
- 雪(Snow)
結論と次のステップ
本ワークフローにより、Planet Labs の災害データを DuckDB を中心に効率的に解析・処理できます。特に、1.4 時間以内の公開とUDM2 による多様な遮蔽領域の識別は、迅速なリスク評価において重要です。
著者は北米およびヨーロッパ地域のコンサルティングおよび実装開発サービスを提供しており、LinkedIn でお問い合わせください。