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の空間解像度があると分かります.