Next Generation IT Blog

Programming/Python

Python으로 미세먼지 농도를 확인하자!

고기꿉자 2020. 3. 6. 17:05
반응형

 

 

 

안녕하세요? 학생 개발자 고기꿉자 입니다. 
오늘은 공공데이터포털 API를 사용하여 미세먼지 농도를 파이썬에서 확인 해봅시다!

공공데이터 포털 사이트: https://www.data.go.kr/

 

 

공공데이터포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Dataset)와 Open API로 제공하는 사이트입니다.

www.data.go.kr

회원가입을 해주시고 로그인을 해주세요!

데이터셋 -> 오픈API -> 미세먼지 검색 -> 한국환경공단_대기오염정보 -> 활용신청 -> 바로 동의 해주시고 신청 -> 마이페이지 -> 대기오염정보 조희 서비스를 접속해주세요!


상세기능 정보에서 "측정소별 실시간 측정정보 조회"에서 "실행"을 눌러주세요

"미리보기" 클릭!

미세먼지 측정 데이터가 있습니다.

정리하겠습니다.

항목명(영문)

항목명(국문)

항목크기

항목구분

샘플데이터

항목설명

resultCode

결과코드

2

1

00

결과코드

resultMsg

결과메세지

50

1

NORMAL SERVICE.

결과메세지

numOfRows

한 페이지 결과 수

4

1

10

한 페이지 결과 수

pageNo

페이지 번호

4

1

1

페이지 번호

totalCount

전체 결과 수

4

1

60

전체 결과 수

items

목록

-

0..n

-

목록

dataTime

측정일

20

1

2016-04-20 14:00

오염도측정 연--

시간:

mangName

측정망 정보

10

1

도시대기

측정망 정보

(국가배경, 교외대기,

도시대기, 도로변대기)

so2Value

아황산가스 농도

10

1

0.007

아황산가스 농도

(단위 : ppm)

coValue

일산화탄소 농도

10

1

0.4

일산화탄소 농도

(단위 : ppm)

o3Value

오존 농도

10

1

0.043

오존 농도

(단위 : ppm)

no2Value

이산화질소 농도

10

1

0.024

이산화질소 농도

(단위 : ppm)

pm10Value

미세먼지(PM10) 농도

10

1

73

미세먼지(PM10) 농도 (단위 : /)

pm10Value24

미세먼지(PM10)

24시간예측이동농도

10

1

55

미세먼지(PM10)

24시간예측이동농도

(단위 : /)

pm25Value

미세먼지(PM2.5) 농도

10

1

44

미세먼지(PM2.5)  농도

(단위 : /)

pm25Value24

미세먼지(PM2.5)

24시간예측이동농도

10

1

31

미세먼지(PM2.5)  

24시간예측이동농도

(단위 : /)

 khaiValue

통합대기환경수치

10

1

75

통합대기환경수치

khaiGrade

통합대기환경지수

10

1

2

통합대기환경지수

so2Grade

아황산가스 지수

10

1

1

아황산가스 지수

coGrade

일산화탄소 지수

10

1

1

일산화탄소 지수

 o3Grade

오존 지수

10

1

2

오존 지수

 no2Grade

이산화질소 지수

10

1

1

이산화질소 지수

pm10Grade

미세먼지(PM10)

24시간 등급

10

1

2

미세먼지(PM10)

24시간 등급자료

pm25Grade

미세먼지(PM2.5)

24시간 등급

10

1

2

미세먼지(PM2.5)

24시간 등급자료

pm10Grade1h

미세먼지(PM10)

1시간 등급

10

1

2

미세먼지(PM10)

1시간 등급자료

pm25Grade1h

미세먼지(PM2.5)

1시간 등급

10

1

2

미세먼지(PM2.5)

1시간 등급자료

본격적으로 한번 만들어 볼까요?

 

 


Python 버전

3.5.*
3.6.*
3.7.*
3.8.*

Python 모듈

pip install requests

pip install pandas

 

 

Python 소스코드

import requests

from bs4 import BeautifulSoup

import pandas

M = '&numOfRows=1&pageNo=1&stationName=측정소명&dataTerm=DAILY&ver=1.3'

key = '발급받은api key'

url = 'http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?serviceKey='+ key + M

 

response = requests.get(url)

soup = BeautifulSoup(response.text, "html.parser")

ItemList = soup.findAll('item')

for item in ItemList:

    a = item.find('datatime').text

    g = item.find('pm10value').text

    i = item.find('pm25value').text

    s = item.find('pm10grade1h').text

    t = item.find('pm25grade1h').text

    print('측정소: 측정소명')

    print('측정시간:'+ a)

    print('미세먼지 농도:'+ g +'㎍/㎥ ( ' + s + ' )')

    print('초미세먼지 농도:' + i +'㎍/㎥ ( ' + s + ' )')

    print('( 좋음: 1 ),( 보통: 2 ),( 나쁨: 3 ),( 매우나쁨: 4)')




발급 받은 key는

서비스 인증키에 있습니다!!

 

측정소명은 여기 링크로 통하여 알수있습니다: https://www.airkorea.or.kr/index

 

에어코리아

 

www.airkorea.or.kr


마지막으로 실행결과를 보여드리고 끝낼께여!

 



이상으로 긴 글 읽어주셔서 감사합니다!
사랑해요!

반응형