国立研究開発法人防災科学技術研究所 水・土砂防災研究部門
国立研究開発法人防災科学技術研究所 水・土砂防災研究部門
トップ 一覧 検索 ヘルプ RSS ログイン

水平1変数と東西もしくは南北方向への最大値投影の鉛直断面(X-Z平面、Y-Z平面)(ver8以降)

ver8の説明

 pythonプログラム群(ver8はこれまでのver7の上位互換)

ver8.tar.gz(117)

 環境の確認

matplotlibを実行する際にQt platform plugin "xcb" というエラーが出る場合、
root権限で

dnf install xcb-util-wm
dnf install xcb-util-keysyms
dnf install xcv-util-cursor

が必要となる(Rocky8.9環境)

以下のサンプルデータとともに利用して、run.cshに記載のとおりに実行していただくことを想定しています。

  県境のテキストデータ

File1.tar.gz(5)
各地方毎に県境ファイルをまとめています。例えば、関東地方であれば、kanto.txtに、1都6県の県境が含まれます。
kanto2.txtはkanto.txtの緯度経度データを?つづつスキップして、半減されたデータとなっております。
kanto3.txtは2つづつスキップしています。スキップすることで、県境のデータは荒くなりますが、描画が早くなります。
デフォルトでは、kanto3.txtのように荒いデータを使って描画することになっており、ver8.tar.gzに既に含まれています。
kanto.txtやkanto2.txtを利用する場合には、File1.tar.gzをダウンロードして、DDRW/JboundFilesの下にgunzipで解凍して保存してください。
また、DDRW/draw_jbound.pyにおいて、skippointという変数を2とすれば、kanto2.txtが利用され、""で与えると、kanto.txtが利用できます

 なぜ県境データが必要となったのか?

今回は、新たにmain_H1_MAX_XY_jbound.pyというプログラムを作成しました。
こちらは、3枚の図を描きます。1枚は左上に平面図を、右には、東西方向に最大値をとった鉛直断面を、下には南北方向に最大値をとった
鉛直断面を描きます(下図)。ここで、水平平面図をこれまでどおり、cartopyを使った地図投影法を使用すると、ある程度自動で県境などを
記載してくれるのですが、今回のように東西投影、南北投影の図をしっかり長さを揃える必要があり、cartopyでは調整が難しかったです。
同様にmain_H1V1UV.pyについても、水平はcartopyで、鉛直断面は地図投影を使わない図となっており、水平の領域の設定次第で、
水平図と鉛直図の大きさが変動してしまいます。そのため、main_H1V1UV.pyには、main_H1UV.py(水平のみを描画)とmain_V1.py(鉛直のみを描画)
という2種類のプログラムがあり、清書する場合には、そちらを使い、解析には、main_H1V1UV.pyを使うということができます。
今回は、どうしても長さを揃えたかったので、水平においてcartopyを使うのを諦めました.変わりに、
https://japonyol.net/editor/article/47-prefectures-geojson.html
で配布されている、日本の県境データをダウンロードして、テキスト化したデータを作成しました。このgeojsonをcartopyを利用すれば直接
利用できますが、結局、図のずれが生じたため、geojsonを使うのではなく、テキストに変換後利用しました。
hoge5.jpg

  サンプルデータダウンロード

気象庁CAPPIデータ

CAPPI.nc.gz(306)
今回描画するのは、九州に設置された福岡と種子島の気象庁レーダのCAPPIデータを利用します。CAPPIデータには反射強度(REF)が収録されており、
また、2台のレーダの緯度経度がglobal attributeに記載されているものを使っています。

気象庁LIDENデータ

LIDEN.txt.gz(45)
LIDENデータを10分間積算して、雲放電と落雷を区別せずに、緯度経度情報だけを収録したテキストデータを作りました。

ver8の利用方法(これまでのすべてのプログラムをアップデートしています。すべて上位互換です)

すべてのプログラムに共通して3つの機能を追加しました。

--INIT: 初期時刻記載オプション(引数なしで、単に--INITを追記すればOK)

モデルのデータの場合、どの初期値を使ったがが重要になります。この--INITオプションがつくと、図のタイトルに表示している時刻だけでなく、初期時刻も表示することができます。

--LDN + LIDENデータのファイルの絶対パス (main_V1.pyでは利用できません):

LIDENのデータをプロットすることができます。ここではLIDENをサンプルとして描いていますが、ORIG/LIDEN.pyを改変していただき、自由に地上データなどの情報をプロットすることが出来ると思います。このようにORIGディレクトリには、各自が追加したい機能をまとめておくことができます。今後、公開可能なORIGプログラムは付与しますが、あくまで、私個人が利用するためのもので、一般性があまりなないものとなっています。皆様の理解や改変のために置いておきます。

--RLOC: レーダの観測範囲を表示(引数なしで、単に--RLOCと追記)

この機能もORIGに収録されており、今回は入力データ(CAPPI.nc)にレーダ情報が記載されているので、表示されます。すべてのデータに汎用的に利用できるわけではありません。
あくまでORIGは参考までにという情報です。

  利用オプションのまとめ

main_H1UV.py

pytyon main_H1V1UV.py NETCDFファイル名 変数名 のあとに 
-W 風オプション(0: ベクトル 1:矢羽)
-WT 風間引きオプション(整数を設定すると、その整数分だけデータをスキップして間引く)
-CT カラーパレット番号を入れることで色パターンを設定します. 0:青から赤へ 1: 気象庁降雨分布 2:白から青へ 3:白から赤へ という4パターンあります
-AR AutoRangeを行わないオプション。つまり手動で凡例の値を決める必要がある。DHDLのsubprogs.pyの中で設定しています(-AR を記載しないと自動的に凡例の範囲を検索する)
-O 図をファイルとして保存するオプション。保存ファイル名を指定する。 今回はPNGとJPGを想定。
-T 表示する時刻を指定(大文字のTを指定すると時刻をYYYY-MM-DD-HH:MM:SSのフォーマットで指定)
-t 表示する時刻を指定(小文字のTを指定するとnetcdfの中での初期時刻からのスキップする時刻数を整数で指定)
   時刻を指定しない場合は、インタラクティブに時刻をpytyonが聞いてくれるので、入力する
-z 水平断面を表示する場合の層番号を指定。
-Z 水平断面を表示する、高度をメートル単位で指定
-AMN アニメション支援オプション。図を表示せず、作成のみ
-JPN 時刻表記をJSTとする。
-INIT モデルデータの場合、入力ファイルの先頭時刻を初期値として図に記載する
-LDN (ORIGファイル):参考までに、LIDENデータの表示。収録したLIDEN.txtと同じようなデータフォーマットであれば、記載可能。
-RLOC(ORIGファイル):参考までに、レーダ観測範囲の表示。収録したCAPPI.ncと同じようにglobal attributeに記載があれば、記載可能。

実行例:

python main_H1UV.py JMACAPPI.nc REF -t 0 -z 3 -CT 0 -LDN ./LIDEN.txt -O hoge1.jpg -RLOC

結果:
hoge1.jpg

main_V1.py

pytyon main_V1.py NETCDFファイル名 変数名 のあとに 
-W 風オプション(0: ベクトル 1:矢羽。鉛直断面と水平断面を両方作図するこのバージョンではベクトルのみ対応)
-WT 風間引きオプション(整数を設定すると、その整数分だけデータをスキップして間引く)
-CT カラーパレット番号を入れることで色パターンを設定します. 0:青から赤へ 1: 気象庁降雨分布 2:白から青へ 3:白から赤へ という4パターンあります
-AR AutoRangeを行わないオプション。つまり手動で凡例の値を決める必要がある。DHDLのsubprogs.pyの中で設定しています(-AR を記載しないと自動的に凡例の範囲を検索する)
-O 図をファイルとして保存するオプション。保存ファイル名を指定する。 今回はPNGとJPGを想定。
-T 表示する時刻を指定(大文字のTを指定すると時刻をYYYY-MM-DD-HH:MM:SSのフォーマットで指定)
-t 表示する時刻を指定(小文字のTを指定するとnetcdfの中での初期時刻からのスキップする時刻数を整数で指定)
   時刻を指定しない場合は、インタラクティブに時刻をpytyonが聞いてくれるので、入力する
-X0V 鉛直断面の始点の経度
-Y0V 鉛直断面の始点の緯度
-L0V 鉛直断面の始点からの距離(km)
-A0V 始点から真東を0度とし、反時計回りに回転した方向に鉛直断面を作成する。90度とすると北向き、180度とすると西向き、-90度で南向き
-TP  地形マスクオプション。inputファイルにTOPOという変数で標高が入力されていれば、数字の0を入れればよい。外部ファイルとして-TP ファイル名として同じ座標系の標高のnetcdfファイルを入力できる
-VT  鉛直を線形内挿して、一定間隔の高度とした高度座標系で鉛直断面を表示。-TPと一緒に使うと、地形をマスクしてくれる。気圧座標系の場合、高度座標系に変換する
-JPN 時刻表記をJSTとする。
-INIT モデルデータの場合、入力ファイルの先頭時刻を初期値として図に記載する
-AMN アニメション支援オプション。図を表示せず、作成のみ

実行例:

python main_V1.py JMACAPPI.nc REF -t 0 -CT 0 -X0V 130.1 -Y0V 32.7 -L0V 50.0 -A0V 0.0 -O hoge2.jpg

結果:
hoge2.jpg

main_H1V1UV.py

pytyon main_H1V1UV.py NETCDFファイル名 変数名 のあとに 
-W 風オプション(0: ベクトル 1:矢羽。鉛直断面と水平断面を両方作図するこのバージョンではベクトルのみ対応)
-WT 風間引きオプション(整数を設定すると、その整数分だけデータをスキップして間引く)
-CT カラーパレット番号を入れることで色パターンを設定します. 0:青から赤へ 1: 気象庁降雨分布 2:白から青へ 3:白から赤へ という4パターンあります
-AR AutoRangeを行わないオプション。つまり手動で凡例の値を決める必要がある。DHDLのsubprogs.pyの中で設定しています(-AR を記載しないと自動的に凡例の範囲を検索する)
-O 図をファイルとして保存するオプション。保存ファイル名を指定する。 今回はPNGとJPGを想定。
-T 表示する時刻を指定(大文字のTを指定すると時刻をYYYY-MM-DD-HH:MM:SSのフォーマットで指定)
-t 表示する時刻を指定(小文字のTを指定するとnetcdfの中での初期時刻からのスキップする時刻数を整数で指定)
   時刻を指定しない場合は、インタラクティブに時刻をpytyonが聞いてくれるので、入力する
-X0V 鉛直断面の始点の経度
-Y0V 鉛直断面の始点の緯度
-L0V 鉛直断面の始点からの距離(km)
-A0V 始点から真東を0度とし、反時計回りに回転した方向に鉛直断面を作成する。90度とすると北向き、180度とすると西向き、-90度で南向き
-TP  地形マスクオプション。inputファイルにTOPOという変数で標高が入力されていれば、数字の0を入れればよい。外部ファイルとして-TP ファイル名として同じ座標系の標高のnetcdfファイルを入力できる
-VT  鉛直を線形内挿して、一定間隔の高度とした高度座標系で鉛直断面を表示。-TPと一緒に使うと、地形をマスクしてくれる。気圧座標系の場合、高度座標系に変換する
-z 水平断面を表示する場合の層番号を指定。
-Z 水平断面を表示する、高度をメートル単位で指定
-JPN 時刻表記をJSTとする。
-INIT モデルデータの場合、入力ファイルの先頭時刻を初期値として図に記載する
-AMN アニメション支援オプション。図を表示せず、作成のみ
-LDN (ORIGファイル):参考までに、LIDENデータの表示。収録したLIDEN.txtと同じようなデータフォーマットであれば、記載可能。
-RLOC(ORIGファイル):参考までに、レーダ観測範囲の表示。収録したCAPPI.ncと同じようにglobal attributeに記載があれば、記載可能。

実行例:

python main_H1V1UV.py CAPPI.nc REF -t 0 -z 4 -CT 0 -X0V 130.1 -Y0V 32.7 -L0V 50.0 -A0V 0.0 -O hoge3.jpg -LDN ./LIDEN.txt -RLOC

結果:
hoge3.jpg

main_H1UV_GSItile.py

pytyon main_H1V1UV_GSItile.py NETCDFファイル名 変数名 のあとに 
-W 風オプション(0: ベクトル 1:矢羽)
-WT 風間引きオプション(整数を設定すると、その整数分だけデータをスキップして間引く)
-CT カラーパレット番号を入れることで色パターンを設定します. 0:青から赤へ 1: 気象庁降雨分布 2:白から青へ 3:白から赤へ という4パターンあります
-AR AutoRangeを行わないオプション。つまり手動で凡例の値を決める必要がある。DHDLのsubprogs.pyの中で設定しています(-AR を記載しないと自動的に凡例の範囲を検索する)
-O 図をファイルとして保存するオプション。保存ファイル名を指定する。 今回はPNGとJPGを想定。
-T 表示する時刻を指定(大文字のTを指定すると時刻をYYYY-MM-DD-HH:MM:SSのフォーマットで指定)
-t 表示する時刻を指定(小文字のTを指定するとnetcdfの中での初期時刻からのスキップする時刻数を整数で指定)
   時刻を指定しない場合は、インタラクティブに時刻をpytyonが聞いてくれるので、入力する
-z 水平断面を表示する場合の層番号を指定。
-Z 水平断面を表示する、高度をメートル単位で指定
-ZL zoom level 10くらいがちょうどいい。13になると地図が細かすぎる。
-TL 分布の透過度。0が完全に透過(地図だけが見える)1が完全に不透明(地図がまったく見えない)。0.3くらいがいい。
-AMN アニメション支援オプション。図を表示せず、作成のみ、背景の国土地理院地図は最初の一回だけ作成
-JPN 時刻表記をJSTとする。
-INIT モデルデータの場合、入力ファイルの先頭時刻を初期値として図に記載する
-LDN (ORIGファイル):参考までに、LIDENデータの表示。収録したLIDEN.txtと同じようなデータフォーマットであれば、記載可能。
-RLOC(ORIGファイル):参考までに、レーダ観測範囲の表示。収録したCAPPI.ncと同じようにglobal attributeに記載があれば、記載可能。

実行例:

python main_H1UV_GSItile.py CAPPI.nc REF -t 0 -z 3 -CT 0 -LDN ./LIDEN.txt -TL 0.6 -ZL 10 -O hoge4.jpg -RLOC

結果:
hoge4.jpg

main_H1_MAX_XY_jbound.py

pytyon main_H1_MAX_XY_jbound.py NETCDFファイル名 変数名 のあとに 
-W 風オプション(0: ベクトル 1:矢羽)
-WT 風間引きオプション(整数を設定すると、その整数分だけデータをスキップして間引く)
-CT カラーパレット番号を入れることで色パターンを設定します. 0:青から赤へ 1: 気象庁降雨分布 2:白から青へ 3:白から赤へ という4パターンあります
-AR AutoRangeを行わないオプション。つまり手動で凡例の値を決める必要がある。DHDLのsubprogs.pyの中で設定しています(-AR を記載しないと自動的に凡例の範囲を検索する)
-O 図をファイルとして保存するオプション。保存ファイル名を指定する。 今回はPNGとJPGを想定。
-T 表示する時刻を指定(大文字のTを指定すると時刻をYYYY-MM-DD-HH:MM:SSのフォーマットで指定)
-t 表示する時刻を指定(小文字のTを指定するとnetcdfの中での初期時刻からのスキップする時刻数を整数で指定)
   時刻を指定しない場合は、インタラクティブに時刻をpytyonが聞いてくれるので、入力する
-z 水平断面を表示する場合の層番号を指定。
-Z 水平断面を表示する、高度をメートル単位で指定
-AMN アニメション支援オプション。図を表示せず、作成のみ、背景の国土地理院地図は最初の一回だけ作成
-JPN 時刻表記をJSTとする。
-INIT モデルデータの場合、入力ファイルの先頭時刻を初期値として図に記載する
-LDN (ORIGファイル):参考までに、LIDENデータの表示。収録したLIDEN.txtと同じようなデータフォーマットであれば、記載可能。
-RLOC(ORIGファイル):参考までに、レーダ観測範囲の表示。収録したCAPPI.ncと同じようにglobal attributeに記載があれば、記載可能。

実行例:

python main_H1_MAX_XY_jbound.py CAPPI.nc REF -t 0 -z 3 -CT 0 -O hoge5.jpg -RLOC

結果:
hoge5.jpg