🐡

気象庁XMLデータの解析:Pythonを使った防災情報の抽出

2024/09/10に公開

1. はじめに

気象庁は、防災情報や気象データを XMLフォーマットで公開しています。このデータは防災アプリケーションや気象情報サービスの開発に非常に有用です。本記事では、Pythonを使用して気象庁の XMLデータを解析し、必要な情報を抽出する方法を紹介します。

https://xml.kishou.go.jp/

2. 必要なライブラリ

以下のPythonライブラリを使用します:

requests: HTTP リクエストを送信するため
xml.etree.ElementTree: XML データを解析するため
これらのライブラリがインストールされていない場合は、以下のコマンドでインストールできます:

3.環境

Google Colab

4. コード

4.1.requestsのインポート

!pip install requests

4.2.XMLデータの取得

import requests
import xml.etree.ElementTree as ET

# 気象庁防災情報XMLデータベースのURL
url = 'https://www.data.jma.go.jp/developer/xml/feed/eqvol.xml'

# APIリクエストを送信
response = requests.get(url)

# レスポンスのステータスコードを確認
if response.status_code == 200:
    # XMLのパース
    root = ET.fromstring(response.content)
else:
    print(f"Failed to retrieve data: {response.status_code}")

4.3.基本情報の抽出

print("【気象庁防災情報フィード】")
print(f"タイトル: {root.find('{http://www.w3.org/2005/Atom}title').text}")
print(f"サブタイトル: {root.find('{http://www.w3.org/2005/Atom}subtitle').text}")
print(f"更新日時: {root.find('{http://www.w3.org/2005/Atom}updated').text}")
print("-" * 40)

4.4.エントリーの解析

for entry in root.findall('{http://www.w3.org/2005/Atom}entry'):
    title = entry.find('{http://www.w3.org/2005/Atom}title').text
    updated = entry.find('{http://www.w3.org/2005/Atom}updated').text
    content = entry.find('{http://www.w3.org/2005/Atom}content').text
    link = entry.find('{http://www.w3.org/2005/Atom}link').get('href')

    print(f"【タイトル】: {title}")
    print(f"【更新日時】: {updated}")
    print(f"【内容】: {content}")
    print(f"【詳細リンク】: {link}")
    print("-" * 40)

5. 出力結果

【気象庁防災情報フィード】
タイトル: 高頻度(地震火山)
サブタイトル: JMAXML publishing feed
更新日時: 2024-09-10T12:30:55+09:00
----------------------------------------
【タイトル】: 震源・震度に関する情報
【更新日時】: 2024-09-10T03:30:42Z
【内容】: 【震源・震度情報】10日12時27分ころ、地震がありました。
【詳細リンク】: https://www.data.jma.go.jp/developer/xml/data/20240910033042_0_VXSE53_270000.xml
----------------------------------------
【タイトル】: 降灰予報(定時)
【更新日時】: 2024-09-10T02:00:00Z
【内容】: 【火山名 口永良部島 降灰予報(定時)】 現在、口永良部島は噴火警戒レベル3(入山規制)です。口永良部島で噴火が発生した場合には、10日21時から24時までは火口から北西方向に降灰が予想されます。
【詳細リンク】: https://www.data.jma.go.jp/developer/xml/data/20240910020041_0_VFVO53_010000.xml
----------------------------------------

6. 出力結果の解釈

このスクリプトを実行すると、以下のような情報が得られます:

フィードの基本情報(タイトル、サブタイトル、更新日時)
各エントリーの詳細(タイトル、更新日時、内容の要約、詳細情報へのリンク)
これらの情報は、地震や火山活動に関する最新の防災情報を含んでいます。

7. 注意点

気象庁のデータ利用規約を遵守してください。
過度なリクエストはサーバーに負荷をかける可能性があるため、適切な間隔でアクセスしてください。

8. まとめ

本記事では、Pythonを使用して気象庁のXMLデータを解析し、防災情報を抽出する方法を紹介しました。XMLデータを活用して防災アプリケーションの開発や、地域の安全に貢献するプロジェクトに応用できたら面白そうです。

Aidemy Tech Blog

Discussion