IonoFlux Python SDK
IonoFlux API의 공식 Python 클라이언트입니다. 우주기상·태양·지자기 데이터, 경보, 공개 데이터 메타데이터를 지원하며 API의 원본 JSON을 그대로 돌려줍니다.
pip install ionoflux1. Server 키 만들기
계정 페이지에서 로그인한 뒤 Server API 키를 만드세요. Python은 브라우저 밖에서 실행되므로 Web 키는 403을 반환할 수 있습니다. 키는 소스 저장소, 브라우저, 공유 노트북 출력에 남기지 마세요.
현재 키 발급 화면은 Server 키에도 서비스 URL을 요구합니다. 웹사이트가 없는 노트북·배치 작업이라면 기존 정책에 맞는 서비스 URL을 입력하세요. SDK는 키를 발급하거나 이 요구를 우회하지 않습니다.
export IONOFLUX_API_KEY='your-server-key'2. 빠른 시작
from ionoflux import Client
with Client() as client:
current = client.space_weather.current()
print(current.data) # Original JSON fields, including nulls and timestamp strings
print(current.rate_limit.remaining)Client()는 IONOFLUX_API_KEY에서 키를 읽고, Client(api_key="...")가 이를 우선합니다. sources()와 data.status()는 키 없이 호출됩니다. 요청 시각은 시간대가 있는 datetime이어야 하며 UTC로 전송됩니다.
from datetime import UTC, datetime
from ionoflux import Client, RateLimitError
with Client(timeout=10.0, max_retries=1) as client:
try:
series = client.solar.flux(
start=datetime(2026, 10, 1, tzinfo=UTC),
end=datetime(2026, 10, 2, tzinfo=UTC),
interval="1h",
limit=100,
)
print(series.data["unit"], series.data["attribution"])
except RateLimitError as error:
print(error.retry_after, error.rate_limit.reset_seconds)지원 호출
모든 호출은 .data(JSON), .raw_body, .status_code, .headers, .rate_limit을 가진 APIResponse를 반환합니다. 시계열 호출은 start, end, interval, limit 인자를 공통으로 씁니다.
client.space_weather.current() | 현재 지표와 데이터 신선도 |
client.solar.flux(...) | 태양 플럭스 지수(SFI) |
client.solar.sunspots(...) | 흑점 수(출처 swpc 또는 silso) |
client.solar.xray(...) | 태양 X선 플럭스(long 또는 short 대역) |
client.solar.wind(...) | 태양풍 속도·밀도·Bt·Bz |
client.geomagnetic.kp(...) | Kp 지수(출처 swpc 또는 gfz, 예보 포함 선택) |
client.geomagnetic.ap(...) | Ap 지수 |
client.statistics(metric, ...) | 기간별 지표 요약 통계 |
client.alerts.list(...) | 우주기상 경보(since, category, limit) |
client.alerts.scales() | NOAA R/S/G 등급과 전망 |
client.sources() | 공개 제공 기관 목록과 수집 신선도(키 불필요) |
client.data.status(dataset=None) | 데이터셋 공개 현황(키 불필요) |
지원 범위와 제약
이번 버전은 비동기 클라이언트, pandas/DataFrame 변환, TEC/MUF 지도, 경로 예측, 관측소, WSPR/PSK 조회를 제공하지 않으며 향후 과제입니다. 경로 예측과 지도는 REST API를 직접 호출하세요.
GET만 구현되어 있습니다. 재시도는 최대 3회(기본 1회)이며 연결 오류·타임아웃·HTTP 502/503/504에만 적용되고, 재시도도 하루 1,000회 한도에 포함될 수 있습니다. 리다이렉트는 따르지 않습니다.
자세히: API 계약과 제약 · 변경 기록 · 한국어 README
라이선스와 약관
SDK 코드는 PolyForm Noncommercial License 1.0.0를 따릅니다. 개인·취미 사용과 라이선스가 명시한 교육·연구 등 기관 사용을 포함한 비상업적 사용을 허용합니다. 그 범위를 벗어난 상업적 사용에는 별도 서면 라이선스가 필요하며, OSI 오픈소스 라이선스가 아닙니다.
SDK를 재배포할 때는 라이선스 조항과 NOTICE의 Required Notice를 유지하세요:
Required Notice: IonoFlux (https://ionoflux.runvia.app)SDK 라이선스는 코드에만 적용됩니다. API 이용, API 결과의 출처 표기, 원 제공 기관의 데이터 라이선스는 별개이므로 각 응답의 source와 attribution을 유지해 주세요.