All changes that impact users of this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added the following sensor utility functions:
phase_angle
,emission_angle
,slant_distance
,target_center_distance
,sub_spacecraft_point
,local_radius
,right_ascension_declination
,line_resolution
,sample_resolution
, andpixel_resolution
.
create_csm
now dispatches to_from_isd
and_from_state
to test whether the sensor model can be instantiated from either and ISD or a state file.generate_image_coordinate
tocsm.py
. This provides a similar interface togenerate_ground_coordinate
and abstracts away thecsmapi
from the user.- A surface class (moved from AutoCNet; credit @jessemapel) with support for Ellipsoid DEMs and basic support for raster DEMs readable by the plio.io.io_gdal.GeoDataset. Support is basic because it uses a single pixel intersection and not an interpolated elevation like ISIS does.
- A check to
generate_ground_point
when a GeoDataset is used to raise aValueError
if the algorithm intersects a no data value in the passed DEM. This ensures that valid heights are used in the intersection computation. Fixes #120
- Removed all
pyproj
calls from csm.py, abstracting them into the reprojection and pyproj.Transformer code inside utils.py. Updated the transformations to use the new pipeline style syntax to avoid deprecation warnings about old syntax.
- The init method that searches for the libusgscsm to support searching in the
csmplugins
subdirectory. This approach depends on being able to findcsmapi
in a standard location and then assumes that thelibusgscsm
shared library is in a subdirectoy of thatlib
directory. Fixes #118