In [1]:
import wisps


Warning: spectrum object has a flux vector of zero length - maybe empty?

Warning: normalize is attempting to divide by nan; ignoring

Warning: spectrum object has a flux vector of zero length - maybe empty?

Warning: normalize is attempting to divide by nan; ignoring

In [6]:
from matplotlib import rc


import daft

# Colors.
p_color = {"ec": "#2ECC40"}
s_color = {"ec": "#0074D9"}

pgm = daft.PGM(shape=[14, 10], origin=[0.0, 0.0], node_unit=1.5)

#mass age spt stuff
n = daft.Node("alpha", r"$\alpha$", 1, 1, plot_params=s_color, fixed=True )
pgm.add_node(n)

pgm.add_node(daft.Node("mass",  r"Mass", 3,1 , plot_params=s_color, fixed=False))
pgm.add_node(daft.Node("age",  r"Age ", 3,2 , plot_params=s_color, fixed=False))

pgm.add_node(daft.Node("teff",  r"$T_{eff}$", 4,2 , plot_params=s_color, fixed=False))
pgm.add_node(daft.Node("spt",  r"SpT", 6, 4 , plot_params=s_color, fixed=False))

#distance stuff 
pgm.add_node(daft.Node("theta",  r"$\theta (l, h) $ (Galaxy)", 1,5 , plot_params=s_color, fixed=False, aspect=2.))

#solid angle
pgm.add_node(daft.Node("solid_angle",  r"$\Delta \Omega$", 11,9 , plot_params=s_color, fixed=True))

#fixed maglimits

pgm.add_node(daft.Node("mag_faint",  r"Limiting mags", 1,9 , plot_params=s_color, fixed=True))


pgm.add_node(daft.Node("d_max",  r"d$_{max, min}$", 4.,9 , plot_params=s_color, fixed=True, aspect=1.))

pgm.add_node(daft.Node("volume",  r"V$_{eff}$ (pc $^3$)", 6,7. , plot_params=s_color, fixed=False, aspect=2.))

#distance stuff 
pgm.add_node(daft.Node("distance",  r"d", 3.5,5 , plot_params=s_color, fixed=False))

#add selection effects stuff
pgm.add_node(daft.Node("F140",  r"F140", 4.5,5 , plot_params=s_color, fixed=False))
pgm.add_node(daft.Node("snrj",  r"SNR-J", 5,6 , plot_params=s_color, fixed=False, aspect=1.5))

#selection eff
pgm.add_node(daft.Node("sel_effects",  r"Selection Effects", 7,9 , plot_params=s_color, fixed=False, aspect=3.))
pgm.add_node(daft.Node("sel_probability",  r"Selection Probability $(\mathcal{S})$", 7,5 , plot_params=s_color, fixed=False, aspect=4.5))


#luminosity function
pgm.add_node(daft.Node("phi",  r"$\Phi$ (SpT$^{-1}$ pc$^{-3})$", 9,4 , plot_params=s_color, fixed=False, aspect=3.))

#local density
pgm.add_node(daft.Node('rho0',  r"$\rho_0$ (pc$^{-3})$", 11.5,4 , plot_params=s_color, fixed=True))

#number density
pgm.add_node(daft.Node('number',  r"Number (SpT$^{-1})$", 9.,7 , plot_params=s_color, fixed=False, observed=True, aspect=3.))

# Edges.
pgm.add_edge("alpha", "mass")


pgm.add_edge("mass", "teff")
pgm.add_edge("age", "teff")

pgm.add_edge( "mag_faint", "d_max",)

pgm.add_edge("d_max", "volume")
pgm.add_edge("solid_angle", "volume")

pgm.add_edge("theta", "distance")
pgm.add_edge("d_max", "distance")


pgm.add_edge("teff", "spt")
pgm.add_edge("distance", "F140")
pgm.add_edge("spt", "F140")
pgm.add_edge("F140", "snrj")
#pgm.add_edge("spt", "d_max")

pgm.add_edge("sel_effects", "sel_probability")
pgm.add_edge("snrj", "sel_probability")

pgm.add_edge("sel_probability", "phi")
pgm.add_edge("spt", "sel_probability")

pgm.add_edge("rho0", "phi")

pgm.add_edge("volume", "number")
pgm.add_edge("phi", "number")


# And a plate.
pgm.add_plate(daft.Plate([2.5, 3., 8, 7.0], label=r"SpT, Pointing",    shift=-0.1))

# Render and save.
pgm.render()
pgm.figure.savefig(wisps.OUTPUT_FIGURES+"/graphical_model.pdf")



In [ ]: