In [54]:
from collections import OrderedDict
from bokeh.charts import Bar, output_file, show
from lightcurve_pipeline.utils.utils import SETTINGS
from lightcurve_pipeline.database.database_interface import session
from lightcurve_pipeline.database.database_interface import Metadata
In [55]:
# Query for data
query = session.query(Metadata.instrume, Metadata.opt_elem).all()
instrumes = [result[0] for result in query]
opt_elems = [result[1] for result in query]
opt_elems_set = sorted(list(set(opt_elems)))
In [56]:
# Initialize dictionaries that store all optical elements
cos_dict, stis_dict = {}, {}
for opt_elem in opt_elems_set:
cos_dict[opt_elem] = 0
stis_dict[opt_elem] = 0
In [57]:
# Count number of opt_elems
for instrument, opt_elem in zip(instrumes, opt_elems):
if instrument == 'COS':
cos_dict[opt_elem] += 1
elif instrument == 'STIS':
stis_dict[opt_elem] += 1
In [58]:
cat = list(opt_elems_set)
xyvalues = OrderedDict()
xyvalues['COS'] = [cos_dict[opt_elem] for opt_elem in opt_elems_set]
xyvalues['STIS'] = [stis_dict[opt_elem] for opt_elem in opt_elems_set]
In [74]:
bar = Bar(xyvalues,
cat,
xlabel="Optical Element",
ylabel="# of Lightcurves",
stacked=True,
legend = "top_right")
bar.background_fill= "#cccccc"
bar.outline_line_color = 'black'
output_file("opt_elem.html")
show(bar)