정보
-
업무명 : "rsoi" 패키지를 통해 엘니뇨-남방진동 (El Nino-Southern Oscillation) 자료 다운로드 및 가시화
-
작성자 : 이상호
-
작성일 : 2020-03-08
-
설 명 :
-
수정이력 :
내용
[개요]
-
안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.
-
El Nino-Southern Oscillation (ENSO)은 지구 대기 순환을 변화시키는 능력으로 인해 지구상에서 가장 중요한 기후 현상 중 하나이며 이는 전 세계 온도와 강수량에 영향을 끼칩니다.
-
이러한 ENSO는 중부 및 동부 열대 태평양의 수온 변화와 관련된 반복되는 기후 패턴입니다. 약 3 년에서 7 년 사이의 기간 동안 해수면 온도는 일반 태평양에 비해 1-3 °C까지 따뜻하거나 차가워집니다.
-
이는 ENSO 진동으로서 온난화 또는 냉각화는 열대 지방의 강우 분포에 직접적인 영향뿐만 아니라 미국 및 기타 지역의 날씨에도 큰 영향을 줄 수 있습니다. 엘니뇨 (El Nino) 와 라니냐 (La Nina)는 ENSO 진동의 극단적인 단계입니다. 이 두 단계 사이에는 ENSO 중립이라는 세 번째 단계도 있습니다.
-
엘니뇨 (El Nino)
-
중부 및 동부 열대 태평양에서 해수면 또는 평균 해수면 온도 (SST)의 온난화의 경우 인도네시아에서는 강우량이 감소하는 반면 중부 및 동부 열대 태평양에서는 강우량이 증가합니다.
-
일반적으로 적도를 따라 동쪽에서 서쪽으로 불어오는 지표면 바람 (동풍)은 약화되거나 다른 방향 (서쪽에서 동쪽 또는 서풍)으로 불기 시작합니다. 일반적으로 해수면 온도가 평상시보다 따뜻할수록 El Nino가 강해집니다 (그 반대도 마찬가지).
-
-
라니냐 (La Nina)
-
중부 및 동부 열대 태평양에서 해수면 또는 평균 해수면 온도 (SST)의 냉각화의 경우 인도네시아에서는 강우량이 증가하는 반면 중부 및 동부 열대 태평양에서는 강우량이 감소합니다.
-
적도를 따라 흐르는 동쪽의 바람은 더욱 강해집니다. 일반적으로 해수면 온도가 평상시보다 낮을수록 La Nina가 강해집니다 (그 반대도 마찬가지).
-
-
중립
-
El Nino 또는 La Nina로서 열대 태평양에서 평균 해수면 온도 (SST)는 일반적으로 평균에 가깝습니다.
-
그러나 바다가 El Nino 또는 La Nina 상태 인 것처럼 보일 수 있으나 대기가 따라 가지 않는 (또는 그 반대) 경우가 있습니다.
-
-
-
따라서 이 포스팅에서는 rsol 패키지를 통해 쉽게 엘니뇨-남방진동 자료 다운로드 및 가시화를 소개해 드리고자 합니다.
[특징]
-
엘니뇨-남방진동 분석하기 위해서 다운로드 및 가시화 기술이 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어
[기능]
-
자료 다운로드
-
가시화
[활용 자료]
-
없음
[자료 처리 방안 및 활용 분석 기법]
-
없음
[사용법]
-
소스 코드 참조
[사용 OS]
-
Windows 10
[사용 언어]
-
R v3.6.3
-
R Studio v1.2.5033
소스 코드
[명세]
-
전역 설정
-
최대 10 자리 설정
-
메모리 해제
-
영어 인코딩 설정
-
폰트 설정
-
# Set Option
memory.limit(size = 9999999999999)
options(digits = 10)
Sys.setlocale("LC_TIME", "english")
font = "Palatino Linotype"
-
라이브러리 읽기
-
rsoi : ENSO 데이터에 쉽게 접근하고 다운로드하는 패키지로서 Sam Albers (2020)에 출시
-
# Library Load
library(extrafont)
library(tidyverse)
library(rsoi)
library(plotly)
-
자료 다운로드
-
rsoi::download_enso를 통해 데이터 프레임 (Data Frame) 형식으로 데이터 다운로드
-
그 결과 dplyr::glimpse 또는 dplyr::tbl_df를 통해 데이터의 내부 구조를 확인 가능
-
dfEnso = rsoi::download_enso()
dplyr::tbl_df(dfEnso)
-
가시화
-
데이터 세트에서 정보는 여전히 숨겨져 있기 때문에 가시화 필요
-
가시화는 일반적인 정적 탐색 데이터 분석에서 웹 브라우저의 동적 대화식 데이터 시각화에 이르기까지 다양함
-
특히 R의 기본 plot으로 여러 미학적 측면을 제어 할 수 있으나 Hadley Wickham (2016)이 개발한 ggplot2는 새로운 방법으로 시각화하기 때문에 이를 사용
-
-
가시화를 위한 초기 설정
-
ggplot2를 이용한 가시화
# Visualization Using ggplot2
sMinDate = "1950-01-01"
sMaxDate = "2020-01-01"
ggplot(data = dfEnso, aes(x = Date, y = ONI, fill = phase)) +
theme_bw() +
geom_col() +
scale_x_date(expand = c(0, 0), date_breaks = "10 years", date_labels = "%Y", limits = as.Date(c(sMinDate, sMaxDate))) +
scale_y_continuous(expand = c(0, 0), breaks = seq(-2, 2, 1), limits = c(-2, 2)) +
labs(
x = "Date [Year]"
, y = "ENSO Index"
, fill = "Phase"
, title = "El Nino-Southern Oscillation"
, subtitle = "Period : February 01, 1951 - July 01, 2019"
, caption = "Source : rsoi"
) +
theme(
plot.title = element_text(face = "bold", size = 18, color = "black")
, axis.title.x = element_text(face = "bold", size = 18, colour = "black")
, axis.title.y = element_text(face = "bold", size =18, colour = "black", angle=90)
, axis.text.x = element_text(face = "bold", size = 18, colour = "black")
, axis.text.y = element_text(face = "bold", size = 18, colour = "black")
, legend.title = element_text(face = "bold", size = 14, colour = "black")
, legend.position = "bottom"
, legend.justification = c(0, 0.96)
, legend.key = element_blank()
, legend.text = element_text(size = 14, colour = "black")
, legend.background = element_blank()
, text = element_text(family = font)
, plot.margin = unit(c(0, 8, 0, 0), "mm")
) +
ggsave(filename = paste0("FIG2/ggplot2_ENSO_Index.png"), width = 12, height = 8, dpi = 600)
[전체]
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
최근댓글