1.library 불러오기
2. 데이터 불러오기(약간의 시간이 걸린다. 안된다고 오해 금지)
cf. 데이터 내용
3. dplyr 패키지를 이용하기 위해 tbl_df로 변환
4.Season, Latitude, Logitude : 문자 -> 숫자,
Wind.WMO. : 문자 -> 숫자 & 노트 -> 초속(m/s),
ISO_time에서 월 정보 추출
cf)POSIXct vs. POSIXlt
5. 지도에 태풍 경로를 위한 태풍 ID 생성(2014-2016)
6. 연도 별로 태풍 경로 시각화
7. 결과물
Appendix - Organized Code
library(ggmap)
library(ggplot2)
library(dplyr)
noaa <- "ftp://eclipse.ncdc.noaa.gov/pub/ibtracs/v03r05/wmo/csv/basin/"
WP.basin = read.csv(paste(noaa, "Basin.WP.ibtracs_wmo.v03r05.csv", sep = ""), skip = 1, stringsAsFactors = FALSE)
WP.basin <- WP.basin[-1,]
WP.df <- mutate(WP.basin.df,
Season = as.numeric(Season),
Latitude = as.numeric(gsub("^ ", "", Latitude)),
Longitude = as.numeric(gsub("^ ", "", Longitude)),
Wind.WMO. = as.numeric(gsub("^ ", "", Wind.WMO.)) * 0.5144,
ISO_time = as.POSIXct(ISO_time, format = "%Y-%m-%d %H:%M:%S"),
Month = factor(substr(ISO_time,6,7), labels = c(month.name))
)
substorms <-filter(WP.df,Season %in% 2000:2010 & !(Name == "NOT NAMED"))
substorm <- mutate(substorms, ID = as.factor(paste(Name, Season, sep = ".")))
map <- ggmap(get_googlemap(center = c(lon=145, lat=40),
zoom=3, maptype = "terrain",
color="bw", scale = 2), extent = "device")
map + geom_path(data = substorm, aes(x = Longitude, y = Latitude, group = ID, colour = Wind.WMO.), alpha = 0.5, size = 0.8) +
labs(x="", y="", colour = "Wind \n(m/sec)", title = "Typhoon Trajectories 2014-2016") +
facet_wrap(~Season) +
theme(panel.background = element_rect(fill = "gray10", colour = "gray30"),
axis.text.x = element_blank(),
axis.text.x = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
- 본 게시물은 wsyang.com 에서 ‘태풍 이동 경로 시각화’ 포스트를 참고하였습니다. 한 두가지 오류 수정 및 실제로 코딩함으로써 과정에 대한 이해하는데 목적으로 했습니다. 본 글은 저의 이해를 바탕으로 대충(?) 쓰여졌으므로 wsyang.com에 가시면 더 좋은 원본 자료를 보실 수 있습니다.
댓글 없음:
댓글 쓰기