본문 바로가기

R 크롤링

오픈API를 활용한 대기오염정보 조회(2)

반응형
오픈API를 활용한 대기오염정보 조회(2)

이 자료는 R markdown에서 작성하였습니다.

R에서 데이터 확인하기

필요한 라이브러리를 불러옵니다.

##install.packages("rvest")
##install.packages("XML")
##install.packages("data.table")
library(rvest)
library(XML)
library(data.table)

지난 블로그 오픈API를 활용한 대기오염정보 조회(1)의 미리보기 주소로 데이터를 가지고 옵니다.

api_url <- ("http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?serviceKey=9x8WeUtQ1a6VrfDnAAN3PDJhSp4VFdoqfopYR4K31SeTR08xHjM3W05qW13HYEdKtOAu3U4RSeOfErde0EP2ng%3D%3D&numOfRows=10&pageSize=10&pageNo=1&startPage=1&stationName=%EC%A2%85%EB%A1%9C%EA%B5%AC&dataTerm=DAILY&ver=1.3")

data3 <- xmlTreeParse(api_url,useInternalNodes = T, encoding = "UTF-8")
rootNode <- xmlRoot(data3)
items = rootNode[[2]][["items"]]
size=xmlSize(items)
data_subtotal <- list()
test2 <- data.frame()
test3 <- list()

for(i in 1:size)
{
  test <- xmlSApply(items[[i]],xmlValue)  
  test2 <- data.table(Time=test[[1]],
                      Name=test[[2]],
                      so2=test[[3]],
                      co=test[[4]],
                      o3=test[[5]],
                      no2=test[[6]],
                      pm10=test[[7]],
                      pm1024=test[[8]],
                      pm25=test[[9]],
                      pm2524=test[[10]],
                      khai=test[[11]],
                      khaigrade=test[[12]],
                      so2grade=test[[13]],
                      cograde=test[[14]],
                      o3grade=test[[15]],
                      no2grade=test[[16]],
                      pm10grade=test[[17]],
                      pm25grade=test[[18]],
                      pm101hgrade=test[[19]],
                      pm251hgrade=test[[20]])
  test3[[i]]=test2
}
test4 <- rbindlist(test3)

저장한 자료에서 미세먼지(pm25)에 관한 자료를 꺽은선 그래프로 나타내보겠습니다.

attach(test4)
plot(pm25)

다음에는 관측소의 위치정보 자료를 조회해보겠습니다.

반응형