def test_entries_from_file(): with pytest.warns(AstropyUserWarning, match='File may have been truncated'): entries = list(entries_from_file(MQ_IMAGE)) assert len(entries) == 1 entry = entries[0] assert len(entry.fits_header_entries) == 31 expected_fits_header_entries = [ FitsHeaderEntry('SIMPLE', True), FitsHeaderEntry('BITPIX', 16), FitsHeaderEntry('NAXIS', 2), FitsHeaderEntry('NAXIS1', 1500), FitsHeaderEntry('NAXIS2', 1340), FitsHeaderEntry('CONTACT', '*****@*****.**'), FitsHeaderEntry('DATE_OBS', '2013-08-12T08:42:53.000'), FitsHeaderEntry('DATE_END', '2013-08-12T08:42:53.000'), FitsHeaderEntry('FILENAME', 'mq130812.084253.fits'), FitsHeaderEntry('INSTITUT', 'Observatoire de Paris'), FitsHeaderEntry('INSTRUME', 'Spectroheliograph'), FitsHeaderEntry('OBJECT', 'FS'), FitsHeaderEntry('OBS_MODE', 'SCAN'), FitsHeaderEntry('PHYSPARA', 'Intensity'), FitsHeaderEntry('NBREG', 1), FitsHeaderEntry('NBLAMBD', 1), FitsHeaderEntry('WAVELNTH', 6563), FitsHeaderEntry('WAVEUNIT', 'angstrom'), FitsHeaderEntry('POLARANG', 0), FitsHeaderEntry('THEMISFF', 3), FitsHeaderEntry('LONGTRC', 258.78), FitsHeaderEntry('LONGCARR', 258.78), FitsHeaderEntry('LONGITUD', 258.78), FitsHeaderEntry('LATITUD', 6.50107), FitsHeaderEntry('LATIRC', 6.50107), FitsHeaderEntry('INDLAMD', 1), FitsHeaderEntry('INDREG', 1), FitsHeaderEntry('SEQ_IND', 1), FitsHeaderEntry('SVECTOR', 0), FitsHeaderEntry('COMMENT', ''), FitsHeaderEntry('HISTORY', '') ] assert entry.fits_header_entries == expected_fits_header_entries assert entry.fits_key_comments.sort() == [ FitsKeyComment('SIMPLE', 'Written by IDL: Mon Aug 12 08:48:08 2013'), FitsKeyComment('BITPIX', 'Integer*2 (short integer)') ].sort() assert entry.instrument == 'Spectroheliograph' assert entry.observation_time_start == datetime(2013, 8, 12, 8, 42, 53) assert entry.observation_time_end == datetime(2013, 8, 12, 8, 42, 53) assert round(entry.wavemin, 1) == 656.3 assert round(entry.wavemax, 1) == 656.3 assert entry.path == MQ_IMAGE
def test_entries_from_dir(): entries = list(entries_from_dir(waveunitdir)) assert len(entries) == 4 for entry, filename in entries: if filename.endswith('na120701.091058.fits'): break assert entry.path in (os.path.join(waveunitdir, filename), filename) assert filename.startswith(waveunitdir) assert len(entry.fits_header_entries) == 42 assert entry.fits_header_entries == [ FitsHeaderEntry('SIMPLE', True), FitsHeaderEntry('BITPIX', -32), FitsHeaderEntry('NAXIS', 3), FitsHeaderEntry('NAXIS1', 256), FitsHeaderEntry('NAXIS2', 256), FitsHeaderEntry('NAXIS3', 1), FitsHeaderEntry('DATE', '27-OCT-82'), FitsHeaderEntry('DATE-OBS', '2012-07-01'), FitsHeaderEntry('DATE_OBS', '2012-07-01T09:10:58.200Z'), FitsHeaderEntry('DATE_END', '2012-07-01T09:10:58.200Z'), FitsHeaderEntry('WAVELNTH', 1.98669), FitsHeaderEntry('WAVEUNIT', 'm'), FitsHeaderEntry('PHYSPARA', 'STOKESI'), FitsHeaderEntry('OBJECT', 'FS'), FitsHeaderEntry('OBS_TYPE', 'RADIO'), FitsHeaderEntry('OBS_MODE', 'IMAGE'), FitsHeaderEntry('LONGITUD', 0.0), FitsHeaderEntry('LATITUDE', 0.0), FitsHeaderEntry('INSTITUT', 'MEUDON'), FitsHeaderEntry('CMP_NAME', 'ROUTINE'), FitsHeaderEntry('CONTACT', ' A. KERDRAON'), FitsHeaderEntry('TELESCOP', 'NRH'), FitsHeaderEntry('INSTRUME', 'NRH2'), FitsHeaderEntry('FILENAME', 'nrh2_1509_h80_20120701_091058c02_i.fts'), FitsHeaderEntry('NRH_DATA', '2DB'), FitsHeaderEntry('ORIGIN', 'wrfits'), FitsHeaderEntry('FREQ', 150.9), FitsHeaderEntry('FREQUNIT', 6), FitsHeaderEntry('BSCALE', 1.0), FitsHeaderEntry('BZERO', 0.0), FitsHeaderEntry('BUNIT', 'K'), FitsHeaderEntry('EXPTIME', 1168576512), FitsHeaderEntry('CTYPE1', 'Solar-X'), FitsHeaderEntry('CTYPE2', 'Solar-Y'), FitsHeaderEntry('CTYPE3', 'StokesI'), FitsHeaderEntry('CRPIX1', 128), FitsHeaderEntry('CRPIX2', 128), FitsHeaderEntry('CDELT1', 0.015625), FitsHeaderEntry('CDELT2', 0.015625), FitsHeaderEntry('SOLAR_R', 64.0), FitsHeaderEntry('COMMENT', ''), FitsHeaderEntry('HISTORY', '')] assert entry.fits_key_comments == [ FitsKeyComment('WAVEUNIT', 'in meters'), FitsKeyComment('NAXIS2', 'number of rows'), FitsKeyComment('CDELT2', 'pixel scale y, in solar radius/pixel'), FitsKeyComment('CRPIX1', 'SUN CENTER X, pixels'), FitsKeyComment('CRPIX2', 'SUN CENTER Y, pixels'), FitsKeyComment('SOLAR_R', 'SOLAR RADIUS, pixels'), FitsKeyComment('NAXIS1', 'number of columns'), FitsKeyComment('CDELT1', 'pixel scale x, in solar radius/pixel'), FitsKeyComment('NAXIS3', 'StokesI'), FitsKeyComment('TELESCOP', 'Nancay Radioheliograph'), FitsKeyComment('INSTRUME', 'Nancay 2D-images Radioheliograph'), FitsKeyComment('BUNIT', 'Brightness temperature'), FitsKeyComment('BITPIX', 'IEEE 32-bit floating point values'), FitsKeyComment('DATE', 'Date of file creation'), FitsKeyComment('FREQUNIT', 'in MHz'), FitsKeyComment('EXPTIME', 'in seconds')]