2018/11/05

JAGURS on OSX (Brief summary in en)


I succeeded to compile and run JAGURS on Mac OSX in the following steps.

1. Install libraries via MacPorts

$ port install netcdf +dap +netcdf4
$ port install netcdf-fortran +gcc8
$ port install proj
$ port install fftw-3 +gfortran
$ port install szip

2. Install compiler from HPC Mac OS X compiler.

3. Download JAGURS from GitHub

4. Modify Makefile using CC=/usr/local/bin/gcc and FC=/usr/local/bin/gfortran. You should use -cpp option in gfortran command line to use preprocessor and -fopenmp option to use OpenMP directive. OR download Makefile.MacOSX.0500 and save as Makefile in src/ directory (diff patch).

日本語はこちら

gdalでnetCDFをFITSに変換する

GEBCOを紹介したら,天文な方からFITSで無い?と言われたので,変換してみた.

地震津波の分野では,NetCDFがよく使われています.もちろん,リモセンの時にも見てたので色々な分野で使われていると思います.一方,MacPortsのデフォルトのgdalではサポートしていないので,variants で指定する必要があります.

1年前にgdalでnetCDFを使うために,以下のようにしていました.
port install gdal +expat +netcdf +geos +hdf4 +hdf5 +xerces

さらにFITS も扱えるようにするため,さらにproj4を忘れていたようなので,以下のように作り直し(正確には新しいMacBookで新規インストール)ました.
port install gdal +expat +netcdf +geos +hdf4 +hdf5 +xerces +cfitsio +proj4

% gdalinfo GEBCO_2014_2D.nc | head -1
Driver: netCDF/Network Common Data Format
こんな感じで読めたのを確認しました.

% gdal_translate GEBCO_2014_2D.nc -of FITS GEBCO_2014_2D.fits
で変換.どうやって確認しようかなと思ったら,MacPotsに ds9 が入ってました!これは驚き.

ds9 @7.6b8_1 (science, graphics)
    SAOImage DS9 astronomical imaging and visualization application

% foreach i ({0..23})
dd if=GEBCO_2014_2D.fits iseek=$i bs=80 count=1 2>/dev/null && echo
end
SIMPLE  =                    T / file does conform to FITS standard
BITPIX  =                   16 / number of bits per data pixel
NAXIS   =                    2 / number of data axes
NAXIS1  =                43200 / length of data axis 1
NAXIS2  =                21600 / length of data axis 2
EXTEND  =                    T / FITS dataset may contain extensions
COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy
COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H
LONGSTRN= 'OGIP 1.0'           / The HEASARC Long String Convention may be used.
COMMENT   This FITS file may contain long string keyword values that are
COMMENT   continued over multiple keywords.  The HEASARC convention uses the &
COMMENT   character at the end of each substring which is then continued
COMMENT   on the next keyword which has the name CONTINUE.
HIERARCH LAT#AXIS = 'Y       '
HIERARCH LON#AXIS = 'X       '
END

ヘッダも出来てた.

が,,,180度回転してるな...

ImageMagickのconvert で -rotate 180 で回転は出来たものの,出力されたFITSは正の値しか持ってなかった.一度値を変換して,ほげほげすれば出来そうな気もするけど,一旦おしまい.

(追記 11.8)
ファイルがでか過ぎてマカリで開けなかったという連絡が来たので,半分に解像度を落とす.
 % grdsample  GEBCO_2014_2D.nc -GGEBCO_2014_2D_1min.nc -I1m
 % gdal_translate GEBCO_2014_2D_1min.nc -of FITS GEBCO_2014_2D_1min.fits

これで,サイズは1/4と思ったら,Float32になっちゃってて半分にしかならなかった...


2018/10/27

ガウス分布初期波源計算

JAGURSでは,Gaussian分布を海底地殻変動(初期水位)として計算することが出来ます.が,,,マニュアルには球座標使用の場合しか書かれていないので少し補足です.

tsun.par に
init_disp_gaussian =1
とすることで使えます.で,gaussianというファイル名でパラメータを用意します.が,単位に注意が必要です.

球座標の場合:
&gaussian h0=波高 lon_o=経度[度] lat_o=緯度[度] L=半値幅[km] /

直交座標の場合:
&gaussian h0=波高 lon_o=X座標 lat_o=Y座標 L=半値幅[座標系の単位] /

のように,m(メートル)が単位になっているUTM等を利用している場合,Lで指定する半値幅はmが単位になります.一方で,球座標の場合,座標は「度」単位,半値幅はkm単位で固定です.

なお,波高に負を指定することで凹んだ初期水位を表現することも可能です.実装は mod_init_disp_gaussian.f90 に入っていますので必要な関数に書き直しちゃうのも簡単かなと.

JAGURS V0407以前では,直交座標の場合には波高(h0)が指定できない(1 mに固定)ので注意が必要です.

2018/10/23

JAGURS on Mac 2


だいぶ時間も経ったし,JAGURSも新しくなったので手順の見直しも兼ねて再整理しておきます.以前の記事はこちら

基本的な環境は以前と同じ.



$ port install netcdf +dap +netcdf4
$ port install netcdf-fortran +gcc8
$ port install proj
$ port install fftw-3 +gfortran
$ port install szip

修正後Makefile
Makefileの差分

というわけで,v0501になっても,手順の変更はなしでした.

せっかくなのでバイナリも配ろうかと思いましたが,どうやらMac OSXではstatic linkが出来ないとのこと...諦めます(手順を教えて頂ける方がいらっしゃいましたらやります).これで出来る??? https://code.i-harness.com/ja/q/ce413

2018/10/04

QGIS 3.x

新しもの好きではないので積極的に何かを食べてみようとは思わないのですが,QGISはそろそろ 3.x にしておいた方が無難かなと思ったのでやってみた.

https://www.qgis.org/ja/site/forusers/download.html
インストーラーも整備されているので何のこともないのですが,Pythonがやっかいでした.日本人が書いていると思うのですが,分かりにくい日本語...Python 3.6 が必要なのですが(私はMacPorts で3.6を入れている),このQGIS3は,https://www.python.org/ 本家で配布されているバイナリじゃなきゃ動きませんよ.ということでした.こういう基盤ツールが複数入るのは後々の罠になるので嫌なのですが,そうも言っていられないので,最新 3.6.6 はあるものの, 3.6.5 で動作確認したと書かれているので(どうせQGIS以外では使わないので) 3.6.5 のバイナリをインストールしました.それ以外は,書いてある通りでOK.

最低限の整備として,背景地図.

Open Street Map の場合:
XYZ Tiles -> OpenStreetMap -> 選択したレイヤをキャンパスに追加 で終わり...


地理院地図の場合:
XYZ Tiles -> 新しい接続 に
標準地図 https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png
淡色地図 https://cyberjapandata.gsi.go.jp/xyz/pale/{z}/{x}/{y}.png
を追加.
参考)QGIS3で地理院地図を追加する方法
地理院地図)https://maps.gsi.go.jp/development/ichiran.html

困ったな.津波の正負の波を入れるのに,赤ー青をよく使っていましたが,「反転」のチェックボックスがなくなった...困ったな...と思っていたら,カラーテーブルを選ぶプルダウンの中に,"invert color" があった...


あまりにもQGIS 3.x の情報が少ないので,そういう検索に掛かり易いようにしておこうかなと思います.