2017/12/20

JAGURS on Mac (High Sierra)


*** 最近のMacPorts はproj がバージョン5になって,ディレクトリ構造が変わったので Makefile も更新しています.最新の記事を参照して下さい. ***

JAGURSをMacで使う手順は,JAGURS on Mac でまとめましたが,手元がHigh Sierraになったので仕切り直し.

ライブラリ関係は,MacPorts で入れてます.
  • NetCDF
    • netcdf @4.4.1.1_1+dap+netcdf4 (active)
    • sudo port install netcdf +dap +netcdf4
  • netcdf-fortran @4.4.4_1+gcc7 (active)
    • sudo port install netcdf-fortran +gcc7
  • PROJ4
    • proj @4.9.3_0 (active)
    • sudo port install proj
  • FFTW3
    • fftw-3 @3.3.5_1+gfortran (active)

netcdf-fortran の variants を +gcc7 にしました.

HPC for Mac OS X は,High Sierra 版がないので,Sierra 対応な 7.1 を入れました.大事なことを書き忘れていた気がします.JAGURSは,V0407 です.Makefile前回の記事から変更していません.


2017/12/14

Mac OS X の mail コマンドでメールを送る

外向けの 25 番ポートが塞がれているというのはよくある話かと思います.その場合,Postfix の設定ファイルである /private/etc/postfix/main.cfrelayhost を設定してあげれば動くようになります.

relayhost = smtp.example.org

確認は, /var/log/mail.log で出来ます.

あとは,,,認証が入っていることが殆どだと思いますので,その場合は,
relayhost = smtp.gmail.com:587

# GMail SMTP confguration
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
のように設定することが出来ます(GMailの例).

パスワードを設定している /etc/postfix/sasl_passwd は,
smtp.gmail.com:587 username:password
のように記述します.

ほぼ自分用のメモでした...

2017/12/12

Emacs利用のためのiTerm2設定

iTerm2内のEmacsでMewを快適に使うためのキーバインディングを書いてましたが,自分でも新しいマシンに同じ設定をするのが面倒なのでまとめ.

⌘-d ⇒ M-d
⌘-x ⇒ M-x
⌘-< ⇒ M-<
⌘-> ⇒ M->
⌘-u ⇒ M-u
⌘-w ⇒ M-w
⌘-q ⇒ M-q
⌘-% ⇒ M-%

(副作用)
⌘-w ・・・ Windowのcloseが出来なくなります.が,ターミナルの場合は,exit (C-d)でclose出来るので弊害はない.
⌘-q ・・・ iTerm2の終了が出来なくなりますが,exitで各windowをcloseしてあれば,⌘-qがiTerm2の終了として動作します.

(禁忌)
⌘-v ・・・ こいつはペーストなのでやらない
⌘-$ ・・・ スクリーンショットの呼び出しと衝突する

具体的な手順は,iTerm2内のEmacsでMewを使うに書いてあります.

(修正履歴)
2018/02/01 ⌘-q を忘れていたので追記

2017/12/06

JAGURSのデータをQGISで表示する

JAGURSで扱うデータは,NetCDFのちょっと古いバージョンですが標準フォーマットなので,GMTだけではなくQGISでも表示できるはずです.ということで,やってみました.

まずは,JAGURS用に変換した標高データ(gebco2min.grd)です.レイヤーの追加で,座標参照システムとして,EPSG:4326(WGS84な緯度経度)を選択します.


それだけで,モノクロで表示されます.ただし,水深が正の値なので海が白くなってしまいます.


色を付けるには,プロパティ→スタイルで,レンダータイプを「単バンド疑似カラー」にします.色は,RdYIBuにしてみました.負の値が赤に割り当てられていますが,今は水深が正の値なので反転はさせないでおきます.


可視化結果が以下の通り.色は,,,これが良いと言うわけではないので(お薦めを見つけたら書き直します)自由に選んで下さい.


ここに,計算結果のSD01.zmax.grdをオーバーレイします.レイヤーの追加で同じくEPSG:4326を指定すれば読み込み完了です.このデータは正のデータだけとりあえず見たいので,0から1の間で白から赤にします.



これだと,既に読み込んである地形データが白で上塗りされてしまってもったいない状態です.プロパティ→透過性で,「画面から値を追加」で陸域を透過設定します.また,追加のデータなし値に0を追加して波が届かなかった場所を背景の地形にします.


結局,最大波高の色をYIOrRdにしています.

見やすいとは言い難いですが,以下のようになりました.

2017/11/29

JAGURSで遠地津波計算

津波の伝播計算を自分がやりたいようにやるには,結局一番大変なのは海底地形データを準備することのようです.一例として,遠地地震(チリ地震等)による津波を計算するため,グローバルな地形データを用意する手順をまとめておきます.

まずは,地形データを入手する必要があります.陸域であれば,SRTMやG-DEMが使えますが,海では,GEBCO (General Bathymetric Chart of the Ocean) を使うことが出来ます.ユーザ登録をする必要はありますが,フリーで使えます(詳細なライセンスはサイトを確認してください.以下でダウンロードした zip にも入っています).

ダウンロードすべきは,"GEBCO_2014 Grid (30 arc-second interval) の User-defined area or global grid | 2D netCDF" です.これにチェックをして,"Add data to basket" を押して,"View basket" に進んで待ちます.分かりやすいインタフェースとは言い難いですが,リクエストしたデータが用意できるまで少し待つ必要があります.データが準備出来たら,ダウンロードすると zip ファイルを取得できます.解凍すると GEBCO_2014_2D.nc が入っていて,これをJAGURSで使える形に変換します.

注意点は以下の通り

  • 極が入っていると計算できないので,必要な領域(太平洋を中心として日本とチリが含まれる範囲等)の切り出します.
  • この時,日付変更線(東経180度と西経180度)をまたぐので,東経で190度等のように東経で0度から360度までの連続的な座標に変換することも同時に必要です.
  • JAGURSは水深が正なので,標高データであるGEBCOのデータを正負反転(-1をかける)させます.
  • NetCDFの標準(?)である nf ではなく,JAGURSは cf を前提にで作られているので変換します.
    • cfとnfは,grdreformat のオプションで確認することが出来ました.cfは,GMT3の古いフォーマットのfloatで,nfがGMT4のデフォルトのフォーマットのようです.以下は grdreformatの出力の抜粋.
    | ID | DESCRIPTION - GMT 3 netCDF legacy formats               |
    | cf | GMT netCDF format (float) (deprecated)                  |
    ----------------------------------------------------------------
    | ID | DESCRIPTION - GMT 4 netCDF standard                     |
    | nf | GMT netCDF format (float)  (COARDS-compliant) [DEFAULT] |

いくつかやり方はあるはずですが,gmt4を使うなら,

   % grdcut GEBCO_2014_2D.nc -Gtmp.grd -R120/300/-60/60
   % grdsample tmp.grd -Gtmp2.grd -I2m
   % grdmath tmp2.grd NEG = gebco2min.grd=cf

という感じになります.grdcut で領域の切り出しをしています.東端を300とすることで東経の連続データとして変換します.grdsample でも-Rを指定できますが,120/300 のように指定をしても,意図したようには機能してくれませんでした.(必要に応じて,30秒グリッドのオリジナルデータを grdsample で解像度を変更しています.ここでは, -I2m で,2分角に変更しています.)最後に,正負を逆転(grdmathNEG)しつつ, =cf でフォーマットをcf に変換しています.
※ 領域を Baba et al. (2017) に合わせました.
出来上がった gebco.grd は,JAGRUS のgridfile.dat で指定する地形データとして利用することが出来ます.ちゃんと確認していませんが,どうやらディレクトリは正しく処理できないようなので(たぶん,delimiterの違い?),実行ディレクトリにシンボリックリンクを作成するのが妥当かと思います.

gmt4は,port install gmt4 でインストールしています.

   % makecpt -I -Cglobe -Z > gebco.cpt
   % pscoast -U -Rgebco2min.grd -JQ150/18 -V -Dc -W1 -B30g30/15g15 -K > gebco2min.ps
   % grdimage gebco.grd -J -Rgebco.grd -O -P -Cgebco.cpt >> gebco2min.ps
したのが以下の感じです(90度回転や切り出しは別途しています).

参考として,2分角メッシュでdt=5秒で24時間分の計算を,MacBook Airでやってみました.OMP_NUM_THREADS=2 で2並列にしています.参照→JAGURS on Mac

[Timer Output]
+-------------------------------+----------+------------+
|Timer region                   |Called    |Elapsed     |
|                               |          |Time[s]     |
+-------------------------------+----------+------------+
|All                            |         1|    5663.732|
|getpar                         |         1|       0.001|
|read_grid_info                 |         1|       0.000|
|read_bathymetry_gmt_grdhdr     |         1|       0.017|
|read_bathymetry_gmt_grd        |         1|       1.331|
|read_friction_gmt_grd          |         1|       0.167|
|initl_wfld                     |         1|       0.715|
|wet_or_dry                     |         1|       0.103|
|boundary_rwg                   |         1|       0.001|
|maxgrd_init_rwg                |         1|       0.148|
|maxgrd_v_init_rwg              |         1|       0.126|
|tgs_open_ct                    |         1|       0.000|
|hrise_rwg                      |        12|       0.394|
|drise_rwg                      |        12|       1.451|
|dump_gmt_nl_vel                |        97|       0.002|
|dump_gmt_nl_hgt                |        97|      55.068|
|tstep_grid_vel                 |     17281|    1265.025|
|- fxy_rwg                      |     17281|    1264.911|
|- mapgrids                     |     34562|       0.004|
|- outsea_rwg                   |     34562|       7.162|
|- recheck_wod                  |     34562|       0.003|
|maxgrd_v_check_nl              |     17281|    2804.151|
|tstep_grid_hgt                 |     17281|     657.405|
|- hxy_rwg                      |     17281|     650.099|
|maxgrd_check_nl                |     17281|     370.801|
|error_check                    |     17281|     271.747|
|maxgrd_write_gmt               |         1|       0.558|
|maxgrd_v_write_gmt             |         1|       0.528|
+-------------------------------+----------+------------+

MacProで4スレッド計算だと以下の感じです.
[Timer Output]
+-------------------------------+----------+------------+
|Timer region                   |Called    |Elapsed     |
|                               |          |Time[s]     |
+-------------------------------+----------+------------+
|All                            |         1|    3255.667|
(略)

2017/11/16

gdalでnetCDF

MacPorts の gdal は,netCDF 対応は variants になってるので作り直しました.これを機に,もろもろ variants をつけて対応フォーマットを増やしておきます.

port install gdal +expat +netcdf +geos +hdf4 +hdf5 +xerces

これで,海底地形データ(GEBCO)を読むことが出来るようになります.GEBCO は,Geral Bathmetry Chart of the Oceans の略で,最大30秒角(約1km)の海底地形のグリッドデータのことです.遠地の津波を計算する場合にはとりあえず用いられているようです.

持ってきたのは,Gridded bathmetry data の GEBCO_2014 Grid (30 arc-second interval) の2D netCDFです.不思議なことに,INT16 GeoTIFF (data) を持ってこようとチェックすると,
Selected image size 43200 pixels width by 21600 pixels height (Max size allowed 10800 pixels width by 10800 pixels height)
と怒られてしまいます.フォーマットでピクセル数は変わらないと思うのですが... 2D netCDF を持ってくれば良さそうです.

% gdalinfo GEBCO_2014_2D.nc
Driver: netCDF/Network Common Data Format
Files: GEBCO_2014_2D.nc
Size is 43200, 21600
.....

INT16で配布されている GEBCO_2014_2D.nc を JAGURS で使えるように cf (Float32な古いnetCDF形式)にします.

% grdreformat GEBCO_2014_2D.nc GEBCO_2014_2D_cf.nc=cf
(これでちゃんと使えるかの確認はこれから)
  → cfに変換するだけでは JAGURS では使えませんでした.その他にもやってあげる必要がありますので別途まとめました

(余談)秒角と距離の対応:
当然ですが,緯度が変わると経度方向の角度と実距離は変化するので固定ではありませんが,緯度方向は一定になっています.ざっくりですが,赤道(か,少しずれた範囲)を基準に考えて,大凡の実距離に換算できます.

  • 10分角 → 約20km(18km)
  • 5分角 → 約10km(9km)
  • 1分角 → 約2km(1.8km)
  • 30秒角 → 約1km
  • 10秒角 → 約300m
  • 1秒角 → 約30m
なので,世界の地形データでよく使われている SRTM30 の30は,30秒角を意味していて,大体1kmの空間解像度があると分かります.

2017/11/13

QGISでcsvファイルのポイント情報を描画

QGISでcsvのポイント情報を読み込む手順のメモです.ここでは,地震本部の観測施設一覧の内,検潮・津波観測施設(←このリンクは地震本部のWebGISが立ち上がります)を例にしています.

背景は地理院タイルです.
ファイルの読み込みは,レイヤ→レイヤの追加→デリミティッドテキストレイヤの追加…


エンコーディング,ファイル形式(CSV),無視するヘッダー行数(今は無いので0行に修正),XフィールドとYフィールドのカラムを指定します.


[ok]を押すと,CRS(座標系)の設定画面が出てきますので,データのページに「緯度・経度は世界測地系(JGD2000)」と書いてありますので,地理座標系のJGD2000を選択肢ます.と言いたいところですが,見つけるのが大変なので,フィルターのところに入力して検索します.


すると,こんな感じで表示されます.

2017/10/30

QGISインストール

別に今更ではあるが,QGISをOS X Sierraにインストールしたのでメモ.

ダウンロードサイトからOS別のファイルをダウンロードする.
「別途 separate installation of dependency framework (GDAL Complete) が必要です。」という注意書きがありますが,この時点では何も考えなくて構いません.KyngChaos QGIS download pageに行くと,CurrentとLong Term Support を選択できますが,分からなければ,Current で良いでしょう.オプションも,NumPy は既にインストーラーに一緒に入っているようなので,ここでは何も考えずに本体のダウンロードだけで進んでしまいましょう.

dmg を開くと,
1 GDAL Complete
2 NumPy
3 matplotlib
4 Install QGIS
と4つのインストーラーが入っていることが分かります.ここでは,上から順に何も考えずに全部インストールしてしまいます.

インストールは簡単に終わりましたが,2.18.14 がリリースされてるぞと警告されてる...今持ってきたのになんでだ?と思ったら,10月27日に出たばっかりの模様.Mac版は未だか?

QGISで地理院タイル

QGISで地理院タイルを背景として表示する手順です.

まずは,TileLayer Pluginを使えるようにする必要があります.
まずは,プラグイン→プラグインの管理とインストール メニューを出します.

検索窓で,tilelayer と入力すると,TileLayer Pluginが表示されると思いますので,インストールします.

そうすると,Webメニューにタイルレイヤプラグインが追加されます.QGIS 2.18.13をインストールして初回に起動した直後にこれをやったら,失敗しました.原因は分かりませんが,プラグインの読み込み自体が出来ていませんでした.プラグインを一旦アンインストールして,QGISを再起動して,問題なく動きました.



タイル情報は別途設定する必要がありますが,TileLayer Plugin作者のminouraさんのGitHubからダウンロードできます.
https://gist.github.com/minorua/7654132

基本的には,
https://gist.github.com/minorua/7654132#file-gsimaps-tsv
を持ってくれば十分です(GSIMaps.tsv)が,[Download ZIP] ボタンで,2つの tsv ファイルを取得できます.

この時,「明確な保存場所」を自分で決めておいてください.ディレクトリを消したり移動したりしてしまうと,QGISが落ちます.
左下の[設定]ボタンから,ZIPを解凍したディレクトリを指定します.この操作は次回以降省略できます.
表示したいレイヤーを選択して[追加]ボタンを押します.
淡色地図で日本付近を拡大すると,以下のような感じで表示できます.



各点の属性情報は,レイヤパネルにあるレイヤで右クリックすると出て来るメニューの「属性テーブルを開く」を選択すると見ることが出来ます.


ただ,これで表が表示されても,どの点の情報なのか分からなくて使い物になりません...各点の属性を見るには,上部にある操作メニューアイコンのうち,地物情報表示ボタン(iに矢印)を押して,対象の点をクリックすると右側に地物情報パネルが出てきます.その中の,(アクション)の下のアイコンをクリックすると,その点の地物情報が表示されます.各点の情報を見るにはこっちの方が良いと思います.



2017/10/04

Final Air?

Macbook Airが更新されるかどうか,,,楽しみにしてたわけですが,完全に Macbook と Macbook Proに奪われて, Air はちょろっとした改良のみということになってしまいました.そうすると,Pro に替えるか(重い!) Macbook にするか(軽すぎる!)悩みましたが,電源ケーブルも完備できてるし, Thunderbolt display にそのまま繋げられるしということで, やっぱ Air にしました.これで,3代前から book Air って感じなわけですが,もう次はないかな?ということで,最後の Air と思う.

以前は,自分のハードの世代を確認するには Apple のウェブサイトを確認する必要があったのですが,今は「このMacについて」ですぐに出てくるのですね.
MacBook Air 13-inch, 2017 で,機種ID は MacBookAir7,2 らしい.

あと,私の趣味としては,キーボードは英語(US)配列.なので,以下のような設定も必要になってきます.

ついでにお気に入りのインストールを並べておく.


設定:
キーボード→修飾キーで,caps lock を control に変更する.


日本語入力の切り替えは,⌘+[space]にする.英語キーボードなので何かに割り当てる必要がある.Spotlight の呼び出しとかぶるのでそこは覚悟(?)が必要.

何故か,スクリーンセーバの中にある「ホットコーナー」の設定.

なんでこれがデフォルトでONじゃないんだろう?と思うくらい,多用してた「3本指で下にスワイプでアプリケーションExpose」.動かなくてびっくりした.


Finderの基本設定.

2017/09/27

CentOS 7

ものすごく久しぶりにサーバ管理者なるものになった.どのOSで作るのが良いかと思うと,個人ベースでは,Debian一択ですが,そうすると職場内で孤立(?)するので,CentOSにした.で,「何も考えずに」CentOS 7 で始めたら,おおはまり・・・そのメモ.

/etc/init.d/httpd (Apache) が無い

Webサーバなので,httpdパッケージ(Apache)を入れたわけですが,起動スクリプトである /etc/init.d/httpd が無い...

% systemctl | grep httpd
httpd.service loaded active running   The Apache HTTP Server

というのが出来ているので,
% sudo systemctl restart httpd.service
とかやるらしい.service コマンドは systemctl にredirectされるようです.
% sudo service httpd restart
Redirecting to /bin/systemctl restart  httpd.service

さらに自動起動(chkconfig --list の後継)に設定します.
% systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)

% sudo systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

% systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)

ifconfig コマンドがない

ifconfig コマンドも消えたようです./sbin/ にPATHが通ってないからだろと思って,
% sudo /sbin/ifconfig
してもありません.ip だそうです.
% ip address
で全てのインタフェースが表示されるようです.  netstat も無い!と思ったら,パッケージが入っていないだけでした.net-tools パッケージを入れれば使えます.
% rpm -ql net-tools | grep /bin/netstat
/bin/netstat
特定のインタフェースの情報だけ表示したい場合は,以下のようにするようです.
% ip address show eth0

iptableの設定

これは,別に CentOS 7 だからという訳じゃないと思いますが,iptables は
/etc/sysconfig/iptables
で設定するようです.

/var/run が消える

/var/run が起動時に掃除されてしまうようなので,/etc/tmpfiles.d で設定して上げる必要があるようです.

2017/09/10

Mavericks (10.9) から一気に Sierra (10.12) へ更新したった

VMWare Fusionを新しいMacOSに対応させるには,アップグレードパッケージを買わなければいけないのと,とあるVPNソフトが動かなくなるのでMavericks (10.9)のまま維持してきた MacPro と MacBook Air を一気に Sierra (10.12) へ更新したのでメモ.

ダウンロード

何故か,App Store で Sierra で検索してもヒット0なのでどうしたものかと思っていたけど,普通に Google 検索したらここにたどり着いて,App Store 経由でダウンロード&インストール開始.

日本語入力

Google日本語入力を使っているのですが,どうも動きが怪しいので再インストールで解決.保存しておいた辞書も維持されているので,動作が怪しかったら再インストールで良いと思う.ちなみに,MacPro では必要だったけど,MacBook Air では不要だった.

emacs-w3m

mewでHTMLメールが読めなくなっちゃうので,再コンパイル&インストール.

ssh関連

sshサーバ

sshサーバにしていて,公開鍵暗号方式を使っていた場合,
I could not login ssh server with my old DSA key.
と言われて,ログインできなくなります.これはかなり重大事件なわけですが,なんのことはない,OpenSSH 7.4 になって,文字通り old DSA key が受け付けられなくなっただけのことなので,クライアントで ecdsa 等( ssh-keygen -t ecdsa )で作成しなおせば良い.ただし,Mavericks のOpenSSH では ecdsa はサポートしていないので何か対処は考える必要がある.

sshクライアント

sshサーバが ecdsa をサポートしていない場合,引き続き dsa を使えば良いだけのはずですが,OpenSSH 7.4 は,クライアントでも dsa の使用は認めてくれないので, ~/.ssh/config に
  PubkeyAcceptedKeyTypes=+ssh-dss
などとする必要があります.

ssh-agent

Mavericks では,ssh-agent が必要に応じて勝手に起動してくれていたが,Sierra ではその機能がなくなっている.なので,ssh-agent を明示的に起動して上げる必要がありそう(もっとうまい方法があれば良いのですが...).

ssh-agent > ~/.ssh/.auth
(.authの最終行をコメントアウトもしくは削除)
source ~/.ssh/auth を ~/.zshenv などに追記

MacPorts

公式の Migration 手順に従うのが良いかと思います.
一方で,ざっくりと
sudo port -v selfupdate
だけで凌ぐことが出来るのか,出来ないのか不明です(MacBook Airはこちらの手順).

emacs-w3m

mew で HTML メールが見られなくなっているので,再インストールすればいいやと思ったのですが, /usr に書き込めなくなったため, sudo make install しても配備出来ません.

基本ディレクトリ関連

/usr に書き込めなくなったのは,前述の通り.これは root 権限でも書き込めないという状態なので,インストール先を別にする必要があります.

標準アプリ

拡張子で判断されるアプリケーションの設定がクリアされてしまいます.面倒ですが,再設定しています.何か方法があるのかもしれませんが...加えて,Finder のサイドバーもクリアされてしまうので,再設定してます.



2017/09/09

GMT on Mac

JAGURS のファイルが GMT グリッドファイルということなので,いよいよちゃんと GMT を使うべく手元にインストール.MacPorts にあるようなのでそのまま使います.新しいの入れておけば良いだろうと思って, gmt5 をインストールしたけど, grdinfo コマンドが無い...

        % port contents gmt5 | grep grdinfo
          /opt/local/share/doc/gmt/html/_sources/grdinfo.rst.txt
          /opt/local/share/doc/gmt/html/grdinfo.html
          /opt/local/share/doc/gmt/man/man1/grdinfo.1.gz

じゃぁ,と思って gmt4 をインストールしたら,変わったディレクトリにコマンドが入ってました.

        % port contents gmt4 | grep grdinfo
          /opt/local/lib/gmt4/bin/grdinfo
          /opt/local/share/doc/gmt4/html/man/grdinfo.html
          /opt/local/share/doc/gmt4/man/man1/grdinfo.1

なので,最後の仕上げに
        export PATH=$PATH:/opt/local/lib/gmt4/bin
を追加して完成.

第一歩として試したかった,JAGURS 付属の海底地形データの情報を取得.zmax を使って,計算ステップ間隔を決定します.
% grdinfo bathy.SD01.grd
bathy.SD01.grd: Title:
bathy.SD01.grd: Command: grdsample -V -R140/147:30/34/43 -I18c /home/babat/data/bathymetry_thk/bathy.thk.27s.grd -Gbathy.whole.grd=cf
bathy.SD01.grd: Remark:
bathy.SD01.grd: Gridline node registration used
bathy.SD01.grd: Grid file format: cf (# 10) GMT netCDF format (float) (deprecated)
bathy.SD01.grd: x_min: 140 x_max: 147.5 x_inc: 0.005 name: x nx: 1501
bathy.SD01.grd: y_min: 34 y_max: 43 y_inc: 0.005 name: latitude [degrees_north] ny: 1801
bathy.SD01.grd: z_min: -2096.24316406 z_max: 9788.53125 name: z
bathy.SD01.grd: scale_factor: 1 add_offset: 0

2017/08/12

JAGURS on Mac


JAGURS(高性能津波計算コード)の作者の馬場さんから,Macで動いたなら手順を公開して欲しいという依頼がありましたので,まとめておきます.
(シリアル版かつ手抜きなので順次更新します)
(追記:シリアル版といいつつ,OpenMPは有効に出来るようでした.というわけで,MacOSな1台のマシンでやるにはOpenMPで十分.)

【試した環境】

【依存ライブラリ】
NetCDF,PROJ4,FFTW3が必要ということなので,MacPorts でお手軽に入れました.なので,インストール先は全て /opt/local になりますので,それに合わせてMakefileを修正して下さい.NetCDFはFortranから使えるようにするため,netcdf-fortranパッケージもインストールして下さい.かつ,FFTW3もFortranから使えるようにするため,gfortran variant などを付けておいて下さい.
(というのを考えるのが面倒なので,コンパイルする手順も別途作成します)
  • NetCDF
    •   netcdf @4.4.1.1_0+dap+netcdf4 (active)
      • sudo port install netcdf +dap +netcdf4
    •   netcdf-fortran @4.4.4_0+gcc6 (active)
      • sudo port install netcdf-fortran +gcc6
      • (High) Sierraは HPC compilerがgcc7なので +gcc7 かも
  • PROJ4
    • proj @4.9.3_0 (active)
      • sudo port install proj
  • FFTW3
    • fftw-3 @3.3.5_0+gfortran (active)
      • sudo port install fftw-3 +gfortran 2018.11.12加筆(書き漏れ)
あと,少なくとも私の環境では, -lsz (szip) が無いと言われたので,
  % port install szip
しました.

【コンパイル】
まずは,シリアル版.Makefile.SC_ICEをベースにするようにマニュアルに書いてあるけど,Makefileと同じ内容なので,Makefileでスタートする.

【罠】
フォートランのプログラムファイルが .f90 で提供されています.一方,gnu系(?)のコンパイラでは,.f90の場合,preprocessorが動いてくれません!

#ifdef MULTI
  1
Warning: Illegal preprocessor directive

とか言われます.これは, .F90 にすることで解決するそうです.まさか...
というわけで,ファイル名を .F90 にしてあげて(厳密には,preprocessorを使うソースだけで良いですが面倒なので全部),Makefileの %.o: %.f90 を  %.o: %.F90 にします.
(gfortran に -cpp オプションを渡してあげれば良いだけでした)

【Makefile修正箇所】

  • gfortran で .F90 なファイル(.f90と区別される)にpreprocessorを適用するには, -cpp オプションを指定する.
  • gfortran で OpenMP を使うには, -fopenmp オプションを指定する.

FC=/usr/local/bin/gfortran
PROJ4_DIR=/opt/local
CC=/usr/local/bin/gcc
CFLAGS=-g -I${PROJ4_DIR}/include
BASE=-cpp
FFTW3_INCLUDE_DIR=/opt/local/include
FFTW3_LIB=-lfftw3
OPT=-O2 -fopenmp
NETCDF=/opt/local
LIBS=-L$(NETCDF)/lib -lnetcdff -lnetcdf -L/opt/local/lib -lhdf5_hl -lhdf5 -lcurl -lsz -lproj $(FFTW3_LIB)
# MPI=ON

修正済Makefileはここに置いておきます

*追加注(2017/10/04)
% make
/usr/local/bin/gcc -c -g -I/opt/local/include mapproject.c
FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!
make: *** [mapproject.o] Error 1

HPC compilerの /usr/local/bin/gcc を使う場合,as が /opt/local/bin/ になってしまうと,この不具合に当たるようです.PATHの順番を /usr/bin の方が先になっている必要があります.

2017/08/05

「君の名は。」の月

「君の名は。」DVDも発売されましたね♪
書こう書こうと思っていたネタ帳がどこかに紛失してしまったので書き直し.

まず,なんか,もう気に入りすぎちゃって,片手じゃ足りないくらい見ちゃってました.両手では足りる回数でしたが・・・.

んで,何を書こうと思ったかというと,月.
深海監督は,リアルな描写を旨とされているということなんだけど,天文屋からするとちょっとねぇ〜というところがちらほら.
あの描写(進行方向)がされている彗星が地球に落下することは無いんですよね.基本,自分のところに落ちてくる流星(隕石)は,静止流星として見えてないとね...まぁ,これはマニアックな話.
惜しいのは,月齢.3年間時間がずれていて日付が同じ.その日に月の形が同じになるかは月齢が同じかどうかということになる.これは,ちょっと気合いを入れて調べると分かる.例えば,ここで月齢の計算が出来る.ただ,まぁ,ちょっと気合がいると思います.このこよみのページによると,2013年10月で新月だったのは5日.そうすると,三日月(に見える)の日は,10月8日〜10日位なんですね.

んだども,ど〜〜しても,見た瞬間に気になっちゃったのは(そして,何度も確認したのは),2台のクレーン車の上に居た半月.こちらのサイトのように,意味深な解釈もありそうなのですが,自分としては,気になってしょうがないのはこの半月.こればっかりは,何の調べも必要なく,あり得ない.と分かってしまう.何かというと,,,月が光っている向き(半分)が逆.もしくは,昼夜が逆.なんでかって言うと,半月ということは,月と地球と太陽が90度の角度を成しているわけで,もうちょっとわかり易い表現に変えると,光っている側の90度向こう側に太陽が居ることを意味してます.月は太陽に照らされているので当然ですね.
そうすると,何がおかしいかというと,半月で「上」側が光っている場合,太陽は月の上側に居るわけなので,昼間じゃなきゃおかしいのです.か,「下」半分が光ってて,夜.別にそんな話はどうでもいいって?ま,良いです.でも,これは「ウソ」って分かる描写なら別に気にもならないのですが,リアルっぽくあり得ないから気になっちゃいました.虫が食ったような三日月モドキとかはあり得ないって分かるし.

更なる蛇足ですが,1200年周期で彗星が戻ってくることはあるわけですが,,,,同じ場所に落ちるってのはなぁ...でも,「あり得ない」と断言できるものではない.

でも,面白くて何度も観たし,DVDも買いましたで!

(追記)
彗星の分裂というのは,木星に衝突したシューメーカーレビー第9彗星(SL9)に限らず,頻繁に発生している現象です.私の最初の研究はSL9の木星衝突時の近赤外(OASIS)観測記録の解析.卒論は,百武彗星の分裂片の運動解析でした.どっちもちゃんと論文化していないのは,,,反省.

2017/03/30

Adobe Acrobat Pro DC for Mac

Adobe Acrobat Proが古い(IX)ままだったので,DCを買ったのだが,パッケージ署名の証明書が怪しいと・・・



開いてみたところ,有効期限切れでした.今が3月30日.証明書は2月22日まで.惜しいなぁ...在庫で眠ってる間に期限が切れたかな.


ダウンロードパッケージなら証明書の更新も出来るでしょうけど,CDに焼いたパッケージと成ると,再作成になるからなんとも難しいですね.

2017/03/28

iPad mini 4

iPad mini 4 なるものが送られてきた.

普通にセットアップを進めていたら,なんと,指紋認証(Touch ID)ですか.面白そうだったので設定してみたが,かなぁ〜りしつこく読み取りをさせられた.とりあえず1回目の認証は成功.今後どうなるかな.

手元にあるのは,MD533J/A (初代 iPad mini)だから一気に進化だ.自分で買ったものじゃないので,容量は半減だけど...

使いまわせると思った風呂蓋がどうにもくっつきが悪いな・・・スタンドにならないし.

2017/03/24

4k モニタ

値段がほとんど変わらなかったので,4kモニタを買ってみた.要件としては,27インチワイドサイズであること.悲しいかな,AppleのThunderbolt displayがいつの間にか製造中止になっちゃってたので,代替品を探してたら,DellのP2715Qがヒットしました(リンクは3/24現在無効になってる...).
問題はHDMIが1つとThunderbolt2しかないMacProとどうやって接続するか.と思ってたのですが,何の事はない,Thunderbolt2 と mini Display port って形状が同じで互換性があるのですね.DP-MiniDPが付属してくるので,MiniDPをThunderbolt2の口に繋げば良いだけでした.

にしても,4kだと文字が小さい・・・
これで文字を大きくしてたら意味がないとかなんとかそんな議論もあるみたいですが,どう使えるかな.

2017/03/03

VNC on Mac

驚いた...もし,複数DISPLAY持ったMacにVNCで接続したらどうなるんだろう?と思ってたら,ちゃんと全画面出てきた.設定した配置のままですね.


さらにメニューで一つのDISPLAYを選択することも出来るので,かなり良い.

2017/02/24

黒みつきなこもち(ガリリッチ)

桔梗信玄餅の桔梗屋監修のガリリッチ新シリーズ,黒みつきなこもち
これはいける.
もちも柔らかいし.黒みつきなこもイイ.

敢えて言うなら,餅が上半分,黒蜜が下半分だったので全体的に入ってる(もちと黒蜜を同時に食せる)といいなぁ.


パッケージ,2種類あったから,2つ買ってしまったが,もう1種類あるのか...また買わねば.