liminfo

HEALPix Reference

HEALPix 구면 픽셀화/healpy API 레퍼런스

25개 결과

HEALPix Reference 소개

HEALPix 레퍼런스는 구면 등면적 등위도 픽셀화(Hierarchical Equal Area isoLatitude Pixelization) 프레임워크와 Python healpy 라이브러리를 체계적으로 정리한 검색 가능한 가이드입니다. Nside 해상도 파라미터(Nside=1의 12픽셀부터 Planck CMB에 사용되는 Nside=2048의 약 5천만 픽셀까지), RING과 NESTED 번호 체계, Omega_pix = 4*pi / Npix 공식을 이용한 픽셀 면적 계산 등 핵심 개념을 다룹니다.

좌표 변환(ang2pix, pix2ang, ang2vec, vec2ang), FITS 파일 입출력(read_map, write_map), 시각화 함수(mollview Mollweide 전천 투영, gnomview 소영역 확대, cartview 직교 투영), 해상도 변환(ud_grade) 등 healpy API 전체를 상세히 설명합니다. 각 항목에는 numpy와 연동되는 실행 가능한 Python 코드 예제가 포함되어 있습니다.

천체물리학 연구에 필수적인 고급 주제도 다룹니다. anafast를 이용한 각도 파워 스펙트럼 계산, synfast로 CMB 시뮬레이션, map2alm/alm2map 구면 조화 분해, 가우시안 빔 평활화, query_disc와 query_polygon 공간 검색, MOC(Multi-Order Coverage)를 이용한 서베이 풋프린트 기술, LIGO/Virgo 중력파 확률 스카이맵 처리와 신뢰구간 계산까지 포괄합니다.

주요 기능

  • ang2pix, pix2ang, mollview, gnomview 등 20개 이상 healpy API 함수에 대한 Python 코드 예제 제공
  • Nside=1부터 Nside=2048까지 픽셀 수와 각도 해상도 테이블을 포함한 Nside 해상도 파라미터 가이드
  • anafast 파워 스펙트럼, synfast 시뮬레이션, alm2map/map2alm 변환 등 구면 조화함수 분석 함수 정리
  • query_disc, query_polygon, get_all_neighbours, MOC 연산 등 공간 검색 레시피 제공
  • Mollweide, Gnomonic, Cartesian 투영과 좌표 변환(은하 좌표에서 적도 좌표) 시각화 예제
  • LIGO/Virgo 중력파 스카이맵 처리 및 90% 신뢰구간 면적 계산 방법 안내
  • ring2nest/nest2ring 변환 함수와 함께 RING 대 NESTED 픽셀 번호 체계 비교 설명
  • ud_grade를 이용한 HEALPix 맵 해상도 업그레이드/다운그레이드 방법 수록

자주 묻는 질문

HEALPix란 무엇이고 천체물리학에서 왜 사용하나요?

HEALPix(Hierarchical Equal Area isoLatitude Pixelization)는 구면을 등위도 링을 따라 등면적 픽셀로 나누는 프레임워크입니다. 효율적인 구면 조화함수 변환과 계층적 공간 인덱싱이 가능하여 Planck CMB 관측, LIGO/Virgo 중력파 관측소, 대규모 서베이 미션에서 표준으로 사용됩니다.

Nside와 픽셀 수의 관계는 어떻게 되나요?

총 픽셀 수는 12 * Nside^2이며, Nside는 2의 거듭제곱이어야 합니다. 예를 들어 Nside=64는 49,152개(각 ~0.92 deg^2), Nside=512는 3,145,728개(각 ~0.0134 deg^2), Nside=2048은 약 5천만 개(각 ~2.95 arcmin^2) 픽셀을 제공하며, 이는 Planck 위성의 CMB 맵 해상도입니다.

RING과 NESTED 픽셀 순서는 언제 각각 사용하나요?

RING 순서는 구면 조화함수 분석(anafast, map2alm, synfast)에 사용합니다. 픽셀이 등위도 링을 따라 배열되어 푸리에 변환이 효율적이기 때문입니다. NESTED 순서는 공간 검색, 크로스매칭, 계층적 연산에 적합합니다. 공간 충전 곡선을 따라 가까운 픽셀이 수치적으로도 가깝기 때문입니다. hp.ring2nest()와 hp.nest2ring()으로 변환할 수 있습니다.

HEALPix 맵의 각도 파워 스펙트럼은 어떻게 계산하나요?

hp.anafast(skymap, lmax=500)으로 C_l 각도 파워 스펙트럼을 계산합니다. 결과는 다중극 l로 인덱싱된 C_l 값 배열입니다. CMB 파워 스펙트럼을 그릴 때는 x축에 다중극 l, y축에 ell*(ell+1)*cl/(2*pi)를 사용합니다. hp.synfast(cl, nside=256)으로 파워 스펙트럼에서 시뮬레이션 맵을 생성할 수도 있습니다.

하늘의 원형 영역 내 모든 픽셀을 어떻게 찾나요?

hp.query_disc(nside, vec, radius)를 사용합니다. vec은 hp.ang2vec로 생성한 중심 방향의 3D 단위 벡터이고 radius는 라디안 단위입니다. 예를 들어 (RA=180, Dec=45)에서 5도 이내 픽셀을 찾으려면: vec = hp.ang2vec(np.radians(90-45), np.radians(180)), ipix = hp.query_disc(nside, vec, np.radians(5))를 실행합니다.

MOC란 무엇이고 HEALPix와 어떤 관계인가요?

MOC(Multi-Order Coverage)는 여러 Nside 해상도의 HEALPix 픽셀을 사용하여 임의의 천구 영역을 표현하는 방식입니다. IVOA(국제 가상 천문대 연합)에서 서베이 풋프린트, 관측 범위, 카탈로그 공간 범위를 효율적으로 기술하는 데 사용합니다. Python mocpy 라이브러리로 원뿔, HEALPix 셀, 다각형에서 MOC를 생성할 수 있습니다.

LIGO/Virgo 중력파 스카이맵은 어떻게 처리하나요?

hp.read_map("bayestar.fits.gz")으로 확률 맵을 읽고, hp.mollview(prob)으로 시각화합니다. 90% 신뢰구간은 픽셀 확률을 내림차순 정렬 후 누적합을 구하고, 임계값 이상 픽셀 수에 hp.nside2pixarea(nside, degrees=True)를 곱해 면적(제곱도)을 계산합니다.

HEALPix 맵에 가우시안 빔 평활화는 어떻게 적용하나요?

hp.smoothing(skymap, fwhm=np.radians(1.0))을 사용하며, fwhm은 가우시안 빔의 반치전폭(FWHM)을 라디안 단위로 지정합니다. 예를 들어 np.radians(1.0)은 1도 빔을 적용합니다. 서로 다른 해상도 맵 비교나 작은 각도 스케일의 노이즈 억제에 주로 사용됩니다.