def normalize_masterflat(WORK_DIR):
  print '\n + Normalizing masterflat.\n'

  try: os.remove('masterflat_norm.fits')
  except: pass

  iraf.apflatten(input='masterflat.fits', output='masterflat_norm.fits', referen=observations[WORK_DIR]['objects'][0], interac='no', find='no', recenter='no', resize='no', edit='no', trace='no', fittrac='no', flatten='yes', fitspec='yes', functio='spline3', order=13, sample='51:2098', niterat=5)
Esempio n. 2
0
def produce_flat(filelist_flat, masterflat_name):
    flat_directory = os.path.dirname(filelist_flat[0])

    filelist_text = open("filelist.lis", "w")
    for i in range(len(filelist_flat)):
        filelist_text.write(filelist_flat[i] + "\n")

    filelist_text.close()

    if len(filelist_flat) > 1:
        iraf.imcombine("@filelist.lis",
                       "Flat.raw.fits",
                       combine="average",
                       reject="minmax",
                       nlow=1,
                       nhigh=1,
                       nkeep=1)
        trim = trim_remove_bias("Flat.raw.fits")
        iraf.apflatten(trim,
                       masterflat_name,
                       referen="find_orders_flat",
                       apertures="3-50",
                       trace="no",
                       gain=0.1913,
                       readnoise=3.380)
    else:
        iraf.apflatten(filelist_flat[0],
                       masterflat_name,
                       referen="find_orders_flat",
                       apertures="3-50",
                       trace="no",
                       gain=0.1913,
                       readnoise=3.380)

    os.remove("Flat.raw.fits")
    os.remove(trim)
    os.remove("filelist.lis")
    shutil.move(masterflat_name, os.path.join(flat_directory))

    print("Success! Produced file:" + masterflat_name)
Esempio n. 3
0
    # ir.apnorm1.gain = ")apnormalize.gain"
    # ir.apnorm1.lsigma = ")apnormalize.lsigma"
    # ir.apnorm1.usigma = ")apnormalize.usigma"
    # ir.apnorm1.clean = ")apnormalize.clean"

    if True:  # the old, IRAF way:
        #ir.apnormalize(_sflatdc+'big', _sflatdcn+'big', sample=horizsamp, niterate=1, threshold=flat_threshold, function="spline3", pfit = "fit1d", clean='yes', cennorm='no', recenter='yes', resize='yes', edit='yes', trace='yes', weights='variance', fittrace='yes', interactive=interactive, background='fit', order=3)

        ir.apflatten(_sflatdc + 'big',
                     _sflatdcn + 'big',
                     sample=horizsamp,
                     niterate=1,
                     threshold=flat_threshold,
                     function="spline3",
                     pfit="fit1d",
                     clean='yes',
                     recenter='yes',
                     resize='yes',
                     edit='yes',
                     trace='yes',
                     fittrace='yes',
                     interactive=interactive,
                     order=3)

    else:
        mudflat = pyfits.getdata(_sflatdc + 'big.fits')
        mudhdr = pyfits.getheader(_sflatdc + 'big.fits')
        trace = spec.traceorders(_sflatdc + 'big.fits',
                                 pord=2,
                                 nord=ir.aptrace.order,
                                 g=gain,
Esempio n. 4
0
    def correctblazefn(inflat, outflat, ref_ap=None):
        #Create padded file to get aperatures on edges
        flatdat = pyfits.getdata(inflat + postfn)
        flathdr = pyfits.getheader(inflat + postfn)

        n_big = 1400
        n_base = flatdat.shape[0]
        pad = (n_big - n_base) / 2
        bigflat = ny.zeros([n_big, n_base])

        bigflat[pad:(pad + n_base), :] = flatdat
        pyfits.writeto(inflat + 'big' + postfn,
                       bigflat,
                       flathdr,
                       overwrite=True,
                       output_verify='warn')

        # Flatten Iraf or otherwise
        if irafapflatten:
            if ref_ap == None:
                ir.apflatten(inflat + 'big',
                             outflat + 'big',
                             sample=horizsamp,
                             niterate=1,
                             threshold=flat_threshold,
                             function="spline3",
                             pfit="fit1d",
                             clean='yes',
                             recenter='yes',
                             resize='yes',
                             edit='yes',
                             trace='yes',
                             fittrace='yes',
                             interactive=interactive,
                             order=3)
            else:
                ir.apflatten(inflat + 'big',
                             outflat + 'big',
                             references=ref_ap,
                             sample=horizsamp,
                             niterate=1,
                             threshold=flat_threshold,
                             function="spline3",
                             pfit="fit1d",
                             clean='yes',
                             recenter='yes',
                             resize='yes',
                             edit='yes',
                             trace='no',
                             fittrace='yes',
                             interactive=False,
                             order=3)

        else:
            mudflat = pyfits.getdata(inflat + 'big.fits')
            mudhdr = pyfits.getheader(inflat + 'big.fits')
            trace = spec.traceorders(inflat + 'big.fits',
                                     pord=2,
                                     nord=ir.aptrace.order,
                                     g=gain,
                                     rn=readnoise,
                                     fitwidth=100)
            normflat = spec.normalizeSpecFlat(mudflat * gain,
                                              nspec=ir.aptrace.order,
                                              traces=trace)
            pyfits.writeto(outflat + 'big.fits',
                           normflat,
                           header=mudhdr,
                           output_verify='warn')

        # Remove Padding
        normflatdat = pyfits.getdata(outflat + 'big' + postfn)
        normflathdr = pyfits.getheader(outflat + 'big' + postfn)
        smallnormflat = normflatdat[pad:(pad + n_base), :]
        smallnormflat[smallnormflat == 0] = 1.
        pyfits.writeto(outflat + postfn,
                       smallnormflat,
                       normflathdr,
                       overwrite=True,
                       output_verify='warn')
Esempio n. 5
0
            str_v_mod_out = temp_dir + ('[0]' + ',' +
                                        temp_dir).join(v_mod) + '[0]'

            #iraf.apall("master_flat.fits",extract='no',nfind=58,interactive="no",find="yes")

            iraf.apall(temp_dir + star_file.replace('.fits', '_boost.fits'),
                       extract='no',
                       nfind=62,
                       interactive="no",
                       find="yes",
                       recenter="yes")
            v_mod_norm = SRP.outputnames(v, 'tnrm')
            str_v_mod_flats = temp_dir + (',' + temp_dir).join(v_mod_norm) + ''
            for j, x in enumerate(v_mod):
                iraf.apflatten(cal_dir + 'master_flat.fits',
                               output=temp_dir + v_mod_norm[j],
                               reference=temp_dir +
                               star_file.replace('.fits', '_boost.fits'))

            iraf.reset(use_new_imt="no")
            iraf.flpr("0")

            #divide each science image by its flat
            iraf.imarith(str_v_mod_out, '/', str_v_mod_flats, str_v_mod)

            #stack all science images
            iraf.imcombine(str_v_mod_out, temp_dir + star_file, combine="sum")

            iraf.reset(use_new_imt="no")
            iraf.flpr("0")

            str_star = star_file.replace('.fits', '.ec.fits')