GMT

데이터 범위 확인 [gmtinfo]

작성자
heukchoo
작성일
2021-01-17 20:21
조회
421
 

시계열데이터 t, x 나, 공간데이터 x, y, z 등을 GMT에서 사용하려면 범위를 알아야 하는 경우가 많다.

-R 옵션은 그래프나 지도로 도시할 도곽의 범위를 지정하는데, 공간데이터의 최대값과 최소값으로 사용하는 경우가 많다.

 
데이터의 최대, 최소값을 확인하려면 gmtinfo를 사용한다.
gmt info 로 작성하여도 된다.
(GMT4 이하 버전에서는 minmax 명령임)




 

아래의 test.txt 데이터를 이용하여 gmtinfo의 사용법을 설명한다.
125  35  10
126  32  20
127  33  -15
 
$ gmt info test.txt

test.txt: N = 3 <125/127> <32/35> <-15/20>

$ gmt info test.txt -C

125  127  32  35  -15  20

$ gmt info test.txt -C -o1

127

$ gmt info test.txt -El

127  33  -15

$ gmt info test.txt -EL

125  35  10

$ gmt info test.txt -EL1

126  32  20
 

기본적으로 입력파일만 설정하면 파일명과 행 개수, 열 별 최대 최소값을 출력한다.

-C 옵션을 사용하면 파일명, 행 개수, 꺾쇠 괄호 등을 표시하지 않고 열 별 최대 최소값을 공백으로 구분하여 출력한다.


gmtinfo 명령으로 계산된 결과에서 특정 열만 출력하려면 -o 옵션을 사용한다.
'-o1' 과 같이 첨자로 열 번호를 지정하며 데이터의 첫 열을 0으로 한다.
'-o2,3' 과 같이 콤마로 여러개 열을 지정할 수 있다.


-E 옵션은 최대값(h 또는 H) 혹은 최소값(l 또는 L)이 있는 '행'을 출력한다.
'-El1' 의 1은 검사할 열 번호이다. 예시에서는 2번째 열에서 값을 검사하여 최소값인 32가 위치한 행을 출력했다.
'-El' 과 같이 열 번호를 생략하면 가장 마지막 열을 기준으로 검사한다.
'-EL' 과 같이 첨자를 대문자로 표기하면 절댓값을 취하여 검사한다.
예시에서 마지막 열의 최소값은 -15 이지만 절대값을 취하여 검사하면 10이 최소값이 된다.
 





서두에서 말했듯이 GMT에서는 데이터의 범위를 지정하는 -R 옵션을 자주 사용하는데 gmtinfo의 -I 옵션을 사용하면 편리하게 -R 옵션을 설정할 수 있다.
126.345  -10.567  10
127.552  10.234  20
 
$ gmt info test.txt -I1

-R126/128/-11/11

$ gmt info test.txt -I0.1

-R126.3/127.6/-10.6/10.3
 

gmtinfo의 -I 옵션은 데이터의 첫번째와 두번째 열만 검사하여 -R옵션의 꼴로 최대, 최소값을 출력한다.

'-I1' 과 같이 뒤에 붙은 숫자는 출력할 자리 수를 나타낸다. 1은 일의 자리, 0.1은 소수 첫째 자리를 의미한다.
'-I1/0.1' 과 같이 열별로 자리 수를 지정할 수도 있다.
유용한 것은 예시의 결과에서 보듯이 반올림 혹은 반내림을 자동으로 계산하여 데이터를 포괄하는 -R 범위를 지정한다.

 



 
다음은 리눅스에서 gmtinfo의 -I 옵션으로 -R 옵션을 변수로 지정하여 사용하는 예이다.
region=`gmt info test.txt -I1`

gmt psxy -JM10c $region -B10mWESN -Sc10p -Gred > test.ps
 

리눅스에서 위와 같은 기호(`)로 명령어를 묶으면 해당 명령어의 결과를 의미한다.
즉, gmtinfo 명령으로 실행된 결과인 '-R126/128/-11/11'이 region의 변수에 저장된다.
이후 psxy로 -R 옵션을 $region 변수로 대체하여 사용하였다.

입력데이터가 바뀔수 있는 스크립트는 위의 방법을 사용하면 매번 -R 값을 지정하지 않아도 된다.

 

 
전체 0