✔ Python/10. Others

[기상청 API 허브] 위성 데이터 다운받기 (코드 포함)

  • -
주제: [기상청 API 허브][위성 데이터] 실시간 위성 데이터 수집 코드 구현하기 (코드 포함)
작성: 2024-03-14

해당 포스팅은 "오픈 API 활용한 실시간 기상데이터 수집" 관련 마지막 포스팅입니다.

🧑🏻‍💻 API 활용한 실시간 기상데이터 수집 ☁️
1. 사이트 소개 - 2024.02.25 - [✔ Python/10. Others] - [기상청 API 허브] API 활용한 기상자료 쉽게 다운받기
2. 코드 구현(1) - 2024.03.01 - [✔ Python/10. Others] - [기상청 API 허브] 지상관측 데이터 다운받기 (1/2)
3. 코드 구현(2) - 2024.03.14 - [✔ Python/10. Others] - [기상청 API 허브] 지상관측 데이터 다운받기(2/2)
4. 코드 구현(3) - 2024.03.14 - [✔ Python/10. Others] - [기상청 API 허브] 위성 데이터 다운받기 (코드 포함)

이전 포스팅에서는 지상관측 데이터 다운로드를 하여봤습니다.
이번 포스팅에서는 천리안 2A호의 L2 산출물 중 하나인 구름탐지(CLD) 데이터 다운로드하여보겠습니다.

위성데이터 URL 

위성데이터 다운로드도 앞서 진행한 지상관측 URL 호출과 크게 다르지 않습니다. 다만, 다운로드하고자 하는 데이터마다 호출 URL이 상이합니다. 호출 URL 정보는 "기상청 API 허브"에서 모두 제공하고 있습니다. 어렵지 않습니다. 포기하지 마세요@@

기상청 API로 위성데이터 다운로드하기

 

필자는 이진파일(NetCDF) 형태로 GK2A 산출물을 다운로드하여보도록 하겠습니다.

  • 지상관측 데이터 URL 예시
    • https://apihub.kma.go.kr/api/typ01/url/kma_sfctm3.php?tm1=202401010000&tm2=202401022300&stn=108&authKey=인증키
  • 천리안 2A 데이터 URL 예시

 

샘플코드 구현하기 

해당 데이터를 다운로드할 수 있는 직관적인 샘플코드를 구현해 보겠습니다.

import requests

def download_file(file_url, save_path):
    with open(save_path, 'wb') as f:
        response = requests.get(file_url)

folder_path = './data'
area = "ko"
projection_name = "lc"
formatted_time_str = '202402120110'
API_KEY = '개인키를 작성합니다'

save_file_path = f'{folder_path}gk2a_ami_le2_sst_{area}020{projection_name}_{formatted_time_str}.nc'
API_URL = f"https://apihub.kma.go.kr/api/typ05/api/GK2A/LE2/CLD/{str(area).upper()}/data?date={formatted_time_str}&authKey={API_KEY}"

download_file(API_URL, save_file_path)

단순히 다운로드한 데이터 확인하고 싶으신 경우, Panoply 활용하는 걸 추천드립니다.

 

맥북에서 코딩없이 .nc파일 읽는 방법 (Feat. Panoply & Java)

주제: Mac에서 NetCDF 파일 쉽게 읽는 방법 작성: 2023-12-28 안녕하세요, 루카스입니다. 기상, 위성데이터 등의 많은 양의 데이터가 들어있는 데이터를 다루는 경우, 심심치 않게 NetCDF(. nc) 파일을 다

wscode.tistory.com

추후 개별 적용 고려하기

위에서 구현한 샘플코드는 단순히 하나의 데이터만 다운로드한 샘플코드입니다.
본인이 원하는 기간 또는 실시간으로 데이터를 수집하도록 만들기 위해서는 FOR문 등을 활용하여 구현이 필요합니다.

개인 외에 사용하는 목적이라면, configuration 파일을 따로 생성하여 인자들을 받아서 사용하는 방안을 권고드립니다.
이를 통해서 API 인증키 노출의 최소화 및 코드관리가 용이해지기 때문이죠.

여기까지가 "오픈 API 활용한 실시간 기상데이터 수집"이었습니다. 4번째 포스팅까지 모두 완독해 주신 분들께 감사인사드리며,
질문이 있으신 경우, 댓글 남겨주시면 빠르게 회신드리도록 하겠습니다.


관련 글

🧑🏻‍💻 API 활용한 실시간 기상데이터 수집 ☁️
1. 사이트 소개 - 2024.02.25 - [✔ Python/10. Others] - [기상청 API 허브] API 활용한 기상자료 쉽게 다운받기
2. 코드 구현(1) - 2024.03.01 - [✔ Python/10. Others] - [기상청 API 허브] 지상관측 데이터 다운받기 (1/2)
3. 코드 구현(2) - 2024.03.14 - [✔ Python/10. Others] - [기상청 API 허브] 지상관측 데이터 다운받기(2/2)
4. 코드 구현(3) - 2024.03.14 - [✔ Python/10. Others] - [기상청 API 허브] 위성 데이터 다운받기 (코드 포함)

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.