def add_component(self, catalog_format, catalog_name, object_name, plot_pivot=False, **ecpl_params): """ Read necessary parameters from FITS file and plot butterfly Parameters: catalog_format = 'hess', 'fermi' catalog_name = FITS file name object_name = object name string in 'name' column Note: Since every catalog has columns with different names and units, a general SED plotting is not possible. Instead for each catalog type a handler function that deals converts to a standard format is called. @todo: Possibly pass plotting parameters along here by appending them to the ecpl_params dictionary -> I don't think this works at the moment!!!""" from atpy import Table # Get the catalog from file and initialize some things self.catalog_format = catalog_format self.catalog_name = catalog_name self.object_name = object_name self.catalog = Table(catalog_name).data # Build a dictionary of parameters needed for the plot self.ecpl_params = ecpl_params self.get_ecpl_params() # Plot curve self.plot_ecpl(plot_pivot=plot_pivot, **ecpl_params) # Plot points if present if self.plot_points is not None: # Get the values needed for plotting e = self.plot_points[0] f = self.plot_points[1] f_err = self.plot_points[2] e_err = self.plot_points[3] is_ul = self.plot_points[4] for ii in range(e.size): self.plot_point(e[ii], f[ii], f_err=f_err[ii], e_err=[[e_err[0][ii]], [e_err[1][ii]]], ul=is_ul[ii]) # Remove so that it doesn't get plotted again. self.plot_points = None
#program to genorate stellar masses from optical colours and 2mass magnitudes. For # galaxies that only have a bt mag then we will fit a function to the # other galaxies giving a fuction for btmag to stellar mass. # Chris Fuller 15 July 2013 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/fornax/final_outputs/" cat = Table(pj(folder,"stellar-mass-fornax_v2.fits")) ###################### Functions ############################################################ # bell et al 2003 # log10 (M/L) - a + (b x color) def stellar_mass(band, col, sun_band): #constants used below a = -0.206 b = 0.135 #distance modules of fornax dist_mod = 31.24 #convernt to abs mag Band = band - dist_mod
# making sed fit output for Coma Galaxies for thesis # Chris Fuller, May 2013 import numpy as np from atpy import Table import matplotlib.pyplot as plt folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12_pacscorrected.fits' #input name cat = Table(folder+fname,type='fits') cat = cat.where(cat.DMASS_TYPE == 2) bands = ['100', '160', '250', '350', '500'] #inverse_bands = np.array([500.,350.,250.,160.,100.], dtype=np.float) #physical constants h = 6.626e-34 c = 3.0e+8 k = 1.38e-23 ########## functions ############### #this gives a flux in jy for a wavelength, this uses a fixed beta #wavelength = microns, distance = Mpc, mass = log10 solar mass def modb(mass,temp,distance,wavelength): m = (10**mass)*2E30 #converts mass into kg d = distance*3.08567758E22 #converts Mpc to m wav = wavelength*1E-6 #convert micron to m k_l = kappa(wav)
class SED(list): """Class to plot GeV -- TeV SEDs Internally the same units as in the Fermi catalog are used: - Energies in MeV - Flux densities in cm^-2 s^-2 MeV^-1 - Fluxes in cm^-2 s^-1 - Energy fluxes in erg cm^-2 s^-1""" """ def add_Fermi(self, name): try: self._fermi self.append(self._fermi.sed_component(name)) except component = catalog.sed_component(name) self.append(component) """ def add(self, names, catalogs): for name in names: for catalog in catalogs: try: component = catalog.sed_component(name) self.append(component) logging.info('%s found in %s', name, catalog.table.table_name) except ValueError as e: logging.warning(e) logging.warning('%s not found in %s', name, catalog.table.table_name) pass def plot(self, filename='sed.png', xlim=(8e-2, 2e5), ylim=(1e-14, 1e-8)): import matplotlib.pyplot as plt plt.figure() plt.ylabel(r'E$^2$ dF/DE (erg cm$^{-2}$ s$^{-1}$)') plt.xlabel('Energy (GeV)') plt.loglog() logging.info('Plotting {0} components in SED'.format(len(self))) for component in self: component.plot() plt.xlim(xlim) plt.ylim(ylim) plt.legend() logging.info('Writing {0}'.format(filename)) plt.savefig(filename) def add_component(self, catalog_format, catalog_name, object_name, plot_pivot=False, **ecpl_params): """ Read necessary parameters from FITS file and plot butterfly Parameters: catalog_format = 'hess', 'fermi' catalog_name = FITS file name object_name = object name string in 'name' column Note: Since every catalog has columns with different names and units, a general SED plotting is not possible. Instead for each catalog type a handler function that deals converts to a standard format is called. @todo: Possibly pass plotting parameters along here by appending them to the ecpl_params dictionary -> I don't think this works at the moment!!!""" from atpy import Table # Get the catalog from file and initialize some things self.catalog_format = catalog_format self.catalog_name = catalog_name self.object_name = object_name self.catalog = Table(catalog_name).data # Build a dictionary of parameters needed for the plot self.ecpl_params = ecpl_params self.get_ecpl_params() # Plot curve self.plot_ecpl(plot_pivot=plot_pivot, **ecpl_params) # Plot points if present if self.plot_points is not None: # Get the values needed for plotting e = self.plot_points[0] f = self.plot_points[1] f_err = self.plot_points[2] e_err = self.plot_points[3] is_ul = self.plot_points[4] for ii in range(e.size): self.plot_point(e[ii], f[ii], f_err=f_err[ii], e_err=[[e_err[0][ii]], [e_err[1][ii]]], ul=is_ul[ii]) # Remove so that it doesn't get plotted again. self.plot_points = None def get_ecpl_params(self): """Build self.ecpl_params dictionary by parsing one of the supported catalogs""" if self.catalog_format == 'hess': self.get_ecpl_params_hess_cat() elif self.catalog_format == 'fermi': self.get_ecpl_params_fermi_cat() # Change numpy types to regular types # and replace nan values with 0 for key, value in self.ecpl_params.items(): if isinstance(value, np.float32): value = float(value) if isinstance(value, np.int16): value = int(value) def get_ecpl_params_fermi_cat(self): """ Build self.ecpl_params dictionary from Fermi catalog fields """ i = self.find_object_index('source_name') # Set all plot parameters: self.ecpl_params['e_pivot'] = self.catalog.field('Pivot_Energy')[i] self.ecpl_params['e_min'] = 1e2 self.ecpl_params['e_max'] = 1e5 self.ecpl_params['e_cut'] = 0.0 self.ecpl_params['e_cut_err'] = 0.0 self.ecpl_params['e_scale'] = 1 self.ecpl_params['norm'] = self.catalog.field('Flux_Density')[i] self.ecpl_params['norm_err'] = self.catalog.field('Unc_Flux_Density')[i] self.ecpl_params['norm_scale'] = 1 self.ecpl_params['index'] = self.catalog.field('Spectral_Index')[i] self.ecpl_params['index_err'] = self.catalog.field('Unc_Spectral_Index')[i] self.ecpl_params['color'] = 'green' self.ecpl_params['butterfly'] = True # Set flux point data self.plot_points = self.get_flux_points_fermi(i) # Add text label fmt = '%s\n%s, %s\n' + \ r'S = %3.1f, C = %3.1f, $\Gamma = %1.2f \pm %1.2f$' values = (self.object_name, self.catalog.field('class1')[i], self.catalog.field('assoc1')[i], self.catalog.field('signif_avg')[i], self.catalog.field('curvature_index')[i], self.catalog.field('spectral_index')[i], self.catalog.field('unc_spectral_index')[i] ) self.ax.text(0.05, 0.95, fmt % values, horizontalalignment='left', verticalalignment='top', transform=self.ax.transAxes)
# Program to Name galaxies #scaling relations plots #Chris Fuller #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12_pacscorrected.fits' #input name cat = Table(pj(folder,fname) cat.add_column('OBJECT_NAME_PAPER', Mgas) #cat.write(pj(folder,'test-dust-v2.fits'), overwrite=True)
#program to create mass and parameter fuctions # Chris Fuller, June 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12_pacscorrected.fits' #input name cat = Table(pj(folder,fname)) virgo = Table('/Users/chrisfuller/Dropbox/phd/herchel/virgo/virgo-all-data-v2.fits') fornax = Table('/Users/chrisfuller/Dropbox/phd/herchel/fornax/final_outputs/stellar-mass-fornax_final.fits') cat = cat.where(cat.F250 >= 50.0E-3) D_coma = 100.0*3.0857E22 D_virgo = 14.0*3.0857E22 D_fornax = 19.0*3.0857E22 #D_virgo = np.array(virgo.MPG*3.0857E22, dtype=np.float64) #add columns coma L250 = cat.F250 * (4.*np.pi*D_coma**2) * 10E-26 L250[np.nan_to_num(L250) > 0.0] = np.log10(L250[np.nan_to_num(L250) > 0.0]) cat.add_column('L250', L250) #add columns virgo L250_virgo = virgo.F250 * (4.*np.pi*D_virgo**2) * 10E-26
'font.family': 'serif', 'figure.subplot.hspace': .5, 'figure.subplot.wspace': .15, 'figure.subplot.left': 0.05, 'figure.subplot.right': 0.95, 'figure.subplot.top': 0.95, 'figure.subplot.bottom': 0.05, 'figure.figsize': fig_size} pylab.rcParams.update(params) def randomFraction(arr, f): return (np.random.rand(len(arr)) < f) tablename = sys.argv[1] t = Table(tablename) t.add_column('nii_ha', t.nii_6584_flux / t.halpha_flux) sample_filter = (t.redshift < 0.17) & (t.redshift > 0.04) sample_filter &= (t.m_r < 17.77) # Completeness in redshift bounds = [0.04, 0.17, -23.5, -18.5] redshift = t.redshift[sample_filter] Mr = t.r[sample_filter] set_eps_output_1() pylab.figure() pylab.axis(bounds)
#import print 'importing modules...' from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from matplotlib.ticker import MaxNLocator #remove numpy runtime warings #np.seterr(invalid='ignore') #Inputs print 'reading in cats' folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder cat_name = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,cat_name)) cluster = cat.where(cat['RADIUS_VIR'] <= 1.0) filament = cat.where(cat['RADIUS_VIR'] > 1.0) #User variables params = ['SMASS','Mr'] #, 'g', 'r', 'i', 'z'] #parameters to check against detection rates detCols = ['F250','NGPFLUX250']#, 'RERUNF250'] #detection rate columns N = 4 #number of bins morphological_types = ['early', 'late', 'inter'] #morphological types morphological_colours = ['r', 'b', 'g'] #colous for each line xlabs = ['$log_{10}(M_{star}/$M$_{\odot})$','$(M_{r})$'] texts = ['(This paper)', 'NGP H-ATLAS Catalogue', 'RERUN FLUX250'] ### Functions ### def plot_sub(sub, dcol, para, bins):
#program that reads in results from Matt's SED fitter and # then creates a unfied dust mass cloumn import numpy as np from os.path import join as pj from atpy import Table import matplotlib.pyplot as plt import pylab as pl cat = Table("/Users/chrisfuller/Dropbox/phd/herchel/coma/sed-fits/sed-all.fits") bands = ["F500","F350","F250","F160","F100"] """ Create detected column """ cat.remove_columns(['DETECTED']) """ Loop through cat bands and add number to detected col """ for i in range(len(bands)): band = bands[i] cat.add_column('D' + band[-3:], [0]*len(cat)) flux = np.nan_to_num(cat[band]) w = np.where(flux != 0.0)[0] cat['D' + band[-3:]][w] = 1 total = cat.D500 + cat.D350 + cat.D250 + cat.D160 + cat.D100
# Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator import scipy #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) cat.add_column('DUST_STARS_BELL', cat.DMASS - cat.SMASS_BELL) cat.add_column('all', cat.g) cat.all = 1 #caculated extra columns cat.add_column('G2D', cat.HI_ALL2 - cat.DMASS) cat.add_column('G2S', cat.HI_ALL2 - cat.SMASS) cat.add_column('SFR2D', cat.SRF - cat.DMASS) cat.add_column('colour', cat.g - cat.r) #convert radius vir to log10 cat.RADIUS_VIR = np.log10(cat.RADIUS_VIR) #select currentCat galaxies firCat = cat.where(cat.DMASS_TYPE != 0) gasCat = cat.where(np.nan_to_num(cat.HI_ALL2) > 0.0)
# various parameters across the hubble sequence # using the goldmine morphology # Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) #convert radius vir to log10 cat.add_column('G2S', cat.GMASS - cat.SMASS) cat.add_column('G2D', cat.GMASS - cat.DMASS) cat.add_column('SFR2D', cat.SRF - cat.DMASS) w1 = np.where(cat.goldmine == 13)[0] cat.goldmine[w1] = 9 w2 = np.where(cat.goldmine == 18)[0] cat.goldmine[w2] = 8 #select detected galaxies #cat = cat.where(np.nan_to_num(cat.K) != 0.0) cat = cat.where((np.nan_to_num(cat.goldmine+10) != 0.0) & (cat.goldmine > -1000.0) & (cat.D250 == 1))
import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker import MaxNLocator #switches no_morph = 3 #number of morphology bins between 0 and 1 no_density = 4 #number of sigma and radial density bins between logmin and logmax sfactor = 0.0 colours = ['r', 'g', 'b'] types = ['early', 'inter', 'late'] from lmfit import minimize, Parameters,report_fit detect_col = 'F250' #'F250' #Inputs cat = Table("/Users/chrisfuller/Documents/phd/herchel/coma/final_outputs/coma_supercluster_cal12_pacscorrected.fits") #cat = cat.where(cat.SMASS > 9.1) cat.RADIUS_VIR = np.log10(cat.RADIUS_VIR) ###################### functions ###################### def er(a,b): return np.sqrt(a) / b def super_histogram(a, bins, sfactor): #create temp array to hold histogram hist = [] #loop through bins for ii in range(0, len(bins)-1): width = bins[ii+1] - bins[ii]
# Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator import scipy #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input nametest.fits #fname = 'test.fits' cat = Table(pj(folder,fname)) cat.add_column('all', cat.g) cat.all = 1 #cat = cat.where(cat.bptclass ==1) #convert radius vir to log10 cat.RADIUS_VIR = np.log10(cat.RADIUS_VIR) cat.add_column('G2S', cat.HI_ALL2 - cat.SMASS) cat.add_column('G2D', cat.HI_ALL2 - cat.DMASS) #select detected galaxies #cat = cat.where(np.nan_to_num(cat.K) != 0.0) detected = cat.where((np.nan_to_num(cat.HI_ALL2) > 0.0) & (cat.D250 == 1))
#program to plot STELLAR MASS # Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator import scipy #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) cat.add_column('all', cat.g) cat.all = 1 #convert radius vir to log10 cat.RADIUS_VIR = np.log10(cat.RADIUS_VIR) #select detected galaxies #cat = cat.where(np.nan_to_num(cat.K) != 0.0) detected = cat.where(cat.DMASS_TYPE != 0) undetected = cat.where(cat.DMASS_TYPE == 0) cats = [detected, undetected] du = ['FIR-detected', 'FIR-undetected'] lisy = ['-', '--'] mark = ['*', '+']
#into the folder and let it work its magic. This dose'nt inlcude that bg fit # Chris Fuller March 2014 import os import numpy as np from os.path import join as pj import aplpy as ap from atpy import Table import matplotlib.pyplot as plt ###################### inputs ###################### gal_name = 'CCC2099' folder_fig = '/Users/chrisfuller/Dropbox/phd/herchel/coma/fig_gen/' + gal_name + '/' folder_cat = '/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/' print "reading in cat" cat = Table(pj(folder_cat,"coma_supercluster_cal12.fits")) #select galaxy galaxy = cat.where(cat.OBJECT == gal_name) #change dir to folder directory os.chdir(folder_fig) #################### functions ################### #function to plot FIR contours def plottabw(name,fname,texts,x,y): print name #find optical parameters a,b,pa = galaxy.FULLMAJAX[0],galaxy.FULLMINAX[0], galaxy.PA[0] #pa = pa + 90.
#program to plot FIR properties # Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12_pacscorrected.fits' #input name cat = Table(pj(folder,fname)) selection = cat.where(cat.DMASS_TYPE == 2) #selection = cat.where((cat.DMASS_TYPE == 2) & (cat.F160 > (43.8*10**-3)*3.0) & (cat.F100 > (24.0*10**-3)*3.0)) types = ['early', 'inter', 'late'] labels = ['early', 'uncertain', 'late'] colours = ['r', 'g', 'b'] ylims = [10, 39, 78] #quanties on the yaxis xlabs = ['$Log_{10} (M_{dust} / $M$_{\odot}$)', 'Dust Temp. (K)','$Log_{10} (M_{dust} / M_{stars}$)'] #create figure and subplots fig, subs = plt.subplots(nrows=3, ncols=3, sharex=False, sharey=False, squeeze=False, figsize = (8., 4.), facecolor='w',edgecolor='w')
# Program to grab SDSS images for the HRS matched to size of SPIRE PLW # written 29th May 2012 # import modules import numpy as np import os import sys from os.path import join as pj from atpy import Table print 'reading in cats' folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder cat_name = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,cat_name)) cat = cat.where((cat.goldmine < 2) & (cat.goldmine > -10) & (cat.late == 1)) npix=400 pixScale = 0.4 # outfolder outFolder = '/Users/chrisfuller/Desktop/' os.chdir(outFolder) for i in range(len(cat)): name = cat.OBJECT[i] coord = cat.GRA2000[i], cat.GDEC2000[i] outFile = name + "-SDSS.jpg"
from os.path import join as pj #switches no_morph = 3 #number of morphology bins between 0 and 1 no_density = 5 #number of sigma and radial density bins between logmin and logmax sfactor = 1.0 colours = ['r', 'g', 'b'] types = ['Early', 'Inter', 'Late'] morph= 'pS0' #columb morphology data is taken from detect_col = 'F250_ngp_test' #'F250' #Inputs #cat = Table("/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/coma_supercluster_cal12.fits") cat = Table("/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/test.fits") ###################### functions ###################### def er(a,b): return np.sqrt(a) / b def super_histogram(a, bins, sfactor): #create temp array to hold histogram hist = [] #loop through bins for ii in range(0, len(bins)-1): width = bins[ii+1] - bins[ii] lower = bins[ii] - width*sfactor upper = bins[ii+1] + width*sfactor
#program to create mass and parameter fuctions # Chris Fuller, June 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12_pacscorrected.fits' #input name cat = Table(pj(folder,fname)) virgo = Table('/Users/chrisfuller/Dropbox/phd/herchel/virgo/virgo-all-data-v2.fits') fornax = Table('/Users/chrisfuller/Dropbox/phd/herchel/fornax/final_outputs/stellar-mass-fornax_final.fits') cat = cat.where(cat.F250 >= 50.0E-3) D_coma = 100.0*3.0857E22 #D_virgo = 14.0*3.0857E22 #D_fornax = 19.0*3.0857E22 #D_virgo = np.array(virgo.MPG*3.0857E22, dtype=np.float64) #volumes volumes = [114.2, 2872.8]#, 62.4, 3.4] #volume Mpc using spere and cylender #volumes = [114.2, 38782.8] #volumes= [1.0, 1.0] #cats cats = [cat.where(cat.RADIUS_VIR <= 1.0), cat.where(cat.RADIUS_VIR > 1.0)]#, [-1.,3.6E7,0.006], [-0.9,5.7E7,0.7]]
def get_test_runlist(): """Get a runlist for the tests""" from atpy import Table table = Table() table.add_column('Run', [18373, 20581]) table.add_column('Start_Time', ['2004-01-19 19:51:26', '2004-04-27 23:31:59']) table.add_column('Duration', [1580.0, 1682.0]) table.add_column('GLON', [184.557, 359.346]) table.add_column('GLAT', [-5.784, 0.410]) return table
prefix = "/Users/ncrighton/Projects/MPIA_QSO_LBG/Cloudy/J0004/comp1" names = sorted(glob(prefix + "/uvb_k0[0246]/*tilted*tbl")) fig1 = pl.figure(figsize=(5.1, 4.7)) fig1.subplots_adjust(left=0.2, bottom=0.15, top=0.96, right=0.96) fig2 = pl.figure(figsize=(5.1, 4.7)) fig2.subplots_adjust(left=0.2, bottom=0.15, top=0.96, right=0.96) ax1 = fig1.add_subplot(111) ax2 = fig2.add_subplot(111) for ax in (ax1, ax2): N0 = -21 for i, n in enumerate(names): T = Table(n) ind = T.energy.searchsorted(0.99) if i == len(names) - 1: ref = T ref.log10jnu = T.log10jnu - T.log10jnu[ind] + N0 color = '0.5' if i != 2 else 'k' ax.semilogx(T.energy, T.log10jnu - T.log10jnu[ind] + N0, '-', color=color) puttext(0.04, 0.07, '$\mathrm{Haardt\ & \ Madau}$\n$2012,\ z=2.5$', ax=ax1, ha='left')
#program to create mass and parameter fuctions # Chris Fuller, June 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) virgo = Table('/Users/chrisfuller/Dropbox/phd/herchel/virgo/virgo-all-data-v2.fits') fornax = Table('/Users/chrisfuller/Dropbox/phd/herchel/fornax/final_outputs/stellar-mass-fornax_final.fits') cat = cat.where(cat.F250 >= 50.0E-3) D_coma = 100.0*3.0857E22 D_virgo = 14.0*3.0857E22 D_fornax = 19.0*3.0857E22 #D_virgo = np.array(virgo.MPG*3.0857E22, dtype=np.float64) #add columns coma L250 = cat.F250 * (4.*np.pi*D_coma**2) * 10E-26 L250[np.nan_to_num(L250) > 0.0] = np.log10(L250[np.nan_to_num(L250) > 0.0]) cat.add_column('L250', L250) cat.add_column('colour', cat.g - cat.r) #cat.add_column('my_morph', cat.pS0 - cat.pE0)
if len(y) > 3:#program to create functions #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) virgo = Table('/Users/chrisfuller/Dropbox/phd/herchel/virgo/virgo-all-data.fits') fornax = Table('/Users/chrisfuller/Dropbox/phd/herchel/fornax/final_outputs/stellar-mass-fornax_final.fits') cat = cat.where(cat.F250 >= 50.0E-3) D_coma = 100.0*3.0857E22 D_virgo = 14.0*3.0857E22 D_fornax = 19.0*3.0857E22 #D_virgo = np.array(virgo.MPG*3.0857E22, dtype=np.float64) #add columns coma L250 = cat.F250 * (4.*np.pi*D_coma**2) * 10E-26 L250[np.nan_to_num(L250) > 0.0] = np.log10(L250[np.nan_to_num(L250) > 0.0]) cat.add_column('L250', L250) #add columns virgo
#program to plot STELLAR MASS # Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator import scipy #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) #convert radius vir to log10 cat.RADIUS_VIR = np.log10(cat.RADIUS_VIR) #switchs N_den = 7 #number of density bins N = 60 bin_type = 'fixed' coeffs_dict = {} #dic to hold coeffs #quanties on x axcis
#program that takes 250um flux assumes a dust temp of 20K and then asigns dust mass based on this #Chris Fuller Feb 2014 import numpy as np from atpy import Table from astropy import units as u from os.path import join as pj #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder input_cat = 'coma_supercluster_cal12.fits' #input name output_name= 'coma_supercluster_cal12-test.fits' #read in catalogue cat = Table(pj(folder,input_cat)) #column headers flux_col = 'F250' redshift = 0.023100 wav = 250.0 #um T_dust = 20 #K distance = 100.0 #Mpc #all my galaxies are at a fixed distance and thus readshift so the program will #create arrays of these, athought they could be fed into the fuction for each # individual galaxy # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #function that takes a flux at a single wavelenght, and returns a dust mass # # it requires a redshift, distance, flux, and wavelength_observed #
#program to plot STELLAR MASS # Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator import scipy #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) cat.add_column('all', cat.g) cat.all = 1 cat.add_column('colour', cat.g - cat.r) #cat = cat.where(cat.bptclass ==1) #convert radius vir to log10 cat.RADIUS_VIR = np.log10(cat.RADIUS_VIR) #select detected galaxies #cat = cat.where(np.nan_to_num(cat.K) != 0.0) detected = cat.where((cat.DMASS_TYPE != 0) & (np.nan_to_num(cat.METAL) > 0.0)) undetected = cat.where((cat.DMASS_TYPE == 0) & (np.nan_to_num(cat.METAL) > 0.0)) cats = [detected, undetected]
# Chris Fuller, April 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator import scipy #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) cat.add_column('DUST_STARS_BELL', cat.DMASS - cat.SMASS_BELL) cat.add_column('all', cat.g) cat.all = 1 #convert radius vir to log10 cat.RADIUS_VIR = np.log10(cat.RADIUS_VIR) #select detected galaxies detected = cat.where(cat.DMASS_TYPE != 0) #switchs N_den = 7 #number of density bins N = 60 bin_type = 'fixed'
#code the reads in the main table and then sets ngp fluxes to 0 if sep gt 3.5 #Chris Fuller, March 2014 #import modules and functions print 'importing modules and functions...' from atpy import Table from numpy import where, float from os.path import join as pj #inputs print 'reading in data...' folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder cat_name = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,cat_name)) #bands bands = ['500', '350', '250'] #f250_1a #find where sep is greater than 3.5" w_sp = where(cat.Separation_mine_npg > 3.5)[0] #loop through bands for band in bands: print 'starting ' + band #extract fluxes new_fluxes = cat['f' + band + '_1a'] w_sn = where((new_fluxes / cat['e' + band + '_1a']) < 3.0)[0] #set all fluxes greater than 3.5 to 0 new_fluxes[w_sp] = 0.0
# numbers of each sample # Chris Fuller, July - 2014 #import mods from atpy import Table import numpy as np from os.path import join as pj #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12.fits' #input name cat = Table(pj(folder,fname)) cat.add_column('DUST_STARS_BELL', cat.DMASS - cat.SMASS_BELL) cat.add_column('all', cat.g) cat.all = 1 #caculated extra columns cat.add_column('D2G', - cat.HI_ALL2 +cat.DMASS) cat.add_column('G2S', cat.HI_ALL2 - cat.SMASS) cat.add_column('SFR2G', cat.SRF - cat.HI_ALL2) cat.add_column('SFR2D', cat.SRF - cat.DMASS) cat.add_column('colour', cat.g - cat.r) #select currentCat galaxies firCat = cat.where(cat.DMASS_TYPE != 0) gasCat = cat.where(np.nan_to_num(cat.HI_ALL2) > 0.0) metalCat = cat.where(np.nan_to_num(cat.METAL) > 0.0) gasfirCat = cat.where((cat.DMASS_TYPE != 0) & (np.nan_to_num(cat.HI_ALL2) > 0.0)) sedCat = cat.where(cat.DMASS_TYPE == 2) hCat = cat.where(np.nan_to_num(cat.H) != 0) jCat = cat.where(np.nan_to_num(cat.J) != 0)
import pylab as plt from atpy import Table prefix = "/Users/ncrighton/Projects/MPIA_QSO_LBG/Cloudy/J0004/comp1" name, = glob(prefix + "/uvb_k04/*tilted*tbl") fig1 = pl.figure(figsize=(7.1,4.7)) fig1.subplots_adjust(left=0.15, bottom=0.15, top=0.96,right=0.96) ax = fig1.add_subplot(111) N0 = -21 ref = Table(name) ind = ref.energy.searchsorted(0.99) ref.log10jnu = ref.log10jnu - ref.log10jnu[ind] + N0 ax.plot(np.log10(ref.energy), ref.log10jnu - ref.log10jnu[ind] + N0, '-', color='k') xvals = np.log10((IP * u.eV).to(u.Ry).value) y = np.interp(xvals, np.log10(ref.energy), ref.log10jnu) from barak.absorb import split_trans_name xdiff = np.diff(xvals) direction = ['up'] previousdown = False
#plot goldmine hist of early late and inter # Chris Fuller, March 2014 #import print 'importing modules...' from atpy import Table from numpy import histogram, arange, sqrt from os.path import join as pj from matplotlib.pyplot import subplots, show, subplots_adjust, legend from matplotlib.ticker import MaxNLocator #Inputs print 'reading in cats' folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder cat_name = 'coma_supercluster_cal12_pacscorrected.fits' #input name cat = Table(pj(folder,cat_name)) early = cat.where(cat.early == 1) late = cat.where(cat.late == 1) inter = cat.where(cat.inter == 1) cats = [early, late, inter] cols = ['r', 'b', 'g'] morph = ['early', 'late', 'inter'] fig, subs = subplots(nrows=1, ncols=1, sharex=True, sharey=False, squeeze=True, figsize = (8.0,4.5), facecolor='w',edgecolor='w') sub1 = subs
#scaling relations plots #Chris Fuller #import mods from atpy import Table import numpy as np from os.path import join as pj import matplotlib.pyplot as plt from lmfit import minimize, Parameters, report_fit from matplotlib.ticker import MaxNLocator from scipy.stats import pearsonr np.seterr(all='ignore') #Inputs folder = "/Users/chrisfuller/Dropbox/phd/herchel/coma/final_outputs/" # input/output folder fname = 'coma_supercluster_cal12_pacscorrected.fits' #input name cat = Table(pj(folder,fname)) #caculated extra columns cat.add_column('D2G', - cat.HI_ALL2 +cat.DMASS) cat.add_column('G2S', cat.HI_ALL2 - cat.SMASS) cat.add_column('SFR2G', cat.SRF - cat.HI_ALL2) cat.add_column('SFR2D', cat.SRF - cat.DMASS) cat.add_column('colour', cat.g - cat.r) #select currentCat galaxies firCat = cat.where(cat.DMASS_TYPE != 0) gasCat = cat.where(np.nan_to_num(cat.HI_ALL2) > 0.0) metalCat = cat.where(np.nan_to_num(cat.METAL) > 0.0) gasfirCat = cat.where((cat.DMASS_TYPE != 0) & (np.nan_to_num(cat.HI_ALL2) > 0.0))