GMT

R/G/B 그리드 파일 만들기 [grd2rgb]

작성자
heukchoo
작성일
2021-01-17 20:27
조회
457
 

Synopsis

grd2rgb infile -Gtemplate [ -Ccpt ] [ -Ixinc[m|s][/yinc[m|s]] ] [ -Llayer ] -Rregion -V[level] [ -Wwidth/height[/n_bytes] ] [ -r ]

 



 
GMT에서는 그리드 파일을 편집하는 다양한 툴을 제공한다.

그 중 앞서 grdimage에서 소개한 R/G/B 그리드 파일을 제작하는 방법을 소개한다.

 
R/G/B 그리드 파일은 일반적인 xyz의 그리드 파일과 달리 z값 대신 r/g/b 값을 각각 가진다.
즉, grd_r.grd 파일은 xyR, grd_g.grd 파일은 xyG, grd_b.grd 파일은 xyB 로 구성된다.
R/G/B 그리드 파일은 공간 이미지의 색상 정보를 저장한 것이다.

R/G/B 그리드 파일을 잘만 이용하면 그리드 파일로 제작하는 이미지들의 색상을 편집하여 재미있는 작업을 할 수 있다.


grd2rgb 툴은 sun raster(*.ras)와 raw 그래픽 파일(*.raw)의 두 종류의 이미지 포맷과 그리드 파일(*.grd)을 이용하여 R/G/B/ 그리드 파일을 제작한다.

 




ImageMagick

 
RAS와 RAW 파일은 잘 사용하지 않은 이미지 포맷이라 많은 그래픽 툴들이 이들 포맷을 지원하지 않는다.
때문에, 먼저 이들 포맷으로 변환이 가능한 이미지 편집 툴을 소개한다.

ImageMagick은 리눅스, 윈도우, 맥 등의 다양한 플랫폼에서 구동가능한 오픈소스 프로그램이다.
GUI 방식과 CUI 방식을 모두 제공하며, 아래의 사이트에서 받을 수 있다.

https://www.imagemagick.org

원하는 플랫폼에 맞는 프로그램을 다운받아 설치한다.
윈도우 버전의 경우 설치 과정의 'Select Additional Tasks' 단계에서 'Install legacy utilities (e.g. convert)'를 체크 하고 설치한다.


설치가 완료 되었으면, 다음의 명령으로 다양한 포맷의 이미지를 RAS와 RAW로 변환할 수 있다.
convert 이미지.jpg 이미지.ras
 

앞에 명시한 이미지 파일은 변환전 포맷의 파일, 뒤의 이미지 파일은 변환할 포맷의 파일이다.
확장자만 지정해주면 해당 포맷으로 변환된다.

ImageMagick은 편리하고 다양한 이미지 편집 기능을 제공하니 공부하면 유용할 것이다.




 

이미지 파일이 준비되었으면 본격적으로 grd2rgb를 사용해 본다.




예시로 위의 이미지를 ras 파일로 준비했다.
(가로x세로 픽셀 = 640x241)


주의! 윈도우에서 아래의 옵션표현 중 %를 사용하는 경우 cmd 에서는 한번만 사용해도 되지만 스크립트로 제작할 때에는 %%로 두번 사용해야 한다.
gmt grd2rgb 이미지.ras -Ggrd_%c.grd

gmt grdedit grd_r.grd -Ggrdp_r.grd -R128/129/35/36

gmt grdedit grd_g.grd -Ggrdp_g.grd -R128/129/35/36

gmt grdedit grd_b.grd -Ggrdp_b.grd -R128/129/35/36

gmt grdimage grdp_r.grd grdp_g.grd grdp_b.grd -JM15c -B10m > test.ps
 

grd2rgb 툴을 이용해 ras 파일을 입력하고 -G 옵션으로 제작할 그리드 파일명을 지정했다.
그리드 파일명을 지정할때는 반드시 %c를 사용해야한다.
%c는 자동으로 r/g/b 각 문자로 치환되어 세개의 파일을 생성한다.

ras 이미지가 세개의 R/G/B 그리드 파일이 되었지만 grdinfo 로 확인해보면 xy 경계값이 0/639/0/240 으로 작성되어 있다.
이것은 원 이미지의 픽셀수에 해당된다.

이것을 원하는 경계값으로 변환하기 위해 grdedit 툴을 사용하였다.
R/G/B 파일을 각각 입력하고 -R 옵션으로 원하는 경계값을 지정하였다.

-G 옵션으로 편집한 후 새로 제작할 그리드 파일명을 지정하였다.
(grdedit 툴은 추후 소개하겠다.)


최종 완성된 grdp_r.grd, grdp_g.grd, grdp_b.grd 세개 그리드 파일을 입력하여 grdimage로 이미지를 제작하였다.
R/G/B 그리드 파일이 색 값을 가지므로 -C 옵션은 사용하지 않는다.




 
이미지 파일을 좌표 값을 가지는 그리드 파일로 변환하여 grdimage로 그림을 그렸다.
별 의미없는 행위 이지만 여러가지 방법으로 활용할 수 있을 것이다.

가령 맵을 편집해서 그려야 하는데 도곽이 있어서 경계 범위는 알지만 이미지 파일만 있는 경우 위의 방법을 이용하면 GMT 툴들을 이용하여 맵을 편집할 수 있을 것이다.

 


 

앞서 설명한 방법은 RAS와 RAW 이미지 포맷을 활용하는 방법이다.

다음은 그리드 파일을 이용하는 방법을 설명한다.

 
gmt grd2rgb data.grd -Ggrd_%c.grd -Cdata.cpt

gmt grd2rgb data.grd -Ggrd_%c.grd -Cdata.cpt -Lr
 

방법은 단순하다.
그리드 파일을 입력하고 -G 옵션으로 제작할 R/G/B 그리드 파일명을 지정한다.

입력하는 그리드 파일은 z값 정보만 가지고 있으며, 색정보가 없기 때문에 -C 옵션을 사용해야 한다.

-C 옵션에 cpt 파일을 입력한다.

결국, grdimage로 그리드 파일과 cpt 파일을 입력해 그려지는 컬러 이미지를 R/G/B 그리드 파일로 만드는 것이다.
 

-L 옵션은 r/g/b 중에 지정한 그리드 파일만 생성한다.
'-Lrb'로 사용하면 위 예제에서 grd_r.grd, grd_b.grd 만 생성된다.

 
-R 옵션으로 경계값을 지정하면 원하는 부분만 떼서 그리드 파일을 제작할 수 있다.

 
-I 옵션으로 격자의 간격을 지정할 수 있다.
surface 툴 사용때와 동일하므로 설명은 생략한다.
 

grd2rgb는 잘 이용하면 GMT 맵에서 색놀이를 할 수있는 재미있는 툴이다.

 

 

 
전체 1

  • 2021-06-12 17:54
    본문에 ras, raw 이미지 포맷만 적용 가능하다고 설명했는데, GMT5에서는 png 등 다른 이미지도 가능합니다.