토양오염 복원기술, 공공데이터포털 실태조사 API 활용법

공공데이터포털 토양오염 실태조사를 결과를 API를 통해서 조회하는 방법을 정리하였습니다. 파이썬으로 쉽게 접근하는 방법도 같이 다뤄보았습니다. 복원에 대한 관심 증가와 기술 발전으로 편리하게 관련 정보를 얻을 수 있는 세상이 되었다는 것을 실감할 수 있었습니다.

국립환경과학원 토양오염실태조사 API 개요

국립환경과학원에서는 토양환경 보전을 위해 전국적으로 수행한 토양오염실태조사 결과를 공공데이터포털을 통해 개방하고 있습니다. 공식 데이터명은 ‘기후에너지환경부 국립환경과학원_토양오염실태조사 결과_20241231’이며, 파일 다운로드 방식 외에도 오픈 API(RestAPI) 형태로 기술적 서비스를 제공합니다. 이 API는 개발자와 연구자들이 별도의 수작업 없이 프로그램이나 웹 서비스에 실시간으로 토양 환경 데이터를 연동하고 자동화된 데이터 분석 파이프라인을 구축할 수 있도록 돕는 핵심 도구로 활용됩니다.

API 호출을 통해 얻을 수 있는 주요 환경 정보

이 API를 활용하면 토양오염실태조사지침에 따라 선정된 전국 시군구별 16개 오염 우려 지역의 정밀 분석 데이터를 실시간으로 획득할 수 있습니다. 시스템 쿼리를 통해 호출할 수 있는 주요 환경 정보는 다음과 같습니다.

  • 지역별 오염원 정보: 산업단지 및 공장지역, 공장폐수 유입지역, 원광석·고철 보관소, 금속제련소 주변 등 오염 노출 위험이 높은 구역별 데이터
  • 중금속 오염도 데이터: 카드뮴, 구리, 비소 등 토양환경보전법상 관리되는 주요 중금속의 성분별 검출 수치
  • 유류 및 유기용제류 수치: 토양 생태계와 지하수 오염에 직접적인 영향을 미치는 유기화합물 성분의 분석 결과

API 데이터 포맷과 기술적 사양

해당 API는 현대적인 웹 개발 환경에 최적화된 인터페이스를 지원합니다. 개발자는 정형화된 메타데이터 규격에 맞춰 시스템을 설계할 수 있으며, 주요 기술적 특징은 다음과 같이 요약됩니다.

  • 출력 포맷: RestAPI 기반으로 프로그래밍에 용이한 JSON 및 XML 형식의 데이터를 선택하여 수신 가능
  • 데이터 규모 및 갱신 주기: 전체 2,948행의 방대한 조사 데이터가 포함되어 있으며, 연간 주기로 업데이트(차기 등록 예정일: 2027-01-22)되어 최신성 유지
  • 데이터 정제 특성: 조사 항목 중 당해 연도 미검사 항목은 시스템 내에서 공란(Null) 처리되므로, API 호출 후 데이터 정제(Data Cleaning) 단계에서 이를 필터링하여 활용해야 함

오픈 API 연동을 통한 과거 시계열 데이터 추적

이 API의 강력한 장점 중 하나는 2024년 최신 데이터뿐만 아니라 과거의 누적된 주기성 데이터를 동일한 인터페이스 프로토콜로 호출할 수 있다는 점입니다. 공공데이터포털 시스템을 통해 2010년부터 2023년까지 총 14건의 연도별 과거 데이터 세트에 접근할 수 있습니다. 2020~2023년도의 최근 결과부터 2010년대의 장기 데이터까지 API를 통해 일괄 수집하면, 특정 지역의 토양 오염도가 시간에 따라 어떻게 변화했는지 추적하는 시계열 모니터링 시스템이나 예측 모델을 구현할 수 있습니다.

파이썬 개발 환경 설정 및 필수 라이브러리 설치

국립환경과학원의 토양오염실태조사 오픈 API는 개발자가 프로그램 내에서 전국 토양 환경 데이터를 자동 수집할 수 있도록 돕는 강력한 기술입니다. 공공데이터포털에서 발급받은 인증키를 활용하여 파이썬으로 데이터를 호출하고, 흔히 쓰는 데이터 프레임(Pandas) 형태로 변환하는 실무 프로세스를 알아보겠습니다. API 요청과 데이터 처리를 위해 파이썬 환경에서 가장 널리 쓰이는 두 가지 외부 라이브러리가 필요합니다. 웹 서버에 데이터를 요청하는 requests와 수신된 데이터를 표 형태로 가공해 주는 pandas입니다.
터미널에서 ‘pip install requests pandas’ 를 입력하세요.

파이썬 핵심 소스 코드 구현

공공데이터포털의 RestAPI 규격에 맞추어 JSON 포맷으로 데이터를 받아오는 기본 스크립트입니다. 코드 내 인증키_입력 부분에는 포털에서 승인받은 서비스키를 넣어야 정상 작동합니다. 아래 소스 코드를 붙여넣으면 됩니다. 조회조건을 주고 데이터를 받고 싶은 경우 아래 url의 링크에 가서 관련 문서를 참고하시거나, 코딩 Agent에게 지시하면 알아서 해줍니다.

import requests
import pandas as pd
url = “http://apis.data.go.kr/1480523/SoilPollutionService/getSoilPollutionList”
service_key = “인증키_입력”
params = {‘serviceKey’: service_key, ‘pageNo’: ‘1’, ‘numOfRows’: ’10’, ‘type’: ‘json’}
try:
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
items = data.get(‘body’, {}).get(‘items’, [])
if items:
df = pd.DataFrame(items)
print(df.head())
else:
print(“수신된 데이터 항목이 없음”)
else:
print(print(f”API 요청 실패 : {response.status_code}”))
except Exception as e:
print(f”실행 중 오류 발생 : {e}”)

자주 묻는 질문(FAQ)

토양오염실태조사 API를 통해 확인할 수 있는 주요 환경 정보는 무엇인가요?

산업단지나 공장지역 등 오염 노출 위험이 높은 구역별 지역별 오염원 정보, 카드뮴·구리·비소 등의 중금속 오염도 데이터, 그리고 유류 및 유기용제류 수치를 실시간으로 획득할 수 있습니다.

해당 API의 데이터 포맷과 기술적 사양의 특징은 무엇인가요?

RestAPI 기반으로 JSON 및 XML 형식을 지원하며 연간 주기로 업데이트됩니다. 다만 미검사 항목은 공란(Null) 처리되므로 호출 후 데이터 정제 단계를 거쳐야 합니다.

파이썬을 활용해 이 API 데이터를 연동하려면 어떤 라이브러리가 필요한가요?

웹 서버에 데이터를 요청하기 위한 ‘requests’ 라이브러리와 수신된 데이터를 표 형태(데이터 프레임)로 가공하기 위한 ‘pandas’ 라이브러리가 필수적으로 사용됩니다.

토양오염 복원기술, 대상시설 폐쇄 시 토양오염도 검사 시기 기준

토양오염 복원기술, 토양 가스 모니터링 통한 화학 반응 추적