Skip to content

drpangloss.models Functions

cvis_binary_angular(u, v, sep, pa, contrast)

Compute complex visibilities for an angular-parameterized binary model.

Parameters:

Name Type Description Default
u array - like

Baseline u coordinates in wavelength units.

required
v array - like

Baseline v coordinates in wavelength units.

required
sep float or array - like

Separation in milliarcseconds.

required
pa float or array - like

Position angle in degrees.

required
contrast float or array - like

Contrast ratio star/companion.

required

Returns:

Type Description
array - like

Complex visibility samples.

cvis_binary(u, v, ddec, dra, planet)

Compute complex visibilities for a Cartesian-parameterized binary model.

Parameters:

Name Type Description Default
u array - like

Baseline u coordinates in wavelength units.

required
v array - like

Baseline v coordinates in wavelength units.

required
ddec float or array - like

Declination offset in milliarcseconds.

required
dra float or array - like

Right-ascension offset in milliarcseconds.

required
planet float or array - like

Flux ratio of the companion.

required

Returns:

Type Description
array - like

Complex visibility samples.

loglike(values, params, data_obj, model_class)

Abstract log-likelihood function for a given model class and data object, assuming Gaussian errors.

Parameters:

Name Type Description Default
values array - like

Values of the model parameters.

required
params list

List of parameter names.

required
data_obj OIData

Object containing the data to be fitted.

required
model_class class

Model class to be fitted to the data.

required

Returns:

Type Description
float

Log-likelihood value.

loglike_nosignal(values, params, data_obj, model_class)

Abstract null log-likelihood function for a given model class and data object, assuming Gaussian errors.

Parameters:

Name Type Description Default
values array - like

Values of the model parameters.

required
params list

List of parameter names.

required
data_obj OIData

Object containing the data to be fitted.

required
model_class class

Model class to be fitted to the data.

required

Returns:

Type Description
float

Log-likelihood value.

laplace_cov(values, params, data_obj, model_class)

Compute the full Laplace covariance matrix for all model parameters jointly.

Computes the inverse of the Hessian of the negative log-likelihood with respect to all parameters in params simultaneously, returning an N x N covariance matrix (where N = len(params)).

.. note:: This function returns the full covariance matrix over all N parameters. To obtain only the marginal flux uncertainty at a fixed position, use :func:laplace_contrast_uncertainty instead.

Parameters:

Name Type Description Default
values array - like

Values of the model parameters.

required
params list

List of parameter names.

required
data_obj OIData

Object containing the data to be fitted.

required
model_class class

Model class to be fitted to the data.

required

Returns:

Type Description
array - like

N x N covariance matrix, where N = len(params).

laplace_contrast_uncertainty(flux, dra, ddec, data_obj, model_class, params=None)

Compute the Laplace uncertainty in flux at a fixed sky position.

Unlike :func:laplace_cov, which inverts the full N-parameter Hessian, this function fixes dra and ddec and computes only the scalar curvature of the negative log-likelihood along the flux axis alone:

.. math::

\sigma_f = \left(\frac{\partial^2 (-\log L)}{\partial f^2}\right)^{-1/2}

This is a 1-D (scalar) second derivative, not a matrix inversion. It is appropriate when the position is held fixed (e.g. on a detection grid) and only the contrast uncertainty at that grid point is needed. For the joint uncertainty over all parameters, use :func:laplace_cov instead.

Parameters:

Name Type Description Default
flux float

Flux ratio value at which the local Laplace uncertainty is evaluated.

required
dra float

Right ascension offset in mas (held fixed).

required
ddec float

Declination offset in mas (held fixed).

required
data_obj OIData

Object containing the data to be fitted.

required
model_class class

Model class to be fitted to the data.

required
params list[str] or tuple[str, str, str]

Parameter names corresponding to (dra, ddec, flux). Defaults to ["dra", "ddec", "flux"].

None

Returns:

Type Description
float

Scalar uncertainty in the contrast (standard deviation along flux axis).

fisher(values, params, data_obj, model_class, ridge=0.0)

Approximate the local Fisher matrix at a parameter point.

Parameters:

Name Type Description Default
values array - like

Parameter vector at which to evaluate the local curvature.

required
params list[str]

Parameter names corresponding to values.

required
data_obj OIData

Observational data object.

required
model_class class

Model class used to evaluate the likelihood.

required
ridge float

Diagonal regularization term.

0.0

Returns:

Type Description
array - like

Fisher information matrix.

chi2ppf(p, df)

Percentile function for chi-square.

For df=1 (the path used in nsigma), use the closed-form identity based on the standard normal quantile, i.e. square norm.ppf((p+1)/2). This remains JAX-native, differentiable, and fast.

For df != 1, this falls back to numpyro's gammaincinv backend when available.

Parameters:

Name Type Description Default
p array - like

Percentile value

required
df array - like

Degrees of freedom

required

Returns:

Type Description
array - like

Corresponding chi2 value to the percentile

nsigma(chi2r_test, chi2r_true, ndof)

Parameters:

Name Type Description Default
chi2r_test

Reduced chi-squared of test model.

required
chi2r_true

Reduced chi-squared of true model.

required
ndof

Number of degrees of freedom.

required

Returns:

Name Type Description
nsigma float

Detection significance.

closure_phases(cvis, index_cps1, index_cps2, index_cps3)

Calculate closure phases from complex visibilities.

Parameters:

Name Type Description Default
cvis array - like

Complex visibilities.

required
index_cps1 array - like

First baseline indices for each closure triangle.

required
index_cps2 array - like

Second baseline indices for each closure triangle.

required
index_cps3 array - like

Third baseline indices for each closure triangle.

required

Returns:

Type Description
array - like

Closure phases in degrees.

cp_indices(vis_sta_index, cp_sta_index)

Map closure-triangle station indices to baseline indices.

Parameters:

Name Type Description Default
vis_sta_index array - like

Baseline station index pairs from visibility data.

required
cp_sta_index array - like

Triangle station index triplets from closure-phase data.

required

Returns:

Type Description
tuple[ndarray, ndarray, ndarray]

Arrays (i_cps1, i_cps2, i_cps3) identifying the three baselines composing each closure phase.