주제: 인공위성의 현 위치 및 궤도 예측하는 방법 | TLE 데이터 다운로드 | TLE 데이터 사이트
작성: 2024-07-12
수정: 2024-07-14 (목록 수정 및 파이쎤 결과값 작성)
안녕하세요, 개발자 우성우입니다.
지난번에는 NOAA 위성시스템과 위성 고유번호인 NORAD ID에 대해 다뤘습니다. 하지만, 이게 끝이 아닙니다. 지난 시간에 새로운 용어인 "TLE"가 있었습니다. 도대체 TLE가 무엇인지?, 그 값들이 실제로 무엇을 뜻하는지 알아보도록 하겠습니다.
사실 파이썬 라이브러리 사용하면, TLE 각각의 값이 뭘 의미하는지 몰라도 될 것 같지만, 그래도 한번 짚고 넘어가겠습니다!
1. TLE
1.1. 위성 TLE란?
TLE는 Two-LIne Elements set의 축약형으로, 위성의 궤도 정보를 두 줄로 요약한 데이터셋입니다. 이 두 줄을 통해서 위성의 현재 위치와 속도, 궤도 주기 등 다양한 정보를 계산해 낼 수 있습니다. 또한, TLE 데이터는 인공위성의 위치를 정확하게 추적하고 예측하는 데 활용됩니다.
# NOAA 21 TLE 예시
NOAA 21 (JPSS-2)
1 54234U 22150A 24189.39503491 .00000104 00000+0 70405-4 0 9990
2 54234 98.7518 127.0525 0001961 85.7240 274.4160 14.19534875 85849
1.2. 위성 TLE 다운로드
TLE 데이터는 여러 기관에서 제공하고 있습니다. 대표적으로 CelesTrack와 Space-Track이 있으며, CelesTrak은 무료로 다양한 위성의 TLE 데이터를 제공하고, Space-Track은 회원 가입 후 무료로 데이터를 받을 수 있습니다. 그 외에 NASA의 공식 웹사이트에서도 TLE 데이터를 제공하고 있습니다.
- Celestrack: https://celestrak.org/NORAD/elements/gp.php?GROUP=noaa&FORMAT=tle
- SPACE-TRACK: https://www.space-track.org/auth/login
- NORAD : https://celestrak.org/NORAD/elements/
- N2YO : https://www.n2yo.com/
1.3 위성 TLE 데이터 구조
NOAA 18
1 28654U 05018A 24189.81053232 .00000285 00000+0 17549-3 0 9990
2 28654 98.8743 266.6044 0014185 9.5515 350.5925 14.13247424986170
TLE 데이터를 사용하려면, 먼저 데이터를 읽고 해석하는 방법을 알아야 합니다.
TLE 구조에 대해서는 잘 정리해놓은 아래의 wikipedia 및 9574m님의 블로그를 참조하였습니다.
https://en.wikipedia.org/wiki/Two-line_element_set
2. 위성 TLE 사용예시
Python에서는 위성 TLE 다룰 수 있는 Skyfield 또는 SGP4 라이브러리가 있습니다. 이를 통해 TLE 데이터를 쉽게 사용할 수 있습니다.
from skyfield.api import load, Topos
stations_url = 'http://celestrak.com/NORAD/elements/stations.txt'
satellites = load.tle_file(stations_url)
satellite = {sat.name: sat for sat in satellites}
ts = load.timescale()
t = ts.now()
by_name = satellite['ISS (ZARYA)']
geocentric = by_name.at(t)
subpoint = geocentric.subpoint()
print('Latitude:', subpoint.latitude)
print('Longitude:', subpoint.longitude)
print('Elevation (m):', subpoint.elevation.m)
# 결과값
Latitude: -41deg 25' 03.7"
Longitude: -112deg 20' 06.3"
Elevation (m): 434491.9017604565
이렇게 TLE 데이터를 활용하면 인공위성의 현재 위치를 추적하거나, 특정 시간대의 위성의 위치를 예측이 가능해집니다. 예측을 통해서 위성 촬영을 하거나, 위성 통신을 계획할 때 아주 유용하게 사용이 가능합니다.
🧑🏻💻 다음 포스팅에서는 🧑🏻💻
오늘은 위성 TLE가 무엇인지, 어디서 데이터를 다운로드할 수 있는지, 간단한 예제코드까지 확인해 봤습니다.
다음 포스팅에서는 Skyfield 말고 SGP4 라이브러리를 사용해 보도록 하겠습니다.
Reference
- TLE 데이터 구조: https://en.wikipedia.org/wiki/Two-line_element_set
- skyfield 라이브러리 : https://pypi.org/project/skyfield/
'Python > 3️⃣ 프로그래밍' 카테고리의 다른 글
[위성궤도] SGP4 기본 예제코드 이해하기 (1) | 2024.07.14 |
---|---|
[위성궤도] Propagation(전파)와 섭동모델(Perturbations Model) (0) | 2024.07.14 |
[위성궤도] 위성고유번호 NORAD ID란? (3) | 2024.07.10 |
[위성궤도] NOAA에서 소유 및 운영 중인 위성들 (1) | 2024.07.09 |
[PyQt6] 다양한 위젯(Qwidget) 적용하기 (11) | 2024.01.14 |