(続)subscriber の構築をして気象庁の防災情報を取得
気象庁からの気象情報受信で失敗する場合
subscriberを構築し、気象庁からの接続テストで
「Web サイトへのアクセスが集中しているため Web ページを表示できません(ステータスコード HTTP 408/HTTP 409)」
というエラーが発生してしまい接続確認が行えませんでした。
気象庁から、他の申請者も同様のエラーが発生し接続確認ができないという事例は発生しており
その時の解決方法としては、以下のことが考えられるとアドバイスを受けました。
- レスポンスの最後に改行があった
- verify_tokenを読み飛ばす設定(もしくは設定しない)にする
そこで、今回、verify_tokenの設定をしていましたが設定を空白にして、再申請をしたところ無事接続ができました。
早速電文を受信
まずは、atomファイルからの受信となります。
以下が実際に受信されたatomファイルの中身です。
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja"> <title>JMAXML publishing feed</title> <subtitle>this feed is published by JMA</subtitle> <updated>2018-05-11T13:04:01+09:00</updated> <id>urn:uuid:d38e0e80-12ba-3236-b10f-256b78a08995</id> <link href="http://www.jma.go.jp/" rel="related"/> <link href="http://xml.kishou.go.jp/feed/other.xml" rel="self"/> <link href="http://alert-hub.appspot.com/" rel="hub"/> <rights>Published by Japan Meteorological Agency</rights> <entry> <title>生物季節観測</title> <id>urn:uuid:ddb70b3c-8418-350e-b6ef-f213df75ea15</id> <updated>2018-05-11T04:03:42Z</updated> <author><name>和歌山地方気象台</name></author> <link href="http://xml.kishou.go.jp/data/ddb70b3c-8418-350e-b6ef-f213df75ea15.xml" type="application/xml"/> <content type="text">【生物季節観測】</content> </entry> </feed>
atomファイルと言っていますが、xmlファイルのことです。
このファイルが受信できましたら、このファイルに記載されている link 情報から、実際に使用する気象情報のxmlファイルを取得します。
上記linkから取得した情報が以下のものになります。
<?xml version="1.0" encoding="UTF-8"?> <Report xmlns="http://xml.kishou.go.jp/jmaxml1/" xmlns:jmx="http://xml.kishou.go.jp/jmaxml1/"> <Control> <Title>生物季節観測</Title> <DateTime>2018-05-11T04:03:42Z</DateTime> <Status>通常</Status> <EditorialOffice>和歌山地方気象台</EditorialOffice> <PublishingOffice>和歌山地方気象台</PublishingOffice> </Control> <Head xmlns="http://xml.kishou.go.jp/jmaxml1/informationBasis1/"> <Title>生物季節観測</Title> <ReportDateTime>2018-05-11T13:02:00+09:00</ReportDateTime> <TargetDateTime>2018-05-11T00:00:00+09:00</TargetDateTime> <EventID>20180511130200_23</EventID> <InfoType>発表</InfoType> <Serial /> <InfoKind>生物季節観測報告気象報</InfoKind> <InfoKindVersion>1.0_0</InfoKindVersion> <Headline> <Text /> </Headline> </Head> <Body xmlns="http://xml.kishou.go.jp/jmaxml1/body/meteorology1/"> <MeteorologicalInfos type="生物季節観測"> <MeteorologicalInfo> <DateTime significant="yyyy-mm-dd">2018-05-11T00:00:00+09:00</DateTime> <Item> <Kind> <Name>しおからとんぼの初見日</Name> <Code>23</Code> <ClassName>シオカラトンボ</ClassName> <Condition>通常</Condition> </Kind> <Station> <Name>和歌山地方気象台</Name> <Code type="国際地点番号">47777</Code> <Location>和歌山市男野芝丁</Location> <Status>付近</Status> </Station> </Item> </MeteorologicalInfo> </MeteorologicalInfos> <AdditionalInfo> <ObservationAddition> <DeviationFromNormal>-47</DeviationFromNormal> <DeviationFromLastYear>-7</DeviationFromLastYear> <Text>和歌山城公園(ワカヤマジョウコウエン)</Text> </ObservationAddition> </AdditionalInfo> </Body> </Report>
このXMLの情報を利用するれば、利用したい地域の警報、注意報などの情報を取得できます。
これを利用してなにかができそうな気がしてきました。
ちなみに、5/10 では 約1400個のXMLファイルが受信されました。
今回の申請ではすべての情報を取得するという申請にしたので、こんなに膨大な情報量となってしまいました。
サーバ側の容量を圧迫させないために、定期的に削除させる仕組みづくりが必要ですね。
次は、XMLファイルを読み込んでデータベース化にチャレンジしたいと思います。
それをするには、気象庁が提供しているファイルフォーマットを理解しなくては・・・
[前の記事]subscriber の構築をして気象庁の防災情報を取得
[次の記事]subscriber 気象庁から防災情報XMLを受信