웰코발
웰코's iOS
웰코발
전체 방문자
오늘
어제
  • 분류 전체보기 (63)
    • Swift (26)
    • rxSwift (13)
    • SwiftUI (3)
    • iOS (12)
    • 기타 (1)
    • 개발관련 용어정리 (6)
    • 면접준비 (0)
    • 공공데이터 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • rxswift
  • 디자인
  • 주제구독
  • ReactorKit
  • Scroll
  • delay
  • uitableview
  • Coordinator
  • Observable
  • ios
  • UI
  • collectionview
  • alamofire
  • 대기오염통계 현황
  • SWIFT
  • content_available
  • swiftUI
  • cell
  • 측정소정보
  • WKWebView

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
웰코발
공공데이터

미세먼지 관련 공공데이터

미세먼지 관련 공공데이터
공공데이터

미세먼지 관련 공공데이터

2024. 2. 13. 20:51

공공데이터 포털에서 찾은 미세먼지 오픈API이다.

 

아래는 포스트맨을 통해서 API들을 정리해보았다.

 

 

분석해서 써보자!

 

https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15073861

 

한국환경공단_에어코리아_대기오염정보

각 측정소별 대기오염정보를 조회하기 위한 서비스로 기간별, 시도별 대기오염 정보와 통합대기환경지수 나쁨 이상 측정소 내역, 대기질(미세먼지/오존) 예보 통보 내역 등을 조회할 수 있다.

www.data.go.kr

 

 

우선 대기오염정보 이다.

대기오염정보 데이터에는 5개가 있다.

 

1. 대기질예보통보조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 14,
            "items": [
                {
                    "actionKnack": null,
                    "informOverall": "○ [미세먼지] 전 권역이 '좋음'으로 예상됩니다.",
                    "informGrade": "서울 : 좋음,제주 : 좋음,전남 : 좋음,전북 : 좋음,광주 : 좋음,경남 : 좋음,경북 : 좋음,울산 : 좋음,대구 : 좋음,부산 : 좋음,충남 : 좋음,충북 : 좋음,세종 : 좋음,대전 : 좋음,영동 : 좋음,영서 : 좋음,경기남부 : 좋음,경기북부 : 좋음,인천 : 좋음",
                    "imageUrl3": "https://www.airkorea.or.kr/file/proxyImage?fileName=2024/02/06/AQF.20240205.NIER_09_01.PM10.1hsp.2024020709.png",
                    "imageUrl2": "https://www.airkorea.or.kr/file/proxyImage?fileName=2024/02/06/AQF.20240205.NIER_09_01.PM10.1hsp.2024020703.png",
                    "imageUrl1": "https://www.airkorea.or.kr/file/proxyImage?fileName=2024/02/06/AQF.20240205.NIER_09_01.PM10.1hsp.2024020621.png",
                    "informCode": "PM10",
                    "imageUrl4": "https://www.airkorea.or.kr/file/proxyImage?fileName=2024/02/06/AQF.20240205.NIER_09_01.PM2P5.1hsp.2024020621.png",
                    "imageUrl5": "https://www.airkorea.or.kr/file/proxyImage?fileName=2024/02/06/AQF.20240205.NIER_09_01.PM2P5.1hsp.2024020703.png",
                    "informCause": "○ [미세먼지] 원활한 대기 확산으로 대기질이 청정할 것으로 예상됩니다.",
                    "imageUrl6": "https://www.airkorea.or.kr/file/proxyImage?fileName=2024/02/06/AQF.20240205.NIER_09_01.PM2P5.1hsp.2024020709.png",
                    "imageUrl7": "https://www.airkorea.or.kr/file/proxyImage?fileName=2024/02/06/AQF.20240205.NIER_09_01.PM10.2days.ani.gif",
                    "imageUrl8": "https://www.airkorea.or.kr/file/proxyImage?fileName=",
                    "imageUrl9": "https://www.airkorea.or.kr/file/proxyImage?fileName=",
                    "informData": "2024-02-06",
                    "dataTime": "2024-02-06 17시 발표"
                },
                ...,
                ...,
                ...,
            ],
            "pageNo": 1,
            "numOfRows": 10
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

 

2. 초미세먼지주간예보조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 1,
            "items": [
                {
                    "frcstFourDt": "2024-02-07",
                    "frcstThreeDt": "2024-02-06",
                    "frcstTwoCn": "서울 : 낮음, 인천 : 낮음, 경기북부 : 낮음, 경기남부 : 낮음, 강원영서 : 낮음, 강원영동 : 낮음, 대전 : 낮음, 세종 : 낮음, 충남 : 낮음, 충북 : 낮음, 광주 : 낮음, 전북 : 낮음, 전남 : 낮음, 부산 : 낮음, 대구 : 낮음, 울산 : 낮음, 경북 : 낮음, 경남 : 낮음, 제주 : 낮음, 신뢰도 : 높음",
                    "gwthcnd": "(2월4일~6일) 원활한 대기 확산과 강수의 영향으로 전 권역에서 초미세먼지 농도가 '낮음' 수준일 것으로 예상되며, (2월 7일) 대기 확산이 원활하여 전 권역에서 '낮음' 수준일 것으로 예상됩니다.",
                    "frcstTwoDt": "2024-02-05",
                    "frcstFourCn": "서울 : 낮음, 인천 : 낮음, 경기북부 : 낮음, 경기남부 : 낮음, 강원영서 : 낮음, 강원영동 : 낮음, 대전 : 낮음, 세종 : 낮음, 충남 : 낮음, 충북 : 낮음, 광주 : 낮음, 전북 : 낮음, 전남 : 낮음, 부산 : 낮음, 대구 : 낮음, 울산 : 낮음, 경북 : 낮음, 경남 : 낮음, 제주 : 낮음, 신뢰도 : 보통",
                    "frcstThreeCn": "서울 : 낮음, 인천 : 낮음, 경기북부 : 낮음, 경기남부 : 낮음, 강원영서 : 낮음, 강원영동 : 낮음, 대전 : 낮음, 세종 : 낮음, 충남 : 낮음, 충북 : 낮음, 광주 : 낮음, 전북 : 낮음, 전남 : 낮음, 부산 : 낮음, 대구 : 낮음, 울산 : 낮음, 경북 : 낮음, 경남 : 낮음, 제주 : 낮음, 신뢰도 : 높음",
                    "frcstOneDt": "2024-02-04",
                    "frcstOneCn": "서울 : 낮음, 인천 : 낮음, 경기북부 : 낮음, 경기남부 : 낮음, 강원영서 : 낮음, 강원영동 : 낮음, 대전 : 낮음, 세종 : 낮음, 충남 : 낮음, 충북 : 낮음, 광주 : 낮음, 전북 : 낮음, 전남 : 낮음, 부산 : 낮음, 대구 : 낮음, 울산 : 낮음, 경북 : 낮음, 경남 : 낮음, 제주 : 낮음, 신뢰도 : 높음",
                    "presnatnDt": "2024-02-01"
                }
            ],
            "pageNo": 1,
            "numOfRows": 10
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

3. 측정소별 실시간 측정정보 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 23,
            "items": [
                {
                    "pm25Grade1h": "1",
                    "pm10Value24": "5",
                    "so2Value": "0.003",
                    "pm10Grade1h": "1",
                    "o3Grade": "2",
                    "pm10Value": "2",
                    "pm25Flag": null,
                    "khaiGrade": "2",
                    "pm25Value": "1",
                    "no2Flag": null,
                    "mangName": "도시대기",
                    "no2Value": "0.010",
                    "so2Grade": "1",
                    "coFlag": null,
                    "khaiValue": "53",
                    "coValue": "0.3",
                    "pm10Flag": null,
                    "no2Grade": "1",
                    "pm25Value24": "2",
                    "o3Flag": null,
                    "pm25Grade": "1",
                    "so2Flag": null,
                    "coGrade": "1",
                    "dataTime": "2024-02-05 15:00",
                    "pm10Grade": "1",
                    "o3Value": "0.034"
                },
                ...,
                ...,
            ],
            "pageNo": 1,
            "numOfRows": 10
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

 

4. 통합대기환경지수 나쁨 이상 정소 목록조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 1,
            "items": [
                {
                    "addr": "전남 영광군 낙월면 영외리 산 118 안마도 측정소",
                    "stationName": "안마도"
                }
            ],
            "pageNo": 1,
            "numOfRows": 10
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

 

5. 시도별 실시간 측정정보 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 654,
            "items": [
                {
                    "so2Grade": "1",
                    "coFlag": null,
                    "khaiValue": "-",
                    "so2Value": "0.002",
                    "coValue": "0.5",
                    "pm10Flag": "통신장애",
                    "o3Grade": "1",
                    "pm10Value": "-",
                    "khaiGrade": null,
                    "sidoName": "경기",
                    "no2Flag": null,
                    "no2Grade": "1",
                    "o3Flag": null,
                    "so2Flag": null,
                    "dataTime": "2024-02-07 10:00",
                    "coGrade": "1",
                    "no2Value": "0.013",
                    "stationName": "대부동",
                    "pm10Grade": null,
                    "o3Value": "0.030"
                },
                {
                    "so2Grade": "1",
                    "coFlag": null,
                    "khaiValue": "79",
                    "so2Value": "0.002",
                    "coValue": "0.5",
                    "pm10Flag": null,
                    "o3Grade": "1",
                    "pm10Value": "40",
                    "khaiGrade": "2",
                    "sidoName": "경기",
                    "no2Flag": null,
                    "no2Grade": "2",
                    "o3Flag": null,
                    "so2Flag": null,
                    "dataTime": "2024-02-07 10:00",
                    "coGrade": "1",
                    "no2Value": "0.032",
                    "stationName": "호수동",
                    "pm10Grade": "2",
                    "o3Value": "0.012"
                },
                ...,
                ...,
                
            ],
            "pageNo": 1,
            "numOfRows": 9999
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

 

https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15073877

 

한국환경공단_에어코리아_측정소정보

대기질 측정소 정보를 조회하기 위한 서비스로 TM 좌표기반의 가까운 측정소 및 측정소 목록과 측정소의 정보를 조회할 수 있다. ※ 운영계정으로 사용하고자 할 경우 "한국환경공단 에어코리아

www.data.go.kr

 

그리고 또 활용할 수 있는 API로 측정소정보 이다.

측정소정보는 3개가 있다.

1. 측정소 목록 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 654,
            "items": [
                {
                    "dmX": "35.221729",
                    "stationCode": "238146",
                    "item": "SO2, CO, O3, NO2, PM10, PM2.5",
                    "mangName": "도시대기",
                    "year": "2009",
                    "addr": "경남 창원시 성산구 창이대로 706번길 16-23 (사파민원센터)",
                    "stationName": "사파동",
                    "dmY": "128.69825"
                },
                {
                    "dmX": "35.11497",
                    "stationCode": "238147",
                    "item": "SO2, CO, O3, NO2, PM10, PM2.5",
                    "mangName": "도로변대기",
                    "year": "2022",
                    "addr": "경남 창원시 마산합포구 진동면 삼진의거대로 621 진동시외버스정류장 앞",
                    "stationName": "삼진로",
                    "dmY": "128.48581"
                },
                {
                    "dmX": "35.154972",
                    "stationCode": "238151",
                    "item": "SO2, CO, O3, NO2, PM10, PM2.5",
                    "mangName": "도시대기",
                    "year": "1994",
                    "addr": "경남 창원시 진해구 경화로16번길 31 (병암동주민센터)",
                    "stationName": "경화동",
                    "dmY": "128.689578"
                },
                ...,
                ...,
             ],
            "pageNo": 1,
            "numOfRows": 9999
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

2. 근접측정소 목록 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 3,
            "items": [
                {
                    "stationCode": "131593",
                    "tm": 4.1,
                    "addr": "경기도 여주시 가남읍 태평중앙1길 20 가남읍행정복지센터 옥상",
                    "stationName": "가남읍"
                },
                {
                    "stationCode": "131444",
                    "tm": 8.2,
                    "addr": "경기도 이천시 부발읍 무촌로 117 부발보건지소 옥상",
                    "stationName": "부발읍"
                },
                {
                    "stationCode": "131441",
                    "tm": 9.3,
                    "addr": "경기 이천시 설성면 신필리 산 88-5(전파연구소 입구)",
                    "stationName": "설성면"
                }
            ],
            "pageNo": 1,
            "numOfRows": 10
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

3. TM 기준좌표 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 1,
            "items": [
                {
                    "sggName": "종로구",
                    "umdName": "혜화동",
                    "tmX": "200089.126044",
                    "tmY": "453946.42329",
                    "sidoName": "서울특별시"
                }
            ],
            "pageNo": 1,
            "numOfRows": 10
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

 

 

https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15073855

 

한국환경공단_에어코리아_대기오염통계 현황

대기오염 통계 정보를 조회하기 위한 서비스로 각 측정소별 농도 정보와 기간별 통계수치 정보를 조회할 수 있다. ※ 운영계정으로 사용하고자 할 경우 "한국환경공단 에어코리아 OpenAPI 기술문

www.data.go.kr

 

마지막으로 대기오염통계 현황 이다.

대기오염통계 현황 에는 총 4개가 있는데 1개가 작동을 안하는거 같다...

 

1. 측정소별 실시간 일평균 정보 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 1238,
            "items": [
                {
                    "msurDt": "2024-02-04",
                    "so2Value": ".003",
                    "coValue": ".4",
                    "msrstnName": "송천동",
                    "pm10Value": "15",
                    "no2Value": ".01",
                    "o3Value": ".023",
                    "pm25Value": "5"
                },
                {
                    "msurDt": "2024-02-04",
                    "so2Value": ".001",
                    "coValue": ".4",
                    "msrstnName": "이곡동",
                    "pm10Value": "22",
                    "no2Value": ".012",
                    "o3Value": ".024",
                    "pm25Value": "8"
                },
                {
                    "msurDt": "2024-02-04",
                    "so2Value": ".003",
                    "coValue": ".5",
                    "msrstnName": "중앙동(경기)",
                    "pm10Value": "20",
                    "no2Value": ".011",
                    "o3Value": ".019",
                    "pm25Value": "18"
                },
                {
                    "msurDt": "2024-02-04",
                    "so2Value": ".003",
                    "coValue": ".3",
                    "msrstnName": "모현동",
                    "pm10Value": "20",
                    "no2Value": ".007",
                    "o3Value": ".026",
                    "pm25Value": "14"
                },
            ],
            "pageNo": 1,
            "numOfRows": 9999
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

2. 측정소별 실시간 월평균 정보 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 1861,
            "items": [
                {
                    "msurMm": "2023-11",
                    "so2Value": ".004",
                    "coValue": ".4",
                    "msrstnName": "봉담읍",
                    "pm10Value": "33",
                    "no2Value": ".02",
                    "o3Value": ".021",
                    "pm25Value": "21"
                },
                {
                    "msurMm": "2023-11",
                    "so2Value": ".004",
                    "coValue": ".5",
                    "msrstnName": "모종동",
                    "pm10Value": "33",
                    "no2Value": ".017",
                    "o3Value": ".026",
                    "pm25Value": "24"
                },
            ],
            "pageNo": 1,
            "numOfRows": 100
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

 

3. 시도별 실시간 평균정보 조회

입력값

 

출력값

{
    "response": {
        "body": {
            "totalCount": 24,
            "items": [
                {
                    "daegu": "16",
                    "chungnam": "19",
                    "incheon": "22",
                    "daejeon": "16",
                    "gyeongbuk": "17",
                    "sejong": "14",
                    "gwangju": "15",
                    "jeonbuk": "14",
                    "gangwon": "11",
                    "ulsan": "19",
                    "jeonnam": "13",
                    "seoul": "16",
                    "busan": "14",
                    "jeju": "11",
                    "chungbuk": "15",
                    "gyeongnam": "13",
                    "dataTime": "2024-02-06 13:00",
                    "dataGubun": "1",
                    "gyeonggi": "15",
                    "itemCode": "PM10"
                },
                {
                    "daegu": "15",
                    "chungnam": "18",
                    "incheon": "21",
                    "daejeon": "17",
                    "gyeongbuk": "18",
                    "sejong": "16",
                    "gwangju": "18",
                    "jeonbuk": "14",
                    "gangwon": "10",
                    "ulsan": "19",
                    "jeonnam": "14",
                    "seoul": "13",
                    "busan": "14",
                    "jeju": "12",
                    "chungbuk": "15",
                    "gyeongnam": "12",
                    "dataTime": "2024-02-06 12:00",
                    "dataGubun": "1",
                    "gyeonggi": "14",
                    "itemCode": "PM10"
                },
                {
                    "daegu": "15",
                    "chungnam": "17",
                    "incheon": "20",
                    "daejeon": "15",
                    "gyeongbuk": "17",
                    "sejong": "17",
                    "gwangju": "17",
                    "jeonbuk": "15",
                    "gangwon": "10",
                    "ulsan": "17",
                    "jeonnam": "13",
                    "seoul": "12",
                    "busan": "14",
                    "jeju": "12",
                    "chungbuk": "15",
                    "gyeongnam": "13",
                    "dataTime": "2024-02-06 11:00",
                    "dataGubun": "1",
                    "gyeonggi": "13",
                    "itemCode": "PM10"
                },
                {
                    "daegu": "14",
                    "chungnam": "16",
                    "incheon": "15",
                    "daejeon": "16",
                    "gyeongbuk": "15",
                    "sejong": "18",
                    "gwangju": "15",
                    "jeonbuk": "17",
                    "gangwon": "11",
                    "ulsan": "13",
                    "jeonnam": "13",
                    "seoul": "9",
                    "busan": "16",
                    "jeju": "11",
                    "chungbuk": "14",
                    "gyeongnam": "13",
                    "dataTime": "2024-02-06 10:00",
                    "dataGubun": "1",
                    "gyeonggi": "12",
                    "itemCode": "PM10"
                },
                ...,
                ...,
            ],
            "pageNo": 1,
            "numOfRows": 100
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}

 

4. 시군구별 실시간 평균정보 조회 (작동 안함)

입력값

 

출력값

출력이 안됨.......

 

종합적으로 보면 우선 이 형태를 따라가므로 엔티티 작성할 때 참고하세요.

{
    "response": {
        "body": {
            "totalCount": 24,
            "items": [ 
                {},
            ],
            "pageNo": 1,
            "numOfRows": 100
        },
        "header": {
            "resultMsg": "NORMAL_CODE",
            "resultCode": "00"
        }
    }
}
저작자표시 동일조건 (새창열림)
  •  
  • 우선 대기오염정보 이다.
  • 그리고 또 활용할 수 있는 API로 측정소정보 이다.
  • 마지막으로 대기오염통계 현황 이다.
웰코발
웰코발
나의 개발 일지

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.