def get_luminosity_and_flux(tbdata, xmm=False): # ### Extract magnitude table and error table ### flux = vari_funcs.flux5_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Find luminosity distance ### z = tbdata['z_spec'] #[mask] z[z == -1] = tbdata['z_p'][z == -1] DL = cosmo.luminosity_distance(z) DL = DL.to(u.cm) ### Calculate luminosity ### if xmm == True: xrayF = tbdata['CR(S)'] * 0.171 * (10**(-14) ) #conversion into ergs/s/cm2 else: xrayF = tbdata['Soft_flux'] #no conversion required in chandra xrayL = xrayF * 4 * np.pi * (DL.value**2) return tbdata, xrayL, fluxnorm, fluxerrnorm
def get_luminosity_and_flux(tbdata, xmm=False): # ### Extract magnitude table and error table ### flux = vari_funcs.flux4_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) # tbdata = tbdata[np.nanmean(flux,axis=1)>1e4] flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata, aper=4) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Find luminosity distance ### z = tbdata['z_spec'] #[mask] z[z == -1] = tbdata['z_p'][z == -1] DL = cosmo.luminosity_distance(z) DL = DL.to(u.m) ### Get AB magnitude ### # abmag = tbdata['KMAG_20'] ### Convert to luminosity using formula worked out in lab book ### # L = 10 ** (-abmag/2.5) * 3631 * 1e-26 * (3e8/0.34e-6) * 4 * np.pi * (DL.value**2) # gives luminosity in W L = tbdata['M_K_z_p'] ### remove any that have val of 99 ### L[L == 99] = np.nan # remove those with null values # L[L > -5] = np.nan # remove faintest as seem spurious mask = ~np.isnan(L) # [mask] return tbdata[mask], L[mask], fluxnorm[mask], fluxerrnorm[mask]
def get_luminosity_and_flux(tbdata, xmm=False): # ### Extract magnitude table and error table ### flux = vari_funcs.flux5_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) # tbdata = tbdata[np.nanmean(flux,axis=1)>1e4] flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Find luminosity distance ### z = tbdata['z_spec'] #[mask] z[z == -1] = tbdata['z_p'][z == -1] DL = cosmo.luminosity_distance(z) DL = DL.to(u.m) ### Get AB magnitude ### abmag = tbdata['KMAG_20'] ### Convert to luminosity using formula worked out in lab book ### L = 10**(-abmag / 2.5) * 3631 * 1e-26 * (3e8 / 0.34e-6) * 4 * np.pi * ( DL.value**2) # gives luminosity in W return tbdata, L, fluxnorm, fluxerrnorm
def make_ensemble(tbdata, xrayL, binedge): ### Extract magnitude table and error table ### flux = vari_funcs.flux5_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Create dicts to save data into ### enflux = {} enfluxerr = {} enXrayL = {} ### loop over bins ### for m, enmin in enumerate(binedge): ### Isolate data needed ### mask1 = xrayL >= enmin if m != len(binedge) - 1: mask2 = xrayL < binedge[m + 1] else: mask2 = np.ones(len(mask1)) enmask = mask1 * mask2.astype(bool) enflux[m] = fluxnorm[enmask] enfluxerr[m] = fluxerrnorm[enmask] enXrayL[m] = xrayL[enmask] return enflux, enfluxerr, enXrayL
def get_and_normalise_flux(tbdata, sigtb, aper=5): # Extract magnitude table and error table flux = vari_funcs.flux_stacks(tbdata, aper) flux, tbdata = vari_funcs.noneg(flux, tbdata) flux, fluxerr, tbdata = vari_funcs.create_quad_error_array( sigtb, tbdata, aper) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) return fluxnorm, fluxerrnorm, tbdata
def get_ensemble_sig(tbdata, sigtb, binedge, posvar, aper=5): # Extract magnitude table and error table flux = vari_funcs.flux_stacks(tbdata,aper) flux, tbdata = vari_funcs.noneg(flux, tbdata) flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata,aper) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Find luminosity distance ### z = tbdata['z_spec']#[mask] z[z==-1] = tbdata['z_p'][z==-1] DL = cosmo.luminosity_distance(z) DL = DL.to(u.cm) ### Calculate the luminosity ### xrayF = tbdata['Full_flux']#[chanmask] xrayL = xrayF*4*np.pi*(DL.value**2) ### Create dicts to save data into ### enflux = {} enfluxerr = {} enxrayL = {} sig = np.empty(size) sigerr = np.empty(size) meanxrayL = np.empty(size) for m, enmin in enumerate(binedge): ### Isolate data needed ### mask1 = xrayL >= enmin if m != size-1: mask2 = xrayL < binedge[m+1] else: mask2 = np.ones(len(mask1)) enmask = mask1*mask2.astype(bool) enflux[m] = fluxnorm[enmask] enfluxerr[m] = fluxerrnorm[enmask] enxrayL[m] = xrayL[enmask] ### Combine into one flux curve per bin ### enfluxcurve = np.ravel(enflux[m]) enfluxcurveerr = np.ravel(enfluxerr[m]) ### Find max likelihood sig of curve ### [sig[m],sigerr[m]] = vari_funcs.maximum_likelihood(enfluxcurve, enfluxcurveerr, 1, posvar) ### find mean z ### meanxrayL[m] = np.nanmean(enxrayL[m]) return fluxnorm, fluxerrnorm, sig, sigerr, xrayL, meanxrayL
def prep_data(tbdata): ### Remove edges ### tbdata = vari_funcs.remove_edges(tbdata) ## Create arrays of flux values ### flux = vari_funcs.flux4_stacks(tbdata) ### remove values that are negative ### flux, tbdata = vari_funcs.noneg(flux, tbdata) ### Get error arrays ### flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata, aper=4) return flux, fluxerr, tbdata
def get_luminosity_and_flux(tbdata, xmm=False): # ### Extract magnitude table and error table ### flux = vari_funcs.flux5_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) tbdata = tbdata[np.nanmean(flux, axis=1) > 1e4] flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Get absolute magnitude ### L = tbdata['M_K_z_p'] return tbdata, L, fluxnorm, fluxerrnorm
def get_ensemble_sig(tbdata, sigtb, binedge, posvar, aper=5): # Extract magnitude table and error table flux = vari_funcs.flux_stacks(tbdata, aper) flux, tbdata = vari_funcs.noneg(flux, tbdata) flux, fluxerr, tbdata = vari_funcs.create_quad_error_array( sigtb, tbdata, aper) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Find z ### z = tbdata['z_spec'] #[mask] z[z == -1] = tbdata['z_p'][z == -1] ### Create dicts to save data into ### enflux = {} enfluxerr = {} enz = {} sig = np.empty(size) sigerr = np.empty(size) meanz = np.empty(size) for m, enmin in enumerate(binedge): ### Isolate data needed ### mask1 = z >= enmin if m != size - 1: mask2 = z < binedge[m + 1] else: mask2 = z < 4.5 #np.ones(len(mask1)) enmask = mask1 * mask2.astype(bool) enflux[m] = fluxnorm[enmask] enfluxerr[m] = fluxerrnorm[enmask] enz[m] = z[enmask] ### Combine into one flux curve per bin ### enfluxcurve = np.ravel(enflux[m]) enfluxcurveerr = np.ravel(enfluxerr[m]) ### Find max likelihood sig of curve ### [sig[m], sigerr[m]] = vari_funcs.maximum_likelihood(enfluxcurve, enfluxcurveerr, 1, posvar) ### find mean z ### meanz[m] = np.nanmean(enz[m]) return fluxnorm, fluxerrnorm, sig, sigerr, z, meanz
def get_luminosity_and_flux(tbdata, xmm=False): # ### Extract magnitude table and error table ### flux = vari_funcs.flux4_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) # tbdata = tbdata[np.nanmean(flux,axis=1)>1e4] flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata, aper=4) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) L = tbdata['KFLUX_20'] ### remove any that have -ve val ### L[L < 0] = np.nan # remove those with null values # L[L > -5] = np.nan # remove faintest as seem spurious mask = ~np.isnan(L) # [mask] return tbdata[mask], L[mask], fluxnorm[mask], fluxerrnorm[mask]
def get_luminosity_and_flux(tbdata, xmm=False): ### Extract magnitude table and error table ### flux = vari_funcs.flux4_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) # tbdata = tbdata[np.nanmean(flux,axis=1)>1e4] flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata, aper=4) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Get Luminosity ### L = tbdata['M_K_z_p'] L[L == 99] = np.nan mask = ~np.isnan(L) tbdata = tbdata[mask] L = L[mask] fluxnorm = fluxnorm[mask] fluxerrnorm = fluxerrnorm[mask] return tbdata, L, fluxnorm, fluxerrnorm
def run_max_likely(tbdata): posvar = np.linspace(0,2,5000) ### Remove edges ### tbdata = vari_funcs.remove_edges(tbdata) sigtb = Table.read('sigma_tables/quad_epoch_sigma_table_extra_clean_no06_2arcsec.fits') ### Extract magnitude table and error table ### flux = vari_funcs.flux4_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) # tbdata = tbdata[np.nanmean(flux,axis=1)>1e4] flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata, aper=4) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr) ### Get sig values ### numobs = np.shape(fluxnorm)[0] meanflux = np.nanmean(fluxnorm, axis=1) out = np.array([vari_funcs.maximum_likelihood(fluxnorm[n,:], fluxerrnorm[n,:], meanflux[n], posvar, n=n, printn=100) for n in range(numobs)]) return out, tbdata
import numpy as np #for handling arrays #import math from astropy.stats import median_absolute_deviation import vari_funcs #my module to help run code neatly #from scipy.stats import chisquare plt.close('all') #close any open plots ### Open the fits files and get data ### tbdata = fits.open('mag_flux_tables/mag_flux_table_best_1519match.fits')[1].data sdata = fits.open('mag_flux_tables/stars_mag_flux_table_1519match.fits')[1].data ### Get flux array and remove values that are negative ### flux = vari_funcs.flux5_stacks(tbdata) sflux = vari_funcs.flux5_stacks(sdata) sflux, sdata = vari_funcs.noneg(sflux, sdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) ### Everything needs to be done on flux bins so create bin array ### #bins = np.array([13, 15]) #bins = np.append(bins, np.arange(16,22.4,0.2)) bins = np.arange(13,22.4,0.2) bins = np.append(bins, [24]) bins = 10**((30-bins)/2.5) bins = np.flip(bins, axis=0) ### set up time variable ### t = np.arange(8) semesters = ['05B', '06B', '07B', '08B', '09B', '10B', '11B', '12B'] lastind = len(bins)-1
sigdict = {} finalchisq = np.array([]) galchisq = np.array([]) oldchisq = np.array([]) for m, qtbdata in enumerate(quaddata): ### get quad arrays for chan and stars ### qchandata = chanquaddata[m] qsdata = squaddata[m] ## Create arrays of flux values ### fluxn = vari_funcs.flux4_stacks(qtbdata) fluxchann = vari_funcs.flux4_stacks(qchandata) sfluxn = vari_funcs.flux4_stacks(qsdata) ### remove values that are negative ### fluxn, qtbdata = vari_funcs.noneg(fluxn, qtbdata) fluxchann, qchandata = vari_funcs.noneg(fluxchann, qchandata) sfluxn, qsdata = vari_funcs.noneg(sfluxn, qsdata) fluxerr = vari_funcs.fluxerr4_stacks(qtbdata) fluxerrchan = vari_funcs.fluxerr4_stacks(qchandata) sfluxerr = vari_funcs.fluxerr4_stacks(qsdata) print(len(fluxn) + len(sfluxn)) if m == 3: ### plot flux vs err ### plt.figure(1) # plt.subplot(2,2,m+1) plt.plot(fluxn[:, 6], fluxerr[:, 6], 'b+') plt.plot(sfluxn[:, 6], sfluxerr[:, 6], 'm*')
from matplotlib.offsetbox import OffsetImage, AnnotationBbox font = {'family' : 'DejaVu Sans', 'weight' : 'normal', 'size' : 14} plt.rc('font', **font) ### Open the fits files and get data ### varys = fits.open('variable_tables/no06_variables_chi30_2arcsec.fits')[1].data sigtb = Table.read('sigma_tables/quad_epoch_sigma_table_extra_clean_no06_2arcsec.fits') #varys = vari_funcs.chandra_only(varys) flux = vari_funcs.flux4_stacks(varys) flux, varys = vari_funcs.noneg(flux, varys) flux, fluxerr, newvarys = vari_funcs.create_quad_error_array(sigtb, varys, aper=4) #flux,fluxerr = vari_funcs.normalise_flux_and_errors(flux, fluxerr) #set up time variable for plot t = np.linspace(1, 8, num=8) years = ['05B', '06B', '07B', '08B', '09B', '10B', '11B', '12B'] xcurve = [1,3,4,5,6,7,8] ### reduce to just single lightcurve ### obnum = 62243 mask = newvarys['NUMBER_05B'] == obnum flux = flux[mask].reshape(len(xcurve)) fluxerr = fluxerr[mask].reshape(len(xcurve)) obdata = newvarys[mask]
return sigma, newmagerr #output the required err change and the new array ### Open the fits files and get data ### tbdata = fits.open('mag_flux_tables/mag_flux_table_best.fits')[1].data chandata = fits.open('mag_flux_tables/xray_mag_flux_table_best.fits')[1].data sdata = fits.open('mag_flux_tables/stars_mag_flux_table.fits')[1].data ### extract magnitude arrays ### allmag = vari_funcs.flux5_stacks(tbdata) allchanmag = vari_funcs.flux5_stacks( chandata) # for chandra non-stellar objects allsmag = vari_funcs.flux5_stacks(sdata) ### remove 99s ### allmag, tbdata = vari_funcs.noneg(allmag, tbdata) allchanmag, chandata = vari_funcs.noneg(allchanmag, chandata) allsmag, sdata = vari_funcs.noneg(allsmag, sdata) # need to run on all fluxbins, like in find_outliers #bins = np.array([13, 15]) #bins = np.append(bins, np.arange(16,24,0.2)) #bins = np.append(bins, [24, 25, 26]) bins = np.array([13, 15]) bins = np.append(bins, np.arange(16, 24, 0.2)) bins = np.append(bins, [24]) bins = 10**((30 - bins) / 2.5) bins = np.flip(bins, axis=0) #mag, bindata = vari_funcs.fluxbin(bins[25], bins[26], allmag, tbdata)
# remove stars in new table mag = alldataconv['MAG_APER_' + sem][:, 4] mask1 = mag > 15 #removes saturated mask2 = mag < 19 #removes very faint stars mask = mask1 * mask2 alldataconv = alldataconv[mask] avgfwhmconv[n] = np.median(alldataconv[colnames]) * 3600 # Create flux stack allflux = vari_funcs.flux5_stacks(alldata) allfluxconv = vari_funcs.flux5_stacks(alldataconv) #allflux, alldata = vari_funcs.semfluxlim(allflux, alldata) #allfluxconv, alldataconv = vari_funcs.semfluxlim(allfluxconv, alldataconv) allflux, alldata = vari_funcs.noneg(allflux, alldata) allfluxconv, alldataconv = vari_funcs.noneg(allfluxconv, alldataconv) allfluxerr = vari_funcs.fluxerr1_stacks(alldata) allfluxconverr = vari_funcs.fluxerr1_stacks(alldataconv) #depths = np.load('fluxdepths.npy') #allfluxerr = np.zeros(np.shape(allflux)) + depths[None,:] #depthsconv = np.load('fluxdepthsconv_PSF.npy') #allfluxconverr = np.zeros(np.shape(allfluxconv)) + depthsconv[None,:] # Normalise allflux, allfluxerr = vari_funcs.normalise_flux_and_errors(allflux, allfluxerr) allfluxconv, allfluxconverr = vari_funcs.normalise_flux_and_errors( allfluxconv, allfluxconverr)
import numpy as np #for handling arrays from astropy.stats import median_absolute_deviation import vari_funcs #my module to help run code neatly plt.close('all') #close any open plots #from numpy.lib.recfunctions import append_fields from photutils import CircularAperture, aperture_photometry hdr08B = fits.getheader('Images/UDS_08B_K.fits') # random year (same in all) const = -hdr08B['CD1_1'] # constant that defines unit conversion for FWHM semesters = ['05B', '06B', '07B', '08B', '09B', '10B', '11B', '12B'] ### get data and create flux and errors array ### sdata = fits.open('mag_flux_tables/stars_mag_flux_table.fits')[1].data sflux = vari_funcs.flux5_stacks(sdata) smag = vari_funcs.mag5_stacks(sdata) sflux, sdata = vari_funcs.noneg(sflux, sdata) smag = vari_funcs.mag5_stacks(sdata) ### set up normalised flux ### sfluxn = np.copy(sflux) sfluxn = vari_funcs.normalise_flux(sfluxn) ### Limit to same magnitude range as PSFS ### avgmag = np.nanmean(smag, axis=1) mask1 = avgmag > 15 mask2 = avgmag <= 19 ### Remove any variable stars from sample ### mad = median_absolute_deviation(sfluxn, axis=1) mask3 = mad < 0.01
)[1].data tbdata = fits.open( 'variable_tables/no06_variables_chi30_DR11data_restframe.fits')[1].data fullxray = fits.open( 'mag_flux_tables/novarys_chanDR11data_restframe_mag_flux_table_best_extra_clean_no06.fits' )[1].data sigtb = Table.read('sigma_tables/quad_epoch_sigma_table_extra_clean_no06.fits') #### Limit to Chandra region for simplicity ### #tbdata = vari_funcs.chandra_only(tbdata) #fullxray = vari_funcs.chandra_only(fullxray) #chandata = vari_funcs.chandra_only(chandata) # Extract magnitude table and error table flux = vari_funcs.flux5_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) flux, fluxerr, tbdata = vari_funcs.create_quad_error_array(sigtb, tbdata) chanflux = vari_funcs.flux5_stacks(chandata) chanflux, chandata = vari_funcs.noneg(chanflux, chandata) chanflux, chanerr, chandata = vari_funcs.create_quad_error_array( sigtb, chandata) fullflux = vari_funcs.flux5_stacks(fullxray) fullflux, fulldata = vari_funcs.noneg(fullflux, fullxray) fullflux, fullerr, fullxray = vari_funcs.create_quad_error_array( sigtb, fullxray) xmmflux = vari_funcs.flux5_stacks(xmmdata) xmmflux, xmmdata = vari_funcs.noneg(xmmflux, xmmdata) xmmflux, xmmerr, xmmdata = vari_funcs.create_quad_error_array(sigtb, xmmdata) ### Normalise ### fluxnorm, fluxerrnorm = vari_funcs.normalise_flux_and_errors(flux, fluxerr)
import vari_funcs #my module to help run code neatly #from scipy.stats import chisquare plt.close('all') #close any open plots ### Open the fits files and get data ### tbdata = fits.open('mag_flux_tables/mag_flux_table_best_1519match.fits')[1].data chandata = fits.open('mag_flux_tables/xray_mag_flux_table_best_1519match.fits')[1].data sdata = fits.open('mag_flux_tables/stars_mag_flux_table_1519match.fits')[1].data ## Create arrays of flux values ### fluxn = vari_funcs.flux5_stacks(tbdata) fluxchann = vari_funcs.flux5_stacks(chandata) sfluxn = vari_funcs.flux5_stacks(sdata) ### remove values that are negative ### fluxn, tbdata = vari_funcs.noneg(fluxn, tbdata) fluxchann, chandata = vari_funcs.noneg(fluxchann, chandata) sfluxn, sdata = vari_funcs.noneg(sfluxn, sdata) fluxerr = vari_funcs.fluxerr5_stacks(tbdata) fluxerrchan = vari_funcs.fluxerr5_stacks(chandata) sfluxerr = vari_funcs.fluxerr5_stacks(sdata) vari_funcs.flux_variability_plot(fluxn, fluxchann, 'var', starflux=sfluxn, stars=True, normalised=True, scale='symlog') #bins, medvar = vari_funcs.plot_median_line(fluxn, tbdata, statistic='var') bins, medvar = vari_funcs.plot_median_line_stars(fluxn, tbdata, sfluxn, sdata, statistic='var') #
#from astropy.table import Table #for handling tables import numpy as np #for handling arrays import matplotlib.gridspec as gridspec # to nest subplots #from astropy.stats import median_absolute_deviation import vari_funcs #my module to help run code neatly plt.close('all') #close any open plots ### Read in fits files ### imdata = fits.getdata( 'UDS-DR11-K.mef.fits') ### SHOULD CHANGE TO THE DR11 IMAGE varydata = fits.getdata( 'variable_tables/no06_variables_chi30_DR11data_restframe.fits', 1) ### stick to those above 1e4 ### flux = vari_funcs.flux5_stacks(varydata) flux, varydata = vari_funcs.noneg(flux, varydata) meanflux = np.nanmean(flux, axis=1) varydata = varydata[meanflux >= 1e4] #imthresh = 200 #fits.getheader('UDS_05B_K.fits')['SATURATE'] #imdata[imdata>imthresh] = imthresh ### Create mask array ### maskx = np.zeros(imdata.shape[1]).astype(bool) masky = np.zeros(imdata.shape[0]).astype(bool) ### Find coordinates of objects ### x = varydata['X_IMAGE'] x = x.astype(int) y = varydata['Y_IMAGE'] y = y.astype(int)
font = {'family' : 'DejaVu Sans', 'weight' : 'normal', 'size' : 14} plt.rc('font', **font) ### Open the fits files and get data ### #varys = fits.open('variable_tables/no06_variables_chi30_DR11data_restframe.fits')[1].data tbdata = fits.open('mag_flux_tables/mag_flux_table_best_extra_clean_no06.fits')[1].data sigtb = Table.read('sigma_tables/quad_epoch_sigma_table_extra_clean_no06.fits') #varys = vari_funcs.chandra_only(varys) flux = vari_funcs.flux5_stacks(tbdata) flux, tbdata = vari_funcs.noneg(flux, tbdata) flux, fluxerr, newtbdata = vari_funcs.create_quad_error_array(sigtb, tbdata) #flux,fluxerr = vari_funcs.normalise_flux_and_errors(flux, fluxerr) mag = 30 - 2.5*np.log10(flux) magerr = 1.086/(flux/fluxerr) # taken from http://faculty.virginia.edu/skrutskie/astr3130.s16/notes/astr3130_lec12.pdf?fbclid=IwAR0fe6lNYH8Azj1iVqusb5l-z3xeECx7JBv23ACDV0Xjdq04FHJPD3nPlxE #set up time variable for plot t = np.linspace(1, 8, num=8) years = ['05B', '06B', '07B', '08B', '09B', '10B', '11B', '12B'] x = [1,3,4,5,6,7,8] #### reduce to just single lightcurve ### #obnum = 94904 #mask = newvarys['NUMBER_05B'] == obnum #flux = flux[mask].reshape(len(x))
tbdata = combined[1].data chandra = fits.open('mag_flux_tables/xray_mag_flux_table_best.fits') chandata = chandra[1].data stars = fits.open('mag_flux_tables/stars_mag_flux_table.fits') sdata = stars[1].data ### Restrict objects to those in the Chandra field ### #tbdata = vari_funcs.chandra_only(tbdata) ## Create arrays of flux values but without 06B ### flux = vari_funcs.flux5_stacks(tbdata) fluxchan = vari_funcs.flux5_stacks(chandata) # for chandra non-stellar objects sflux = vari_funcs.flux5_stacks(sdata) ### remove values that are +/-99 ### flux, tbdata = vari_funcs.noneg(flux, tbdata) fluxchan, chandata = vari_funcs.noneg(fluxchan, chandata) sflux, sdata = vari_funcs.noneg(sflux, sdata) ### Normalise arrays ### #fluxn = vari_funcs.normalise_flux(flux) #fluxchann = vari_funcs.normalise_flux(fluxchan) #sfluxn = vari_funcs.normalise_flux(sflux) # # #### Multiply all flux values in a yearstack by the correct constant ### #fluxcorrn = vari_funcs.psf_correct(fluxn, fluxn, 'median') #fluxchancorrn = vari_funcs.psf_correct(fluxn, fluxchann, 'median') #fluxcorr = vari_funcs.psf_correct(flux, flux, 'median') #fluxchancorr = vari_funcs.psf_correct(flux, fluxchan, 'median')