날짜를 입력해 해 당 연월일시에 관측된 기상 데이터 추출
-> 산불 데이터의 발생시간을 추출해서 산불 발생했을 때 기상 데이터 추출
import requests
from xml.etree import ElementTree as ET
import pandas as pd
# API 키
SKEY ='wqwWwuvq2tzgZ7bzR7cT%2FMucId6KRmnglo1vNgCHQUO4rcISf6fSpOpG6M8jGGUn12CwWIZsccctmTbDRyTUcg%3D%3D'
# API URL 및 파라미터
url = '<http://apis.data.go.kr/1400377/mtweather/mountListSearch>'
params = {
'serviceKey': SKEY,
'numOfRows': '1000',
'pageNo': '1',
'_type' : 'xml',
'localArea' : '10',
'tm' : '202306071510'
}
# 요청 보내기
response = requests.get(url, params=params)
# 응답 상태 확인
if response.status_code == 200:
# XML 응답 파싱
root = ET.fromstring(response.content)
# 원하는 데이터를 추출하여 DataFrame으로 변환
data = []
for item in root.findall('.//item'):
data.append({
'산이름': item.find('obsname').text if item.find('obsname') is not None else None,
'관측시간': item.find('tm').text if item.find('tm') is not None else None,
'10m 풍향': item.find('wd10m').text if item.find('wd10m') is not None else None,
'10m 풍속': item.find('ws10m').text if item.find('ws10m') is not None else None,
'2m 풍향': item.find('wd2m').text if item.find('wd2m') is not None else None,
'2m 풍속': item.find('ws2m').text if item.find('ws2m') is not None else None,
'2m 풍향str': item.find('wd2mstr').text if item.find('wd2mstr') is not None else None,
'2미터 습도': item.find('hm2m').text if item.find('hm2m') is not None else None,
})
# DataFrame 생성
df = pd.DataFrame(data)
else:
print("Failed to retrieve data:", response.status_code)
df
#df.to_excel("20210607 강원강릉 산불당시 기상.xlsx")