SGP4란 무엇인가 — 위성 추적기는 어떻게 궤도를 계산할까
한국 위성 트래커의 "ISS 11분 후 서울 상공 통과" 같은 예보는 어떻게 계산될까요? 답은 SGP4(Simplified General Perturbations 4)라는 궤도 계산 모델입니다. NASA와 미국 우주군이 수십 년째 쓰는 이 알고리즘을 저도 직접 구현해 사용하고 있습니다. 수식이 무서워 보이지만 개념은 생각보다 명쾌합니다.
먼저: 위성의 위치를 안다는 게 뭘 의미하나요?
지구를 도는 위성의 위치를 표현하려면 두 가지가 필요합니다. ① 지금 이 순간의 궤도 정보, ② 그 궤도를 미래로 전파(propagate)하는 수학적 모델. SGP4는 바로 이 ②번을 담당합니다.
우주에서 위성의 움직임은 순수한 케플러 타원 궤도를 따르지 않습니다. 지구 자체가 완전한 구가 아닌 타원형(적도가 볼록)이고, 대기 저항이 있고, 달과 태양의 중력도 있고, 태양 복사압도 있습니다. SGP4는 이 모든 섭동(perturbation) 요소를 수학적으로 모델링해 위성의 미래 위치를 계산합니다.
TLE — 궤도 데이터의 여권
모든 계산의 시작은 TLE(Two-Line Element set, 두 줄 궤도 요소)입니다. 이름 그대로 두 줄짜리 문자열로 위성의 궤도를 표현합니다. ISS의 실제 TLE를 보면 이렇게 생겼습니다:
줄 2: [행번호] [위성번호] [경사각 51.6°] [승교점 적경] [이심률] [근지점 편각] [평균 근점각] [하루 공전 횟수 15.5회] [혁명번호]
이 두 줄만 있으면 그 시점 이후 어느 순간에든 위성의 위치를 계산할 수 있습니다. 단, 시간이 지날수록 오차가 커집니다 — 대기 항력 등 예측하기 어려운 요소들이 누적되기 때문입니다.
TLE의 핵심 6개 요소 (케플러 궤도 요소)
SGP4가 계산하는 순서
① J2 항 (지구 편평도) — 적도 부근 중력이 강해 승교점과 근지점이 세차(precession).
② 대기 항력 — TLE의 B* 계수를 이용해 궤도 감쇠 계산. 이것이 고도 손실과 공전 속도 증가를 만들어냅니다.
③ 공진 효과 — 지구 자전과 위성 공전의 공진으로 발생하는 추가 섭동.
theta = GMST + longitude 형태의 회전 변환을 씁니다.ISS 경사각 51.6°가 중요한 이유
ISS의 경사각 51.6°는 우연이 아닙니다. 러시아 바이코누르 발사장의 위도가 약 46°N인데, 소유즈 로켓이 이 위도에서 직접 도달 가능한 최소 경사각이 51.6°입니다. 미국 케네디 우주센터(위도 28.5°N) 입장에서 보면 비효율적이지만, 국제 협력을 위해 러시아가 접근 가능한 경사각을 채택했습니다.
이 경사각 때문에 ISS는 북위 약 51.6°와 남위 51.6° 사이 지역에서만 머리 위를 지납니다. 한국(북위 33~38°)은 이 범위 안에 있어 ISS가 높은 고도각으로 통과하는 날이 많습니다.
경사각 51.6°인 ISS는 한국 상공을 지날 때 대략 서→동 방향이나 서남→동북 방향으로 이동합니다. 머리 위를 거의 수직으로 지나는 "오버헤드 패스(Overhead Pass)"는 약 10~14일마다 한 번 찾아오는데, 이때 최고 고도각이 70~85°에 달해 가장 오래(5~6분) 밝게 볼 수 있습니다.
예보 오차의 원인들
SGP4는 정확하지만 완벽하지 않습니다. 어느 앱을 써도 예보가 완전히 정확하지 않은 이유가 있습니다:
| 오차 원인 | 오차 크기 | 설명 |
|---|---|---|
| TLE 노후화 | 수 초 ~ 수 분 | TLE는 생성 직후가 가장 정확합니다. 2주 이상 된 TLE는 km 단위 오차가 납니다. 이 사이트는 1시간마다 TLE를 갱신합니다. |
| 대기 밀도 변동 | 수 초 | 태양 활동(11년 주기)에 따라 고층 대기 밀도가 수배 변합니다. 태양 극대기에는 ISS 고도 손실이 커져 예보 오차도 커집니다. |
| ISS 고도 조정 (Reboost) | 수 분 | ISS는 한 달에 1~2회 추력기를 점화해 고도를 높입니다. 리부스트 직후에는 TLE가 갱신되기 전까지 예보 오차가 큽니다. |
| SGP4 모델 한계 | 수백 m | SGP4는 해석적(analytic) 근사 모델입니다. 수치 적분 방식(HPOP)보다 정확도가 낮지만 계산 속도가 빠릅니다. |
| 관측자 위치 오차 | 수 초 | GPS 오차, 도시 이름의 대표 좌표 사용 등으로 관측자 위치에 수백 m 오차가 있으면 예보 시각에 수 초 차이가 납니다. |
이 사이트가 다른 앱과 다른 점
시중의 많은 위성 추적 앱들은 NASA JPL 또는 Heavens-Above의 예보를 그대로 가져와 표시합니다. 한국 위성 트래커는 CelesTrak에서 직접 TLE를 받아 브라우저 안에서 SGP4 계산을 실행합니다.
- ✅ 서버 없이 브라우저 직접 계산 — 내 위치 정보가 서버로 전송되지 않음
- ✅ 1시간마다 TLE 자동 갱신 — 항상 최신 TLE 사용
- ✅ 실시간 날씨 연동 — Open-Meteo 구름량으로 관측 가능성 점수 산출
- ✅ 한국 지역 최적화 — 서울·부산·제주 등 국내 주요 도시 기본 좌표 내장
- ⚠️ 한계 — HPOP 같은 고정밀 수치 적분 모델은 아님. 군 수준의 정밀도가 필요한 용도에는 부적합
실제로 계산을 해보고 싶다면
JavaScript/Node.js 환경에서 직접 SGP4를 실행해볼 수 있습니다:
SGP4는 TLE라는 간결한 두 줄짜리 궤도 데이터를 받아 지구 편평도·대기항력·달/태양 중력 등의 섭동을 보정한 뒤 위성의 미래 위치를 계산하는 표준 알고리즘입니다. 한국 위성 트래커는 이 알고리즘을 브라우저에서 직접 실행해 서버 없이 실시간 예보를 제공합니다. TLE가 최신일수록 예보 정확도가 높으며, ISS 리부스트 직후가 가장 오차가 큰 시기입니다.
더 읽어볼 자료
- Revisiting Spacetrack Report #3 (Vallado 2006) — SGP4 원저논문의 개정판. 가장 정확한 SGP4 구현 기준.
- CelesTrak TLE 문서 — TLE 포맷 공식 설명.
- satellite.js GitHub — 이 사이트가 사용하는 JavaScript SGP4 구현체.