JOISS 관할해역 해양정보 공동활용시스템은 해양연구자료 전문 리포지토리입니다.
| |

R

R을 이용한 GEBCO자료 시각화 - (2)활용튜토리얼

이번 튜토리얼에서는 다양한 함수를 활용하여 GEBCO자료를 시각화하는 방법을 알아보겠습니다.

GEBCO자료가 없는 사용자는  R을 이용한 GEBCO자료 시각화 - (1)기본튜토리얼을 먼저 보시고 따라해 주시기 바랍니다.

· R에서 GEBCO데이터 불러오기  TOP

활용튜토리얼에서는 서해중부연안 서해중부연안(123,35,127,38) 범위에 해당하는 데이터를 활용하여 시각화 작업을 해보겠습니다.
먼저, 서해중부연안(123,35,127,38) 범위에 해당하는 데이터를 불러옵니다.
GEBCO의 netCDF파일을 사용하기 위해 "marmap" 패키지를 설치해 줍니다.

					install.packages("marmap")

westsea라는 변수에 서해중부연안의 수심 데이터를 저장 후 데이터를 확인해 보겠습니다.

					library(marmap)

					westsea <- readGEBCO.bathy(file="C:/Users/kesti/Documents/R/GEBCO_R/data/GEBCO_2014_2D_123.0_35.0_127.0_38.0.nc") 
					
					summary(westsea)
					##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
					## -114.00  -73.00  -61.00  -37.89  -14.00 1018.00
					##                  34.9958333333333 35.0041666666667 35.0125
					## 123.004166666667              -70              -70     -70
					## 123.0125                      -70              -70     -70
					## 123.020833333333              -70              -70     -70
					## 123.029166666667              -70              -70     -70
					## 123.0375                      -69              -69     -69
					##                  35.0208333333333 35.0291666666667
					## 123.004166666667              -71              -71
					## 123.0125                      -70              -70
					## 123.020833333333              -70              -70
					## 123.029166666667              -69              -70
					## 123.0375                      -69              -70

서해중부연안의 데이터 요약을 확인해 보면 481 x 361 행렬이며, 수심 통계량은 최솟값과 최댓값이 각각 -114.0m, 1018.0m이고 평균값은 -37.89m임을 알 수 있습니다.

이제, 서해중부연안 데이터에 다양한 옵션을 추가하여 시각화를 해보겠습니다.

· 다양한 옵션을 추가하여 GEBCO데이터 시각화 하기  TOP

수심에 따른 색 자동 부여

plot함수 사용 시 image 함수에 true값을 넣어주면 색이 자동적으로 부여됩니다. scaleBathy함수를 하용하여 스케일바를 삽입할 수 있고, 수치를 조절하여 스케일을 조절할 있습니다.

					plot(westsea, image = TRUE)
					scaleBathy(westsea, deg = 1.03, x = "bottomleft", inset = 5)

수심에 따라 원하는 색 지정

colorRampPalette 함수를 이용하여 색을 지정할 수 있습니다.

					blues <- colorRampPalette(c("royalblue1","dodgerblue1","steelblue1","lightblue1","white"))
					plot(westsea, n = 1, image = TRUE, bpal = blues(100))
					scaleBathy(westsea, deg = 1.09, x = "bottomleft", inset = 5)

등심선을 추가하여 시각화

					plot(westsea, image = TRUE, bpal = blues(100),
					     deep = -100,
					     shallow = 0,
					     step = 30, 
					     lwd = 1, lty = 1,   
					     col = "black", 
					     drawlabel = TRUE)
					scaleBathy(westsea, deg = 1.09, x = "bottomleft", inset = 5)

c 함수를 사용하여 조건에 따른 색 부여하기

					plot(westsea, image = TRUE, bpal = blues(100),
					     deep = c(-100,-10),             ## deep 함수 범위 지정
					     shallow = c(-10, 0),            ## shallow 함수 범위 지정
					     step = c(30, 50),               ## deep, shallow 함수의 등수심 간격은 50
					     lwd = c(1, 1), lty = c(5, 1),   ## deep, shallow 함수 범위의 등선 굵기와 종류는 점선(5)과 실선(1)로 표출 
					     col = c("white", "black"),      ## deep 함수 범위의 등선은 흰색, shallow 함수 범위의 등선은 검정색으로 표출
					     drawlabel = c(TRUE, TRUE))      ## deep, shallow 함수의 등수심 값 표출
					scaleBathy(westsea, deg = 1.09, x = "bottomleft", inset = 5)

육지와 바다에 각각 색상 표시

					blues <- c("royalblue1","dodgerblue1","steelblue1","lightblue1")

					plot(westsea, image = TRUE, land = TRUE, lwd = 0.1,
					     bpal = list(c(max(westsea),0, "BlanchedAlmond"),
					                 c(min(westsea),0, blues)),
					     drawlabels = TRUE,
					     col = "white")
					scaleBathy(westsea, deg = 1.09, x = "bottomleft", inset = 5)

이것으로 활용튜토리얼 1편을 마치겠습니다.

다음 GEBCO자료 튜토리얼에서는 지도 내 정점 및 라인 추가, 범례 추가에 대한 내용을 다뤄보도록 하겠습니다.  TOP