Example #1
0
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)