Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 태양 이미지 그리기 – SunPy 패키지 완벽 가이드

파이썬(Python)에서는 SunPy 패키지를 사용하여 태양 이미지를 손쉽게 생성하고 시각화할 수 있습니다. 이 패키지에는 다양한 태양 관측소와 태양 연구 기관에서 수집한 양성자·전자 플럭스(proton/electron flux) 등의 태양 관측 데이터가 포함되어 있어, 태양 물리학 연구 및 교육 목적으로 널리 활용됩니다.

SunPy 설치하기

SunPy 패키지는 pip를 통해 간단히 설치할 수 있습니다.

pip install sunpy

AIA 이미지란?

이번 예제에서는 AIA 샘플 이미지를 시각화해 보겠습니다. AIA(Atmospheric Imaging Assembly, 대기 성상 카메라)는 NASA의 태양 관측 위성인 SDO(Solar Dynamics Observatory)에 탑재된 관측 장비 중 하나로, 자외선 파장대에서 태양 대기를 지속적으로 촬영합니다. 특히 171Å 파장 이미지는 약 60만 도의 코로나 가스 분포를 선명하게 보여주기 때문에 태양 관측 입문용으로 가장 많이 사용됩니다.

sunpy.Map() 함수

SunPy에서는 sunpy.Map() 함수를 사용하여 지원되는 데이터 제품(FITS 파일 등)으로부터 맵(Map) 객체를 생성합니다. 맵 객체는 좌표계 정보와 함께 태양 이미지 데이터를 담고 있으며, 이를 통해 이미지 출력, 태양 가장자리(림) 표시, 격자선 그리기 등 다양한 시각화 작업을 수행할 수 있습니다.

예제 코드

import sunpy.map
import matplotlib.pyplot as plt
import sunpy.data.sample

# 샘플 AIA 171 이미지 로드
my_aia = sunpy.map.Map(sunpy.data.sample.AIA_171_IMAGE)

fig = plt.figure()
ax = plt.subplot(111, projection=my_aia)

# 태양 이미지 출력
my_aia.plot()

# 태양 가장자리(limb)와 격자선 표시
my_aia.draw_limb()
my_aia.draw_grid()

plt.colorbar()
plt.show()

코드 단계별 설명

1. 모듈 임포트: sunpy.map, matplotlib.pyplot, 그리고 샘플 데이터를 제공하는 sunpy.data.sample을 불러옵니다.
2. 맵 생성: sunpy.map.Map()에 샘플 AIA_171 이미지 경로를 전달하여 맵 객체를 만듭니다.
3. 좌표축 설정: projection=my_aia 옵션을 사용하면 태양 좌표계(WCS)에 맞는 축이 자동으로 구성됩니다.
4. 시각화: plot()으로 이미지를 그리고, draw_limb()로 태양 가장자리 원을, draw_grid()로 위도·경도 격자선을 추가합니다.

실행 결과

Python으로 태양 이미지 그리기 – SunPy 패키지 완벽 가이드

위 코드를 실행하면 태양 코로나의 고온 가스 분포가 담긴 AIA 171 이미지가 출력되며, 노란색 실선으로 표시된 태양 가장자리와 격자선을 함께 확인할 수 있습니다. 이처럼 SunPy를 활용하면 몇 줄의 코드만으로 전문적인 태양 관측 이미지를 손쉽게 시각화할 수 있습니다.