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