In [1]:
import json
import pickle
import os, sys
import numpy as np
import matplotlib.pyplot as plt
In [4]:
path_to_SNe = '../gen_lightcurves/gp_smoothed/'
SNe_lightcurves = []
with open(path_to_SNe + 'OSC_derived.LIST') as readfile:
for line in readfile:
SNe_lightcurves += [line.rstrip('\n')]
average_time_span_Ia = []
average_time_span_nonIa = []
average_flux_Ia = []
average_flux_nonIa = []
sntypes = []
for i, lcurve in enumerate(SNe_lightcurves):
lightcurve_path = path_to_SNe + lcurve
#print(lightcurve_path)
with open(path_to_SNe + lcurve) as f:
lcurve_data = json.load(f)
filt_set = set(['g'])
if not filt_set.issubset(set(lcurve_data.keys())):
continue
mag_start = lcurve_data['g']['mjd'][0]
mag_end = lcurve_data['g']['mjd'][-1]
mag = np.array(lcurve_data['g']['mag'])
avg_mag = mag.mean()
sntype = lcurve_data['g']['type']
if sntype == 'Ia':
average_time_span_Ia.append(mag_end - mag_start)
average_flux_Ia.append(avg_mag)
else:
average_time_span_nonIa.append(mag_end - mag_start)
average_flux_nonIa.append(avg_mag)
sntypes += [sntype]
print(set(sntypes))
#if i>20:
# break
print(len(average_time_span_Ia))
print(len(average_time_span_nonIa))
In [10]:
from scipy.stats import gaussian_kde
def plot_density(time_spans, start, end, figname, cov_factor=0.125, ylabel='Density', xlabel='X'):
fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot(111)
ax.set_xlabel(xlabel, {'fontsize': 'large'})
ax.set_ylabel(ylabel, {'fontsize': 'large'})
for i, time_span in enumerate(time_spans):
density = gaussian_kde(time_span)
xs = np.linspace(start, end, 500)
density.covariance_factor = lambda: cov_factor
density._compute_covariance()
if i==0:
label='Ia'
color='black'
elif i==1:
label='Non-Ia'
color='red'
ax.plot(xs,density(xs), label=label,color=color)
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.legend()
#plt.grid()
fig.savefig(figname)
plt.show()
plot_density([average_time_span_Ia, average_time_span_nonIa], 0, 130, figname='density_time_span_OSC.pdf', xlabel='Time Span (days)')
plot_density([average_flux_Ia, average_flux_nonIa], 10, 25, figname='density_magnitude_OSC.pdf', cov_factor=0.1, xlabel='Average Magnitude (g band)')
In [26]:
path_to_SNe = '../DES_Pipeline/gen_lightcurves/des_sn.p'
with open(path_to_SNe, 'rb') as f:
SNe_lightcurves= pickle.load(f)
average_time_span_Ia = []
average_time_span_nonIa = []
average_flux_Ia = []
average_flux_nonIa = []
sntypes = []
for i, lcurve in enumerate(SNe_lightcurves):
lcurve_data = SNe_lightcurves[lcurve]
if 'g' not in lcurve_data.keys():
continue
mag_start = lcurve_data['g']['mjd'][0]
mag_end = lcurve_data['g']['mjd'][-1]
mag = np.array(lcurve_data['g']['mag'])
avg_mag = mag.mean()
sntype = lcurve_data['g']['type']
if sntype in [1]:
average_time_span_Ia.append(mag_end - mag_start)
average_flux_Ia.append(avg_mag)
else:
average_time_span_nonIa.append(mag_end - mag_start)
average_flux_nonIa.append(avg_mag)
sntypes.append(sntype)
print(set(sntypes))
#if i>20:
# break
print(len(average_time_span_Ia))
print(len(average_time_span_nonIa))
In [27]:
plot_density([average_time_span_Ia, average_time_span_nonIa], 0, 200, figname='density_time_span_DES.pdf', xlabel='Time Span (days)')
plot_density([average_flux_Ia, average_flux_nonIa], -5, 100, figname='density_flux_DES.pdf', cov_factor=0.01, xlabel='Average Flux (g band)')
In [12]:
print(len(average_time_span_Ia))
print(len(average_time_span_nonIa))
In [ ]: