giant.coverage.coverage_class.Coverage¶
- class giant.coverage.coverage_class.Coverage(scene, imaging_times, brdf, camera_model, camera_position_function, camera_orientation_function, sun_position_function, ignore_indices=None, topography_variations=None, labels=None)[source]¶
Bases:
object
This class provides coverage analysis capabilities for remote sensing instruments given an observation plan. It works by taking the observation plan and then at each ‘imaging’ epoch in the observation plan, computing which facets of the shape model fall within the field of view of the instrument (and optionally are illuminated by the sun). This information is then stored, per image, per facet, and can then be queried to check what percentage of the surface was observed according to some constraints. Additionally, for SPC coverage, we can then take the information from the visibility check, and use it to compute the shape from shading dilutions of precision (DOP) for each facet, to get an idea of how good the coverage is for building shape models using stereophotoclinometry (SPC).
- Parameters:
scene (Scene) – A
Scene
containing the target body to be analyzed. Only the first target in the scene will be used and any others will be ignored. The target must have a shape with facets and vertices (usually a KDTree or Triangles type).imaging_times (List[datetime] | List[List[datetime]]) – A list of datetimes for each observation. If using labels, each label would have its own list of datetimes in this list
brdf (IlluminationModel) – An
IlluminationModel
representing a BRDF used to compute the jacobian matrix of the change in the illumination values given a change in the surface normal and/or albedocamera_model (CameraModel) – A
CameraModel
instancecamera_position_function (Callable) – A callable function that returns the location of the camera relative to the target in target body-fixed frame
camera_orientation_function (Callable) – A callable function that rotates the target body-fixed frame to the camera frame
sun_position_function (Callable) – A callable function that returns the location of the sun relative to the target in target body-fixed frame
ignore_indices (Sequence[int] | Sequence[Sequence[int] | ndarray[tuple[Any, ...], dtype[integer]]] | ndarray[tuple[Any, ...], dtype[integer]] | None) – An optional Sequence of sequence of indices to ignore from the shape model for each vertex on the target body’s surface. generally this should be a list of list of ints where each element of the outer list correspond to a vertex of the shape model and the inner list contains all triangles that triangle contributes to to ensure that the vertex is not self shadowed. This can be gotten from
prepare_shape()
topography_variations (Tuple[ndarray[tuple[Any, ...], dtype[float64]], ndarray[tuple[Any, ...], dtype[float64]]] | None) – An optional meshgrid of azimuth and elevation values representing permutations of surface normal vectors to search through for correlation with observation data
labels (List[str] | None) – An optional list of string labels to assign to different lists of image times
Summary of Methods
This method serves to determine which facets and vertices on the target body's surface are visible for each observation. |
|
This method serves to convert the visibility matrix of all surface vertices at all image times to a visibility matrix of all surface facets at all image times based on how each facet is characterized by the surface vertices. |
|
This method uses a given velocity function for the camera to compute the velocity and range of the camera relative to each surface element in the target body-fixed frame. |
|
This function determines which surface vertices are within the camera's FOV by projecting the vertices to a simulated image. |
|
This function determines a rectangular boundary footprint of the camera's field-of-view projected onto the target surface. |
|
This function computes the dilution of precision (DOP) metrics for all facets based off images where each facet visible as determined by the coverage analysis. |