StellarOpNav

giant.stellar_opnav.stellar_class:

giant.stellar_opnav.stellar_class:

class giant.stellar_opnav.stellar_class.StellarOpNav(camera, use_weights=False, scene=None, image_processing=None, image_processing_kwargs=None, star_id=None, star_id_kwargs=None, attitude_estimator=None, attitude_estimator_kwargs=None)[source]

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

The class acts as a container for the Camera, ImageProcessing, 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 image processing, star id, and attitude estimation objects. 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_catalogue_star_records, queried_catalogue_image_points, queried_catalogue_unit_vectors, ip_extracted_image_points, ip_image_illums, ip_psfs, ip_stats, ip_snrs unmatched_catalogue_image_points, unmatched_image_illums, unmatched_psfs, unmatched_stats, unmatched_snrs unmatched_catalogue_star_records, unmatched_catalogue_unit_vectors, unmatched_extracted_image_points, matched_catalogue_image_points, matched_image_illums, matched_psfs, matched_stats, matched_snrs matched_catalogue_star_records, matched_catalogue_unit_vectors_inertial, matched_catalogue_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.

When initializing this class, most of the initial options can be set using the *_kwargs inputs with dictionaries specifying the keyword arguments and values. Alternatively, you can provide already initialized instances of the ImageProcessing, AttitudeEstimator, or StarID classes or subclasses if you want a little more control. You should see the documentation for the ImageProcessing, AttitudeEstimator, and StarID classes for more details on what you can specify.

Parameters:
  • camera (Camera) – The Camera object containing the camera model and images to be utilized

  • use_weights (bool) – A flag specifying whether to use weighted estimation for attitude estimation

  • scene (Scene | 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

  • image_processing (ImageProcessing | None) – An already initialized instance of ImageProcessing (or a subclass). If not None then image_processing_kwargs are ignored.

  • image_processing_kwargs (dict | None) – The keyword arguments to pass to the ImageProcessing class constructor. These are ignored if argument image_processing is not None

  • star_id (StarID | None) – An already initialized instance of StarID (or a subclass). If not None then star_id_kwargs are ignored.

  • star_id_kwargs (dict | None) – The keyword arguments to pass to the StarID class constructor as a dictionary. These are ignored if argument star_id is not None.

  • attitude_estimator (AttitudeEstimator | None) – An already initialized instance of AttitudeEstimator (or a subclass). If not None then attitude_estimator_kwargs are ignored.

  • attitude_estimator_kwargs (dict | None) – The keyword arguments to pass to the DavenportQMethod constructor as a dictionary. If argument attitude_estimator is not None then this is ignored.

use_weights: bool

A flag specifying whether to compute weights/use them in the attitude estimation routine

scene: Scene | 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.

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

The attitude estimator to use in the RANSAC algorithm

This should typically be an instance of the DavenportQMethod class.

See the DavenportQMethod class documentation for more details

property image_processing: ImageProcessing

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

This must be an instance of the ImageProcessing class.

See the ImageProcessing class documentation for more details

property queried_catalogue_star_records: List[DataFrame | None]

This list contains all of the star records queried from the star catalogue for each image in camera for the most recent query to star catalogue (this gets overwritten when the star catalogue 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 catalogue.

‘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 catalogue

‘ra_sigma’

deg

The formal uncertainty in the right ascension according to the catalogue

‘dec_sigma’

deg

The formal uncertainty in the declination according to the catalogue

‘distance_sigma’

km

The formal uncertainty in the distance according to the catalogue (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 catalogue

‘dec_pm_sigma’

deg/year

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

Each row of the data frame represents a star record. Each row of the DataFrame matches to the corresponding column in the queried_catalogue_unit_vectors and queried_catalogue_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_catalogue_image_points: List[ndarray | None]

This list contains the projections of all of the star records queried from the star catalogue for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue 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_catalogue_unit_vectors array and the corresponding row in the queried_catalogue_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_catalogue_unit_vectors: List[ndarray | None]

This list contains the inertial unit vectors of all of the star records queried from the star catalogue for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue 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_catalogue_image_points array and the corresponding row in the queried_catalogue_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 | None]

This list contains the uncertainty of all of the star records queried from the star catalogue for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalogue 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_catalogue_image_points array and the corresponding row in the queried_catalogue_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 | None]

This list contains the uncertainty of all of the star records queried from the star catalogue for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalogue 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_catalogue_image_points array and the corresponding row in the queried_catalogue_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 ip_extracted_image_points: List[ndarray | 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 ip_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 ip_image_illums: List[ndarray | 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 ip_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 ip_psfs: List[ndarray | 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).

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

Each list element is a length n array of PSF objects. Each element of the array matches to the corresponding column in the ip_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 ip_stats: List[ndarray | 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 ip_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 ip_snrs: List[ndarray | 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 ip_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_catalogue_star_records: List[DataFrame | None]

This list contains the star records queried from the star catalogue 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 catalogue.

‘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 catalogue

‘ra_sigma’

deg

The formal uncertainty in the right ascension according to the catalogue

‘dec_sigma’

deg

The formal uncertainty in the declination according to the catalogue

‘distance_sigma’

km

The formal uncertainty in the distance according to the catalogue (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 catalogue

‘dec_pm_sigma’

deg/year

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

Each row of the data frame represents a star record. Each row of the DataFrame matches to the corresponding column in the unmatched_catalogue_unit_vectors and unmatched_catalogue_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_catalogue_image_points: List[ndarray | None]

This list contains the projections of the star records queried from the star catalogue 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_catalogue_unit_vectors array and the corresponding row in the unmatched_catalogue_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_catalogue_unit_vectors: List[ndarray | None]

This list contains the inertial unit vectors of the star records queried from the star catalogue 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_catalogue_image_points array and the corresponding row in the unmatched_catalogue_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 | None]

This list contains the uncertainty of all of the star records queried from the star catalogue that were not matched with an image point of interest for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalogue 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_catalogue_image_points array and the corresponding row in the unmatched_catalogue_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 | None]

This list contains the uncertainty of all of the star records queried from the star catalogue that were not matched with with an image point of interest for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalogue 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_catalogue_image_points array and the corresponding row in the unmatched_catalogue_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 | None]

This list contains the image points of interest that were not matched with a catalogue 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 | None]

This list contains the DN values of the pixel containing the image points of interest that are not matched with a catalogue 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 | None]

This list contains the connected component stats of each object that is not matched with a catalogue 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 | None]

This list contains the peak snr value of each object that is not matched with a catalogue 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[ndarray | 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).

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 unmatched_catalogue_unit_vectors, unmatched_catalogue_image_points, and the unmatched_extracted_image_points arrays. 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.

property matched_catalogue_star_records: List[DataFrame | None]

This list contains the star records queried from the star catalogue 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 catalogue.

‘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 catalogue

‘ra_sigma’

deg

The formal uncertainty in the right ascension according to the catalogue

‘dec_sigma’

deg

The formal uncertainty in the declination according to the catalogue

‘distance_sigma’

km

The formal uncertainty in the distance according to the catalogue (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 catalogue

‘dec_pm_sigma’

deg/year

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

Each row of the data frame represents a star record. Each row of the DataFrame matches to the corresponding column in the matched_catalogue_unit_vectors_inertial, matched_catalogue_unit_vectors_camera, matched_catalogue_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_catalogue_image_points: List[ndarray | None]

This list contains the projections of the star records queried from the star catalogue 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_catalogue_unit_vectors_inertial, matched_catalogue_unit_vectors_camera, and matched_extracted_image_points arrays, and the corresponding row in the matched_image_illums and matched_catalogue_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_catalogue_unit_vectors_inertial: List[ndarray | None]

This list contains the inertial unit vectors of the star records queried from the star catalogue 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_catalogue_unit_vectors_camera, matched_catalogue_image_points, and matched_extracted_image_points arrays, and the corresponding rows in the matched_image_illums and matched_catalogue_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_catalogue_unit_vectors_camera: List[ndarray | None]

This list contains the camera frame unit vectors of the star records queried from the star catalogue 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_catalogue_unit_vectors_inertial, matched_catalogue_image_points, and matched_extracted_image_points arrays, and the corresponding rows in the matched_image_illums and matched_catalogue_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 | None]

This list contains the uncertainty of all of the star records queried from the star catalogue that were matched with an image point of interest for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalogue 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_catalogue_image_points array and the corresponding row in the matched_catalogue_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 | None]

This list contains the uncertainty of all of the star records queried from the star catalogue that were matched with with an image point of interest for each image in camera from the most recent query to star catalogue (this gets overwritten when the star catalogue is re-queried for the image). The uncertainties are based on the formal uncertainty of the star location according to the star catalogue 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_catalogue_image_points array and the corresponding row in the matched_catalogue_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 | None]

This list contains the image points of interest that are matched with a catalogue 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_catalogue_unit_vectors_inertial, matched_catalogue_unit_vectors_camera, and matched_catalogue_image_points arrays, and the corresponding row in the matched_image_illums and matched_catalogue_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 | None]

This list contains the DN values of the pixel containing the image points of interest that are matched with a catalogue 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_catalogue_unit_vectors_inertial, matched_catalogue_unit_vectors_camera, matched_catalogue_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalogue_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 | None]

This list contains the connected component stats of each object that is matched with a catalogue 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_catalogue_unit_vectors_inertial, matched_catalogue_unit_vectors_camera, matched_catalogue_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalogue_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 | None]

This list contains the peak snr value of each object that is matched with a catalogue 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_catalogue_unit_vectors_inertial, matched_catalogue_unit_vectors_camera, matched_catalogue_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalogue_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[ndarray | 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_catalogue_unit_vectors_inertial, matched_catalogue_unit_vectors_camera, matched_catalogue_image_points, and matched_extracted_image_points arrays, and the corresponding row in the matched_catalogue_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

Summary of Methods

id_stars

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

estimate_attitude

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

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.

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.

reproject_stars

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

reset_attitude_estimator

This method replaces the existing attitude estimator instance with a new instance using the initial attitude_estimator_kwargs argument passed to the constructor.

reset_image_processing

This method replaces the existing image processing instance with a new instance using the initial image_processing_kwargs argument passed to the constructor.

reset_star_id

This method replaces the existing star ID instance with a new instance using the initial star_id_kwargs argument passed to the constructor.

sid_summary

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

update_attitude_estimator

This method updates the attributes of the attitude_estimator attribute.

update_image_processing

This method updates the attributes of the image_processing attribute.

update_star_id

This method updates the attributes of the star_id 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.