# (c) 2013 [email protected] import numpy as np import pdb import gl_params import gl_plot as gpl from gl_project import * from gl_analytic import * r0 = np.arange(0.1,3.0,0.1) rho0 = rho_anf(r0,1.,1.e6) Rho0 = Sigma_anf(r0,1.,1.e6) gpl.ion() gpl.start() # gpl.yscale('linear') gpl.plot(r0, Rho0, color='blue', lw=2) # gpl.plot(r0, rho_INTDIRECT_Rho(r0, rho0), color='blue') try: Rhonu = rho_INT_Rho(r0,rho0) except Exception as detail: print('NaN in rho_INT_Rho') gpl.plot(r0, Rhonu, '.', color='red') # pdb.set_trace() print('error fraction determined/true = ',Rhonu/Rho0) print('gp.ascale = ',gp.ascale) print('gp.Mscale = ',gp.Mscale) gpl.ioff(); gpl.show()
def run(basename, prof): read_scale() # read in half light radius, Nu0[munit/Rscale^2], Nu0[munit/pc^2], munit print(gp.files.get_scale_file(0)) A = np.loadtxt(gp.files.get_scale_file(0), unpack=False, skiprows=1) gp.rstarhalf = A[0] # halflight radius (all tracer part.s), stored first ("0") # read in radial bins radii, binmin, binmax, nudat1, nuerr1 = gh.readcol5(gp.files.nufiles[0]) gp.xipol = radii*gp.rstarhalf # [pc] maxr = max(radii) radii = np.hstack([radii, 2*maxr, 4*maxr, 8*maxr]) gp.xepol = radii*gp.rstarhalf models = read_models() # use physical representation for profiles profs = [] for i in range(len(models)): M = models[i] tmp_rho = M[0:gp.nepol] off = gp.nipol tmp_nu = M[off:off+gp.nepol] off += gp.nipol tmp_beta = M[off:off+gp.nbeta] # TODO: include handling of N populations try: tmp_prof = physical(gp.xepol, prof, pop, tmp_rho, tmp_nu, tmp_beta) profs.append(tmp_prof) except Exception as detail: print('handling error in profile', detail) continue sortedprofs = gh.sort_profiles_binwise(np.array(profs).transpose()) Mmin, M95lo, M68lo, Mmedi, \ M68hi, M95hi, Mmax = gh.get_median_1_2_sig(sortedprofs) # plot ranges if prof=='rho' or prof=='nu': gpl.startlog(); gpl.xscale('log') else: gpl.start() plot_labels(prof, pop) if prof=='nr': gpl.xscale('log') # gpl.xlim([0.,2.*gp.xipol[-1]]) gp.xipol = np.hstack([gp.xipol[0]/2., gp.xipol, gp.rinfty*gp.xipol[-1]]) if prof=='nu' or prof=='sig': plot_data(gp.xipol, prof, pop) plot_analytic(gp.xepol, prof, pop) radfill = gp.xepol if prof == 'sig': radfill = gp.xipol fill_nice(radfill, M95lo, M68lo, Mmedi, M68hi, M95hi) gpl.savefig(basename+'/prof_'+prof+'_'+str(pop)+'.png') gpl.ion(); gpl.show(); gpl.ioff() return