ラベル GMT の投稿を表示しています。 すべての投稿を表示
ラベル GMT の投稿を表示しています。 すべての投稿を表示

2018/11/05

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になっちゃってて半分にしかならなかった...


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