先端IT活用推進コンソーシアム 気象庁防災情報 XML 検索 API 仕様


変更履歴 2014-09-27 API が変更されました。新しい API 仕様 を参照してください。

気象庁防災情報 XML 検索 API

JSON 形式で応答を返す Web API です。以下の URL にパラメータを付加して GET してください。
指定したパラメータと値によってデータベース内の気象庁防災情報 XML を検索し、一致するものへのリンクが返されます。

http://api.aitc.jp:80/jmardb/search

使用可能なパラメータは以下のとおりです。パラメータの名前はすべて小文字です。
実際の各パラメータの値がどのようなものかは、トップページで検索した結果の一覧を見ると把握できると思います。
また、文字列の検索は部分一致でなく完全一致であることに注意してください。

status 気象庁防災情報 XML の status の値を指定します。
infotype 気象庁防災情報 XML の infotype の値を指定します。
title 気象庁防災情報 XML の title の値を指定します。これは Control 要素配下にある title で、情報の種類を表す名称です。
headtitle 気象庁防災情報 XML の title の値を指定します。これは Head 要素配下にある title で、情報の種類よりもやや詳しい名称です。
eventid 気象庁防災情報 XML の eventid の値を指定します。情報の種類によっては値がありません。
areaname 気象庁防災情報 XML の Area 要素配下にある Name の値を指定します。ほとんどは地名ですが、異なるものもあります。
これは Head 要素配下にある Area で、情報の種類に関わらず共通です。ただし、存在しない場合もあります。
areacode 気象庁防災情報 XML の Area 要素配下にある Code の値を指定します。どのような値があるかは気象庁防災情報XMLフォーマット技術資料で公開されている情報を参照してください。
これは Head 要素配下にある Area で、情報の種類に関わらず共通です。ただし、存在しない場合もあります。
areaname_mete 気象庁防災情報 XML の Area 要素配下にある Name の値を指定します。ほとんどは地名ですが、異なるものもあります。
これは Body 要素配下にある Area で、気象に関する情報の場合に含まれます。
areacode_mete 気象庁防災情報 XML の Area 要素配下にある Code の値を指定します。どのような値があるかは気象庁防災情報XMLフォーマット技術資料で公開されている情報を参照してください。
これは Body 要素配下にある Area で、気象に関する情報の場合に含まれます。
datetime 気象庁防災情報 XML の datetime の値を指定します。これは Control 要素配下にある DateTime で、情報の配信日時を表しています。
このパラメータは2つ1組で付加します。指定した日時に囲まれた範囲にある情報が結果として返されます。日時は YYYY-MM-DD HH:mm:ss の形式にしてください。
reportdatetime 気象庁防災情報 XML の reportdatetime の値を指定します。これは Head 要素配下にある ReportDateTime で、情報の公式な発表時刻です。
このパラメータは2つ1組で付加します。指定した2つの日時に囲まれた範囲にある情報が結果として返されます。日時は YYYY-MM-DD HH:mm:ss の形式にしてください。
targetdatetime 気象庁防災情報 XML の targetdatetime の値を指定します。これは Head 要素配下にある TargetDateTime で、情報の対象となる時刻です。
このパラメータは2つ1組で付加します。指定した2つの日時に囲まれた範囲にある情報が結果として返されます。日時は YYYY-MM-DD HH:mm:ss の形式にしてください。
validdatetime 気象庁防災情報 XML の validdatetime の値を指定します。これは Head 要素配下にある ValidateDateTime で、情報が失効となる時刻です。
このパラメータは2つ1組で付加します。指定した2つの日時に囲まれた範囲にある情報が結果として返されます。日時は YYYY-MM-DD HH:mm:ss の形式にしてください。
limit この検索 API が1度に返す件数を指定します。省略した場合は 20 件です。
offset この検索 API が返す検索結果の開始位置を指定します。省略した場合は 0 です。
order この検索 API が返す検索結果の順番を指定します。 new または old を指定します。
省略した場合は old で、古いものから順番に返します。

実行例は以下のとおりです。実際にはリクエストパラメータの値に URL エンコードを施しますが、以下はエンコードしていない状態で例示しています。
日時は範囲の開始と終了の2つを指定する必要があることに注意してください。
また limit と offset については、結果に含まれる paging のリンクを利用すれば計算をする必要がありません。

http://api.aitc.jp:80/jmardb/search?datetime=2013-01-01 00:00:00&datetime=2013-02-01 00:00:00&areaname=桜島
{
  "data": [
    {
      "datetime": "2013-01-02 03:41:01",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日03時35分(011835UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/67f1f2fa-c9a9-4747-9c65-5f4aca4fefa2",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-02 03:46:31",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日03時35分(011835UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/3dd6e44c-a7b2-4a9b-97be-4d2e4476b46c",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-02 08:29:14",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日08時25分(012325UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/ae35ffa0-3b4e-4418-8720-55625b21e87c",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-02 08:31:44",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日08時25分(012325UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/1d6d6f2b-1110-43b8-9cba-69f782ad71ae",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-02 08:52:01",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日08時47分(012347UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/90bfa228-64bd-4a5e-ab5b-22733afe5bfb",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-02 08:55:28",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日08時47分(012347UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/a4fe901b-b935-4791-a0c4-be4d559d59d5",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-02 15:47:06",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日15時43分(020643UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/bfdcd218-8100-4828-8002-144e0247d9a5",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-02 15:49:25",
      "headline": [
        "火  山:桜島\n日  時:2013年01月02日15時43分(020643UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/e334acdf-0ccb-4bce-b62d-e3c153097083",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-04 10:18:27",
      "headline": [
        "火  山:桜島\n日  時:2013年01月04日10時11分(040111UTC)\n現  象:噴火"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/d3eabd9b-1611-484d-b514-27da04ae26e8",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-04 16:00:24",
      "headline": [
        "<火口周辺警報(噴火警戒レベル3、入山規制)が継続>"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/0a10b476-931b-45d0-8969-96527158ff0e",
      "title": "火山の状況に関する解説情報"
    },
    {
      "datetime": "2013-01-05 03:25:00",
      "headline": [
        "火  山:桜島\n日  時:2013年01月05日03時20分(041820UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/5576aef2-a5e5-49ab-bb10-bc904ed9f3a4",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-05 03:33:46",
      "headline": [
        "火  山:桜島\n日  時:2013年01月05日03時20分(041820UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/a1997c8a-4991-4432-9cf1-2f9bd54017e0",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-05 07:00:20",
      "headline": [
        "火  山:桜島\n日  時:2013年01月05日06時54分(042154UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/945512ea-0818-4fd7-9dc8-42657adcdc9c",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-05 07:04:58",
      "headline": [
        "火  山:桜島\n日  時:2013年01月05日06時54分(042154UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/9070380e-c6b4-4b68-b511-12b2ae2c34cd",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-05 07:40:12",
      "headline": [
        "火  山:桜島\n日  時:2013年01月05日07時33分(042233UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/a066029e-b75e-416a-8ad8-ab10dd66cd82",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-05 07:43:40",
      "headline": [
        "火  山:桜島\n日  時:2013年01月05日07時33分(042233UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/5fd6d300-d577-4737-b537-56dd73a6112a",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-06 23:53:11",
      "headline": [
        "火  山:桜島\n日  時:2013年01月06日23時49分(061449UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/8e15e84f-1bb2-4e7a-8b13-715779bde867",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-06 23:59:11",
      "headline": [
        "火  山:桜島\n日  時:2013年01月06日23時49分(061449UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/dd6cbada-8600-448f-9925-360a8febdaab",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-07 01:06:51",
      "headline": [
        "火  山:桜島\n日  時:2013年01月07日01時02分(061602UTC) 第1報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/3fa658cc-e418-45a4-99af-ceaf64ce4e1a",
      "title": "噴火に関する火山観測報"
    },
    {
      "datetime": "2013-01-07 01:13:49",
      "headline": [
        "火  山:桜島\n日  時:2013年01月07日01時02分(061602UTC) 第2報\n現  象:爆発"
      ],
      "link": "http://api.aitc.jp:80/jmardb/reports/761ef459-a93d-4b46-8cd6-c2d13ec4a85c",
      "title": "噴火に関する火山観測報"
    }
  ],
  "paging": {
    "next": "http://api.aitc.jp:80/jmardb/search?datetime=2013-01-01+00%3A00%3A00&datetime=2013-02-01+00%3A00%3A00&areaname=%E6%A1%9C%E5%B3%B6&limit=20&offset=20",
    "previous": null,
    "totalCount": 229
  }
}

実行結果に含まれるリンクで、気象庁防災情報 XML の元データを参照できます。
URL の末尾に ".json" を付け加えることで JSON 形式のデータも参照できますが、これは当サイトで適当に生成したもので、公式フォーマットではありません。

さらにパラメータ path を追加することで元データの一部を参照できます。以下の例を試してみてください。

http://api.aitc.jp:80/jmardb/reports/761ef459-a93d-4b46-8cd6-c2d13ec4a85c.json?path=/report/head

JSON は元データである XML とは異なり、単語の先頭は小文字で統一されています。
親オブジェクトの名前を順に指定する、いわゆる「パス」のような記述を受け取ります。 JSONPath のような特別な構文は持っていません。


位置情報検索 API

JSON 形式で応答を返す Web API です。以下の URL にパラメータを付加して GET してください。
指定した座標に近い、気象庁防災情報 XML の Area 情報が返されます。
※ この機能の作成にあたり 日本の郡・市区町村(2013年9月) を利用しました。公開に感謝いたします。

http://api.aitc.jp:80/jmardb/area

使用可能なパラメータは以下のとおりです。パラメータの名前はすべて小文字です。

longitude 経度の値を指定します。
latitude 緯度の値を指定します。
limit 何件の結果が必要か指定します。デフォルトは 3 件です。

実行例は以下のとおりです。 code には 7 桁のものと 6 桁のものがあります。どのコードが使われるかは気象庁防災情報 XML の種類によって異なります。

http://api.aitc.jp:80/jmardb/area?longitude=139.7512247&latitude=35.6199114
{
  "data": [
    {
      "jisx0402": "13109",
      "longitude": 139.731781,
      "latitude": 35.6082611,
      "code": "1310900",
      "name": "東京都品川区",
      "forecast": [
        {
          "code": "130011",
          "name": "23区西部"
        },
        {
          "code": "130010",
          "name": "東京地方"
        },
        {
          "code": "130000",
          "name": "東京都"
        }
      ]
    },
    {
      "jisx0402": "13103",
      "longitude": 139.751556,
      "latitude": 35.6585007,
      "code": "1310300",
      "name": "東京都港区",
      "forecast": [
        {
          "code": "130011",
          "name": "23区西部"
        },
        {
          "code": "130010",
          "name": "東京地方"
        },
        {
          "code": "130000",
          "name": "東京都"
        }
      ]
    },
    {
      "jisx0402": "13102",
      "longitude": 139.771988,
      "latitude": 35.6705704,
      "code": "1310200",
      "name": "東京都中央区",
      "forecast": [
        {
          "code": "130011",
          "name": "23区西部"
        },
        {
          "code": "130010",
          "name": "東京地方"
        },
        {
          "code": "130000",
          "name": "東京都"
        }
      ]
    }
  ]
}