gmt info・gmt grdinfoの使い方

gmtinfo — GMT 6.2.0 documentation
grdinfo — GMT 6.2.0 documentation

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 [email protected] +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

となります。

コメント

タイトルとURLをコピーしました