GMT

다양한 심볼 그리기 [psxy]

작성자
heukchoo
작성일
2021-01-17 20:16
조회
707
Synopsis

psxy [ table ] -Jparameters -Rwest/east/south/north[/zmin/zmax][+r] [ -A[m|p|x|y] ] [ -B[p|s]parameters ] [ -Ccpt ] [ -Ddx/dy ] [ -E[x|y|X|Y][+a][+cl|f][+n][+wcap][+ppen] ] [ -F[c|n|r][refpoint] ] [ -Gfill ] [ -Iintens ] [ -K ] [ -L[+b|d|D][+xl|r|x0][+yl|r|y0][+ppen] ] [ -N[c|r] ] [ -O ] [ -P ] [ -S[symbol][size[u] ] [ -T ] [ -U[stamp] ] [ -V[level] ] [ -W[pen][attr] ] [ -Xx_offset ] [ -Yy_offset ] [ -aflags ] [ -bibinary ] [ -dinodata ] [ -eregexp ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -iflags ] [ -pflags ] [ -ttransp ] [ -:[i|o] ]

 



앞에서는 psxy를 이용해 기본적인 도형을 그리는 것을 설명했다.
psxy로 그릴 수 있는 심볼은 다양하며 본 페이지에서 상세하게 소개한다.






단순한 형태의 심볼

입력 값은 "x, y" 2개의 컬럼으로 구성된 위치 값이다.
'-Sa20p'와 같이 심볼을 선택하는 첨자와 심볼의 크기만 설정하면 된다.

다음은 각 첨자와 그와 대응되는 심볼 이미지 이다.

    -      +      a      c      d      g      h    
   i       n      s      t      x      y      p 


 
막대형 심볼

-Sb[size[c|i|p|u]][b[base]]

-SB[size[c|i|p|u]][b[base]]


길이가 다양한 막대를 그릴 수 있다. 첨자 b는 수직 막대이고 첨자 B는 수평 막대이다. 설명은 수직 막대 기준으로 한다.
입력 값은 "x, 수직높이" 2개의 컬럼이나 "x, 수직높이, 기준높이" 3개의 컬럼을 가질 수 있다.(높이는 -R 옵션 범위에 따른다.)

'-Sb10p'와 같이 첨자 b 뒤에는 막대의 가로 너비가 된다.
단위 p를 u로 사용할 경우 도곽의 눈금을 단위로 사용한다.

막대의 시작점인 기준높이는 기본으로 y축 0값이 된다. '-Sb10pb10'과 같이 가로 너비 다음으로 추가된 b는 기준높이(base)를 설정한다.

다음은 사용 예시와 결과이다.(윈도우 기준으로 echo 명령을 사용)
echo 2 2 | gmt psxy -JX15c/5c -R0/14/0/6 -Bf1g1wesn -Sb10p -Gblue -K > symbol.ps

echo 4 2 | gmt psxy -J -R -Sb20p -Gblue -K -O >> symbol.ps

echo 6 4 | gmt psxy -J -R -Sb10p -Gblue -K -O >> symbol.ps

echo 8 2 | gmt psxy -J -R -Sb10pb1 -Gblue -K -O >> symbol.ps

echo 10 2 1 | gmt psxy -J -R -Sb10pb -Gblue -K -O >> symbol.ps

echo 12 2 | gmt psxy -J -R -Sb1u -Gblue -O >> symbol.ps
 



 
타원 심볼

타원형을 그릴 수 있다. 첨자는 e와 E가 있으며 e 먼저 설명한다.

입력 값은 "x, y, 방향, 장축길이, 단축길이" 5개 컬럼이다.
방향은 도(degree) 단위이고 0도는 장축이 수평되도록 타원이 그려진다.
방향은 값은 반시계 방향으로 증가한다.
길이는 프로젝션(-J옵션)에 무관하며, 첨자 e 다음으로 길이의 단위를 설정한다.

첨자 E는 입력 값이 첨자 e와 같이 5컬럼이다. 그러나 방향은 0을 북으로하는 동서남북 방향을 사용한다.(시계방향)

X 프로젝션을 사용하는 경우 축의 길이는 -J 옵션의 단위에 좌우되어 별도로 단위를 설정하지 않는다.

다음은 X 프로젝션을 사용한 경우이다.
(프로젝션의 단위는 cm, 첨자 e는 inch, 첨자 E는 단위를 지정하지 않았다)
echo 6 3 0 4 2 | gmt psxy -JX15c/6c -R0/15/0/6 -Ba1f1g1WESN -Sei -Gblue -K > symbol.ps

echo 13 3 0 4 2 | gmt psxy -J -R -B -SE -Gred -O >> symbol.ps
 



 
첨자 e와 E는 지도 투영법을 사용할 경우 차이가 확연하다.
첨자 E의 경우 축의 길이는 km 단위를 사용하며, 투영법에 따라 형태가 변형된다.

다음은 메르카토르 도법에서 비교이다.
echo 30 40 20 4 2 | gmt psxy -JM15c -R0/100/20/60 -Ba10f10g10WESN -Sec -Gblue -K > symbol.ps

echo 70 40 20 1000 500 | gmt psxy -J -R -B -SE -Gred -O >> symbol.ps
 



참고로 '-SE-'와 같이 첨자 E 뒤에 -를 붙이면 원을 그린다. 이때 입력 값은 "x, y, 지름"의 3개 컬럼을 사용한다.

 
전선(Front) 심볼

-Sf
gap[/size][+l|+r][+b+c+f+s+t][+ooffset][+p[pen]]

 
전선은 일기예보에서 고기압, 저기압과 같이 성질이 다른 두 대상이 만나는 경계를 말한다.
전선심볼은 기압전선과 같은 경계를 나타낼 수 있다.

입력값은 '선'을 그릴때와 같은 2열의 'x, y' 값들이다.

 
다음은 전선심볼의 옵션별 코드와 그 결과이다.(data는 두 지점 값을 갖는다.)
type data0.txt | gmt psxy -JX15c/8c -R0/15/0/8 -Ba1f1WESN -Sf2 -K > symbol.ps

type data1.txt | gmt psxy -J -R -B -Sf2 -W2p,blue,- -K -O >> symbol.ps

type data2.txt | gmt psxy -J -R -B -Sf2/1 -K -O >> symbol.ps

type data3.txt | gmt psxy -J -R -B -Sf-4/0.2 -K -O >> symbol.ps

type data4.txt | gmt psxy -J -R -B -Sf2/0.5+r -K -O >> symbol.ps

type data5.txt | gmt psxy -J -R -B -Sf2/0.5+r+t -Gred -K -O >> symbol.ps

type data6.txt | gmt psxy -J -R -B -Sf2/0.5+r+s+o1 -O >> symbol.ps
 



 
갭(gap)은 심볼의 간격을 의미하고, 사이즈(size)는 심볼의 크기이다.
갭의 값이 음수이면(대시를 붙이면) 등간격으로 나눠진 심볼의 개수로 해석된다.

첨자 +r을 붙이면 심볼의 오른쪽만(반쪽) 표시하고, +l은 왼쪽만 표시한다.
기본은 심볼을 중앙에 놓고 모두 표시한다.

심볼의 모양은 첨자로 선택할 수 있다.
박스(+b), 원(+c), 선(+f), 화살표(+s), 삼각형(+t)이 있고, 기본은 선이다.

첨자 +o는 시작점에서 첫 심볼의 간격을 줄때(offset) 사용한다.
첨자 +p로 선의 스타일을 지정할 수 있고, -W옵션과 -G옵션으로 스타일을 지정할 수 있다.

 
기울임 사각형 심볼

각도를 지정하여 기울어진 사각형의 심볼을 그릴 수 있다.

입력값은 'x, y, 각도, 가로길이, 세로길이'의 5개 열이다.
'-Sj'를 사용하는 경우 각도는 수평선의 우측을 0으로 하며 반시계 방향으로 나타낸다.
'-SJ'를 사용하는 경우 각도는 방위각이 되며, 맵 프로젝션을 사용하는 경우 프로젝션에 종속되어 그려진다.
사각형의 가로, 세로 길이도 프로젝션의 거리 단위로 표현된다.
'-SJ-'로 사용하는 경우 입력값은 'x, y, 각도' 3개 열만 사용한다.



 
사용자 심볼

사용자 심볼은 별도의 페이지에서 자세히 설명한다.

 
문자심볼

글을 심볼로 사용한다.
입력값은 'x, y' 2개 열이다.

 
echo 2 1 | gmt psxy -JX15c/4c -R0/10/0/2 -Ba1f1WESN -Sl2+theuk -K > symbol.ps

echo 5 1 | gmt psxy -J -R -B -Sl1+tchoo+jLT -Gred -W0.5p,blue -K -O >> symbol.ps

echo 8 1 | gmt psxy -J -R -B -Sl1+t흑추+fHYGoThic-Medium--KSC-EUC-H,blue -O >> symbol.ps
 



 
'-Sl2+t글'의 2는 폰트 크기이다. 첨자 +t뒤에 출력한 글을 입력한다.
위 두개의 값은 필수 입력사항이다.

첨자 +f는 폰트를 설정할 수 있다.
+f 뒤에는 폰트명을 입력하며, 뒤에 콤마로 구분하여 폰트색을 설정할 수 있다.
폰트 스타일은 -W, -G 옵션으로 설정할 수도 있다.

첨자 +j는 출력 위치  x, y에 맞출 글의 위치 이다.
글을 사각형으로 보았을 때 LT(좌상), LM(좌중), LB(좌하), CT(중앙상), CM(중앙중), CB(중앙하), RT(우상), RM(우중), RB(우하) 중에서 선택해서 입력한다.

 
원호벡터 심볼

원하는 각도의 원호를 그릴 수 있다.
입력값은 'x, y, 중심점에서 거리, 시작각도, 종료각도'의 5개 열이다.

 
echo 1 1 1 10 60 | gmt psxy -JX15c/4c -R0/10/0/2 -Ba1f1WESN -Sm1 -K > symbol.ps

echo 2 1 1 10 60 | gmt psxy -J -R -B -Sm0.2c+b -K -O >> symbol.ps

echo 3 1 1 10 60 | gmt psxy -J -R -B -Sm0.4c+e -K -O >> symbol.ps

echo 4 1 1 10 60 | gmt psxy -J -R -B -Sm0.4c+e+l -K -O >> symbol.ps

echo 5 1 1 -60 60 | gmt psxy -J -R -B -Sm0.2c+e+b -K -O >> symbol.ps

echo 5 1 | gmt psxy -J -R -B -Sp0.2 -K -O >> symbol.ps

echo 6 1 2 -60 60 | gmt psxy -J -R -B -Sm0.2c+e+b -K -O >> symbol.ps

echo 6 1 | gmt psxy -J -R -B -Sp0.2 -K -O >> symbol.ps

echo 8 1 1 0 90 | gmt psxy -J -R -B -SM1 -O >> symbol.ps




 
'-Sm1'과 같이 첨자가 붙지않은 상태에서 1값은 의미가 없다.
x, y는 중심점이 되고 중심점에서 거리값 떨어진 곳에 원호를 그린다.
각도는 수평선의 우측방향을 0으로 하며, 반시계 방향으로 나타낸다.

첨자 +b는 시작점에 화살표를 그린다. '-Sm0.2c'와 같이 0.2센티 크기로 지정할 수 있다.
첨자 +e는 종료점에 화살표를 그리며, 첨자 +l은 화살표 왼쪽만 그리고 첨자 +r은 오른쪽만 그린다.
첨자 +m은 선 가운데 화살표를 그린다.
첨자 b, e, m에 'bt'와 같이 추가 첨자를 붙여 헤드(화살표)의 모양을 바꿀 수 있다.
(종료선 t, 원 c, 화살촉 i, 화살선 A)

첨자 +h는 화살표의 모양을 바꾼다.(-2~2 범위의 값)

'-SM'으로 사용하는 경우 원호의 내각이 90도인 경우 직각선으로 표현한다.

-W, -G 옵션으로 원호 및 화살표의 스타일을 지정할 수 있다.

 
인용선 심볼

인용선 심볼은 별도의 페이지에서 자세히 설명한다.

 
사각형 심볼

원하는 가로세로 크기의 사각형을 그린다.

'-Sr'로 사용하는 경우 입력값은 'x, y, 가로크기, 세로크기' 의 4개 열이다.
'-SR'로 사용하는 경우 모서리가 곡선인 사각형을 그린다.
입력값은 'x, y, 가로크기, 세로크기, 모서리 반경' 의 5개  열이다.
입력값 예(1 1 3 2 0.2)

-W, -G 옵션으로 스타일을 지정할 수 있다.

 
벡터 심볼

화살표의 벡터를 그린다.
입력값은 'x, y, 각도, 길이'의 4개 열이다.

'-Sv'의 경우 각도는 수평선 우측을 0으로 하며, 반시계 방향으로 나타낸다.
'-SV'의 경우 각도는 방위각으로 표현되며 맵 프로젝션에 종속된다.

'-S='의 경우 '-SV'와 동일하며 입력값의 길이가 맵 프로젝션에 종속된다.
('-S=10p' 같이 화살표 크기 단위를 주의해야 한다.)

옵션의 첨자는 원호벡터 심볼과 동일하다.
'-Sv0.2c+b'와 같이 화살표의 크기와 위치(시작점)를 지정한다.

-W, -G 옵션으로 스타일을 지정할 수 있다.

 
파이 심볼

파이 모양의 심볼을 그린다.

입력값은 'x, y, 시작각도, 종료각도'의 4개 열이다.
(시작각도와 종료각도는 원호벡터 심볼을 참고)

'-Sw'의 경우 각도는 수평선 우측을 0으로 하며, 반시계 방향으로 나타낸다.
'-SW'의 경우 각도는 방위각으로 표현되며 맵 프로젝션에 종속된다.

'-S1'와 같이 x, y 값으로 부터 반지름 크기를 지정할 수 있다.
첨자 +a는 원호만 그리며, 첨자 +r은 반지름선만 그린다.

-W, -G 옵션으로 스타일을 지정할 수 있다.

 

 

 
전체 0