0
0

More than 1 year has passed since last update.

G空間情報センターでCKAN APIを使ってみる(入門編)

Posted at

はじめに

G空間情報センターには地理空間情報に関するオープンデータが色々と登録されています。通常はブラウザからデータを検索してダウンロードすることが多いのですが、Project PLATEAUの3D都市モデルや登記所備付地図データなど、全国各地のデータが大量に登録されているようなデータを手動で一つずつダウンロードするのは大変です。その場合スクリプト/プログラムを使って検索&ダウンロードする方法を使うことができます。ここではAPIの呼び出し方の基本を説明します。

API利用マニュアルについて 

G空間情報センターにはAPI利用マニュアルが用意されていますが、内容が少し古くなっています。現在(2023年3月)、「2. API キーおよび ID の確認」の部分は変更されているのでご注意ください。

APIの呼び出し方 

G空間情報センターのAPI呼び出しに使われるエンドポイントURLは
https://www.geospatial.jp/ckan/api/3/action/
です。このURLにコマンドとパラメータを付加してAPIを呼び出します。レスポンスはJSON形式で返されます。

レスポンスのJSONには help, success, resultというキーが含まれています。success には呼び出しの成功/失敗が true / false で格納されます。result の内容はコマンドによって様々な値が格納されます。

ブラウザでAPIを呼び出してみる

例えば、FirefoxブラウザでAPIを呼び出すと、レスポンスのJSONをデコードして表示することが出来ます。

  • JSONの表示機能についてはアドレスフィールドから about:configを開き、devtools.jsonview.enabled の設定で変更することができます。

G空間情報センターに格納されているデータセットには「タグ」が付加されています。まずはtag_listコマンドで、タグの一覧を取得してみます。次のURLをブラウザで開きます。

https://www.geospatial.jp/ckan/api/3/action/tag_list

FirefoxブラウザはレスポンスのJSONをデコードし下記のように表示します。「生データ」タブを選択するとデコードする前のJSONデータをそのまま表示することもできます。
image.png

他には、登録されている組織の一覧を取得するorganization_listコマンド、パッケージ(データセット)の一覧を取得するpackage_listコマンドなどがあるので試してみてください。

データセットを検索する

データセットの検索には package_searchコマンドを使います。

例えば、キーワードを'PLATEAU'として最大5件までデータセットを検索するには下記のようなURLを使います。
https://www.geospatial.jp/ckan/api/3/action/package_search?q=PLATEAU&rows=5

Firefoxでは下記の様にJSONが表示されます。result要素の下にあるcountはデータセットが全部で72あることを示しています。resultsには検索されたデータセットの情報(メタデータ)が配列で格納されています。メタデータには様々な情報が格納されていますが、ここでは割愛します。
image.png

コマンドラインでAPIを呼び出してみる

curlコマンドでAPIを呼び出し、jqコマンドでJSONを整形して表示してみます。先ほどブラウザで表示されたJSONのデータを取り出すことが出来ました。

% curl -s "https://www.geospatial.jp/ckan/api/3/action/tag_list"| jq .

{
  "help": "https://www.geospatial.jp/ckan/api/3/action/help_show?name=tag_list",
  "success": true,
  "result": [
    "ごみ",
    "クマ",
    "ダム",
    "バス",
    "OD",
    "くらし",
    "これで",
    "さくら",
    "たなか",
    "たばこ",
    "だいち",
    ...
    ]
}

終わりに

簡単なレスポンスを返すAPIコマンドをFirefoxブラウザで呼び出して、JSONを表示する方法を説明しました。またデータセットを検索するコマンドを、curlコマンドで呼び出し、jqコマンドでJSONをデコードしてみました。

入門編はここまで

0
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
0
0