2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

てゆーか、STAC APIって何?

Posted at

STACについて知っている方が多いかと思いますが、今回はSTAC APIについて解説したいと思います。

STACは衛星画像の管理に広く使われている規格であり、STAC Catalog、STAC CollectionとSTAC Itemによって様々な時間や場所で撮影された衛星写真を管理する規格です。

この記事を書いている人はアイドルのライブで写真を撮ることが趣味ですが、ライブで撮影された写真に例えると、STAC企画に沿って写真を管理する大体このような感じで衛星写真を管理する感じになります。

以下それぞれが一つのJSONファイルになっていて、データを取得する際にはCatalogやCollectionのlinks部分から一つ一つの画像ファイルをまとめたアイテムを探します。

ポイントになるのは、STAC規格に沿ってJSONファイルを整備しただけでも検索機能がなくて、原則としてはlinks部分で手動で一つ一つのJSONファイルのURLや中身を確認してデータを探す必要があることです。

Catalog

{
    "stac_version": "1.0.0",
    "type": "Catalog",
    "id": "2025_tour_yokohama",
    "description": "2025年ツアー横浜公演",
    "links": [
      {
          "rel": "child",
          "href": "2025_tour_yokohama/2025_tour_yokohama_photo_1.json"
      }
    ]
}

Collection

{
    "stac_version": "1.0.0",
    "type": "Collection",
    "group": "=JOY",
    "id": "2025_tour_yokohama",
    "description": "2025年ツアー横浜公演",
    "links": [
	    {
          "rel": "child",
          "href": "2025_tour_yokohama/2025_tour_yokohama_photo_1.json"
      }
    ],
    "extent": {},
    "summaries": {}
}

STAC Item

{
    "stac_version": "1.0.0",
    "type": "Feature",
    "id": "2025_tour_yokohama_photo_1",
    "bbox": [],
    "geometry": {},
    "properties": {
	    "member": "山田衣織",
		  "group":"=JOY"
	   },
    "collection": "2025_tour_yokohama",
    "links": [],
    "assets": {
	    "thumbnail":{
		    "url":"dsc_1000.jpg"
	    },
	    "raw": {
		    "url": "dsc_1000.arw"
	    }
    }
}

STAC APIについて

データが少ない場合は簡単に管理ができますが、100万件を超えるデータがある場合、検索機能がなくては利用することが難しいということで整備されたのがSTAC APIという規格です。

GitHub - radiantearth/stac-api-spec: SpatioTemporal Asset Catalog API specification - an API to make geospatial assets openly searchable and crawlable

STAC APIはREST APIを使って衛星データを管理や検索するためのオープンソースの規格であり、静的ファイルを使って衛星データを管理するSTAC規格と違って、データベース(Opensearch、PostGIS)を元にデータを検索するための規格を提供しています。

STAC APIを使うメリットとしては、STAC APIはオープンソースの規格であるため、このAPIに沿ったエンドポイントを利用することでブラウザ上でGUIを使って衛星データを検索するためのSTAC BrowserやPythonで衛星データを取り扱う際に便利にデータを検索できるpystacなどのツールが利用できるようになります。

また、STAC APIを構築するためのツールとして、複数のインフラテンプレートが用意されていて、データベースの設計を行う必要がないことがSTAC APIを使う一つ大きなメリットです。

STAC APiを採用する場合、最低限として用意する必要があるのがCoreエンドポイントですが、Coreに定められている部分以外にもExtensionsを利用することで、簡単にニーズに合わせることができます。

規格に合わせてSTAC Browserなどのリソースを使って衛星データを管理するためにはCoreエンドポイント部分で定められているエンドポイントの整備が必須です。

Coreエンドポイント

stac-api-spec/core at release/v1.0.0 · radiantearth/stac-api-spec

Core部分では以下のエンドポイントが含まれています。(以下転記)

rel href 形式 説明
root / application/json ルートとしてんURI(必須)
self / application/json セルフレファレンス、ルートURIと同様(必須)
service-desc /api 複数 機械が読み込める形でのサービスの説明(必須)
service-docs /api.html html APIのドキュメント
child 複数 application/json データベース内に含まれているコレクション、またはカタログ
item 複数 application/json データベース内に含まれているアイテム

その他Extensions部分で定められているものは、任意に含めることができます。

stac-api-spec/extensions.md at release/v1.0.0 · radiantearth/stac-api-spec

STAC規格は便利ですが、大量のSTACデータを管理する際にはAPIが整備されているほうが利用者も整備する側も楽なので、ぜひ使ってみてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?