地震震度実績データのユースケース

弊社がサービス提供しておりますKCCS APIデータ配信サービスでは、震度データなど災害データを取り扱っています。
災害データは、実績データをRESTで取得する機能「災害実績データ配信API」と、Google Cloud Pub/Subを利用したPUSH配信機能「災害データPUSH配信機能」があります。

以下の記事で、災害データPUSH配信機能の使い方についてご紹介致しました。
今回は災害実績データ配信APIをご紹介したいと思います。

https://qiita.com/kccs_api1/items/e9c84759760e7f60843c

https://qiita.com/kccs_api1/items/5b7473bde1e8771291da

まず、災害実績データ配信APIと災害データPUSH配信機能の違いについて、震度データに焦点を当てて、ご説明したいと思います。

|機能|災害実績データ配信API|災害データPUSH配信機能|
| ---- | ---- | ---- |
|提供方式|REST形式でのAPI提供|Google Cloud Pub/Subでの提供|
|取得範囲|指定地点|日本全国|
|特徴|・限られた範囲(Geohash)のデータを取得できる<br>・日時指定でデータを取得できる|・日本全国のデータを安価に取得できる<br>・地震発生を契機に自動的にシステムを動作させることに向いている<br>・必要な地点の情報抽出は自分で突合する必要がある|
|利用イメージ|発電所設備や建造物の保守業務|地震発生を契機にしたシステム／サービスで活用|


弊社では、本データを利用し、太陽光発電所の監視業務を行っております。

https://www.kccs.co.jp/news/release/2022/0207/

それでは、災害実績データ配信API(地震震度実績データ)を取得してみたいと思います。
例として、弊社の鹿児島事業所の過去の震度データ(2022/1/22)を取得します。

その前にどのようなデータが取得できるのかご説明します。
鹿児島事業所の周囲の震度観測所を地図上にマッピングすると、近い順１～３は以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1194651/462032c1-f624-eb82-7e1d-d54f5cc56a32.png)

|NO.|震度観測所名|震度観測所緯度|震度観測所経度|
| ---- | ---- | ---- | ---- |
|1|鹿児島市東郡元|31.555000 |130.548333|   
|2|鹿児島市祇園之洲町|31.605556|130.573889|  
|3|鹿児島市桜島藤野|31.619722|130.634167| 

ここで、図の青い格子はgeohashを示します。また、災害実績データ配信APIの地震震度実績データ配信機能は、指定した緯度経度地点を含むGeoHashとその周囲のGeoHashに紐づく観測地点で観測した震度データを返すため、「鹿児島市東郡元」と「鹿児島市祇園之洲町」の観測データが返るはずです。

以下のURLでリクエストし、データを取得します。
場所の緯度経度と、発生日時検索範囲を指定します。

```
https://rest.kccs-api.jp/api/v2/disaster/seismic-intensities/?latitude=31.5799443&longitude=130.5479776&from=20220122000000&to=20220122235959
```
Header情報に「X-KCCS-API-USER」および「X-KCCS-API-TOKEN」を指定します。

結果は下記となります。
```JSON
{
    "area": {
        "latitude": 31.5799443,
        "longitude": 130.5479776,
        "geohash": "wvsgd"
    },
    "max_int": "3",
    "max_int_code": "30",
    "seismic_info": [
        {
            "event_id": "20220122010844",
            "date_time": "2022-01-22T01:40:40+09:00",
            "geohash": "wvsgd",
            "geohash_direction": "C",
            "origin_time": "2022-01-22T01:08:00+09:00",
            "arrival_time": "2022-01-22T01:08:00+09:00",
            "pref": {
                "name": "鹿児島県",
                "code": "46"
            },
            "area": {
                "name": "鹿児島県薩摩",
                "code": "770"
            },
            "city": {
                "name": "鹿児島市",
                "code": "4620100"
            },
            "intensity_station": {
                "name": "鹿児島市東郡元",
                "code": "4620100",
                "int": "3",
                "int_code": "30"
            }
        },
        {
            "event_id": "20220122010844",
            "date_time": "2022-01-22T01:40:40+09:00",
            "geohash": "wvsgg",
            "geohash_direction": "NE",
            "origin_time": "2022-01-22T01:08:00+09:00",
            "arrival_time": "2022-01-22T01:08:00+09:00",
            "pref": {
                "name": "鹿児島県",
                "code": "46"
            },
            "area": {
                "name": "鹿児島県薩摩",
                "code": "770"
            },
            "city": {
                "name": "鹿児島市",
                "code": "4620100"
            },
            "intensity_station": {
                "name": "鹿児島市祇園之洲町",
                "code": "4620120",
                "int": "3",
                "int_code": "30"
            }
        },
        {
            "event_id": "20220122010844",
            "date_time": "2022-01-22T01:13:20+09:00",
            "geohash": "wvsgd",
            "geohash_direction": "C",
            "origin_time": "2022-01-22T01:08:00+09:00",
            "arrival_time": "2022-01-22T01:08:00+09:00",
            "pref": {
                "name": "鹿児島県",
                "code": "46"
            },
            "area": {
                "name": "鹿児島県薩摩",
                "code": "770"
            },
            "city": {
                "name": "鹿児島市",
                "code": "4620100"
            },
            "intensity_station": {
                "name": "鹿児島市東郡元",
                "code": "4620100",
                "int": "3",
                "int_code": "30"
            }
        },
        {
            "event_id": "20220122010844",
            "date_time": "2022-01-22T01:13:20+09:00",
            "geohash": "wvsgg",
            "geohash_direction": "NE",
            "origin_time": "2022-01-22T01:08:00+09:00",
            "arrival_time": "2022-01-22T01:08:00+09:00",
            "pref": {
                "name": "鹿児島県",
                "code": "46"
            },
            "area": {
                "name": "鹿児島県薩摩",
                "code": "770"
            },
            "city": {
                "name": "鹿児島市",
                "code": "4620100"
            },
            "intensity_station": {
                "name": "鹿児島市祇園之洲町",
                "code": "4620120",
                "int": "3",
                "int_code": "30"
            }
        }
    ]
}
```

「鹿児島市東郡元」と「鹿児島市祇園之洲町」の観測データが返りました。
date_timeが異なる2つのデータが存在するのは、1:13と1:40に同じ地震のデータが配信されていたことを示します。1:40は訂正報となります。

地震震度実績データ配信機能はピンポイントでデータを取得できるメリットがあります。
ただ、震度観測所は場所によってバラツキがあり、指定した緯度経度によっては周囲に震度観測所がない場合もあるので、そのあたり使い方に工夫が必要です。

今回は、災害実績データ配信APIと災害データPUSH配信機能の違いをご説明したうえで、災害実績データ配信API(地震震度実績データ)のデータ内容について詳細を説明しました。

そのほか、災害実績データ配信APIには、「気象警報・注意報実績データ配信機能」「落雷観測実績データ配信機能」があります。

要件に合わせて、ご活用いただければと思います。