1. Create a Collection — 最初のコレクションを作る

collection.json の最小構成を理解し、オブジェクトストレージに置ける状態を整えます。

collection.json とは

コレクションは Portolan で公開するデータの単位です。collection.json がその目次(カタログ)として振る舞います。Portolan は既存標準(STAC 互換のメタデータ)を使うため、既存の STAC エコシステムとそのまま連携できます。

最小構成

collection.json は 1 ファイルあればコレクションとして成立します。実際のデータ(GeoParquet・PMTiles など)はリンクで参照します。

my-collection/
├── collection.json   # 機械可読(ソフトウェア向け)
├── README.md         # 人間可読(データの意味・注意)
├── AGENTS.md         # AI 可読(クエリパターン等)
└── data/
    ├── places.parquet       # GeoParquet データ本体
    └── places.pmtiles       # (任意)タイル

collection.json の例

{
  "stac_version": "1.0.0",
  "type": "Collection",
  "id": "my-collection",
  "description": "サンプルコレクション",
  "license": "CC0-1.0",
  "extent": {
    "spatial": { "bbox": [[139.0, 35.0, 140.0, 36.0]] },
    "temporal": { "interval": [["2026-01-01T00:00:00Z", null]] }
  },
  "links": [
    {
      "rel": "items",
      "type": "application/x-parquet",
      "href": "data/places.parquet"
    },
    {
      "rel": "derived_from",
      "type": "text/markdown",
      "href": "README.md"
    },
    {
      "rel": "via",
      "type": "text/markdown",
      "href": "AGENTS.md"
    }
  ]
}

主要フィールド

フィールド 内容
stac_version STAC 仕様バージョン(例: 1.0.0)
type Collection 固定
id コレクションの一意な ID
description コレクションの説明(Markdown 可)
license SPDX 式のライセンス ID(例: CC0-1.0, CC-BY-4.0)
extent.spatial.bbox 空間範囲(経度・緯度の最小/最大)
extent.temporal.interval 時間範囲(ISO 8601)
links データ本体や関連ドキュメントへのリンク

データ本体(GeoParquet)を置く

Portolan では、データ本体は Parquet ベースの GeoParquet が推奨されます。カラムにジオメトリ(geometry 列)を持ち、通常の Parquet ツールで読みながら空間フィルタも可能です。

# GeoParquet として書き出す例(Python)
import geopandas as gpd

gdf = gpd.read_file("input.geojson")
gdf.to_parquet("data/places.parquet", schema_version="1.0.0")

# 1 ファイルで済むため、オブジェクトストレージや GitHub にそのまま配置可能

オブジェクトストレージへの配置

Portolan は「サーバー運用不要」が基本です。以下のような静的な置き場に collection.json ごとアップロードします。

  • Amazon S3 / Google Cloud Storage / Azure Blob(静的ホスティング)
  • GitHub リポジトリ(GitHub Pages / raw)
  • Cloudflare R2 など S3 互換ストレージ

配置後は、collection.json の URL をレジストリに登録すると、横断検索が可能になります。

検証

公開前に collection.json が正しいか軽く確認しましょう。STAC 互換なので、stac コマンドや簡単なスクリプトで検証できます。

# collection.json が読み込めるか
stac info ./collection.json

次のステップ

次のステップ: AGENTS.md を書く