gmt infoとはデータファイルの各列の最小値と最大値を求めるためのコマンドです。
gmt grdinfoとはDEMデータ等のグリッド情報を知るために用います。
gmt info [データファイル] [-C] [-I【e/b】]
※ -C を付けるとタブ区切り出力。配列に組み込みやすい
※ -I を付けると-R[西/東/南/北]の形で出力されるgmt grdinfo [グリッドファイル] [-C]
※ -C を付けるとタブ区切り出力。配列に組み込みやすい
gmt info
たとえば、適当に
import numpy as np
arr = np.random.randint(0, 100, (10, 3))
np.savetxt("out.csv", arr, fmt='%1i', delimiter=",")
として、out.csvの最小値と最大値を求めるには、
#!/bin/bash
gmt info out.csv
とすれば、
out.csv: N = 10 <4/76> <16/95> <8/85>
とか表示されるはず。
また、
gmt gmtinfo out.csv -C
とすれば、
4 76 16 95 8 85
とタブ区切りとなる。
gmt grdinfo
DEM
たとえば、
#!/bin/bash
gmt grdcut @earth_relief_15s -R120/150/20/50 -Gdem.nc
gmt grdinfo dem.nc
とすれば、
dem.nc: Title: Produced by grdcut
dem.nc: Command: grdcut @earth_relief_15s_p/ -R120/150/20/50 -Gdem.nc
dem.nc: Remark:
dem.nc: Pixel node registration used [Geographic grid]
dem.nc: Grid file format: nf = GMT netCDF format (32-bit float), CF-1.7
dem.nc: x_min: 120 x_max: 150 x_inc: 0.00416666666667 (15 sec) name: longitude n_columns: 7200
dem.nc: y_min: 20 y_max: 50 y_inc: 0.00416666666667 (15 sec) name: latitude n_rows: 7200
dem.nc: z_min: -9968.5 z_max: 3757 name: z
dem.nc: scale_factor: 1 add_offset: 0
dem.nc: format: netCDF-4 chunk_size: 129,129 shuffle: on deflation_level: 3
と出力されるはずです。
また、
#!/bin/bash
gmt grdinfo dem.nc -C
とすれば、
dem.nc 120 150 20 50 -9968.5 3757 0.00416666666667 0.00416666666667 7200 7200 1 1
となるはずです。
ファイル名 経度 経度 緯度 緯度 Z最小値 Z最大値 …
たとえば、GISなどから拾ったGeoTiffを通すと、
sample.tif: Title: Grid imported via GDAL
sample.tif: Command:
sample.tif: Remark:
sample.tif: Pixel node registration used [Cartesian grid]
sample.tif: Grid file format: gd = Import/export through GDAL
sample.tif: x_min: 15555233.515 x_max: 15559897.6987 x_inc: 1.00003938679 name: x n_columns: 4664
sample.tif: y_min: 4255859.7521 y_max: 4258420.8349 y_inc: 1.00003233112 name: y n_rows: 2561
sample.tif: z_min: 0 z_max: 255 name: z
sample.tif: scale_factor: 1 add_offset: 0
+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
と表示されます。
グリッド
#!/bin/bash
for i in `seq 0 1 10`
do
for j in `seq 10 -1 0`
do
echo "${i} ${j} $(($i*$j))" >> hoge.txt
done
done
で作成したCSVをグリッドにしてgrdinfoに通すと、
#!/bin/bash
gmt xyz2grd hoge.txt -R0/10/0/10 -I1 -Gsample.grd
gmt grdinfo sample.grd
gmt grdinfo sample.grd -C
gmt grdinfo sample.grd
hoge.grd: Title: z
hoge.grd: Command: xyz2grd hoge.txt -R0/10/0/10 -I1 -Ghoge.grd
hoge.grd: Remark:
hoge.grd: Gridline node registration used [Cartesian grid]
hoge.grd: Grid file format: nf = GMT netCDF format (32-bit float), CF-1.7
hoge.grd: x_min: 0 x_max: 10 x_inc: 1 name: x n_columns: 11
hoge.grd: y_min: 0 y_max: 10 y_inc: 1 name: y n_rows: 11
hoge.grd: z_min: 0 z_max: 100 name: z
hoge.grd: scale_factor: 1 add_offset: 0
hoge.grd: format: classic
gmt grdinfo sample.grd -C
hoge.grd 0 10 0 10 0 100 1 1 11 11 0 0
となります。
コメント