def fitstbl(): if os.getenv('PYPEIT_DEV') is None: fitstbl = dummy_fitstbl(directory=data_path('')) fitstbl['filename'][1] = 'b1.fits.gz' fitstbl['filename'][5] = 'b27.fits.gz' return fitstbl fitstbl = dummy_fitstbl(directory=os.path.join(os.getenv( 'PYPEIT_DEV'), 'RAW_DATA', 'shane_kast_blue', '600_4310_d55')) fitstbl['filename'][1] = 'b1.fits.gz' for ii in range(2, 5): fitstbl['filename'][ii] = 'b{0}.fits.gz'.format(ii) fitstbl['filename'][5] = 'b27.fits.gz' return fitstbl
def test_gen_sensfunc(): kastb = load_spectrograph('shane_kast_blue') # Load a random spectrum for the sensitivity function sfile = data_path('spec1d_r153-J0025-0312_KASTr_2015Jan23T025323.850.fits') specobjs = load.load_specobjs(sfile) # telescope = telescopes.ShaneTelescopePar() fitstbl = dummy_fitstbl() RA = '05:06:36.6' DEC = '52:52:01.0' # Get the sensitivity function sens_dict = flux.generate_sensfunc(specobjs[0][0].boxcar['WAVE'], specobjs[0][0].boxcar['COUNTS'], specobjs[0][0].boxcar['COUNTS_IVAR'], fitstbl['airmass'][4], fitstbl['exptime'][4], kastb.telescope['longitude'], kastb.telescope['latitude'], ra=RA, dec=DEC) # Test assert isinstance(sens_dict, dict) assert isinstance(sens_dict['wave_min'], units.Quantity)
def test_geocorrect(): """ """ fitstbl = dummy_fitstbl() # Specobj (wrap in a list to mimic a slit) scidx = 5 obstime = Time(fitstbl['mjd'][scidx], format='mjd') #'%Y-%m-%dT%H:%M:%S.%f') radec = ltu.radec_to_coord((fitstbl["ra"][scidx], fitstbl["dec"][scidx])) helio, hel_corr = wave.geomotion_correct(radec, obstime, lon, lat, alt, 'heliocentric') assert np.isclose(helio, -9.17461338, rtol=1e-5) # Checked against x_keckhelio #assert np.isclose(helio, -9.3344957, rtol=1e-5) # Original assert np.isclose(1 - hel_corr, 3.060273748e-05, rtol=1e-5) # Now apply to a specobj npix = 1000 sobj = specobj.SpecObj('MultiSlit', 'DET01', SLITID=0) sobj.BOX_WAVE = np.linspace(4000., 6000., npix) sobj.BOX_COUNTS = 50. * (sobj.BOX_WAVE / 5000.)**-1. sobj.BOX_COUNTS_IVAR = 1. / sobj.BOX_COUNTS.copy() sobj.apply_helio(hel_corr, 'heliocentric') assert np.isclose(sobj.BOX_WAVE[0], 3999.877589008, rtol=1e-8)
def fitstbl(): if os.getenv('PYPEIT_DEV') is None: fitstbl = dummy_fitstbl(directory=data_path('')) fitstbl['framebit'][0] = fitstbl.type_bitmask.turn_off(fitstbl['framebit'][0], flag='bias') fitstbl['filename'][1] = 'b1.fits.gz' fitstbl['filename'][5] = 'b27.fits.gz' return fitstbl fitstbl = dummy_fitstbl(directory=os.path.join(os.getenv('PYPEIT_DEV'), 'RAW_DATA', 'shane_kast_blue', '600_4310_d55')) # Set the Bias to known fitstbl['framebit'][0] = fitstbl.type_bitmask.turn_off(fitstbl['framebit'][0], flag='bias') fitstbl['filename'][1] = 'b1.fits.gz' for ii in range(2,5): fitstbl['filename'][ii] = 'b{0}.fits.gz'.format(ii) fitstbl['filename'][5] = 'b27.fits.gz' return fitstbl
def test_save1d_fits(): """ save1d to FITS and HDF5 """ # Init fitstbl = dummy_fitstbl(spectro_name='shane_kast_blue', directory=data_path('')) sobj = mk_specobj() specObjs = specobjs.SpecObjs([sobj]) spectrograph = util.load_spectrograph('shane_kast_blue') # Write to FITS basename = 'test' outfile = data_path('') + 'spec1d_{:s}.fits'.format(basename) save.save_1d_spectra_fits(specObjs, fitstbl[5], spectrograph, outfile)
def test_save2d_fits(): #settings.dummy_settings() #fitsdict = arutils.dummy_fitsdict(nfile=1, spectrograph='none', directory=data_path('')) fitstbl = dummy_fitstbl(directory=data_path('')) # Kludge fitstbl.table.remove_column('filename') fitstbl['filename'] = 'b1.fits.gz' # Settings #settings.argflag['run']['directory']['science'] = data_path('') spectrograph = util.load_spectrograph('shane_kast_blue') # Fill with dummy images dum = np.ones((100, 100)) sci_dict = {} sci_dict[0] = {} sci_dict[0]['sciframe'] = dum sci_dict[0]['finalvar'] = dum * 2 sci_dict[0]['finalsky'] = dum + 0.1 sci_dict['meta'] = {} sci_dict['meta']['vel_corr'] = 0. sci_dict['meta']['ir_redux'] = False basename = 'test' scidx = 5 path = fitstbl['directory'][scidx] ifile = fitstbl['filename'][scidx] rawfile = os.path.join(path, ifile) master_dir = data_path('MF') + '_' + 'shane_kast_blue' outfile = data_path('') + 'spec2d_{:s}.fits'.format(basename) # Create a dummy master_key_dict master_key_dict = dict(frame='', bpm='bpmkey', bias='', arc='', trace='', flat='') raw_hdr = fits.open(rawfile)[0].header save.save_2d_images(sci_dict, raw_hdr, spectrograph, master_key_dict, master_dir, outfile) # Read and test head0 = fits.getheader(data_path('spec2d_test.fits')) assert head0['PYPMFDIR'] == master_dir assert head0[ 'BPMMKEY'] == 'bpm' # See save_2d_images; removes last 3 characters assert 'PYPEIT' in head0['PIPELINE']
def fitstbl(): return dummy_fitstbl()