Data Class Family

class model.PSBL

Bases: PSPL

Contains methods for model a PSBL photometry + astrometry. This is a Data-type class in our hierarchy. It is abstract and should not be instantiated.

Methods

animate(tE, time_steps, frame_time, name, ...)

Produces animation of microlensing event.

get_all_arrays(t_obs[, check_sols, rescale])

Obtain the image and amplitude arrays for each t_obs.

get_amp_arr(z_arr, z1, z2)

Calculations amplification array

get_chi2_photometry(t_obs, mag_obs, mag_err_obs)

Get chi^2 values for the model and input photometric data in the specified photometric filter or data set.

get_image_pos_arr(w, z1, z2, m1, m2[, ...])

Gets image positions.

get_image_pos_arr_old(w, z1, z2[, check_sols])

Gets image positions.

get_lnL_constant(err_obs)

Get the natural log of the constant normalization terms of the likelihood.

get_photometry(t_obs[, filt_idx, amp_arr, ...])

Get the photometry for each of the lensed source images.

get_resolved_photometry(t_obs[, filt_idx, ...])

Get the photometry for each of the lensed source images.

log_likely_photometry(t_obs, mag_obs, ...[, ...])

Get the summed natural log of the likelihood for the input photometric data for the specified filter or data set.

log_likely_photometry_each(t_obs, mag_obs, ...)

Get the natural log of the likelihood for the input photometric data in the specified filter or data sets.

rescale_complex_pos(w, z1, z2)

Make sure everything is roughly centered on the origin in a 1 x 1 box.

animate(tE, time_steps, frame_time, name, size, zoom, astrometry)

Produces animation of microlensing event. This function takes the PSPL and makes an animation, the input variables are as follows

Parameters:
tE:
number of einstein crossings times before/after the peak you want the animation to plot

e.g tE = 2 => graph will go from -2 tE to 2 tE

time_steps:

number of time steps before/after peak, so total number of time steps will be 2 times this value

frame_time:

times in ms of each frame in the animation

name: string

the animation will be saved as name.html

size: list

[horizontal, vertical] cm’s

zoom:

# of einstein radii plotted in vertical direction

get_all_arrays(t_obs, check_sols=True, rescale=True)

Obtain the image and amplitude arrays for each t_obs.

Parameters:
t_obsarray_like

Array of times to model.

Returns:
imagesarray_like

Array/tuple of complex positions of each images at each t_obs.

amp_arrarray_like

Array/tuple of amplification of each images at each t_obs.

get_amp_arr(z_arr, z1, z2)

Calculations amplification array

Calculates the amplification A from the Jacobian J, \(A = 1/|J|\)

Parameters:
z_arrarray_like
Complex position of images. Shape = [N_times, N_solutions, 1]
– note this could be jagged.
z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

Returns:
amp_arrarray_like

BLEH

get_chi2_photometry(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get chi^2 values for the model and input photometric data in the specified photometric filter or data set.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
chi2array_like

List of chi^2 values from the model and photometric data.

get_image_pos_arr(w, z1, z2, m1, m2, check_sols=True)

Gets image positions.

Solve the fifth-order polynomial and get the image positions.
See PSBL writeup for full equations.
All angular distances are in arcsec.
Parameters:
warray_like

Complex position(s) of the source. Shape = [N_times, 1]

z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

m1float
m2float
check_solsbool, optional

If True, calculated roots are checked against the lens equation, and output will only contain those within self.root_tol. If False, all calculated roots are returned.

Returns:
z_arrarray_like

Rank-1 array of polynomial roots, possibly complex. If check_sols = True, only roots solving the lens equation are returned.

get_image_pos_arr_old(w, z1, z2, check_sols=True)

Gets image positions. | Solve the fifth-order polynomial and get the image positions. | See PSBL writeup for full equations. | All angular distances are in arcsec.

Parameters:
warray_like

Complex position(s) of the source. Shape = [N_times, 1]

z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

check_solsbool, optional

If True, calculated roots are checked against the lens equation, and output will only contain those within self.root_tol. If False, all calculated roots are returned.

Returns:
z_arrarray_like

Position of the lensed source images. Rank-1 array of polynomial roots, possibly complex. If check_sols = True, only roots solving the lens equation are returned.

get_lnL_constant(err_obs)

Get the natural log of the constant normalization terms of the likelihood.

\[-0.5 * \ln{2 \pi \sigma_{obs}^2}\]
Parameters:
err_obsarray_like

List of the uncertainties.

Returns:
List of ln(likelihood constants).
get_photometry(t_obs, filt_idx=0, amp_arr=None, print_warning=True)

Get the photometry for each of the lensed source images.

Parameters:
t_obsarray_like

Array of times to model.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
mag_modelarray_like

Magnitude of the unresolved microlensing event at t_obs.

Other Parameters:
amp_arrarray_like

Amplifications of each individual image at each time, i.e. amp_arr.shape = (len(t_obs), number of images at each t_obs).

This will over-ride t_obs; but is more efficient when calculating both photometry and astrometry. If None, then just use t_obs.

print_warningbool, optional

Print a warning in the rare case that the magnitude exceeds a zeropoint of 30 and conversions result in NaN returned.

get_resolved_photometry(t_obs, filt_idx=0, amp_arr=None, print_warning=True)

Get the photometry for each of the lensed source images. Implement with no blending (since we don’t support different blendings for the different images).

Parameters:
t_obsarray_like

Array of times to model.

Returns:
mag_modelarray_like

Magnitude of each lensed image centroid at t_obs. Shape = [5, len(t_obs)]

Other Parameters:
amp_arrarray_like

Amplifications of each individual image at each time, i.e. amp_arr.shape = (len(t_obs), number of images at each t_obs).

This will over-ride t_obs; but is more efficient when calculating both photometry and astrometry. If None, then just use t_obs.

filt_idxint

The filter index (def=0).

log_likely_photometry(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get the summed natural log of the likelihood for the input photometric data for the specified filter or data set. Note, this function returns the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
ln_Lfloat

ln(likelihood) summed over the photometric measurement

log_likely_photometry_each(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get the natural log of the likelihood for the input photometric data in the specified filter or data sets. Note, this function returns a list and it is the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
ln_Larray_like

List of ln(likelihood) for each photometric measurement.

rescale_complex_pos(w, z1, z2)

Make sure everything is roughly centered on the origin in a 1 x 1 box.

class model.PSBL_Phot

Bases: PSBL, PSPL_Phot

Methods

animate(tE, time_steps, frame_time, name, ...)

Produces animation of microlensing event.

get_all_arrays(t_obs[, check_sols, rescale])

Obtain the image and amplitude arrays for each t_obs.

get_amp_arr(z_arr, z1, z2)

Calculations amplification array

get_astrometry(t_obs[, image_arr, amp_arr, ...])

Position of the observed (unresolved) source position in Einstein radii.

get_astrometry_unlensed(t_obs)

Get the astrometry of the source if the lens didn't exist.

get_chi2_photometry(t_obs, mag_obs, mag_err_obs)

Get chi^2 values for the model and input photometric data in the specified photometric filter or data set.

get_complex_pos(t_obs)

Get the positions of the lenses and source as complex numbers.

get_image_pos_arr(w, z1, z2, m1, m2[, ...])

Gets image positions.

get_image_pos_arr_old(w, z1, z2[, check_sols])

Gets image positions.

get_lnL_constant(err_obs)

Get the natural log of the constant normalization terms of the likelihood.

get_photometry(t_obs[, filt_idx, amp_arr, ...])

Get the photometry for each of the lensed source images.

get_resolved_astrometry(t_obs[, image_arr, ...])

Position of the observed source position in Einstein radii.

get_resolved_lens_astrometry(t_obs)

Equation of motion for just the foreground lenses, individually.

get_resolved_photometry(t_obs[, filt_idx, ...])

Get the photometry for each of the lensed source images.

log_likely_photometry(t_obs, mag_obs, ...[, ...])

Get the summed natural log of the likelihood for the input photometric data for the specified filter or data set.

log_likely_photometry_each(t_obs, mag_obs, ...)

Get the natural log of the likelihood for the input photometric data in the specified filter or data sets.

rescale_complex_pos(w, z1, z2)

Make sure everything is roughly centered on the origin in a 1 x 1 box.

get_centroid_shift

get_lens_astrometry

get_resolved_amplification

log_likely_astrometry

animate(tE, time_steps, frame_time, name, size, zoom, astrometry)

Produces animation of microlensing event. This function takes the PSPL and makes an animation, the input variables are as follows

Parameters:
tE:
number of einstein crossings times before/after the peak you want the animation to plot

e.g tE = 2 => graph will go from -2 tE to 2 tE

time_steps:

number of time steps before/after peak, so total number of time steps will be 2 times this value

frame_time:

times in ms of each frame in the animation

name: string

the animation will be saved as name.html

size: list

[horizontal, vertical] cm’s

zoom:

# of einstein radii plotted in vertical direction

get_all_arrays(t_obs, check_sols=True, rescale=True)

Obtain the image and amplitude arrays for each t_obs.

Parameters:
t_obsarray_like

Array of times to model.

Returns:
imagesarray_like

Array/tuple of complex positions of each images at each t_obs.

amp_arrarray_like

Array/tuple of amplification of each images at each t_obs.

get_amp_arr(z_arr, z1, z2)

Calculations amplification array

Calculates the amplification A from the Jacobian J, \(A = 1/|J|\)

Parameters:
z_arrarray_like
Complex position of images. Shape = [N_times, N_solutions, 1]
– note this could be jagged.
z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

Returns:
amp_arrarray_like

BLEH

get_astrometry(t_obs, image_arr=None, amp_arr=None, ast_filt_idx=0)

Position of the observed (unresolved) source position in Einstein radii.

Parameters:
t_obsarray_like

Array of times to model.

Returns:
model_posarray_like

Array of vector positions of the centroid at each t_obs.

Other Parameters:
image_arrarray_like

Array of complex image positions at each t_obs, i.e. image_arr.shape = (len(t_obs), number of images at each t_obs). Each value in this array is complex (real = north component, imaginary = east component)

amp_arrarray_like

Array of magnifications of each images. Same shape as image_arr.

get_astrometry_unlensed(t_obs)

Get the astrometry of the source if the lens didn’t exist. Note, this is a photometry only model, so units are in Einstein radii.

Returns:
xS_unlensednumpy array, dtype=float, shape = len(t_obs) x 2

The unlensed positions of the source in Einstein radii.

Notes

Note

Note, this is a photometry only model, so units are in Einstein radii.

get_chi2_photometry(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get chi^2 values for the model and input photometric data in the specified photometric filter or data set.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
chi2array_like

List of chi^2 values from the model and photometric data.

get_complex_pos(t_obs)

Get the positions of the lenses and source as complex numbers.

This is needed for further calculations. Note that all units are still the same as before, this is just rewriting vectors \(z = (x,y)\) as \(z = x + iy\).

Returns:
wcomplex array

Source position as an array of complex numbers with real = east component, imaginary = north component

z1complex array

Lens primary component position as an array of complex numbers with real = east component, imaginary = north component

z2complex array

Lens secondary component position as an array of complex numbers with real = east component, imaginary = north component

get_image_pos_arr(w, z1, z2, m1, m2, check_sols=True)

Gets image positions.

Solve the fifth-order polynomial and get the image positions.
See PSBL writeup for full equations.
All angular distances are in arcsec.
Parameters:
warray_like

Complex position(s) of the source. Shape = [N_times, 1]

z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

m1float
m2float
check_solsbool, optional

If True, calculated roots are checked against the lens equation, and output will only contain those within self.root_tol. If False, all calculated roots are returned.

Returns:
z_arrarray_like

Rank-1 array of polynomial roots, possibly complex. If check_sols = True, only roots solving the lens equation are returned.

get_image_pos_arr_old(w, z1, z2, check_sols=True)

Gets image positions. | Solve the fifth-order polynomial and get the image positions. | See PSBL writeup for full equations. | All angular distances are in arcsec.

Parameters:
warray_like

Complex position(s) of the source. Shape = [N_times, 1]

z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

check_solsbool, optional

If True, calculated roots are checked against the lens equation, and output will only contain those within self.root_tol. If False, all calculated roots are returned.

Returns:
z_arrarray_like

Position of the lensed source images. Rank-1 array of polynomial roots, possibly complex. If check_sols = True, only roots solving the lens equation are returned.

get_lnL_constant(err_obs)

Get the natural log of the constant normalization terms of the likelihood.

\[-0.5 * \ln{2 \pi \sigma_{obs}^2}\]
Parameters:
err_obsarray_like

List of the uncertainties.

Returns:
List of ln(likelihood constants).
get_photometry(t_obs, filt_idx=0, amp_arr=None, print_warning=True)

Get the photometry for each of the lensed source images.

Parameters:
t_obsarray_like

Array of times to model.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
mag_modelarray_like

Magnitude of the unresolved microlensing event at t_obs.

Other Parameters:
amp_arrarray_like

Amplifications of each individual image at each time, i.e. amp_arr.shape = (len(t_obs), number of images at each t_obs).

This will over-ride t_obs; but is more efficient when calculating both photometry and astrometry. If None, then just use t_obs.

print_warningbool, optional

Print a warning in the rare case that the magnitude exceeds a zeropoint of 30 and conversions result in NaN returned.

get_resolved_astrometry(t_obs, image_arr=None, amp_arr=None)

Position of the observed source position in Einstein radii.

Parameters:
t_obsarray_like, shape = [N_times]

Array of times to model.

Returns:
model_posarray_like. shape = [N_times, N_images, 2]

Array of vector positions of the centroid at each t_obs.

Other Parameters:
image_arrarray_like

Array of complex image positions at each t_obs, i.e. image_arr.shape = (len(t_obs), number of images at each t_obs). Each value in this array is complex (real = north component, imaginary = east component)

amp_arrarray_like

Array of magnifications of each images. Same shape as image_arr.

get_resolved_lens_astrometry(t_obs)

Equation of motion for just the foreground lenses, individually.

Parameters:
t_obsarray_like

Time (in MJD).

Notes

Note

Note, this is a photometry only model, so units are in Einstein radii.

get_resolved_photometry(t_obs, filt_idx=0, amp_arr=None, print_warning=True)

Get the photometry for each of the lensed source images. Implement with no blending (since we don’t support different blendings for the different images).

Parameters:
t_obsarray_like

Array of times to model.

Returns:
mag_modelarray_like

Magnitude of each lensed image centroid at t_obs. Shape = [5, len(t_obs)]

Other Parameters:
amp_arrarray_like

Amplifications of each individual image at each time, i.e. amp_arr.shape = (len(t_obs), number of images at each t_obs).

This will over-ride t_obs; but is more efficient when calculating both photometry and astrometry. If None, then just use t_obs.

filt_idxint

The filter index (def=0).

log_likely_photometry(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get the summed natural log of the likelihood for the input photometric data for the specified filter or data set. Note, this function returns the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
ln_Lfloat

ln(likelihood) summed over the photometric measurement

log_likely_photometry_each(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get the natural log of the likelihood for the input photometric data in the specified filter or data sets. Note, this function returns a list and it is the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
ln_Larray_like

List of ln(likelihood) for each photometric measurement.

rescale_complex_pos(w, z1, z2)

Make sure everything is roughly centered on the origin in a 1 x 1 box.

class model.PSBL_PhotAstrom

Bases: PSBL, PSPL_PhotAstrom

Contains methods for model a PSPL photometry + astrometry. This is a Data-type class in our hierarchy. It is abstract and should not be instantiated.

Methods

animate(tE, time_steps, frame_time, name, ...)

Produces animation of microlensing event.

get_all_arrays(t_obs[, check_sols, rescale])

Obtain the image and amplitude arrays for each t_obs.

get_amp_arr(z_arr, z1, z2)

Calculations amplification array

get_astrometry(t_obs[, image_arr, amp_arr, ...])

Position of the observed (unresolved) source position in arcsec.

get_astrometry_unlensed(t_obs)

Get the astrometry of the source if the lens didn't exist.

get_centroid(t_obs[, ast_filt_idx, ...])

PSPL: Get the centroid shift (in mas) for a list of observation times (in MJD).

get_chi2_astrometry(t_obs, x_obs, y_obs, ...)

Get the chi^2 value for this model given input astrometry data and uncertainties for the specified astrometric data set.

get_chi2_photometry(t_obs, mag_obs, mag_err_obs)

Get chi^2 values for the model and input photometric data in the specified photometric filter or data set.

get_complex_pos(t_obs)

Get the positions of the lenses and source as complex numbers.

get_image_pos_arr(w, z1, z2, m1, m2[, ...])

Gets image positions.

get_image_pos_arr_old(w, z1, z2[, check_sols])

Gets image positions.

get_lens_astrometry(t_obs)

Equation of motion for just the foreground lens system.

get_lnL_constant(err_obs)

Get the natural log of the constant normalization terms of the likelihood.

get_photometry(t_obs[, filt_idx, amp_arr, ...])

Get the photometry for each of the lensed source images.

get_resolved_astrometry(t_obs[, image_arr, ...])

Position of the observed source position in arcsec.

get_resolved_lens_astrometry(t_obs)

Equation of motion for just the foreground lenses, individually.

get_resolved_photometry(t_obs[, filt_idx, ...])

Get the photometry for each of the lensed source images.

log_likely_astrometry(t_obs, x_obs, y_obs, ...)

Get the summed natural log of the likelihood for the input astrometric data in the specified filter or data sets.

log_likely_astrometry_each(t_obs, x_obs, ...)

Get the natural log of the likelihood for the input astrometric data in the specified filter or data sets.

log_likely_photometry(t_obs, mag_obs, ...[, ...])

Get the summed natural log of the likelihood for the input photometric data for the specified filter or data set.

log_likely_photometry_each(t_obs, mag_obs, ...)

Get the natural log of the likelihood for the input photometric data in the specified filter or data sets.

rescale_complex_pos(w, z1, z2)

Make sure everything is roughly centered on the origin in a 1 x 1 box.

animate(tE, time_steps, frame_time, name, size, zoom, astrometry)

Produces animation of microlensing event. This function takes the PSPL and makes an animation, the input variables are as follows

Parameters:
tE:
number of einstein crossings times before/after the peak you want the animation to plot

e.g tE = 2 => graph will go from -2 tE to 2 tE

time_steps:

number of time steps before/after peak, so total number of time steps will be 2 times this value

frame_time:

times in ms of each frame in the animation

name: string

the animation will be saved as name.html

size: list

[horizontal, vertical] cm’s

zoom:

# of einstein radii plotted in vertical direction

get_all_arrays(t_obs, check_sols=True, rescale=True)

Obtain the image and amplitude arrays for each t_obs.

Parameters:
t_obsarray_like

Array of times to model.

Returns:
imagesarray_like

Array/tuple of complex positions of each images at each t_obs.

amp_arrarray_like

Array/tuple of amplification of each images at each t_obs.

get_amp_arr(z_arr, z1, z2)

Calculations amplification array

Calculates the amplification A from the Jacobian J, \(A = 1/|J|\)

Parameters:
z_arrarray_like
Complex position of images. Shape = [N_times, N_solutions, 1]
– note this could be jagged.
z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

Returns:
amp_arrarray_like

BLEH

get_astrometry(t_obs, image_arr=None, amp_arr=None, ast_filt_idx=0)

Position of the observed (unresolved) source position in arcsec.

Parameters:
t_obsarray_like

Array of times to model.

Returns:
model_posarray_like

Array of vector positions of the centroid at each t_obs.

Other Parameters:
image_arrarray_like

Array of complex image positions at each t_obs, i.e. image_arr.shape = (len(t_obs), number of images at each t_obs). Each value in this array is complex (real = north component, imaginary = east component)

amp_arrarray_like

Array of magnifications of each images. Same shape as image_arr.

ast_filt_idxint

The filter index for the astrometry.

get_astrometry_unlensed(t_obs)

Get the astrometry of the source if the lens didn’t exist.

Returns:
xS_unlensednumpy array, dtype=float, shape = len(t_obs) x 2

The unlensed positions of the source in arcseconds.

get_centroid(t_obs, ast_filt_idx=0, image_arr=None, amp_arr=None)

PSPL: Get the centroid shift (in mas) for a list of observation times (in MJD).

Parameters:
t_obsarray or float
Returns:
Centroid offset on the plane of the sky in milli-arcseoncds.
Other Parameters:
ast_filt_idxint

Index into the photometry parameter lists for the photometry that corresponds to this astrometry data set.

image_arrlist

List returned from PSPL get_all_arrays() used to improve efficiency.

amp_arrlist

List returned from PSPL get_all_arrays() used to improve efficiency.

get_chi2_astrometry(t_obs, x_obs, y_obs, x_err_obs, y_err_obs, ast_filt_idx=0)

Get the chi^2 value for this model given input astrometry data and uncertainties for the specified astrometric data set.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

x_obsarray_like

List of relative R.A. astrometric positions on the sky in arcsec. Length must match t_obs.

y_obsarray_like

List of relative Dec. astrometric positions on the sky in arcsec. Length must match t_obs.

x_err_obsarray_like

List of relative R.A. astrometric positional errors on the sky in arcsec. Length must match t_obs.

y_err_obsarray_like

List of relative Dec. astrometric positional errors on the sky in arcsec. Length must match t_obs.

ast_filt_idxint, optional

The index of the astrometric filter or data set.

Returns:
chi2array_like

List of chi^2 values from the model and astrometric data.

get_chi2_photometry(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get chi^2 values for the model and input photometric data in the specified photometric filter or data set.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
chi2array_like

List of chi^2 values from the model and photometric data.

get_complex_pos(t_obs)

Get the positions of the lenses and source as complex numbers. This is needed for further calculations. Note that all units are still the same as before, this is just rewriting vectors \(z = (x,y)\) as \(z = x + iy\).

Parameters:
tarray_like

Array of times to model.

Returns:
wcomplex array

Source position (arcsec) as an array of complex numbers with real = east component, imaginary = north component shape = [N_times, N_sources].

z1complex array

Lens primary component position (arcsec) as an array of complex numbers with real = east component, imaginary = north component shape = [N_times]

z2complex array

Lens secondary component position (arcsec) as an array of complex numbers with real = east component, imaginary = north component shape = [N_times]

get_image_pos_arr(w, z1, z2, m1, m2, check_sols=True)

Gets image positions.

Solve the fifth-order polynomial and get the image positions.
See PSBL writeup for full equations.
All angular distances are in arcsec.
Parameters:
warray_like

Complex position(s) of the source. Shape = [N_times, 1]

z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

m1float
m2float
check_solsbool, optional

If True, calculated roots are checked against the lens equation, and output will only contain those within self.root_tol. If False, all calculated roots are returned.

Returns:
z_arrarray_like

Rank-1 array of polynomial roots, possibly complex. If check_sols = True, only roots solving the lens equation are returned.

get_image_pos_arr_old(w, z1, z2, check_sols=True)

Gets image positions. | Solve the fifth-order polynomial and get the image positions. | See PSBL writeup for full equations. | All angular distances are in arcsec.

Parameters:
warray_like

Complex position(s) of the source. Shape = [N_times, 1]

z1array_like

Complex position(s) of lens 1 (primary). Shape = [N_times, 1]

z2array_like

Complex position(s) of lens 2 (secondary). Shape = [N_times, 1]

check_solsbool, optional

If True, calculated roots are checked against the lens equation, and output will only contain those within self.root_tol. If False, all calculated roots are returned.

Returns:
z_arrarray_like

Position of the lensed source images. Rank-1 array of polynomial roots, possibly complex. If check_sols = True, only roots solving the lens equation are returned.

get_lens_astrometry(t_obs)

Equation of motion for just the foreground lens system.

Parameters:
t_obsarray_like

Time (in MJD).

Return
——
xLarray_like, shape = [N_times, 2 directions]

Position of the lens system (geometric center) over time.

get_lnL_constant(err_obs)

Get the natural log of the constant normalization terms of the likelihood.

\[-0.5 * \ln{2 \pi \sigma_{obs}^2}\]
Parameters:
err_obsarray_like

List of the uncertainties.

Returns:
List of ln(likelihood constants).
get_photometry(t_obs, filt_idx=0, amp_arr=None, print_warning=True)

Get the photometry for each of the lensed source images.

Parameters:
t_obsarray_like

Array of times to model.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
mag_modelarray_like

Magnitude of the unresolved microlensing event at t_obs.

Other Parameters:
amp_arrarray_like

Amplifications of each individual image at each time, i.e. amp_arr.shape = (len(t_obs), number of images at each t_obs).

This will over-ride t_obs; but is more efficient when calculating both photometry and astrometry. If None, then just use t_obs.

print_warningbool, optional

Print a warning in the rare case that the magnitude exceeds a zeropoint of 30 and conversions result in NaN returned.

get_resolved_astrometry(t_obs, image_arr=None, amp_arr=None)

Position of the observed source position in arcsec.

Parameters:
t_obsarray_like, shape = [N_times]

Array of times to model.

Returns:
model_posarray_like. shape = [N_times, N_images, 2]

Array of vector positions of the centroid at each t_obs.

Other Parameters:
image_arrarray_like

Array of complex image positions at each t_obs, i.e. image_arr.shape = (len(t_obs), number of images at each t_obs). Each value in this array is complex (real = north component, imaginary = east component)

amp_arrarray_like

Array of magnifications of each images. Same shape as image_arr.

get_resolved_lens_astrometry(t_obs)

Equation of motion for just the foreground lenses, individually.

Parameters:
t_obsarray_like

Time (in MJD).

get_resolved_photometry(t_obs, filt_idx=0, amp_arr=None, print_warning=True)

Get the photometry for each of the lensed source images. Implement with no blending (since we don’t support different blendings for the different images).

Parameters:
t_obsarray_like

Array of times to model.

Returns:
mag_modelarray_like

Magnitude of each lensed image centroid at t_obs. Shape = [5, len(t_obs)]

Other Parameters:
amp_arrarray_like

Amplifications of each individual image at each time, i.e. amp_arr.shape = (len(t_obs), number of images at each t_obs).

This will over-ride t_obs; but is more efficient when calculating both photometry and astrometry. If None, then just use t_obs.

filt_idxint

The filter index (def=0).

log_likely_astrometry(t_obs, x_obs, y_obs, x_err_obs, y_err_obs, ast_filt_idx=0)

Get the summed natural log of the likelihood for the input astrometric data in the specified filter or data sets. Note, this function returns the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

x_obsarray_like

List of relative R.A. astrometric positions on the sky in arcsec. Length must match t_obs.

y_obsarray_like

List of relative Dec. astrometric positions on the sky in arcsec. Length must match t_obs.

x_err_obsarray_like

List of relative R.A. astrometric positional errors on the sky in arcsec. Length must match t_obs.

y_err_obsarray_like

List of relative Dec. astrometric positional errors on the sky in arcsec. Length must match t_obs.

ast_filt_idxint, optional

Index of the astrometric filter or data set.

Returns:
ln_Lfloat

The ln(likelihood) summed over all astrometric measurements.

log_likely_astrometry_each(t_obs, x_obs, y_obs, x_err_obs, y_err_obs, ast_filt_idx=0)

Get the natural log of the likelihood for the input astrometric data in the specified filter or data sets. Note, this function eturns a list and it is the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

x_obsarray_like

List of relative R.A. astrometric positions on the sky in arcsec. Length must match t_obs.

y_obsarray_like

List of relative Dec. astrometric positions on the sky in arcsec. Length must match t_obs.

x_err_obsarray_like

List of relative R.A. astrometric positional errors on the sky in arcsec. Length must match t_obs.

y_err_obsarray_like

List of relative Dec. astrometric positional errors on the sky in arcsec. Length must match t_obs.

ast_filt_idxint, optional

Index of the astrometric filter or data set.

Returns:
ln_Larray_like

List of ln(likelihood) for each astrometric measurement.

log_likely_photometry(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get the summed natural log of the likelihood for the input photometric data for the specified filter or data set. Note, this function returns the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
ln_Lfloat

ln(likelihood) summed over the photometric measurement

log_likely_photometry_each(t_obs, mag_obs, mag_err_obs, filt_index=0)

Get the natural log of the likelihood for the input photometric data in the specified filter or data sets. Note, this function returns a list and it is the full ln(likelihood), including the normalization constant.

Parameters:
t_obsarray_like

List of times in MJD for the observations.

mag_obsarray_like

List of observed photometric measurements of the microlensing event in magnitudes. Length must be the same as t_obs.

mag_obs_errarray_like

List of observed photometric uncertainties of the microlensing event in magnitudes. Length must be the same as t_obs.

filt_idxint, optional

Index of the photometric filter or data set.

Returns:
ln_Larray_like

List of ln(likelihood) for each photometric measurement.

rescale_complex_pos(w, z1, z2)

Make sure everything is roughly centered on the origin in a 1 x 1 box.