積雪・降雨データ

1. 積雪変質モデル(SNOWPACK)

スイスの Institute for Snow and Avalanche Research (SLF)が開発している積雪変質モデル(SNOWPACK)は、山岳地帯に設置した気象ロボットのデータを使って積雪の変化をシミュレーションするものです。 日本でも防災研などが雪崩予測、調査に利用しているようですが、登山者にはまだ一般的ではないようです。 というのも、日本では山岳地帯の気象観測は限られていて、予測するほど精度が上がらないからでしょう。 しかし、アメダスの気象データをExcelでグラフ化して雪質を予想するよりははるかに効率的だと思います。

例えば、2016年11月1日から2017年3月1日のアメダス(駒ノ湯)の1時間毎のデータを使ってシミュレーションしたものが次の図です。右側の積雪断面図は2017年2月12日午前3時のものです。

img

【図-1】SNOWPACKのシミュレーション例

2. 積雪シミュレーション概要

SNOWPACKの使い方は付属するドキュメントに記載されていますが、アメダスなどの気象データから実際に積雪断面図を表示させるには結構面倒です。全体の流れを次の図に示します。

img

【図-2】シミュレーションの流れ

まず、気象庁のアメダスや研究機関が設置している気象ロボットの気象データをSMETデータ・フォーマットに変換する必要があります。 アメダスの場合はExcelでも読めるCSVフォーマットでダウンロードできますから、これを『AMeDAS_SMET_Converter』でSMET形式に変換します。 気象ロボットのデータはグラフのみ公開されていますので、『Weather XHTML Parther』というアプリを作ってSMET形式に変換します。 いずれの場合も欠測がありますが、-999として出力します。

欠測値を補間したり、ILWRを計算するのにSLFが開発している『MeteoIO』を使います。 実はWindowsバージョンもあるのですが、ライブラリの生成やC++で開発するアプリのビルドがうまく行きません。 Linuxではうまくゆくので、VMwareという仮想マシンにUbuntu(※ウブントゥと読み、Linux OSの一つで比較的一般的)をインストールして、このなかで実行しています。

これでやっと『SNOWPACK』でシミュレーションするデータが出来ます。 設定ファイルを作成して、入力データに矛盾がなければ3時間毎の積雪を出力してくれます。

シミュレーション結果を表示するのに、同じくSLFが開発している『SNGUI』を使います。これはJavaで書かれているので、WindowsでもLinuxでも動作します。 Linuxでは時間を変えるスライドバーの動きがうまく動かないので、Windowsの方が使い勝手はいいです。

3. アメダス観測データの変換

アメダスの1時間毎の観測データは気象庁の過去の気象データ・ダウンロードからCSV形式でダウンロードできます。 長い期間を指定できないので1ヶ月毎にダウンロードして、Excelでデータだけ編集して一つのファイルにし、これをSMET形式に変換します。 このため、Visual C#で『AMeDAS_SMET_Converter』というアプリを作っています(Windows版のみ)。 アメダスのデータには1時間毎の日照時間が計測されていますが、1時間当たりの日射(W/m^2)が必要なので、『日照時間を用いた時間積算日射量推定モデルの開発』に記載している式を使いました。また、大気外日射量は『太陽方位、高度、大気外日射量の計算』のサイトの式を使って求めています。(※2021.2/1 計算式を修正)

img

【図-3】AMeDAS_SMET_Converter

変換したサンプルを置いておきます。

●2016年11月1日から2017年3月1日『駒ノ湯』(131KB)

4. 山岳気象データの利用

「信州山の環境研究センター」(http://ims.shinshu-u.ac.jp/ )のWebサイトで信州各地の気象データ(速報値)が公開されています。
(※データ利用上の注意が上記サイトに記載されています。また、当サイトは「信州山の環境研究センター」とは無関係です。)

【図-4】中央アルプス・千畳敷の気象ロボット(2014年2月)

観測データのグラフはXHTMLソースにSVC(Scalable Vector Graphics)というコードで書かれているようで、縦軸のスケールと各ポイント座標から気温や降雨量などの数値に換算することができます。 千畳敷の積雪シミュレーションをしたかったので、Visual C#で『Weather_XHTML_Parser』というアプリを作ってSMET形式に変換できるようにしました。 1時間毎の日射量(MJ/m^2)と相対湿度が計測されているので、アメダスのように面倒なデータの換算は必要ありません。 しかし、グラフから読み取るので観測時刻はポイントを1時間毎と仮定するしかなく、速報値には欠測があるので注意が必要です。

img

【図-5】Weather_XHTML_Parser

5. Linux環境

シミュレーションの流れで説明したように、『MeteoIO』と『SNOWPACK』をLinux上で動作させますが、Windows(64bit )でPCのメモリが8GB程度ないと厳しいと思います。 ネットを検索するとVMwareやUbuntuのインストール方法が載っています。 Linux環境を作ってしまえば、それぞれのインストール・マニュアルにしたがってCMAKE⇒MAKE⇒MAKE Installと実行してゆけば、『MeteoIO』、『SNOWPACK』いずれもソースコードからストレスなくインストールが出来ます。 関連する設定ファイルはサンプルを見て下さい(※Windows環境でも試しましたが、ビルドエラーが対処しきれませんでした)。

img

【図-6】VMwareの起動画面

img

【図-7】Windows10内のUbuntu 16.04 LTEデスクトップ

6. MeteoIOによるデータの補間

MeteoIOはC++のライブラリで、いまひとつ使い方が難しいですが、サンプル・コードが付属しています。欠測値のデータ補間には"data_converter"のサンプルをそのまま使っています。サンプル・コードをビルドすればいいのですが、一点だけ注意が必要です。もともと緯度・経度を入力するSMETファイルに記述してますが、"easting/northing/epsg"がこの"data_converter"付加されます。どうも入力した"latitude/longitude"と一致しないらしく、SNOWPACKシミュレーションで緯度・経度がおかしくなりますので、この付加された部分をコメントアウトします。

img

【図-8】MeteoIO出力データの修正

"data_converter"をビルドしたサンプルを置いておきます。_c1160が付いているのは気温を標高1160mに換算した結果です。

●data_converter (komanoyu).zip

7. SNOWPACKシミュレーション

シミュレーションしたサンプルを置いておきます。_c1160が付いているのは気温を標高1160mに換算した結果です。

●AMeDAS_34012.zip

8. シミュレーション結果の表示

『SNGUI』はSLFのプロジェクトページからsnguiに移動してダウンロードします。 ファイルは"sngui-8.4.tgz"の形式ですので、解凍する場合は7-Zipなどのtgz形式に対応したソフトが必要です。 SNGUIはJavaで開発されていますから、実行するにはJava Runtime Environment (JRE)のインストールが必要です。 インストール方法は「ピットデータ作図ソフト」の記事を参考にしてください。

Windowsの場合は"SN_GUI.bat"で起動しますから、ショートカットを作っておくと便利です。 SN_GUI.batをダブルクリックすると、DOSコンソールが現れて以下の起動画面が立ち上がりますから、Visualizationをクリックします。

img

【図-9】SNGUIの起動画面

SNOWPACKの起動画面が現れますので、OpenタブからSNOWPACKシュミレーション結果のファイルを選択します。 (例)AMeDAS_34012\out\AMeDAS_34012_res.pro

img

【図-10】SNOWPACKの起動画面

正常にファイルが読み込めれば、いろいなシミュレーション結果が表示できます。 例えばSnowpackのタブから⇒Microstructure⇒Grain Typeを選択すると、雪質の変化が表示され、スライダーで指定した積雪断面図が表示できます(【図-1】参照)。 また、積雪深や降雪・降雨などの気象データはMeteo Inputのタブから見れます。

img

【図-11】積雪の温度分布(【図-1】と同じデータ)

img

【図-12】積雪の密度分布(【図-1】と同じデータ)

img

【図-13】降雨・降雪量(【図-1】と同じデータ)