astropy.io에서fits 파일 정보 얻기

이력서 업데이트: 2019 May31, 트위터는 잘못된 지적과 유익한 정보를 제공해 주신 자원봉사자들에게 감사드립니다.

개요


이전 글 "Python에서 HEALPix 그리기" 중.fits 파일의 IStokes 및 QStokes를 그렸습니다.이번에는 그 서류를 그리지 말고 자세한 정보를 봅시다.

astropy.io


다음에 필요한 모듈은 이번에fits를 import로 합니다.
from astropy.io import fits as ft

fits


다운로드위성 데이터하고 읽어보세요.
# read Planck data
planck_map = ft.open('./LFI_SkyMap_030_1024_R2.01_full.fits')

정보 보기


header


planck_map 변수의 정보를 봅시다.다음 정보를 볼 수 있습니다.
print(repr(planck_map[0].header))
출력 좀 봐.
SIMPLE  =                    T / file does conform to FITS standard             
BITPIX  =                   16 / number of bits per data pixel                  
NAXIS   =                    0 / number of data axes                            
EXTEND  =                    T / FITS dataset may contain extensions            
COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy
COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H                                       
repr 함수는 상호작용 모드로만 표시되며 있든 없든 상관없습니다.
다음 면접에서 해 봅시다.
print(repr(planck_map[1].header))
결과 출력은 다음과 같습니다.
XTENSION= 'BINTABLE'           / binary table extension                         
BITPIX  =                    8 / 8-bit bytes                                    
NAXIS   =                    2 / 2-dimensional binary table                     
NAXIS1  =                   40 / width of table in bytes                        
NAXIS2  =             12582912 / number of rows in table                        
PCOUNT  =                    0 / size of special data area                      
GCOUNT  =                    1 / one data group (required keyword)              
TFIELDS =                   10 / number of fields in each row                   
TTYPE1  = 'I_Stokes'           / label for field   1                            
TFORM1  = 'E       '           / data format of field: 4-byte REAL              
TUNIT1  = 'K_CMB   '           / physical unit of field                         
TTYPE2  = 'Q_Stokes'           / label for field   2                            
TFORM2  = 'E       '           / data format of field: 4-byte REAL              
TUNIT2  = 'K_CMB   '           / physical unit of field                         
TTYPE3  = 'U_Stokes'           / label for field   3                            
TFORM3  = 'E       '           / data format of field: 4-byte REAL              
TUNIT3  = 'K_CMB   '           / physical unit of field                         
TTYPE4  = 'Hits    '           / label for field   4                            
TFORM4  = 'J       '           / data format of field: 4-byte INTEGER           
TUNIT4  = 'none    '           / physical unit of field                         
TTYPE5  = 'II_cov  '           / label for field   5                            
TFORM5  = 'E       '           / data format of field: 4-byte REAL              
TUNIT5  = '(K_CMB)^2'          / physical unit of field                         
TTYPE6  = 'IQ_cov  '           / label for field   6                            
TFORM6  = 'E       '           / data format of field: 4-byte REAL              
TUNIT6  = '(K_CMB)^2'          / physical unit of field                         
TTYPE7  = 'IU_cov  '           / label for field   7                            
TFORM7  = 'E       '           / data format of field: 4-byte REAL              
TUNIT7  = '(K_CMB)^2'          / physical unit of field                         
TTYPE8  = 'QQ_cov  '           / label for field   8                            
TFORM8  = 'E       '           / data format of field: 4-byte REAL              
TUNIT8  = '(K_CMB)^2'          / physical unit of field                         
TTYPE9  = 'QU_cov  '           / label for field   9                            
TFORM9  = 'E       '           / data format of field: 4-byte REAL              
TUNIT9  = '(K_CMB)^2'          / physical unit of field                         
TTYPE10 = 'UU_cov  '           / label for field  10                            
TFORM10 = 'E       '           / data format of field: 4-byte REAL              
TUNIT10 = '(K_CMB)^2'          / physical unit of field                         
EXTNAME = 'FREQ-MAP'                                                            
DATE    = '2015-01-20T12:35:13' / file creation date (YYYY-MM-DDThh:mm:ss UT)   
COMMENT                                                                         
COMMENT *** Planck params ***                                                   
COMMENT                                                                         
PIXTYPE = 'HEALPIX '           / HEALPIX pixelisation                           
ORDERING= 'NESTED  '           / Pixel ordering scheme, either RING or NESTED   
NSIDE   =                 1024 / Resolution parameter for HEALPIX               
FIRSTPIX=                    0 / First pixel # (0 based)                        
LASTPIX =             12582911 / Last pixel # (0 based)                         
INDXSCHM= 'IMPLICIT'           / Indexing: IMPLICIT or EXPLICIT                 
EXTVER  =                    2                                                  
PROCVER = 'DX11D   '                                                            
BAD_DATA=          -1.6375E+30                                                  
FREQ    =                   30                                                  
COORDSYS= 'GALACTIC'                                                            
POLCCONV= 'COSMO   '           / Coord. convention for polarization (COSMO/IAU) 
FILENAME= 'LFI_SkyMap_030_1024_R2.01_full.fits'                                 
COMMENT ---------------------------------------------------------------------   
COMMENT LFI RIMO 12.1                                                           
COMMENT Madam version 3.7.4                                                     
COMMENT Added monopole offset 8.34887355761e-05 to column I_Stokes              
COMMENT LFI-DMC object:                                                         
COMMENT TOODI%ACCTOODI%%madam_IQUmap_LFI_calib_30GHz_DX11D_full_025_sec:0%      
COMMENT TOODI%ACCTOODI%%madam_hit_LFI_calib_30GHz_DX11D_full_025_sec:0%         
COMMENT TOODI%ACCTOODI%%madam_cov_LFI_calib_30GHz_DX11D_full_025_sec:0%         
COMMENT ---------------------------------------------------------------------   
CHECKSUM= 'Ec3CFc1BEc1BEc1B'   / HDU checksum updated 2015-01-20T12:35:18       
DATASUM = '706919705'          / data unit checksum updated 2015-01-20T12:35:18 
이렇게 하면 TTYPE1처럼 쓴 항목에 I_StokesQ_Stokes가 있다는 것을 알 수 있다.

header['TTYPE3']


다음과 같이 실행해 보세요.
print(planck_map[1].header['TTYPE3'])
결과는 다음과 같다.
U_Stokes
TTYPE3에 추적 파라미터 U의 데이터가 포함되어 있습니다.

header['NSIDE']


다음은 이거야.피트스 파일 좀 볼게요. n_side
print(planck_map[1].header['NSIDE'])
그리하여
1024
이렇게fits 파일이 무엇인지pixel을 찾기 위해 필요한 정보를 얻을 수 있습니다.

header['ORDERING']


다음은 이거야.피트스 파일 주문서 좀 봅시다.이곳의 주문서는pixel의 번호 규칙을 의미합니다.

RING

NESTED
그럼 주문서 좀 찾아볼게요.
print(planck_map[1].header['ORDERING'])
그리하여
NESTED
알고 있습니다.

결어


이 방법을 사용하여 하나하나.fits를 다운로드한 사이트에서 정보를 찾지 않아도 로컬 환경에서'이.fits 파일이 어떤 데이터인지, 어떤 데이터 구조인지'를 확인할 수 있다.

좋은 웹페이지 즐겨찾기