def plot_maphz(plotname): # Load the two fit with open('../mapfits/tribrokentwoexp.sav', 'rb') as savefile: bf = numpy.array(pickle.load(savefile)) samples = numpy.array(pickle.load(savefile)) maps = define_rcsample.MAPs() plotthisz1 = numpy.zeros(len(bf)) + numpy.nan plotthisz1e = numpy.zeros(len(bf)) + numpy.nan plotthisz2 = numpy.zeros(len(bf)) + numpy.nan plotthisz2e = numpy.zeros(len(bf)) + numpy.nan for ii, map in enumerate(maps.map()): hzindx= (True-numpy.isnan(samples[ii,4]))\ *(True-numpy.isnan(samples[ii,5]))\ *(densprofiles.ilogit(samples[ii,4]) > 0.15) tmed = numpy.median(1. / samples[ii, 1, hzindx]) terr = numpy.std(1. / samples[ii, 1, hzindx]) plotthisz1[ii] = tmed plotthisz1e[ii] = terr tmed = numpy.median(1. / samples[ii, 5, hzindx]) terr = numpy.std(1. / samples[ii, 5, hzindx]) plotthisz2[ii] = tmed plotthisz2e[ii] = terr plotthisz1[plotthisz1e / plotthisz1 > 0.5] = numpy.nan bovy_plot.bovy_print() bovy_plot.bovy_plot( plotthisz2 * 1000., plotthisz1 * 1000., 'ko', xrange=[0., 1200.], yrange=[0., 1200.], xlabel=r'$2^\mathrm{nd}\ \mathrm{scale\ height\,(pc)}$', ylabel=r'$1^\mathrm{st}\ \mathrm{scale\ height\,(pc)}$', zorder=2) bovy_plot.bovy_plot([0, 1200], [0, 1200], 'k--', overplot=True, lw=2.) pyplot.errorbar(plotthisz2 * 1000., plotthisz1 * 1000., yerr=plotthisz1e * 1000., marker='o', color='k', ls='none', zorder=1) bovy_plot.bovy_end_print(plotname) return None
def _format_results(type, extmap): if type.lower() == 'tribrokenexpflare': tsamples = samples_brexp out = { 'hr1': numpy.median(tsamples[0]), 'hr1err': numpy.std(tsamples[0]), 'hr2': numpy.median(tsamples[2]), 'hr2err': numpy.std(tsamples[2]), 'rmax': numpy.median(numpy.exp(tsamples[3])), 'rmaxerr': 1.4826 * numpy.median( numpy.fabs( numpy.exp(tsamples[3]) - numpy.median(numpy.exp(tsamples[3])))), 'hz': numpy.median(1. / tsamples[1]), 'hzerr': numpy.std(1. / tsamples[1]), 'rf': numpy.median(tsamples[4]), 'rferr': numpy.std(tsamples[4]), 'ml': 0. } if out['rmax'] < 4.: out['rmax'] = sorted(numpy.exp(tsamples[3]))[int( round(0.95 * tsamples.shape[1]))] return "${hr1:.2f}\pm{hr1err:.2f}$&${hr2:.2f}\pm{hr2err:.2f}$&$<{rmax:.1f}$&${hz:.2f}\pm{hzerr:.2f}$&${rf:.2f}\pm{rferr:.2f}$&\ldots&{ml:.0f}".format( **out) else: return "${hr1:.2f}\pm{hr1err:.2f}$&${hr2:.2f}\pm{hr2err:.2f}$&${rmax:.1f}\pm{rmaxerr:.1f}$&${hz:.2f}\pm{hzerr:.2f}$&${rf:.2f}\pm{rferr:.2f}$&\ldots&{ml:.0f}".format( **out) elif type.lower() == 'expplusconst': tsamples = samples_exp out = { 'hr': numpy.median(tsamples[0]), 'hrerr': numpy.std(tsamples[0]), 'hz': numpy.median(1. / tsamples[1]), 'hzerr': numpy.std(1. / tsamples[1]), 'ml': -2. * (ml_exp - ml_brexp) } return "\ldots&${hr:.2f}\pm{hrerr:.2f}$&\ldots&${hz:.2f}\pm{hzerr:.2f}$&\ldots&&{ml:.0f}".format( **out) if type.lower() == 'tribrokentwoexp': tsamples = samples_twoexp hzindx = numpy.fabs( (1. / tsamples[1] - 1. / tsamples[5]) * tsamples[1]) > 0.5 out = { 'hr1': numpy.median(tsamples[0]), 'hr1err': numpy.std(tsamples[0]), 'hr2': numpy.median(tsamples[2]), 'hr2err': numpy.std(tsamples[2]), 'rmax': numpy.median(numpy.exp(tsamples[3])), 'rmaxerr': numpy.std(numpy.exp(tsamples[3])), 'hz1': numpy.median(1. / tsamples[1]), 'hz1err': numpy.std(1. / tsamples[1]), 'amp': sorted(densprofiles.ilogit(tsamples[4, hzindx]))[int( round(0.95 * numpy.sum(hzindx)))], 'hz2': numpy.median(1. / tsamples[5, hzindx]), 'hz2err': numpy.std(1. / tsamples[5, hzindx]), 'ml': -2. * (ml_twoexp - ml_brexp) } return "${hr1:.2f}\pm{hr1err:.2f}$&${hr2:.2f}\pm{hr2err:.2f}$&${rmax:.1f}\pm{rmaxerr:.1f}$&${hz1:.2f}\pm{hz1err:.2f}$&$<{amp:.2f}$&${hz2:.2f}\pm{hz2err:.2f}$&{ml:.0f}".format( **out)