StellarOpNav

giant.stellar_opnav.stellar_class:

giant.stellar_opnav.stellar_class:

class giant.stellar_opnav.stellar_class.StellarOpNav(camera, options=None)[source]

This class serves as the main user interface for performing Stellar Optical Navigation.

The class acts as a container for the Camera, PointOfInterestFinder, StarId, and stellar_opnav.estimators objects and also passes the correct and up-to-date data from one object to the other. In general, this class will be the exclusive interface to the mentioned objects and models for the user.

This class provides a number of features that make doing stellar OpNav easy. The first is it provides aliases to the point of interest finder, star id, and attitude estimation instances. These aliases make it easy to quickly change/update the various tuning parameters that are necessary to make star identification a success. In addition to providing convenient access to the underlying settings, some of these aliases also update internal flags that specify whether individual images need to be reprocessed, saving computation time when you’re trying to find the best tuning.

This class also provides simple methods for performing star identification and attitude estimation after you have set the tuning parameters. These methods (id_stars(), sid_summary(), and estimate_attitude()) combine all of the required steps into a few simple calls, and pass the resulting data from one object to the next. They also store off the results of the star identification in the queried_catalog_star_records, queried_catalog_image_points, queried_catalog_unit_vectors, extracted_image_points, extracted_image_illums, extracted_psfs, extracted_stats, extracted_snrs unmatched_catalog_image_points, unmatched_image_illums, unmatched_psfs, unmatched_stats, unmatched_snrs unmatched_catalog_star_records, unmatched_catalog_unit_vectors, unmatched_extracted_image_points, matched_catalog_image_points, matched_image_illums, matched_psfs, matched_stats, matched_snrs matched_catalog_star_records, matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, and matched_extracted_image_points attributes, enabling more advanced analysis to be performed external to the class.

Finally, this class stores the updated attitude solutions in the image objects themselves, allowing you to directly pass your images from stellar OpNav to the relative_opnav routines with updated attitude solutions. It also respects the image_mask attribute of the Camera object, only considering images that are currently turned on.

Parameters:
process_stars: List[bool]

This list contains a boolean specifying whether the corresponding image needs to be processed using image processing again.

This typically is automatically updated and you shouldn’t have to worry about it. It is included for speed.

property model: CameraModel

This alias returns the current camera model from the camera attribute.

It is provided for convenience since the camera model is used frequently.

property star_id

The StarID instance to use when doing star identification

This should be an instance of the StarID class.

See the StarID class documentation for more details

property attitude_estimator: AttitudeEstimator

The attitude estimator to use in the RANSAC algorithm

This should typically be an instance of the AttitudeEstimator class.

See the AttitudeEstimator class documentation for more details

property point_of_interest_finder: PointOfInterestFinder

The PointOfInterestFinder instance to use when doing image processing on the images

property queried_catalog_star_records: List[DataFrame | None]

This list contains all of the star records queried from the star catalog for each image in camera for the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image)

Each list element is a pandas DataFrame containing GIANT star records. A GIANT star record has the following columns:

column

units

description

‘ra’

deg

The right ascension of the star after correcting for proper motion

‘dec’

deg

The declination of the star after correcting for proper motion

‘distance’

km

The distance to the star from the Solar system barycenter (converted from parallax). This column has a default value of 5.428047027e15 if no parallax information is provided by the catalog.

‘ra_proper_motion’

deg/year

The proper motion for the right ascension

‘dec_proper_motion’

deg/year

The proper motion for the declination

‘mag’

N/A

The apparent magnitude of the star according to the star catalog

‘ra_sigma’

deg

The formal uncertainty in the right ascension according to the catalog

‘dec_sigma’

deg

The formal uncertainty in the declination according to the catalog

‘distance_sigma’

km

The formal uncertainty in the distance according to the catalog (converted from parallax). This has a default value of 1.9949433041226756e+19 km for stars with no parallax information.

‘ra_pm_sigma’

deg/year

The formal uncertainty in the right ascension proper motion according to the catalog

‘dec_pm_sigma’

deg/year

The formal uncertainty in the declination proper motion according to the catalog

Each row of the data frame represents a star record. Each row of the DataFrame matches to the corresponding column in the queried_catalog_unit_vectors and queried_catalog_image_points arrays.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property queried_catalog_image_points: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the projections of all of the star records queried from the star catalog for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image, and also when the attitude is updated for an image).

Each list element is a 2xn array of image points with the x locations (columns) down the first row and the y locations (rows) down the second row. Each column of the array matches to the corresponding column in the queried_catalog_unit_vectors array and the corresponding row in the queried_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property queried_catalog_unit_vectors: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the inertial unit vectors of all of the star records queried from the star catalog for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image). The unit vectors are the directions to the stars after correcting for proper motion, stellar aberration, and parallax.

Each list element is a 3xn array of unit vectors with each unit vector stored as a column. Each column of the array matches to the corresponding column in the queried_catalog_image_points array and the corresponding row in the queried_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property queried_weights_inertial: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the uncertainty of all of the star records queried from the star catalog for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalog and are for the unit vector representation.

A single value is provided for each unit vector representing the sum of the squares of the uncertainty (the trace of the covariance matrix). Each element of the array matches to the corresponding column in the queried_catalog_image_points array and the corresponding row in the queried_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property queried_weights_picture: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the uncertainty of all of the star records queried from the star catalog for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalog and are for the pixel representation of the star location.

A single value is provided for each unit vector representing the sum of the squares of the uncertainty (the trace of the covariance matrix). Each element of the array matches to the corresponding column in the queried_catalog_image_points array and the corresponding row in the queried_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property extracted_image_points: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains all of the image points of interest that were identified by the image processing routines for all of the images in camera from the most recent processing of the image (this gets overwritten when the image is reprocessed through the image processing routines).

Each list element is a 2xn array of image points with the x locations (cols) down the first row and the y locations (rows) down the second row. Each column of this array matches with the corresponding row in the extracted_image_illums array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property extracted_image_illums: List[ndarray[tuple[Any, ...], dtype[_ScalarT]] | None]

This list contains the DN values of the pixels containing the image points of interest for each image in camera that were identified by the image processing routines as potential stars (this gets overwritten when the image is reprocessed through the image processing routines).

Each list element is a length n array of image DN values. Each row of the array matches to the corresponding column in the extracted_image_points array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property extracted_psfs: List[list[PointSpreadFunction] | None]

This list contains point spread function object for each object identified as a potential star for each image in camera that were identified by the image processing routines as potential stars (this gets overwritten when the image is reprocessed through the image processing routines).

Each list element is a length n list of PSF objects. Each element of the array matches to the corresponding column in the extracted_image_points array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property extracted_stats: List[ndarray[tuple[Any, ...], dtype[int32]] | None]

This list contains the connected component stats for each object identified as a potential star for each image in camera that were identified by the image processing routines as potential stars (this gets overwritten when the image is reprocessed through the image processing routines).

Each list element is a length n list of stats. Each element of the list matches to the corresponding column in the extracted_image_points array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property extracted_snrs: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the peak snr value for each object identified as a potential star for each image in camera that were identified by the image processing routines as potential stars (this gets overwritten when the image is reprocessed through the image processing routines).

Each list element is a length n list of SNR values. Each element of the sublist matches to the corresponding column in the extracted_image_points array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property unmatched_catalog_star_records: List[DataFrame | None]

This list contains the star records queried from the star catalog that were not matched with an image point of interest for each image in camera for the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image)

Each list element is a pandas DataFrame containing GIANT star records. A GIANT star record has the following columns:

column

units

description

‘ra’

deg

The right ascension of the star after correcting for proper motion

‘dec’

deg

The declination of the star after correcting for proper motion

‘distance’

km

The distance to the star from the Solar system barycenter (converted from parallax). This column has a default value of 5.428047027e15 if no parallax information is provided by the catalog.

‘ra_proper_motion’

deg/year

The proper motion for the right ascension

‘dec_proper_motion’

deg/year

The proper motion for the declination

‘mag’

N/A

The apparent magnitude of the star according to the star catalog

‘ra_sigma’

deg

The formal uncertainty in the right ascension according to the catalog

‘dec_sigma’

deg

The formal uncertainty in the declination according to the catalog

‘distance_sigma’

km

The formal uncertainty in the distance according to the catalog (converted from parallax). This has a default value of 1.9949433041226756e+19 km for stars with no parallax information.

‘ra_pm_sigma’

deg/year

The formal uncertainty in the right ascension proper motion according to the catalog

‘dec_pm_sigma’

deg/year

The formal uncertainty in the declination proper motion according to the catalog

Each row of the data frame represents a star record. Each row of the DataFrame matches to the corresponding column in the unmatched_catalog_unit_vectors and unmatched_catalog_image_points arrays.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property unmatched_catalog_image_points: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the projections of the star records queried from the star catalog that were not matched with an image point of interest for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image, and also when a new attitude is solved for the image).

Each list element is a 2xn array of image points with the x locations (columns) down the first row and the y locations (rows) down the second row. Each column of the array matches to the corresponding column in the unmatched_catalog_unit_vectors array and the corresponding row in the unmatched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property unmatched_catalog_unit_vectors: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the inertial unit vectors of the star records queried from the star catalog that were not matched with an image point of interest for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image). The unit vectors are the directions to the stars after correcting for proper motion, stellar aberration, and parallax.

Each list element is a 3xn array of unit vectors with each unit vector stored as a column. Each column of the array matches to the corresponding column in the unmatched_catalog_image_points array and the corresponding row in the unmatched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property unmatched_weights_inertial: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the uncertainty of all of the star records queried from the star catalog that were not matched with an image point of interest for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalog and are for the unit vector representation.

A single value is provided for each unit vector representing the sum of the squares of the uncertainty (the trace of the covariance matrix). Each element of the array matches to the corresponding column in the unmatched_catalog_image_points array and the corresponding row in the unmatched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property unmatched_weights_picture: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the uncertainty of all of the star records queried from the star catalog that were not matched with with an image point of interest for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalog and are for the pixel representation of the star location.

A single value is provided for each unit vector representing the sum of the squares of the uncertainty (the trace of the covariance matrix). Each element of the array matches to the corresponding column in the unmatched_catalog_image_points array and the corresponding row in the unmatched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property unmatched_extracted_image_points: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the image points of interest that were not matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a 2xn array of image points with the x locations (columns) down the first row and the y locations (rows) down the second row.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property unmatched_image_illums: List[ndarray[tuple[Any, ...], dtype[_ScalarT]] | None]

This list contains the DN values of the pixel containing the image points of interest that are not matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a length n array of image DN values. Each row of the array matches to the corresponding column in the unmatched_extracted_image_points array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property unmatched_stats: List[ndarray[tuple[Any, ...], dtype[int32]] | None]

This list contains the connected component stats of each object that is not matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a length n array of OpenCV connected components statistics. Each row of the array matches to the corresponding column in the unmatched_extracted_image_points array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property unmatched_snrs: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the peak snr value of each object that is not matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a length n array of OpenCV connected components statistics. Each row of the array matches to the corresponding column in the unmatched_extracted_image_points array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property unmatched_psfs: List[list[PointSpreadFunction] | None]

This list contains the fit PSF object for each unmatched image point from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a shape n array of PSF objects. Each element of the array matches to the corresponding column in the unmatched_catalog_unit_vectors, unmatched_catalog_image_points, and the unmatched_extracted_image_points arrays.

Each object should be a PointSpreadFunction. See the documentation for the point_spread_functions package for details.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property matched_catalog_star_records: List[DataFrame | None]

This list contains the star records queried from the star catalog that were matched with an image point of interest for each image in camera for the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image)

Each list element is a pandas DataFrame containing GIANT star records. A GIANT star record has the following columns:

column

units

description

‘ra’

deg

The right ascension of the star after correcting for proper motion

‘dec’

deg

The declination of the star after correcting for proper motion

‘distance’

km

The distance to the star from the Solar system barycenter (converted from parallax). This column has a default value of 5.428047027e15 if no parallax information is provided by the catalog.

‘ra_proper_motion’

deg/year

The proper motion for the right ascension

‘dec_proper_motion’

deg/year

The proper motion for the declination

‘mag’

N/A

The apparent magnitude of the star according to the star catalog

‘ra_sigma’

deg

The formal uncertainty in the right ascension according to the catalog

‘dec_sigma’

deg

The formal uncertainty in the declination according to the catalog

‘distance_sigma’

km

The formal uncertainty in the distance according to the catalog (converted from parallax). This has a default value of 1.9949433041226756e+19 km for stars with no parallax information.

‘ra_pm_sigma’

deg/year

The formal uncertainty in the right ascension proper motion according to the catalog

‘dec_pm_sigma’

deg/year

The formal uncertainty in the declination proper motion according to the catalog

Each row of the data frame represents a star record. Each row of the DataFrame matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, matched_catalog_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_image_illums array.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_catalog_image_points: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the projections of the star records queried from the star catalog that were matched with an image point of interest for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image, and also when a new attitude is solved for the image).

Each list element is a 2xn array of image points with the x locations (columns) down the first row and the y locations (rows) down the second row. Each column of the array matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, and matched_extracted_image_points arrays, and the corresponding row in the matched_image_illums and matched_catalog_star_records arrays.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_catalog_unit_vectors_inertial: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the inertial unit vectors of the star records queried from the star catalog that were matched with an image point of interest for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image). The unit vectors are the directions to the stars after correcting for proper motion, stellar aberration, and parallax.

Each list element is a 3xn array of unit vectors with each unit vector stored as a column. Each column of the array matches to the corresponding column in the matched_catalog_unit_vectors_camera, matched_catalog_image_points, and matched_extracted_image_points arrays, and the corresponding rows in the matched_image_illums and matched_catalog_star_records arrays.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_catalog_unit_vectors_camera: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the camera frame unit vectors of the star records queried from the star catalog that were matched with an image point of interest for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image). The unit vectors are the directions to the stars after correcting for proper motion, stellar aberration, and parallax.

Each list element is a 3xn array of unit vectors with each unit vector stored as a column. Each column of the array matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_image_points, and matched_extracted_image_points arrays, and the corresponding rows in the matched_image_illums and matched_catalog_star_records arrays.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_weights_inertial: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the uncertainty of all of the star records queried from the star catalog that were matched with an image point of interest for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalog and are for the unit vector representation.

A single value is provided for each unit vector representing the sum of the squares of the uncertainty (the trace of the covariance matrix). Each element of the array matches to the corresponding column in the matched_catalog_image_points array and the corresponding row in the matched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property matched_weights_picture: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the uncertainty of all of the star records queried from the star catalog that were matched with with an image point of interest for each image in camera from the most recent query to star catalog (this gets overwritten when the star catalog is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalog and are for the pixel representation of the star location.

A single value is provided for each unit vector representing the sum of the squares of the uncertainty (the trace of the covariance matrix). Each element of the array matches to the corresponding column in the matched_catalog_image_points array and the corresponding row in the matched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

property matched_extracted_image_points: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the image points of interest that are matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a 2xn array of image points with the x locations (columns) down the first row and the y locations (rows) down the second row. Each column of the array matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, and matched_catalog_image_points arrays, and the corresponding row in the matched_image_illums and matched_catalog_star_records arrays.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_image_illums: List[ndarray[tuple[Any, ...], dtype[_ScalarT]] | None]

This list contains the DN values of the pixel containing the image points of interest that are matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a length n array of image DN values. Each row of the array matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, matched_catalog_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_stats: List[ndarray[tuple[Any, ...], dtype[int32]] | None]

This list contains the connected component stats of each object that is matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a length n array of opencv connect components statistics. Each row of the array matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, matched_catalog_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_snrs: List[ndarray[tuple[Any, ...], dtype[float64]] | None]

This list contains the peak snr value of each object that is matched with a catalog star for each image in camera from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

Each list element is a length n array of opencv connect components statistics. Each row of the array matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, matched_catalog_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalog_star_records DataFrame.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property matched_psfs: List[list[PointSpreadFunction] | None]

This list contains the fit PSF objects for each matched image point from the most recent star identification attempt (this gets overwritten when a new attempt is made at identifying the stars in the image).

This list is only updated if ImageProcessing.save_psf is set to True.

Each list element is a shape n array of PSF objects. Each element of the array matches to the corresponding column in the matched_catalog_unit_vectors_inertial, matched_catalog_unit_vectors_camera, matched_catalog_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalog_star_records DataFrame. The PSF object in each element is the same type as ImageProcessing.centroiding. See the documentation for the point_spread_functions package for details.

This list should always be the same length as the Camera.images list and each element of this list corresponds to the image in the same element in the Camera.images list.

If no stars have been successfully identified for an image then the corresponding index of the list will be set to None.

property camera: Camera

The camera instance to perform OpNav on.

This should be an instance of the Camera class or one of its subclasses.

See the Camera class documentation for more details

scene: Scene | None = None

Optionally, a scene defining the targets that may be in the FOV of the camera used to reject points interior to a body as stars.

If None then no attempt is made to reject points that might be interior to a body. If not None then we will attempt to reject these points using a priori knowledge.

use_weights: bool = False

A flag specifying whether to use weighted estimation for attitude estimation

point_of_interest_finder_options: PointOfInterestFinderOptions | None

Options to use to initialize the point of interest finder instance.

star_id_options: StarIDOptions

Options to use to initialize the star_id instance

attitude_estimator_options: AttitudeEstimatorOptions | ESOQ2Options | None = None

Options to use to initialize the attitude estimator instance

custom_attitude_estimator_class: type[AttitudeEstimator] | None = None

A custom attitude estimator class to use instead of one of the standard provided ones

attitude_estimator_type: AttitudeEstimatorImplementations = 1

Which attitude estimator to use.

For a custom implementation choose CUSTOM

denoising: DENOISING_TYPE | None

What denoising to apply to the image before looking for stars.

Generally the default (GaussianDenoising) should be fine and you can probably have success with NlMeansDenoising as well.

If None then no denoising is applied.

use_weights: bool = False

A flag specifying whether to use weighted estimation for attitude estimation

Summary of Methods

add_images

This is essentially an alias to the Camera.add_images() method, but it also expands various lists to account for the new number of images.

reset_star_id

This method resets the star_id object to it original settings at initialization

update_star_id

This method updates the attributes of the star_id attribute with new settings from a StarIDOptions.

reset_point_of_interest_finder

This method resets the settings for the point of interest finder to their original values at initialization.

update_point_of_interest_finder

This method updates the attributes of the point_of_interest_finder attribute.

reset_attitude_estimator

This method resets the settings for the attitude_estimator to the original settings used at initialization.

update_attitude_estimator

This method updates the attributes of the attitude_estimator attribute.

id_stars

This method identifies stars for each image turned on in the camera attribute.

reproject_stars

This method updates the unit vectors and reprojects the stars using updated camera and attitude models.

estimate_attitude

This method estimates an updated attitude for each image based on the identified stars in the image.

sid_summary

This method generate a summary of the star identification results overall and for each image and prints it to stdout.

matched_star_residuals

This method calculates the residuals for matched stars for a given image number in the camera attribute.

remove_matched_stars

This method removes specified matched stars for a given image number in the camera attribute.

review_outliers

This method review outliers for all images within a camera object and allows for them to be removed through a simple gui.

remove_outliers

This method removes outliers for all images within a camera object.

clear_results

This clears all results arrays and resets them to their original values.