PyEphem 사용법
파이썬 PyEphem 사용법
PyEphem
은 천체의 위치와 관련된 계산을 하는데 사용하는 파이썬 라이브러리입니다.이를 이용하여 태양, 달과 같은 천체의 위치를 계산할 수 있습니다.
이번 포스팅에서는 지평좌표계에서 태양의 위치를 구하는 방법을 설명하도록 하겠습니다. 여기서 지평좌표계란, 지구의 관측자를 중심으로 천체가 어디에 위치에 있는지 표현하는 방법입니다. 지평좌표계에서 천체의 위치는 방위각(azimuth)과 고도(altitude)로 표현합니다.
방위각
은 북쪽을 기준으로 시계 방향으로 측정한 각도입니다. 북쪽은 0도, 동쪽은 90도, 남쪽은 190도, 서쪽은 270도입니다. 고도
는 지평선에서부터 천체까지의 각도입니다. 지평선은 0도이고, 정점(머리 위)는 90도입니다.
방위각과 고도를 구하기 위해서는 우선 관측자 객체를 설정해야 합니다. 관측자 객체는 위도(lat)와 경도(lon), 시간(date)을 멤버변수로 갖습니다. 이후, 천체 객체를 이용하여 관측자 객체를 기준으로 천체의 위치를 계산할 수 있습니다.
관측할 천체를 생성합니다. PyEphem은 다양한 천체 타입을 지원합니다. 이후 만들어진 천체 객체의 compute() 메서드에 관측자 객체를 인수로 제공하면, 천체 객체의 멤버 변수들로 천체의 위치를 알 수 있습니다. 이들은 라디안 단위로 제공됩니다.
라디안은 각도를 측정하는 단위입니다. 호의 길이와 반지름 길이가 같을 때의 중심각을 1라디안으로 정의합니다. 이 단위가 낯설다면, 라디안에 (원주율 / 180)를 곱하면 일상적으로 사용하는 도를 나타낼 수 있습니다. 자세한 내용은 아래의 링크에서 찾을 수 있습니다. PyEphem 공식 문서
사용할 변수 설정
import ephem
time = '2024/04/30 09:00:00' # 관측 시점
latitude = 37.012103 # 위도
longitude = 127.292206 # 경도
관측자 객체 생성 및 초기화
myPosition = ephem.Observer()
myPosition.date = time # 관측 시점 설정
myPosition.lat = latitude # 위도 설정
myPosition.lon = longitude # 경도 설정
태양 객체 생성 및 계산
sun = ephem.Sun()
sun.compute(myPosition) # 관측자 객체를 기준으로 태양의 변수들을 계산
방위각과 고도를 구한 후, 라디안을 도(degree)로 변환
sunAltitude = sun.alt * (180.0 / ephem.pi) # 라디안을 도로 변환
sunAzimuth = sun.az * (180.0 / ephem.pi) # 라디안을 도로 변환
print(f"태양의 고도각: {sunAltitude:.2f}도")
print(f"태양의 방위각: {sunAzimuth:.2f}도")
태양의 고도각: 19.07도
태양의 방위각: 309.52도
댓글남기기