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_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_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.

rescale_complex_pos(w, z1, z2)

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

get_chi2_photometry

get_lnL_constant

log_likely_photometry

log_likely_photometry_each

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

rescale_complex_pos(w, z1, z2)

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

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_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]

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_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_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)]

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.

Returns
mag_modelarray_like

Magnitude of the centroid at t_obs.

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

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_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_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.

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_chi2_photometry

get_lens_astrometry

get_lnL_constant

get_resolved_amplification

log_likely_astrometry

log_likely_photometry

log_likely_photometry_each

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_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_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_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.

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.

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_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]

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_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.

Returns
mag_modelarray_like

Magnitude of the centroid at t_obs.

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)]

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_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_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.

rescale_complex_pos(w, z1, z2)

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

get_chi2_astrometry

get_chi2_photometry

get_lnL_constant

log_likely_astrometry

log_likely_astrometry_each

log_likely_photometry

log_likely_photometry_each

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_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.

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.

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_lens_astrometry(t_obs)

Equation of motion for just the foreground lens system.

Parameters
t_obsarray_like

Time (in MJD).

get_resolved_lens_astrometry(t_obs)

Equation of motion for just the foreground lenses, individually.

Parameters
t_obsarray_like

Time (in MJD).

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.

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_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]

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_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.

Returns
mag_modelarray_like

Magnitude of the centroid at t_obs.

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)]

rescale_complex_pos(w, z1, z2)

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