In [16]:
import astropy as ap
import healpy as hp
import pandas as pd
import numpy as np
import scipy as sc
In [2]:
hdulist1 = ap.io.fits.open('data/LFI_SkyMap_044-BPassCorrected-field-IQU_0256_R2.01_full.fits')
hdulist2 = ap.io.fits.open('data/pixel_coords_map_nested_ns256.fits')
In [3]:
hdulist1[0].header
Out[3]:
SIMPLE = T / Written by IDL: Mon Oct 19 17:09:28 2015
BITPIX = 8 /Dummy primary header created by MWRFITS
NAXIS = 0 /No data is associated with this header
EXTEND = T /Extensions may (will!) be present
CHECKSUM= 'J7dPK6bNJ6bNJ6bN' / HDU checksum created 2015-10-19T15:09:28
In [4]:
hdulist1[1].header
Out[4]:
XTENSION= 'BINTABLE' /Written by IDL: Mon Oct 19 17:09:27 2015
BITPIX = 8 /
NAXIS = 2 /Binary table
NAXIS1 = 12 /Number of bytes per row
NAXIS2 = 786432 /Number of rows
PCOUNT = 0 /Random parameter count
GCOUNT = 1 /Group count
TFIELDS = 3 /Number of columns
COMMENT
COMMENT *** End of mandatory fields ***
COMMENT
EXTNAME = 'BPassCorrected' /Extension name
EXTVER = 1 /Extension version
DATE = '2015-10-19' /Creation date
COMMENT
COMMENT *** Column names ***
COMMENT
TTYPE1 = 'TEMPERATURE ' /
TTYPE2 = 'Q_POLARIZATION ' /
TTYPE3 = 'U_POLARIZATION ' /
COMMENT
COMMENT *** Column formats ***
COMMENT
TFORM1 = 'E ' /
TFORM2 = 'E ' /
TFORM3 = 'E ' /
COMMENT
COMMENT *** Column units ***
COMMENT
TUNIT1 = 'K_CMB ' /
TUNIT2 = 'K_CMB ' /
TUNIT3 = 'K_CMB ' /
COMMENT
COMMENT *** Planck params ***
COMMENT
PIXTYPE = 'HEALPIX ' / HEALPIX pixelisation
ORDERING= 'NESTED ' / Pixel ordering scheme, either RING or NESTED
COORDSYS= 'GALACTIC' /
POLCCONV= 'COSMO ' / Coord. convention for polarization (COSMO/IAU)
NSIDE = 256 / Resolution parameter for HEALPIX
FIRSTPIX= 0 / First pixel # (0 based)
LASTPIX = 786431 / Last pixel # (0 based)
INDXSCHM= 'IMPLICIT' / Indexing; IMPLICIT or EXPLICIT
BAD_DATA= -1.63750E+030 / Sentinel value given to bad pixel
PROCVER = 'DX11D ' / Product version
FILENAME= 'LFI_SkyMap_044-BPassCorrected-field-IQU_0256_R2.01_full.fits' / FITS
COMMENT
COMMENT Original Inputs
COMMENT ------------------------------------------------------------
COMMENT PLANCK_CONV Version 0.6.3
COMMENT PLANCK_CONV: Smoothed to give gaussian beam of FWHM 60.0 arcmin
COMMENT PLANCK_CONV: Covariance matrix appropriately smoothed
COMMENT Input file: LFI_SkyMap_044_1024_DX11D_full.fits
COMMENT ------------------------------------------------------------
COMMENT For further details see Planck Explanatory Supplement at:
COMMENT http://www.cosmos.esa.int/wikiSI/planckpla
COMMENT ------------------------------------------------------------
DATASUM = '4294428839' / data unit checksum created 2015-10-19T15:09:28
CHECKSUM= 'bqGEcoEDboEDboED' / HDU checksum created 2015-10-19T15:09:28
In [5]:
hdulist2[0].header
Out[5]:
SIMPLE = T /Dummy Created by MWRFITS v1.11
BITPIX = 8 /Dummy primary header created by MWRFITS
NAXIS = 0 /No data is associated with this header
EXTEND = T /Extensions may (will!) be present
In [6]:
hdulist2[1].header
Out[6]:
XTENSION= 'BINTABLE' /Binary table written by MWRFITS v1.11
BITPIX = 8 /Required value
NAXIS = 2 /Required value
NAXIS1 = 52 /Number of bytes per row
NAXIS2 = 786432 /Number of rows
PCOUNT = 0 /Normally 0 (no varying arrays)
GCOUNT = 1 /Required value
TFIELDS = 7 /Number of columns in table
TFORM1 = 'J ' /
TFORM2 = 'D ' /
TFORM3 = 'D ' /
TFORM4 = 'D ' /
TFORM5 = 'D ' /
TFORM6 = 'D ' /
TFORM7 = 'D ' /
TTYPE1 = 'PIXNUM ' /
TTYPE2 = 'GLON ' /
TTYPE3 = 'GLAT ' /
TTYPE4 = 'RA_J2000' /
TTYPE5 = 'DEC_J2000' /
TTYPE6 = 'ELON ' /
TTYPE7 = 'ELAT ' /
In [7]:
print hdulist1[1].columns
print hdulist1[1].data[0]
ColDefs(
name = 'TEMPERATURE'; format = 'E'; unit = 'K_CMB'
name = 'Q_POLARIZATION'; format = 'E'; unit = 'K_CMB'
name = 'U_POLARIZATION'; format = 'E'; unit = 'K_CMB'
)
(0.0031698239, 1.9594201e-05, -1.8488504e-06)
In [8]:
print hdulist2[1].columns
print hdulist2[1].data[0]
ColDefs(
name = 'PIXNUM'; format = 'J'
name = 'GLON'; format = 'D'
name = 'GLAT'; format = 'D'
name = 'RA_J2000'; format = 'D'
name = 'DEC_J2000'; format = 'D'
name = 'ELON'; format = 'D'
name = 'ELAT'; format = 'D'
)
(0, 45.0, 0.14920792779581404, 288.29303324362053, 10.792924914087711, 291.53773611464624, 32.874568057877504)
In [9]:
hdulist1[1].data[:]
Out[9]:
FITS_rec([( 0.00316982, 1.95942011e-05, -1.84885039e-06),
( 0.0031159 , 2.00215927e-05, 2.13285603e-08),
( 0.00275203, 1.82829390e-05, -3.22038568e-06), ...,
( 0.00265198, 2.30908572e-05, -5.39131361e-06),
( 0.00285171, 1.92052012e-05, -4.28331532e-06),
( 0.00277394, 2.41910766e-05, -2.20624679e-06)],
dtype=(numpy.record, [('TEMPERATURE', '>f4'), ('Q_POLARIZATION', '>f4'), ('U_POLARIZATION', '>f4')]))
In [10]:
hdulist2[1].data[:]
Out[10]:
FITS_rec([ ( 0, 45. , 0.14920793, 288.29303324, 10.79292491, 291.53773611, 32.87456806),
( 1, 45.17578125, 0.29841687, 288.24139154, 11.01784814, 291.517813 , 33.10453026),
( 2, 44.82421875, 0.29841687, 288.07553968, 10.70629897, 291.27095024, 32.820466 ),
...,
(786429, 315.17578125, -0.29841687, 218.54316017, -60.70446295, 238.58601966, -42.75486537),
(786430, 314.82421875, -0.29841687, 217.87750882, -60.83842998, 238.26279591, -43.01467883),
(786431, 315. , -0.14920793, 218.09508128, -60.63385649, 238.27449673, -42.78426963)],
dtype=(numpy.record, [('PIXNUM', '>i4'), ('GLON', '>f8'), ('GLAT', '>f8'), ('RA_J2000', '>f8'), ('DEC_J2000', '>f8'), ('ELON', '>f8'), ('ELAT', '>f8')]))
In [11]:
field = np.array(hdulist1[1].data.T)
coords = np.array(hdulist2[1].data.T)
In [12]:
x = np.zeros(np.size(coords))
y = np.zeros(np.size(coords))
f = np.zeros(np.size(field))
In [13]:
for i in xrange(0, 786432):
x[i] = coords[i][1]
y[i] = coords[i][2]
f[i] = field[i][0] # T
In [14]:
unigue_x = sc.unique(x)
unigue_y = sc.unique(y)
In [15]:
data_n = np.column_stack((x, y, f))
data = pd.DataFrame(data_n, columns=['x', 'y', 'f'])
Content source: heyfaraday/CMB_test
Similar notebooks: