津波のシミュレーションプログラムを作ってみる:その1
ふと思い立って,津波のシミュレーションプログラムをつくる気になった。
実は一度,大学生だった頃に自力で作成した経験はあるのだが,プログラムも整理していないし,しばらく触っていないので,整理してもう一度あたらしくつくろうと思った。その備忘録をかねてメモをnoteにしてみる。
自分の備忘録用なのでわかりにくいとは思う。しかしもし自分でもやってみようという物好きの方がいて,やり方がわからなかったらコメント欄でやりとりできたらと思う。
さて,まず必要なのは地形データである。以前作成したときは,ETOPO1というデータを利用していたが,今回はもう少し詳細なデータを使ってみたく,GEBCOという15秒(1秒は1/60分,1分は1/60度)メッシュのデータを使ってみることにする。
GEBCOでは,任意の緯度経度の範囲のデータを切り出してDLできるらしい。無料である。日本近海でのシミュレーションをしたいので,下記の範囲で切り出すこととした。
北緯20-60度
東経120-160度
すると下記のようなファイルがDLされた。なお,DLするファイルフォーマットはいくつか選べるようで,アスキーデータ,netCDFなどが選択可能。アスキーデータはテキスト,netCDFはGMTで標高図などを描きたいときにそのまま使えるファイル形式。
・gebco_2022_n60.0_s20.0_w120.0_e160.0.asc
・gebco_2022_n60.0_s20.0_w120.0_e160.0.nc
・gebco_2022_n60.0_s20.0_w120.0_e160.0_relief.jpeg
・gebco_2022_n60.0_s20.0_w120.0_e160.0_relief.png
・GEBCO_Grid_documentation.pdf
・GEBCO_Grid_terms_of_use.pdf
なお,選択した範囲の地形図は下記のようなものとなる。
DLされた標高値を解析で使うためには,標高の数字を取り出す必要がある。それは「gebco_2022_n60.0_s20.0_w120.0_e160.0.asc」に入っているようだ。ファイルの中身をテキストエディタで見ると,このような感じだ。
ん?これは標高で合っているのか?標高だとしたら,これがどの緯度経度に対応しているのか,よくわからない。
そこで一度,GMTを使って標高図を描くことにする。ファイルは「gebco_2022_n60.0_s20.0_w120.0_e160.0.nc」のnetCDFファイル。
うむ,合っていそうだ。日本海溝が深さ8000mくらいだったか。標高の絶対値も合っていそう。
次に,この「gebco_2022_n60.0_s20.0_w120.0_e160.0.nc」のファイルを,GMTのgrd2xyzコマンドでテキストにしてみる。ファイルサイズは2.7GBほどで,テキストエディタが非常に重かったため,コマンドプロンプトのtypeコマンドで上の部分だけ見てみる。
120.00208 59.99792 271.00000
120.00625 59.99792 272.00000
120.01041 59.99792 269.00000
120.01458 59.99792 260.00000
一つ目が東経,二つ目が北緯,三つ目が標高。これはascファイルの1行目を,左から右へと呼んでいったもののようだ。つまりascファイルはやはり標高値の羅列を示したもののようだ。緯度はほぼ60度なので,上が北で合っていそう。
今日はここまで。のんびりやろう。