def read(cls, fname, sid, **kwargs): cache = namedtuple( 'K2Cache', 'fname objno nobj nexp time cadence quality fluxes errors x y header' ) if not cls._cache or cls._cache.fname != fname: with pf.open(fname) as fin: data = fin[1].data nobj = fin[1].header['naxis2'] nexp = fin[2].header['naxis2'] fluxes = (1. + data['f'].reshape( [nobj, nexp, -1])) * data['f_med'][:, np.newaxis, :] fluxes = np.swapaxes(fluxes, 1, 2) # Fluxes as [nobj,napt,nexp] ndarray cls._nstars = nobj cls._cache = cache(fname, fin[1].data['objno'], nobj, nexp, fin[2].data['mjd_obs'], fin[2].data['cadence'], np.zeros(nexp, np.int), fluxes, np.zeros_like(fluxes), data['x'], data['y'], fin[0].header) return K2Data(cls._cache.objno[sid], time=cls._cache.time[:-1], cadence=cls._cache.cadence[:-1], quality=cls._cache.quality[:-1], fluxes=cls._cache.fluxes[sid, :, :-1], errors=cls._cache.errors[sid, :, :-1], x=cls._cache.x[sid, :-1], y=cls._cache.y[sid, :-1], sap_header=cls._cache.header)
def read(cls, fname, sid, **kwargs): ftype = kwargs.get('type', 'pdc').lower() assert ftype in cls.allowed_types, 'Flux type must be either `sap` or `pdc`' fkey = cls.fkeys[ftype] try: epic = int(re.findall('ktwo([0-9]+)-c', basename(fname))[0]) except: epic = int(re.findall('C([0-9]+)_smear', basename(fname))[0][2:]) # for smear data = pf.getdata(fname, 1) phead = pf.getheader(fname, 0) dhead = pf.getheader(fname, 1) [h.remove('CHECKSUM') for h in (phead, dhead)] [phead.remove(k) for k in 'CREATOR PROCVER FILEVER TIMVERSN'.split()] return K2Data(epic, time=data['time'], cadence=data['cadenceno'], quality=data['sap_quality'], fluxes=data[fkey], errors=data[fkey + '_err'], x=data['pos_corr1'], y=data['pos_corr2'], primary_header=phead, data_header=dhead, campaign=phead['campaign'])
def read(cls, fname, **kwargs): epic = int(re.findall('EPIC_([0-9]+)_', basename(fname))[0]) data = np.loadtxt(fname, skiprows=1) return K2Data(epic, time=data[:, 0], cadence=data[:, 1], quality=data[:, -1], fluxes=data[:, 2:-3:2].T, errors=data[:, 3:-3:2].T, x=data[:, -3], y=data[:, -2])
def read(cls, fname, sid, **kwargs): # ftype = 'sap_flux' if kwargs.get('type','sap').lower() == 'sap' else 'pdcsap_flux' # try: # epic = int(re.findall('ktwo([0-9]+)-c', basename(fname))[0]) # except: # epic = int(re.findall('C([0-9]+)_smear', basename(fname))[0][2:]) # for smear # data = pf.getdata(fname, 1) # head = pf.getheader(fname, 0) lcfn = 'test.fits' transfn = '/Users/petigura//Research/K2//k2photfiles/pixeltrans_C3_ch04.h5' tlimits = [0, 9999] pipe = k2phot.pipeline_core.Pipeline(fname, lcfn, transfn, tlimits=tlimits, tex=None) pipe.set_lc0('region', 200) print "using the following aperture" print pipe.im.ap hduL = fits.open(pipe.pixfn) quality = hduL[1].data['QUALITY'] fluxes = pipe.lc0['fsap'] time = pipe.lc0['t'] - bjd0 cadence = pipe.lc0['cad'] # Stand in for true photometric errors errors = fluxes * (60 * 30 * pipe.lc0['fsap'].median())**-0.5 pos = pipe.lc0['xpr ypr'.split()] pos -= pos.mean() head = pf.getheader(fname, 0) epic = head['KEPLERID'] x = pos['xpr'] y = pos['ypr'] time = np.array(time) cadence = np.array(cadence) quality = np.array(quality) fluxes = np.array(fluxes) errors = np.array(errors) x = np.array(x) y = np.array(y) return K2Data(epic, time=time, cadence=cadence, quality=quality, fluxes=fluxes, errors=errors, x=x, y=y, sap_header=head)
def read(cls, fname, sid, **kwargs): ftype = 'sap_flux' if kwargs.get( 'type', 'sap').lower() == 'sap' else 'pdcsap_flux' try: epic = int(re.findall('ktwo([0-9]+)-c', basename(fname))[0]) except: epic = int(re.findall('C([0-9]+)_smear', basename(fname))[0][2:]) # for smear data = pf.getdata(fname, 1) head = pf.getheader(fname, 0) return K2Data(epic, time=data['time'], cadence=data['cadenceno'], quality=data['sap_quality'], fluxes=data[ftype], errors=data[ftype + '_err'], x=data['pos_corr1'], y=data['pos_corr2'], sap_header=head)