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を使うのではなく、テキストに変換後利用しました。
サンプルデータダウンロード
気象庁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
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
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
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
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