Trajectory analysis

オリジナル・ツールにについてまとめたページになります。Here is a summary of the original Tool tips.

前準備

gradsのインストール

自身のOSにあったgradsをインストールする。

conda のインストールと仮想環境の用意

ここのページを参考に、condaのインストールと仮想環境を用意する。
そのご、下記のコマンドを実行し、仮想環境をpy3にする

$ conda activate py3

Forcing dataの用意

トラジェクトリー解析を行うための外力データを用意する。
送付したデータには、テスト計算用としてIsoGSMのpgbデータがあるので、それを用いた場合について解説する。

TrajAnl/IsoGSM/g2020iso-n/の下に、6時間ごとのpgbファイル(pgb.ft??)がある。
ここからforcing dataを作成するためには、TrajAnl/prep_forcing_IsoGSM.pyを実行する。

※ 事前に、テスト用としてTrajAnl/forcingに2020/1/1から1/7までのforcing dataを作成した。

(py3)$ python prep_forcing_IsoGSM.py

上記コマンドを実行すると、TrajAnl/forcingに必要なデータを抜き出したバイナリ・データが作成される。
IsoGSMの場合のバイナリのデータ構造はnX (144 grids) * nY (73 grids) * 6 (variables) * 4 (byte)である。
このデータはgradsのctlファイルでも読める。データを可視化したい場合は、同じディレクトリにあるforcing.ctlを開いて確認する。

forcing dataに追加することで、モデルシミュレーションされた様々なデータをトラジェクトリー解析に利用することができる。

トラジェクトリー解析

実行

TrajAnl/main_traj.pyは、トラジェクトリー解析を行うためのスクリプトである。
スクリプトを実行するためには、下記のコマンドを実行する。

(py3)$ python main_traj.py

上記コマンドを実行することで、粒子配置位置をまとめたTrajAnl/map/list.location.txtを読み込み、その後適宜forcing dataを読みながらトラジェクトリー解析を行う。main_traj.pyのstrdateとenddateがトラジェクトリーを解析する期間を表す。
※バックトラジェクトリーなので、enddate→strdateと日付が戻るので注意。

TrajAnl/map/list.location.txtに記載されている粒子にはIDが振られる。テキストの上から、0から順に1つずつ増加したIDが与えられる。

デフォルトでは30分ごとに各粒子のトラジェクトリーを計算し、計算終了後に全粒子のトラジェクトリーをTrajAnl/out/out.traj.txt に書き込む。テキスト形式のデータなので、これをもとに適宜描画する。

トラジェクトリーの確認

TrajAnl/draw_traj.pyに簡易なトラジェクトリー確認スクリプトを用意した。
設定したトラジェクトリーIDの経路を確認することができる。

(py3)$ python draw_traj.py

DEBUG modeでの実行

DEBUGモードでは、経度・緯度3度ごとに粒子を配置し、それら粒子のバックトラジェクトリーを計算することができる。計算が上手くいっているかの確認用なので、スクリプトを修正・改良する場合に利用するとよい。