class rubin_sim.maf.metrics.LightcurveInversionAsteroidMetric(weight_det=50, snr_limit=None, snr_max=100, filterlist=('u', 'g', 'r', 'i', 'z', 'y'), **kwargs)

Bases: BaseMoMetric

This metric is generally applicable to NEOs and MBAs - inner solar system objects.

Determine if the cumulative sum of observations of a target are enough to enable lightcurve inversion for shape modeling. For this to be true, multiple conditions need to be satisfied:

1) The SNR-weighted number of observations (each observation is weighted by its SNR, up to a max of 100) must be larger than the threshhold weight_det (default 50) 2) Ecliptic longitudinal coverage needs to be at least 90 degrees, and the absolute deviation needs to be at least 1/8th the longitudinal coverage. 3) The phase angle coverage needs to span at least 5 degrees.

For evaluation of condition 2, the median ecliptic longitude is subtracted from all longitudes, and the modulo 360 of those values is taken. This ensures that the wrap around 360 is handled correctly.

For more information on the above conditions, please see Contributed by Steve Chesley, Wes Fraser, Josef Durech, and the inner solar system working group.

weight_det: float, optional

The SNR-weighted number of detections required (per bandpass in any ONE of the filters in filterlist). Default 50.

snr_limit: float or None, optional

If snr_limit is set as a float, then requires object to be above snr_limit SNR in the image. If snr_limit is None, this uses the probabilistic ‘visibility’ calculated by the vis stacker, which means SNR ~ 5. Default is None.

snr_max: float, optional

Maximum value toward the SNR-weighting to consider. Default 100.

filterlist: list of str, optional

The filters which the lightcurve inversion could be based on. Requirements must be met in one of these filters.


0 (could not perform lightcurve inversion) or 1 (could)

Methods Summary

run(sso_obs, orb, hval)

Calculate the metric value.

Methods Documentation

run(sso_obs, orb, hval)

Calculate the metric value.

sso_obs: np.ndarray

The input data to the metric (same as the parent metric).

orb: np.ndarray

The information about the orbit for which the metric is being calculated.


The H value for which the metric is being calculated.

float or np.ndarray or dict