1 강수량

공공데이터포털에서 “기상청 지상(종관, ASOS) 일자료 조회서비스” API를 사용하여 기상데이터를 가져와서 강수량 데이터를 가공한다.

library(httr)
library(tidyverse)

rain_req <- glue::glue("http://apis.data.go.kr/1360000/AsosDalyInfoService/getWthrDataList",
                       "?serviceKey={Sys.getenv('DATA_KMA_APIKEY')}",
                       "&numOfRows=10",
                       "&pageNo=1",
                       "&dataCd=ASOS",
                       "&dateCd=DAY",
                       "&startDt=20100101",
                       "&endDt=20220810",
                       "&stnIds=108",
                       "&dataType=JSON")

rain_response <- GET(rain_req, verbose())

rain_json <- content(rain_response, "text") 

rain_list <- jsonlite::fromJSON(rain_json)

rain_df <- rain_list$response$body$items$item

rain_df %>% 
  as_tibble() %>% 
  select(1:5)
# A tibble: 10 × 5
   stnId stnNm tm         avgTa minTa
   <chr> <chr> <chr>      <chr> <chr>
 1 108   서울  2010-01-01 -7.6  -12.7
 2 108   서울  2010-01-02 -3.6  -7.4 
 3 108   서울  2010-01-03 -6.8  -10.5
 4 108   서울  2010-01-04 -5.9  -8.0 
 5 108   서울  2010-01-05 -9.9  -12.3
 6 108   서울  2010-01-06 -11.2 -13.3
 7 108   서울  2010-01-07 -10.1 -13.6
 8 108   서울  2010-01-08 -8.0  -11.8
 9 108   서울  2010-01-09 -5.1  -8.7 
10 108   서울  2010-01-10 -3.4  -5.3 
 

데이터 과학자 이광춘 저작

kwangchun.lee.7@gmail.com