from astropy.io import fits
import numpy as np
scanfile = "/Users/andreapetri/Documents/Columbia/apex/descart/map_making/Scans/29526.fits"
hdulist = fits.open(scanfile)
hdulist.info()
Filename: /Users/andreapetri/Documents/Columbia/apex/descart/map_making/Scans/29526.fits No. Name Type Cards Dimensions Format 0 PRIMARY PrimaryHDU 4 () 1 BinTableHDU 684 10030R x 338C [D, D, D, D, D, D, I, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E, E] 2 CHUNKS BinTableHDU 24 1R x 5C [J, J, 331D, 331D, 331D] 3 BinTableHDU 18 331R x 5C [I, E, E, E, E]
hdulist[0].data
hdulist[1].data.names
['MJD', 'AZIMUTH', 'ELEVATIO', 'RA', 'DEC', 'PARANGLE', 'FLAG', 'CH1', 'CH2', 'CH3', 'CH4', 'CH5', 'CH6', 'CH7', 'CH8', 'CH9', 'CH10', 'CH11', 'CH12', 'CH13', 'CH14', 'CH15', 'CH16', 'CH17', 'CH18', 'CH19', 'CH20', 'CH21', 'CH22', 'CH23', 'CH24', 'CH25', 'CH26', 'CH27', 'CH28', 'CH29', 'CH30', 'CH31', 'CH32', 'CH33', 'CH34', 'CH35', 'CH36', 'CH37', 'CH38', 'CH39', 'CH40', 'CH41', 'CH42', 'CH43', 'CH44', 'CH45', 'CH46', 'CH47', 'CH48', 'CH49', 'CH50', 'CH51', 'CH52', 'CH53', 'CH54', 'CH55', 'CH56', 'CH57', 'CH58', 'CH59', 'CH60', 'CH61', 'CH62', 'CH63', 'CH64', 'CH65', 'CH66', 'CH67', 'CH68', 'CH69', 'CH70', 'CH71', 'CH72', 'CH73', 'CH74', 'CH75', 'CH76', 'CH77', 'CH78', 'CH79', 'CH80', 'CH81', 'CH82', 'CH83', 'CH84', 'CH85', 'CH86', 'CH87', 'CH88', 'CH89', 'CH90', 'CH91', 'CH92', 'CH93', 'CH94', 'CH95', 'CH96', 'CH97', 'CH98', 'CH99', 'CH100', 'CH101', 'CH102', 'CH103', 'CH104', 'CH105', 'CH106', 'CH107', 'CH108', 'CH109', 'CH110', 'CH111', 'CH112', 'CH113', 'CH114', 'CH115', 'CH116', 'CH117', 'CH118', 'CH119', 'CH120', 'CH121', 'CH122', 'CH123', 'CH124', 'CH125', 'CH126', 'CH127', 'CH128', 'CH129', 'CH130', 'CH131', 'CH132', 'CH133', 'CH134', 'CH135', 'CH136', 'CH137', 'CH138', 'CH139', 'CH140', 'CH141', 'CH142', 'CH143', 'CH144', 'CH145', 'CH146', 'CH147', 'CH148', 'CH149', 'CH150', 'CH151', 'CH152', 'CH153', 'CH154', 'CH155', 'CH156', 'CH157', 'CH158', 'CH159', 'CH160', 'CH161', 'CH162', 'CH163', 'CH164', 'CH165', 'CH166', 'CH167', 'CH168', 'CH169', 'CH170', 'CH171', 'CH172', 'CH173', 'CH174', 'CH175', 'CH176', 'CH177', 'CH178', 'CH179', 'CH180', 'CH181', 'CH182', 'CH183', 'CH184', 'CH185', 'CH186', 'CH187', 'CH188', 'CH189', 'CH190', 'CH191', 'CH192', 'CH193', 'CH194', 'CH195', 'CH196', 'CH197', 'CH198', 'CH199', 'CH200', 'CH201', 'CH202', 'CH203', 'CH204', 'CH205', 'CH206', 'CH207', 'CH208', 'CH209', 'CH210', 'CH211', 'CH212', 'CH213', 'CH214', 'CH215', 'CH216', 'CH217', 'CH218', 'CH219', 'CH220', 'CH221', 'CH222', 'CH223', 'CH224', 'CH225', 'CH226', 'CH227', 'CH228', 'CH229', 'CH230', 'CH231', 'CH232', 'CH233', 'CH234', 'CH235', 'CH236', 'CH237', 'CH238', 'CH239', 'CH240', 'CH241', 'CH242', 'CH243', 'CH244', 'CH245', 'CH246', 'CH247', 'CH248', 'CH249', 'CH250', 'CH251', 'CH252', 'CH253', 'CH254', 'CH255', 'CH256', 'CH257', 'CH258', 'CH259', 'CH260', 'CH261', 'CH262', 'CH263', 'CH264', 'CH265', 'CH266', 'CH267', 'CH268', 'CH269', 'CH270', 'CH271', 'CH272', 'CH273', 'CH274', 'CH275', 'CH276', 'CH277', 'CH278', 'CH279', 'CH280', 'CH281', 'CH282', 'CH283', 'CH284', 'CH285', 'CH286', 'CH287', 'CH288', 'CH289', 'CH290', 'CH291', 'CH292', 'CH293', 'CH294', 'CH295', 'CH296', 'CH297', 'CH298', 'CH299', 'CH300', 'CH301', 'CH302', 'CH303', 'CH304', 'CH305', 'CH306', 'CH307', 'CH308', 'CH309', 'CH310', 'CH311', 'CH312', 'CH313', 'CH314', 'CH315', 'CH316', 'CH317', 'CH318', 'CH319', 'CH320', 'CH321', 'CH322', 'CH323', 'CH324', 'CH325', 'CH326', 'CH327', 'CH328', 'CH329', 'CH330', 'CH331']
hdulist[1].data['MJD'].shape
(10030,)
hdulist[1].data['CH15'].shape
(10030,)
hdulist[2].data.names
['START', 'END', 'SIGMA', 'ALPHA', 'FKNEE']
hdulist[2].data['START']
array([0], dtype=int32)
hdulist[2].data['END']
array([10029], dtype=int32)
hdulist[2].data['SIGMA'].shape
(1, 331)
hdulist[3].data.names
['ONOFF', 'AZOFF', 'ELOFF', 'GAIN', 'DELTA_PARANGLE']
#This can be only 0 (OFF) or 1(ON)
hdulist[3].data['ONOFF'].shape
(331,)
#Azimuth offset of each detector (constant for each detector in the particular scan)
hdulist[3].data['AZOFF'].shape
(331,)
#Gain of each detector (constant for each detector in the particular scan)
np.where(hdulist[1].data['FLAG']==1)
(array([], dtype=int64),)
#This info has never been used (it's a bunch of zeros), it's an additional constant tilt to the parallactic angle you can
#give to each of the detectors
hdulist[3].data['DELTA_PARANGLE']
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)
hdulist.close()