UsefullCode.net


Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供
This site provide you with useful source codes under 'USEFULLCODE license'.

第04回 府県天気予報XMLを整形する

2016年04月13日 09:56
0件のコメント

気象庁防災情報XMLでは天気予報関連の配信は
・府県天気概況
・府県天気予報
・府県週間天気予報
・地方週間天気予報
の4種類があります。

今回はこのうち「府県天気予報」のXMLを読み込み/変換して出力します。


府県天気予報XMLには、
例えば宮崎地方気象台発表のものであれば、

・南部平野部
・北部平野部
・南部山沿い
・北部山沿い
の4地域の今日/明日/明後日の天気や風などの予報

・宮崎
・延岡
・都城
・高千穂
の4箇所の今後24時間までの3時間ごとの気温/風予報

・宮崎
・延岡
・都城
・高千穂
・油津
の5箇所の今日/明日の最高最低気温の予報

などが記載されています。

情報量が多くていいのですが、大きく2つの問題があります。
・どの都道府県の予報なのか分からない(地域名や○○気象台の名前などから判断するしかない)
・「宮崎」「延岡」などがどの地域(「南部山沿い」などの地域)に属するか分からない(別途対応表の用意が必要)

「宮崎県」だけであればたいした問題ではないのですが、47都道府県の処理を考えると少し面倒です。
さらにデータ構造に癖のあるXMLで扱いにくいため、気象庁のXMLから欲しい情報だけを抜き出して、別構造のXMLへと変換してしまいます。

データの階層構造は、地域の下にタイムシリーズ(「今日」「明日」などの時間区分)、その下に天気予報を配置する形にしました。
本来ならある程度汎用的な様式でのXMLに変換するべきなのでしょうが、そこまで拘る必要もないので特化したXMLです。

最終的な出力は、
・変換した結果の独自形式XML forecast○○.xml
・気象庁から配信された生XML forecast○○_raw.xml
の2ファイル×47都道府県=合計94ファイルとしました。




地点名、地域、都道府県の対応表は気象庁が技術資料として用意しているExcelファイルをCSV変換/修正したものを用意して対応しました。

以下の2ファイルをソースコード内の_strFolderDataで指定したフォルダへ保存しておきます。
・20160301_AreaInformationCity-AreaForecastLocalM.csv
・20160314_PointAmedas_mod.csv

気象庁防災情報XMLフォーマット 技術資料
http://xml.kishou.go.jp/tec_material.html




プロジェクトを作成します。
前回のソリューションを開き、ソリューションウインドウの「JmaForecast」ソリューションを右クリックして現れたメニューから「追加」にある「新しいプロジェクト」を選択し、
「Visual C#」の「コンソールアプリケーション」を追加します。
ここでプロジェクト名は「jmacnvforecast」、.NETのバージョンは「.NET Framework 4」としました。
さらに「プロジェクト」メニューにある「jmacnvforecastのプロパティ」を選択し、構成「Release」にたいして、デバッグ」タブにある「Visual Studioホスティングプロセスを有効にする」のチェックをはずしておきます。

今回はクライアント側でアクセスするためのXMLを整形/出力する処理があります。
その出力用XMLのクラス類を保存するためにプロジェクト内にソースファイルを1つ追加しておきます。
ソリューションウインドウの「jmacnvforecast」を右クリックして現れたメニューから「追加」にある「新しい項目」を選択し、「コードファイル」を追加します。
ファイル名は「SerializeData.cs」としました。

そしてソースコードを作成。
最後にjmadownload.exe内でjmacnvforecast.exeを実行するように修正したら完成です。

プロジェクトファイルをダウンロード


第03回 subscribeをダウンロードする
第19回 ユニコードテキストを読み込む
トップページに戻る
issei.