← Back to Projects

04 · Capstone Design · Machine Learning · GNSS

NeQuick Korea

머신러닝 기반 한국 지역 최적화 전리층 보정 모델. 태양활동 · 위치 · 시간 정보만으로 Az를 추론해 외산 위성 의존 없이 한반도 전역에서 실시간 전리층 보정을 수행합니다.

RMSE
5.93 TECU
12.14 → 5.93 (−51.1%)
MAE
4.29 TECU
9.05 → 4.29 (−52.6%)
1 − MAPE
89%
76% → 89% (+13%p)
기간16주 · 2025.03 — 2025.06
항공우주공학부 학부생 5인 · '오늘의 우주날씨는'
지도교수방유진 교수님
역할
  • Az 파라미터 최적화 자동화 (전국 23개 관측소)
  • vTEC 산출 자동화
  • ML Az 예측 모델 (feature 설계 · 스케일링 · 학습 · 튜닝)
  • NeQuick 엔진 재주입 통합
Links 실시간 시뮬레이션 인터페이스 ↗
01 · 프로젝트 배경

왜 이 연구가 필요한가.

GPS 신호는 전리층(Ionosphere)을 통과하며 전자 밀도에 비례한 지연(Ionospheric Delay)이 발생합니다. 이 지연은 GNSS 측위 오차의 40~60%를 차지하는 가장 큰 오차 요인이며, 한국형 위성항법시스템(KPS)을 자립적으로 운영하려면 한국 지역 특성에 맞게 이 지연을 보정할 수 있는 모델이 반드시 필요합니다.

국제적으로 널리 쓰이는 보정 모델은 유럽 Galileo 위성이 방송하는 NeQuick Global 모델이지만, 한국과 같은 중위도 지역의 계절성·태양활동 영향을 충분히 반영하지 못한다는 한계가 보고되어 왔습니다.

기존 접근의 두 가지 본질적 제약

외산 위성 의존성Az를 산출하려면 결국 Galileo의 a₀, a₁, a₂ 파라미터를 받아야 함. KPS 자립이라는 목표와 정면 충돌.
실시간성 부재매번 당일 측정 데이터로 최적화를 다시 돌려야 했기에, 실시간 시뮬레이션이라기보다 사후 분석에 가까움.
Core Idea
태양활동 지수와 위치·시간 정보만으로 Az 값을 추론하는 머신러닝 모델을 학습시킨다. ML이 충분한 정확도로 Az를 추론할 수 있다면, Galileo 의존 없이 한국 지역에서 독립적으로 운용 가능한 전리층 보정 체계를 구축할 수 있다.
02 · 시스템 아키텍처

4단계 파이프라인.

  1. 데이터 수집·전처리 — 2020~2025년 한국 지역의 GIMs vTEC, Estimate vTEC, NeQuick G Az init 데이터 수집
  2. Az 최적화 — Nelder-Mead Simplex 알고리즘으로 실측 TEC에 가장 가까운 Az 값 역산
  3. ML 모델 학습 — F10.7, SSN, grid_point, UT를 feature로 LightGBM 학습
  4. 추론·시뮬레이션 — 학습된 모델이 추론한 Az를 NeQuick 엔진에 주입해 TEC 예측
파이프라인 3단계 — 데이터 수집·전처리(GIMs vTEC, Estimate vTEC, NeQuick Az init) → Az 최적화 → LightGBM 학습
담당 영역
위 단계 중 ② Az 최적화 자동화, ③ ML 파이프라인 설계 및 학습, ④ 추론 결과를 NeQuick 엔진에 재주입하는 통합 부분.
03 · 핵심 기술 ①

Az 파라미터 최적화.

문제
NeQuick G의 Az 계산식은 Az = a₀ + a₁·Modip + a₂·Modip². 처음에는 a₀, a₁, a₂ 세 파라미터를 모두 역산하려 했으나, 세 개의 독립적인 방정식을 정립하는 것 자체가 연구 범위를 벗어남.
전환
멘토링에서 결정적 피드백을 받고 접근을 바꿨습니다. "단일 변수로 환원할 수 있는 방법을 찾아보라." → 특정 위치·시각의 Az 값 자체를 직접 역산하는 단일 변수 최적화로 문제를 좁힘. 잔차 함수 1개만 정의하면 됨.
해결
Az가 블랙박스 함수(NeQuick G 내부)를 통과해 TEC를 출력하므로 gradient 기반 최적화를 쓸 수 없어, Nelder-Mead Simplex 알고리즘 채택. 잔차 함수 f(Az)는 단봉(unimodal)으로 가정할 수 있어 simplex가 안정적으로 수렴.
구현 디테일
Python에서 NeQuick G 바이너리를 subprocess로 호출.
  • subprocess.run 결과 stdout의 VTEC 파싱이 깨지는 버그 — 정규식으로 보강
  • exec_cmd 컬럼의 기존 a₀, a₁, a₂ 값을 제거하고 최적화 Az를 주입하는 전처리 추가
  • nan 값과 공백 데이터로 인한 csv 포맷 오류 케이스 핸들링
  • 최적화 코드와 NeQuick 재실행·결과 저장 코드를 하나의 파이프라인으로 병합해 I/O 오버헤드 제거
Az 값 3D 곡면 비교 — 좌: 기존 NeQuick Global Az (149.5~151.5의 좁은 범위, 거의 평면), 우: 실측 기반 최적화 Az (~160~195, 명확한 비선형 굴곡)
좌: NeQuick Global 기본 Az (거의 평면) → 우: 실측 기반 최적화 Az (명확한 비선형)
결과
전국 23개 관측소 × 시각별 최적 Az 데이터셋 구축. 극소기(2020-11-20)와 극대기(2023-01-20) 모두에서 실측 기반 최적 Az가 위치에 따라 명확한 비선형성을 보임 — 2차 다항식으로는 표현 불가능한 굴곡. 이 관찰이 곧 ML 도입의 핵심 근거가 됨.
설계 결정
문제를 단순화하는 것이 곧 문제를 푸는 것. 세 변수 역산을 포기하고 단일 변수 최적화로 환원한 것이 가장 결정적인 전환이었습니다.
04 · 핵심 기술 ②

ML 기반 Az 예측 모델.

Feature 설계
전리층 상태는 태양활동·시간·위치에 따라 변하므로 세 축을 모두 feature로 반영. UT 보정에는 cos(2π × hour / 24)를 써서 23시↔0시 연속성 확보. F10.7·SSN 등 스케일 차이가 큰 feature는 StandardScaler로 표준화.
Feature 설계 표 — F10.7, SSN, UT, UT 보정값 cos(2π×hour/24), grid_point, R-LLH/S-LLH 각각의 설명과 사용 근거
StandardScaler 적용 전/후 — SSN·F10.7·Month·Rec_Lat·Az의 원본 값과 스케일링된 값 비교
StandardScaler 적용 전/후 — 스케일 차이가 큰 feature를 동일한 분포로 정규화
모델 선정
안정적이고 하이퍼파라미터에 덜 민감한 Random Forest를 baseline으로 시작. 두 가지 한계 발견:
  • 시계열·공간 연속성 반영 한계 — 트리 기반 독립 분기 구조라 grid_point·시간대 연속성 학습 안 됨
  • 학습 데이터 부족 시 과적합 — 초기 단일 시점 학습에서 R² 0.252까지 하락
데이터를 5년치(2020.01~2025.04)로 확장한 뒤 RF는 R² 0.718까지 회복. 이어서 XGBoost·LightGBM 비교.
RF / XGBoost / LightGBM 성능 비교 — RMSE·MAE·1-MAPE·R². LightGBM이 MAE 5.76, R² 0.720으로 최우수
채택
LightGBM — MAE 기준 최우수(RF 6.26 / XGBoost 6.65 / LightGBM 5.76), 학습·추론 속도도 가장 빠름. XGBoost가 RF보다 약간 떨어진 건 leaf-wise growth가 이 데이터 분포 특성과 더 잘 맞은 것으로 추정.
튜닝
LightGBM 채택 후 Optunan_estimators / learning_rate / max_depth / num_leaves / subsample / reg_alpha·lambda 6개 파라미터 탐색 자동화. 동일 모델·동일 데이터에서 R² 0.720 → 0.837, RMSE 7.79 → 5.93 TECU.
설계 결정
"어떤 모델이 좋은가"보다 "이 데이터 분포에는 왜 이 모델이 더 맞는가"를 고민한 출발점. 스케일링된 분포로 학습했기에 추론 시점에도 반드시 학습 당시의 스케일러로 입력을 변환.
05 · 최종 성과

NeQuick Global 대비
정확도 큰 폭 개선.

테스트 구간: 2025.04.24 ~ 2025.04.30 (평균 SSN 133, F10.7 157 — 극대기 직후)

시계열 오차 (GIMs 기준)

ML vs Init vTEC diff 산점도 — 파랑(ML−GIMs)은 0 근처 밀집, 빨강(Init−GIMs)은 ±20~40 범위로 넓게 분산
파랑 (ML − GIMs) 0 근처 밀집 · 빨강 (Init − GIMs) ±20~40 분산

실시간 시뮬레이션 인터페이스

배포된 실시간 시뮬레이션 UI — 날짜/시각 선택으로 NeQuick Global / NeQuick Korea / GIMs vTEC 및 오차 맵을 한반도 위에 시각화
NeQuick Global · NeQuick Korea · GIMs를 동일 시각에 나란히 비교 가능한 웹 인터페이스

모델 포지셔닝

4개 모델 비교표 — NeQuick Global / IGS GIMs / 개별 관측값 / NeQuick Korea, 정확도·측정 범위·실시간 사용성·사용 난이도·사용 방법 비교

NeQuick Korea는 Global의 실시간성과 GIMs의 정확도 사이를 메우는 위치에 자리 잡음. 한반도 지역에서 언제·어디서든 사용 가능하면서도 GIMs 수준의 정확도에 근접한 유일한 옵션.

06 · 한계와 회고

한계와 배운 것.

단기 과적합 가능성학습은 5년치(2020.01~2025.04.23)지만 테스트는 1주일만으로 검증. 태양활동 11년 주기의 일부만 본 셈이라 다음 주기 진입 시 성능 변화는 미검증.
이중주파수 직접 검증 부재GIMs를 ground truth로 평가했으나 GIMs 자체도 grid point 보간값이라 완벽한 실측은 아님. 3D 포지셔닝 결과 또는 독립적 정량 비교가 추후 필요.
DCB 보정 적용 범위멘토 피드백을 반영해 DCB(Differential Code Bias) 보정을 부분 적용했으나, 더 정밀한 그리드 기반 DCB 평가는 시간 제약상 완수하지 못함.

RF → XGBoost → LightGBM 비교 과정에서 단순히 모델을 갈아끼우는 게 아니라 leaf-wise growth가 이 데이터의 어떤 특성에 잘 맞는지를 설명하려 노력했고, 그 과정에서 모델 선정의 사고방식이 바뀌었습니다.