# Load up the outfile for plotting, or calculate and save before plotting
    if os.path.isfile(OUTFILE):
        Q08, QZ1, QZ2 = cPickle.load(open(OUTFILE, 'rb'))

    else:
        for krepeat in range(NMONTE):

            # Generate the truth tables for this realization
            g1true, g2true = g3metrics.make_const_truth_uniform_annular(
                NFIELDS, NIMS, range_min=TRUE_MIN, range_max=TRUE_MAX)    
            # Loop over each c, m combination
            for i in range(NBINS):
                for j in range(NBINS):
                    # Make the submissions
                    g1sub, g2sub = g3metrics.make_submission_const_shear(
                        cvals[i], cvals[i], mvals[j], mvals[j], g1true, g2true,
                        ngals_per_im=NGALS_PER_IM, noise_sigma=NOISE_SIGMA)
                    # Calculate the metrics and store
                    Q08[i, j, krepeat] = g3metrics.metricQ08_const_shear(
                        g1sub, g2sub, g1true, g2true, nfields=NFIELDS)
                    QZ1[i, j, krepeat] = g3metrics.metricQZ1_const_shear(
                        g1sub, g2sub, g1true, g2true, cfid=CFID, mfid=MFID)[0]
                    QZ2[i, j, krepeat] = g3metrics.metricQZ2_const_shear(
                        g1sub, g2sub, g1true, g2true, cfid=CFID, mfid=MFID)[0]

            print "Calculated const shear metrics for "+str(krepeat + 1)+"/"+\
                str(NMONTE)+" realizations"

        # Save the results as a tuple of NumPy arrays
        cPickle.dump((Q08, QZ1, QZ2), open(OUTFILE, 'wb'))
                                                        true_sigma=TRUE_SIGMA)

# Create empty storage arrays in which to put
QZ1_mcboth = np.empty((NBINS, NBINS))
QZ2_mcboth = np.empty((NBINS, NBINS))

# Loop over mvalues making independent submissions at each c, m combination
for i in range(NBINS):

    for j in range(NBINS):

        g1sub, g2sub = g3metrics.make_submission_const_shear(
            cgrid[i, j],
            cgrid[i, j],
            mgrid[i, j],
            mgrid[i, j],
            g1true,
            g2true,
            ngals_per_im=NGALS_PER_IM,
            noise_sigma=NOISE_SIGMA)
        QZ1_mcboth[i, j] = g3metrics.metricQZ1_const_shear(g1sub,
                                                           g2sub,
                                                           g1true,
                                                           g2true,
                                                           cfid=CFID,
                                                           mfid=MFID)[0]
        QZ2_mcboth[i, j] = g3metrics.metricQZ2_const_shear(g1sub,
                                                           g2sub,
                                                           g1true,
                                                           g2true,
                                                           cfid=CFID,
Example #3
0
    else:
        for krepeat in range(NMONTE):

            # Generate the truth tables for this realization
            g1true, g2true = g3metrics.make_const_truth_uniform_annular(
                NFIELDS, NIMS, range_min=TRUE_MIN, range_max=TRUE_MAX)
            # Loop over each c, m combination
            for i in range(NBINS):
                for j in range(NBINS):
                    # Make the submissions
                    g1sub, g2sub = g3metrics.make_submission_const_shear(
                        cvals[i],
                        cvals[i],
                        mvals[j],
                        mvals[j],
                        g1true,
                        g2true,
                        ngals_per_im=NGALS_PER_IM,
                        noise_sigma=NOISE_SIGMA)
                    # Calculate the metrics and store
                    Q08[i, j, krepeat] = g3metrics.metricQ08_const_shear(
                        g1sub, g2sub, g1true, g2true, nfields=NFIELDS)
                    QZ1[i, j, krepeat] = g3metrics.metricQZ1_const_shear(
                        g1sub, g2sub, g1true, g2true, cfid=CFID, mfid=MFID)[0]
                    QZ2[i, j, krepeat] = g3metrics.metricQZ2_const_shear(
                        g1sub, g2sub, g1true, g2true, cfid=CFID, mfid=MFID)[0]

            print "Calculated const shear metrics for "+str(krepeat + 1)+"/"+\
                str(NMONTE)+" realizations"
            print "Calculating Q_c values versus c for control-"+obs_type+"-constant data in GREAT3"
            print "NOISE_SIGMA = "+str(NOISE_SIGMA[obs_type])
            # First we build the truth table
            print "Building truth tables for control-"+obs_type+"-constant"
            subfield_index, g1true, g2true = evaluate.get_generate_const_truth(
                EXPERIMENT, obs_type, truth_dir=TRUTH_DIR)
            rotations = evaluate.get_generate_const_rotations(
                EXPERIMENT, obs_type, truth_dir=TRUTH_DIR)
            for jc, cval in enumerate(CVALS):

                for itest in xrange(NTEST):

                    # Build the submission
                    g1sub, g2sub = g3metrics.make_submission_const_shear(
                        cval, 0., evaluate.MFID, evaluate.MFID, g1true, g2true, NGALS_PER_IMAGE,
                        NOISE_SIGMA[obs_type], rotate_cs=rotations)
                    fdsub, subfile = tempfile.mkstemp(suffix=".dat")
                    with os.fdopen(fdsub, "wb") as fsub:
                        np.savetxt(
                            fsub, np.array((subfield_index, g1sub, g2sub)).T, fmt="%d %e %e")
                    # Then evaluate Q_c
                    qc[obs_type][itest, jc] = evaluate.q_constant(
                        subfile, EXPERIMENT, obs_type, just_q=True, truth_dir=TRUTH_DIR)
                    os.remove(subfile)
                    print "Test %4d / %4d (c+ = %.3e) Q_c = %.4f" % (
                        itest+1, NTEST, cval, qc[obs_type][itest, jc])

                print "Mean Q_c = "+str(qc[obs_type][:, jc].mean())+" for "+str(NTEST)+\
                        " sims (with c+ = "+str(cval)+", obs_type = "+str(obs_type)+")"
                print
# Generate the truth tables
g1true, g2true = g3metrics.make_const_truth_normal_dist(NFIELDS, NIMS, true_sigma=TRUE_SIGMA)

# Create empty storage arrays in which to put
QZ1_mcboth = np.empty((NBINS, NBINS))
QZ2_mcboth = np.empty((NBINS, NBINS))

# Loop over mvalues making independent submissions at each c, m combination
for i in range(NBINS):

    for j in range(NBINS):
        
        g1sub, g2sub = g3metrics.make_submission_const_shear(cgrid[i, j], cgrid[i, j],
                                                           mgrid[i, j], mgrid[i, j],
                                                           g1true, g2true,
                                                           ngals_per_im=NGALS_PER_IM,
                                                           noise_sigma=NOISE_SIGMA)
        QZ1_mcboth[i, j] = g3metrics.metricQZ1_const_shear(g1sub, g2sub, g1true, g2true,
                                                         cfid=CFID, mfid=MFID)[0]
        QZ2_mcboth[i, j] = g3metrics.metricQZ2_const_shear(g1sub, g2sub, g1true, g2true,
                                                         cfid=CFID, mfid=MFID)[0]

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

if not os.path.isdir('./plots'):
    os.mkdir('./plots')

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
Example #6
0
            # First we build the truth table
            print "Building truth tables for control-" + obs_type + "-constant"
            subfield_index, g1true, g2true = evaluate.get_generate_const_truth(
                EXPERIMENT, obs_type, truth_dir=TRUTH_DIR)
            rotations = evaluate.get_generate_const_rotations(
                EXPERIMENT, obs_type, truth_dir=TRUTH_DIR)
            for jc, cval in enumerate(CVALS):

                for itest in xrange(NTEST):

                    # Build the submission
                    g1sub, g2sub = g3metrics.make_submission_const_shear(
                        cval,
                        0.,
                        evaluate.MFID,
                        evaluate.MFID,
                        g1true,
                        g2true,
                        NGALS_PER_IMAGE,
                        NOISE_SIGMA[obs_type],
                        rotate_cs=rotations)
                    fdsub, subfile = tempfile.mkstemp(suffix=".dat")
                    with os.fdopen(fdsub, "wb") as fsub:
                        np.savetxt(fsub,
                                   np.array((subfield_index, g1sub, g2sub)).T,
                                   fmt="%d %e %e")
                    # Then evaluate Q_c
                    qc[obs_type][itest,
                                 jc] = evaluate.q_constant(subfile,
                                                           EXPERIMENT,
                                                           obs_type,
                                                           just_q=True,