開発道中膝栗毛 第一編 地震情報とその情報源

Zero Quake という地震情報アプリをオープンソースで開発しています、[べにだて](https://twitter.com/Zero_Quake)です。

世の中では、様々な地震情報が星の数ほどの機関から発信されています。さらにそれが、様々な情報源（APIなど）によって私たちに提供されています。それらを選定するのは、地震情報アプリを作成するにあたって、必ず避けて通れない道です。開発者の方々は、その大量の情報源を、気の遠くなる時間をかけて吟味しているものと思います。そんな皆様のお役に立つべく、ここに情報源をまとめます。

:::note warn
ここで紹介するAPIを使用する際は、必ず各APIの利用規約などを確認し、各々の責任で使用してください。
:::

# 地震速報系
地震の発生を即時的に報知する情報について紹介します。
## 緊急地震速報 [気象庁(JMA)]


### AXIS
利用者ごとの無料登録が必須だが、それに見合った価値がある。情報の配信が非常に高速※で、細分区域ごとの予想震度など、詳細な情報が取得できる。ベータテスト版とされている点は注意が必要。
※当方の環境での経験則

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|-|○| 登録必須 |(極少)| 無料 | [詳細](https://axis.prioris.jp/)  |

### Wolfx 防災API
無料・登録不要で、高速に緊急地震速報を受信できるAPI。無料ながら、PLUM法などにも対応。さらに、なんとコード電文まで取得可能。ウェブサイトが中国語であることが玉に瑕だが、おすすめする。
こちらも無料・登録不要で、緊急地震速報を受信できる。他にも多種多様な情報の配信に対応している。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|○| - |(少ない)| 無料 | [詳細](https://api.wolfx.jp/)  |

### ~~Project BS JMAEEW API~~
無料・登録不要で、高速に緊急地震速報を受信できたAPI。サービス終了。


### YDITS API
最近公開された緊急地震速報API。現在開発段階とのことで、得られる情報は限られる。（震源位置、最大震度等を得られない）今後の開発に期待。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-| 開発途中 |(不明)| 無料 | [詳細](https://www.ydits.net/api/eew/)  |


### P2P地震情報 JSON API v2
取得できる情報は警報のみに限られるが、WebSocketプロトコルで高速に取得できる点が非常に魅力的。他にも、多種多様な情報の配信に対応している。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|○| 警報のみ |(少ない)| 無料 | [詳細](https://www.p2pquake.net/develop/json_api_v2/)  |

### 強震モニタ
以前まで緊急地震速報の情報源として盛んに使用されていた強震モニタは、新たに利用条件が制定された。利用条件の解釈には様々あるが、緊急地震速報の情報源としての使用は推奨しない。

### 気象庁ホームページ
緊急地震速報を取得する手段として、あまり有名でない気象庁ホームページ。というのも、リアルタイムでの情報取得ができないためだ。ホームページには、10～30分程度の遅延があると記載されている。
しかし、このページの長所は、直近1か月の緊急地震速報の内容を取得できる点。使い方によっては有用なページだ。

|HTTP|Websocket|制限事項|遅延|料金|
|-|-|-|-|-|
|○|○| 警報のみ |10~30分| 無料 |

[緊急地震速報（予報）発表状況](https://www.data.jma.go.jp/svd/eew/data/nc/fc_hist/index.html)
[緊急地震速報（警報）発表状況](https://www.data.jma.go.jp/svd/eew/data/nc/pub_hist/index.html)

:::note info
気象庁のホームページは、規約により合法的にスクレイピングできる。
:::



### みちびき　災危通報
これまで、インタネット経由で緊急地震速報を取得する方法を紹介してきた。しかし、大規模な災害の際のインターネットは、停電や通信障害の恐れがある。そこで、衛星を経由して緊急地震速報を受信する方法を紹介する。
日本の測位衛星「みちびき」からは、「災危通報」といって、緊急地震速報をはじめとした災害情報が配信されている。そして、これはインターネットのつながらない環境でも受信できる。
注意点としては、情報の配信が３秒おきであること、配信されるのは緊急地震速報の”警報”のみであること、環境によって受信できるかどうかが左右されることが挙げられる。

|制限事項|遅延|料金|
|-|-|-|
| 警報のみ・受信機必須 |~3秒程度| 無料 |

おすすめのGNSS受信機（災危通報対応）：[GR-M10-C/S](https://prioris.jp/gnss/)

### その他
場合によっては、有料サービスも検討すべきだろう。
    - [Project DM-D.S.S(dmdata)](https://dmdata.jp/)　安い！速い！~~美味い！~~
    - [気象業務支援センターからの配信](http://www.jmbsc.or.jp/jp/online/j-online3.html) 信頼性抜群！
    - [EqCare Type-G](https://doc01.pf.iij-engineering.co.jp/pub/sdkdoc/v1/ja_JP/index.html)
    - [Safety Tips API](https://www.mlit.go.jp/common/001284110.pdf) 事業者向け

また、ラジオの音声を解析する方法、エリアメールを活用する方法など、他にも緊急地震速報を受信する方法はいくつかある。他の地震情報アプリを解析する方法も紹介されていることがあるが、規約などを考慮すると推奨できない。



## 地震预警 [交通部中央氣象署 (CWA)]　台湾
### Wolfx 防災API
台湾版の緊急地震速報を受信できる。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|○| - |(少ない)| 無料 | [詳細](https://api.wolfx.jp/)  |
## 地震预警 [四川省地震局(SCDZJ)]　中国
### Wolfx 防災API
四川省地震局による、中国の地震速報を受信できる。WebSocketにより、高速な受信が可能。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|○| - |(少ない)| 無料 | [詳細](https://api.wolfx.jp/)  |
## Early-Est
### ingv
様々なURLで提供されているが、私の確認した時点で一番バージョンが新しいのがこのURLだ。データは近年メジャーなJSONではなく、XML形式であるため、処理の際に注意が必要
[データのURL](http://early-est.rm.ingv.it/monitor.xml)
|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-| - |-| 無料 | [詳細](http://early-est.rm.ingv.it/)  |

# 地震情報系

## 気象庁 地震情報
(震度速報/震源に関する情報/震度・震源に関する情報など)

### AXIS
緊急地震速報の章でも登場したAXISは、地震情報にも対応。WebSocketに対応しているため、低負荷で高速な受信ができる。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|-|○| 登録必須 |(極少)| 無料 | [詳細](https://axis.prioris.jp/)  |

### 気象庁防災情報XML
情報の作成元である気象庁から直接情報を取得する方法。政府機関のサービスであるため、信頼性は抜群。名前の通りXML形式であるため、処理が少し煩雑。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-|-|～10分| 無料 | [詳細](https://xml.kishou.go.jp/)  |

:::note info
遅延は短期フィードの公称値
:::


### 気象庁ホームページ
こちらも気象庁から直接に情報を入手する方法。基本的には上記の[気象庁防災情報XML](#気象庁防災情報XML)と同じだが、JSON形式でデータが得られる点と、「**推計震度分布図**」など、ホームページからしか得られない情報を取得できる点が優れている。

:::note info
気象庁ホームページは、規約により合法的にスクレイピングすることがでる。
:::

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-|-|(～10分)| 無料 | [詳細](https://www.jma.go.jp/)  |

### Wolfx 防災API
WolfxのAPIでは、WebSocketを通じて地震情報を取得できる。形式は独自のJSON形式で、得られる情報量は少ないが、その分、データ容量も少ない。一次ソースは気象庁ホームぺージだそうだ。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|○| - |(～10分)| 無料 | [詳細](https://api.wolfx.jp/)  |

### nTool Earthquake API
"nTool"が提供する地震情報API。一次ソースとして「Project DM-D.S.S」を使用しており、高速な情報配信が期待できる。データは独自のJSON形式で、処理がしやすい。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-| - |(短い)| 無料 | [詳細](https://ntool.online/apidoc/earthquakeapi)  |

### P2P地震情報 JSON API v2
地震情報が手軽に取得できる。EventIDが取得できない点は注意が必要。ソースはProject DM-D.S.Sで、高速な情報配信に対応。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|○| - |(短い)| 無料 | [詳細](https://www.p2pquake.net/)  |

### QUAKE.ONE API
AXISと同じ「合同会社プリオリス」から提供されるAPI。
プッシュ方式での配信にも対応している。様々な条件で絞り込んで、過去の地震を検索できる。過去の地震データの参照におすすめ。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-| - |(短い)| 無料 | [詳細](https://www.p2pquake.net/)  |

:::note warn
「アプリの利用者が本APIに直接アクセスすることは避けてください。」との注意文あり。
:::

## 海外の地震情報
### Earthquake Catalog
USGSによる地震情報。全世界の地震情報がJSON形式で取得できる。

|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-| - |-| 無料 | [詳細](https://earthquake.usgs.gov/fdsnws/event/1/)  |

### (near) Realtime Notification using Websocket
EMSCによる地震情報を近リアルタイムで通知。
|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|-|○| - |-| 無料 | [詳細](https://seismicportal.eu/realtime.html)  |

# 津波情報
### 気象庁防災情報XML

大津波警報・津波警報・注意報・予報はもちろんのこと、「津波情報」「沖合の津波観測に関する情報」も配信。予想・観測による到達時刻や波の高さの情報、警報発令状況などを取得できる。
|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-|-|～10分| 無料 | [詳細](https://xml.kishou.go.jp/)  |

### P2P地震情報 JSON API v2
一次ソースがDM-D.S.S.であるため、高速な情報配信が期待できる。先日より、到達予想時刻と予想高さの配信に対応している。



|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|○| 下記|(少ない)| 無料 | [詳細](https://www.p2pquake.net/develop/json_api_v2/)  |

:::note warn
観測情報と津波予報は配信されない。
:::

# その他
## 地盤増幅率

### 表層地盤情報提供API
震度予想に必要な地盤増幅率も、APIで取得できます、
|HTTP|Websocket|制限事項|遅延|料金||
|-|-|-|-|-|-|
|○|-|-|-| 無料 | [詳細](https://www.j-shis.bosai.go.jp/api-sstruct-meshinfo)  |

:::note warn
アプリ公開の際には、気象業務法を遵守してください。
:::

# おわりに
今回、地震に関連する情報の情報源をいくつか紹介しました。残念ながら、無料で利用できる情報源は、突然公開終了するケースが一定の割合であります。一つの情報源に依存せず、広く情報を取得できるようにすることが大切です。
ここに掲載していない情報源をご存知でしたら、ぜひコメントでご教授ください。

次編以降、この情報源を利用した処理に関する記事を書くつもりです。
___
※カッコのついた遅延量は当方環境での（厳密でない）計測値