Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 77 additions & 25 deletions popsycle/lightcurves.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ def coords_and_prop_motion(event):

return raL, decL, muL, muS

def get_pspl_lightcurve_parameters(events, photometric_system, filter_name, event_id = None):
def get_pspl_lightcurve_parameters(events, filter_dict, event_id = None):
"""
Find the parameters for PSPL_PhotAstrom_Par_Param1 from
event_table.
Expand Down Expand Up @@ -296,8 +296,12 @@ def get_pspl_lightcurve_parameters(events, photometric_system, filter_name, even
beta = event['u0'] * event['theta_E'] # mas
dL = event['rad_L'] * 10 ** 3 # Distance to lens
dS = event['rad_S'] * 10 ** 3 # Distance to source
mag_src = [event['%s_%s_app_S' % (photometric_system, filter_name)]]
b_sff = [event['f_blend_%s' % filter_name]]
mag_src = []
b_sff = []
for photometric_system in filter_dict:
for filter_name in filter_dict[photometric_system]:
mag_src += [event['%s_%s_app_S' % (photometric_system, filter_name)]]
b_sff += [event['f_blend_%s' % filter_name]]

parameter_dict = {'raL': raL, 'decL': decL, 'mL': mL,
't0': t0, 'beta': beta, 'dL': dL, 'dL_dS': dL / dS,
Expand All @@ -307,7 +311,7 @@ def get_pspl_lightcurve_parameters(events, photometric_system, filter_name, even

return parameter_dict, obj_id_L, obj_id_S, model_name

def get_psbl_lightcurve_parameters(events, companions, comp_idx_L, photometric_system, filter_name, event_id = None):
def get_psbl_lightcurve_parameters(events, companions, comp_idx_L, filter_dict, event_id = None):
"""
Find the parameters for PSBL_PhotAstrom_Par_EllOrbs_Param7 from
event_table and comp_table.
Expand Down Expand Up @@ -379,16 +383,27 @@ def get_psbl_lightcurve_parameters(events, companions, comp_idx_L, photometric_s
beta_p = event['u0'] * event['theta_E'] # 5.0
dL = event['rad_L'] * 10 ** 3 # Distance to lens
dS = event['rad_S'] * 10 ** 3 # Distance to source
mag_src = [event['%s_%s_app_S' % (photometric_system, filter_name)]]
b_sff = [event['f_blend_%s' % filter_name]] # ASSUMES ALL BINARY LENSES ARE BLENDED
# mag_src = [event['%s_%s_app_S' % (photometric_system, filter_name)]]
# b_sff = [event['f_blend_%s' % filter_name]] # ASSUMES ALL BINARY LENSES ARE BLENDED
omega = companions['omega'][comp_idx_L]
big_omega = companions['Omega'][comp_idx_L]
i = companions['i'][comp_idx_L]
e = companions['e'][comp_idx_L]
tp = companions['tp'][comp_idx_L]
a = 10**(companions['log_a'][comp_idx_L])
dmag_Lp_Ls = [event['%s_%s_L' % (photometric_system, filter_name)] - companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_L]]
# dmag_Lp_Ls = [event['%s_%s_L' % (photometric_system, filter_name)] - companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_L]]

#FIX HERE
mag_src = []
b_sff = []
dmag_Lp_Ls = []
for photometric_system in filter_dict:
for filter_name in filter_dict[photometric_system]:
filt = photometric_system+'_'+filter_name
mag_src += [event['%s_%s_app_S' % (photometric_system, filter_name)]]
b_sff += [event['f_blend_%s' % filter_name]]
dmag_Lp_Ls += [event['%s_%s_L' % (photometric_system, filter_name)] - companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_L]]


parameter_dict = {'raL': raL, 'decL': decL,
'mLp': mLp, 'mLs': mLs, 't0_p': t0_p,
Expand All @@ -401,7 +416,7 @@ def get_psbl_lightcurve_parameters(events, companions, comp_idx_L, photometric_s

return parameter_dict, obj_id_L, obj_id_S, model_name

def get_bspl_lightcurve_parameters(events, companions, comp_idx_S, photometric_system, filter_name, red_law, event_id = None):
def get_bspl_lightcurve_parameters(events, companions, comp_idx_S, filter_dict, red_law, event_id = None):
"""
Find the parameters for BSPL_PhotAstrom_Par_EllOrbs_Param4 from
event_table and comp_table.
Expand Down Expand Up @@ -467,20 +482,20 @@ def get_bspl_lightcurve_parameters(events, companions, comp_idx_S, photometric_s

model_name = 'BSPL_PhotAstrom_Par_EllOrbs_Param4'

filt_dict = phot_utils.make_filt_dict()
f_i = filt_dict[photometric_system + '_' + filter_name][red_law]
abs_mag_sec = companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_S]
# filt_dict = phot_utils.make_filt_dict()
# f_i = filt_dict[photometric_system + '_' + filter_name][red_law]
# abs_mag_sec = companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_S]

mL = event['mass_L'] # msun (Lens current mass)
t0_p = event['t0'] # mjd
beta_p = event['u0'] * event['theta_E'] # 5.0
dL = event['rad_L'] * 10 ** 3 # Distance to lens
dL_dS = dL / (event['rad_S'] * 10 ** 3) # Distance to lens/Distance to source
xS0 = np.array([0, 0]) # arbitrary offset (arcsec)
mag_src_sec = synthetic.calc_app_mag(event['rad_S'], abs_mag_sec, event['exbv_S'], f_i)
mag_src_pri = binary_utils.subtract_magnitudes(
event['%s_%s_app_S' % (photometric_system, filter_name)], mag_src_sec)
b_sff = event['f_blend_%s' % filter_name] # ASSUMES THAT SOURCE BINARIES ARE BLENDED
# mag_src_sec = synthetic.calc_app_mag(event['rad_S'], abs_mag_sec, event['exbv_S'], f_i)
# mag_src_pri = binary_utils.subtract_magnitudes(
# event['%s_%s_app_S' % (photometric_system, filter_name)], mag_src_sec)
# b_sff = event['f_blend_%s' % filter_name] # ASSUMES THAT SOURCE BINARIES ARE BLENDED
omega = companions['omega'][comp_idx_S]
big_omega = companions['Omega'][comp_idx_S]
i = companions['i'][comp_idx_S]
Expand All @@ -490,16 +505,33 @@ def get_bspl_lightcurve_parameters(events, companions, comp_idx_S, photometric_s
mass_source_p = event['mass_S']
mass_source_s = companions['mass'][comp_idx_S]

#FIX HERE
b_sff = []
mag_src_sec = []
mag_src_pri = []
filt_dict = phot_utils.make_filt_dict()
for photometric_system in filter_dict:
for filter_name in filter_dict[photometric_system]:
filt = photometric_system+'_'+filter_name
f_i = filt_dict[photometric_system + '_' + filter_name][red_law]
abs_mag_sec = companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_S]
mag_src_sec_tmp = synthetic.calc_app_mag(event['rad_S'], abs_mag_sec, event['exbv_S'], f_i)

mag_src_sec += [mag_src_sec_tmp]
mag_src_pri += [binary_utils.subtract_magnitudes(
event['%s_%s_app_S' % (photometric_system, filter_name)], mag_src_sec_tmp)]
b_sff += [event['f_blend_%s' % filter_name]]

parameter_dict = {'raL': raL, 'decL': decL, 'mL': mL,
't0': t0_p, 'beta': beta_p, 'dL': dL, 'dL_dS': dL_dS,
'xS0_E': xS0[0], 'xS0_N': xS0[1],
'muL_E': muL[0], 'muL_N': muL[1], 'muS_E': muS[0], 'muS_N': muS[1],
'mag_src_pri': [mag_src_pri], 'mag_src_sec': [mag_src_sec], 'b_sff': [b_sff], 'omega_pri': omega, 'big_omega_sec': big_omega,
'mag_src_pri': mag_src_pri, 'mag_src_sec': mag_src_sec, 'b_sff': b_sff, 'omega_pri': omega, 'big_omega_sec': big_omega,
'i': i, 'e': e, 'log_a': log_a, 'mass_source_p': mass_source_p, 'mass_source_s': mass_source_s, 'tp': tp}

return parameter_dict, obj_id_L, obj_id_S, model_name

def get_bsbl_lightcurve_parameters(events, companions, comp_idx_L, comp_idx_S, photometric_system, filter_name, red_law, event_id = None):
def get_bsbl_lightcurve_parameters(events, companions, comp_idx_L, comp_idx_S, filter_dict, red_law, event_id = None):
"""
Find the parameters for BSBL_PhotAstrom_Par_EllOrbs_Param3 from
event_table and comp_table.
Expand Down Expand Up @@ -569,8 +601,8 @@ def get_bsbl_lightcurve_parameters(events, companions, comp_idx_L, comp_idx_S, p

model_name = 'BSBL_PhotAstrom_Par_EllOrbs_Param3'

f_i = synthetic.filt_dict[photometric_system + '_' + filter_name][red_law]
abs_mag_sec = companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_S]
# f_i = synthetic.filt_dict[photometric_system + '_' + filter_name][red_law]
# abs_mag_sec = companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_S]

mLp = event['mass_L'] # msun (Lens current mass)
mLs = companions['mass'][comp_idx_L] # msun (Companion lens current mass)
Expand All @@ -580,10 +612,10 @@ def get_bsbl_lightcurve_parameters(events, companions, comp_idx_L, comp_idx_S, p
dS = event['rad_S'] * 10 ** 3 # Distance to source
xS0_E = 0.0 # arbitrary offset (arcsec)
xS0_N = 0.0 # arbitrary offset (arcsec)
mag_src_sec = synthetic.calc_app_mag(event['rad_S'], abs_mag_sec, event['exbv_S'], f_i)
mag_src_pri = binary_utils.subtract_magnitudes(
event['%s_%s_app_S' % (photometric_system, filter_name)], mag_src_sec)
b_sff = event['f_blend_%s' % filter_name] # ASSUMES THAT SOURCE BINARIES ARE BLENDED
# mag_src_sec = synthetic.calc_app_mag(event['rad_S'], abs_mag_sec, event['exbv_S'], f_i)
# mag_src_pri = binary_utils.subtract_magnitudes(
# event['%s_%s_app_S' % (photometric_system, filter_name)], mag_src_sec)
# b_sff = event['f_blend_%s' % filter_name] # ASSUMES THAT SOURCE BINARIES ARE BLENDED
omegaL = companions['omega'][comp_idx_L]
big_omegaL = companions['Omega'][comp_idx_L]
iL = companions['i'][comp_idx_L]
Expand All @@ -596,15 +628,35 @@ def get_bsbl_lightcurve_parameters(events, companions, comp_idx_L, comp_idx_S, p
eS = companions['e'][comp_idx_S]
tpS = companions['tp'][comp_idx_S]
aS = 10**(companions['log_a'][comp_idx_S])
dmag_Lp_Ls = [event['%s_%s_L' % (photometric_system, filter_name)] - companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_L]]
# dmag_Lp_Ls = [event['%s_%s_L' % (photometric_system, filter_name)] - companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_L]]
mass_source_p = event['mass_S']
mass_source_s = companions['mass'][comp_idx_S]

#FIX HERE
b_sff = []
mag_src_sec = []
mag_src_pri = []
dmag_Lp_Ls = []
filt_dict = phot_utils.make_filt_dict()
for photometric_system in filter_dict:
for filter_name in filter_dict[photometric_system]:
filt = photometric_system+'_'+filter_name
f_i = filt_dict[photometric_system + '_' + filter_name][red_law]
abs_mag_sec = companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_S]

mag_src_sec_tmp = synthetic.calc_app_mag(event['rad_S'], abs_mag_sec, event['exbv_S'], f_i)
mag_src_sec += [mag_src_sec_tmp]
mag_src_pri += [binary_utils.subtract_magnitudes(
event['%s_%s_app_S' % (photometric_system, filter_name)], mag_src_sec_tmp)]
b_sff += [event['f_blend_%s' % filter_name]]
dmag_Lp_Ls += [event['%s_%s_L' % (photometric_system, filter_name)] - companions['m_%s_%s' % (photometric_system, filter_name)][comp_idx_L]]


parameter_dict = {'raL': raL, 'decL': decL, 'mLp': mLp, 'mLs': mLs,
't0_p': t0_p, 'xS0_E': xS0_E, 'xS0_N': xS0_N, 'beta_p': beta_p,
'muL_E': muL[0], 'muL_N': muL[1], 'muS_E': muS[0], 'muS_N': muS[1],
'dL': dL, 'dS': dS,
'mag_src_pri': [mag_src_pri], 'mag_src_sec': [mag_src_sec], 'b_sff': [b_sff],
'mag_src_pri': mag_src_pri, 'mag_src_sec': mag_src_sec, 'b_sff': b_sff,
'omegaL_pri': omegaL, 'big_omegaL_sec': big_omegaL, 'iL': iL, 'eL': eL, 'tpL': tpL, 'aL': aL,
'omegaS_pri': omegaS, 'big_omegaS_sec': big_omegaS, 'iS': iS, 'eS': eS, 'tpS': tpS, 'aS': aS,
'dmag_Lp_Ls': dmag_Lp_Ls, 'mass_source_p': mass_source_p, 'mass_source_s': mass_source_s}
Expand Down
11 changes: 4 additions & 7 deletions popsycle/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -745,8 +745,7 @@ def generate_slurm_script(slurm_config_filename, popsycle_config_filename,
filter_name = popsycle_config['filter_dict'][photometric_system][0]
_check_refine_binary_events(events=filename_dict['refined_events_filename'],
companions=refined_events_comp_filename,
filter_name=filter_name,
photometric_system=photometric_system,
filter_dict=popsycle_config['filter_dict'],
n_proc=n_cores_refine_binary_events,
overwrite=overwrite,
output_file='default', save_phot=True,
Expand Down Expand Up @@ -1131,8 +1130,7 @@ def run(output_root='root0',
filter_name = popsycle_config['filter_dict'][photometric_system][0]
_check_refine_binary_events(events=filename_dict['refined_events_filename'],
companions=refined_events_comp_filename,
filter_name=filter_name,
photometric_system=photometric_system,
filter_dict=popsycle_config['filter_dict'],
n_proc=n_cores_refine_binary_events,
overwrite=overwrite,
output_file='default', save_phot=True,
Expand Down Expand Up @@ -1270,8 +1268,7 @@ def run(output_root='root0',
phot_dir = '%s_bin_phot' % output_root
synthetic.refine_binary_events(events=filename_dict['refined_events_filename'],
companions=refined_events_comp_filename,
filter_name=filter_name,
photometric_system=photometric_system,
filter_dict=popsycle_config['filter_dict'],
n_proc=n_cores_refine_binary_events,
overwrite=overwrite,
output_file='default', save_phot=True,
Expand Down Expand Up @@ -1328,7 +1325,7 @@ def main():
'Default is --n-cores=1 or serial processing.',
default=1)
optional.add_argument('--multi-proc-refine-binary-events', type=bool,
help='Controls multi processing for refine bianry events '
help='Controls multi processing for refine bianary events '
'even if n-cores=1',
default=True)
optional.add_argument('--seed', type=int,
Expand Down
Loading