This is a repository for georeferencing of pushbroom hyperspectral imagery and includes ray-intersection, orthorectification and a coregistration module (at dev stage).
The current parsing is poorly structured, and ideally the parsing layer should deliver the following in a standardized form:
Vehicle position/orientation (pose): The preferred format is pose with respect to earth-centered earth-fixed (ECEF) coordinate reference system. This with either come from visual navigation where the camera defines the body frame, or from an GNSS-INS where the IMU typically defines the body frame.
HSI geometry: Since we work with push-broom sensors, the geometry includes the line camera model parameters and the orientation/position of the sensor. These are also called boresight/lever arms.
3D triangle mesh (mesh.ply): The 3D mesh is used for ray intersection a.k.a. ray casting/tracing. It may be derived from a DEM or a mesh from photogrammetry.
Data cube: Raw data cubes may come in hdf formats or ENVI formats. Processing ENVI cubes into hdf-format with embedded NAV seems useful. This also allows the handling of oversized data cubes.
Reference Orthomosaic/DEM (optional): For validation/calibration it is important to have reference orthomosaics/DEMs. This data can be downloaded from online databases (other surveys) or from a photogrammetry project. Important to be aware of the vertical reference of the DEMs. It is on the TODO to to add support for both ellipsoid-relative and geoid-relative elevations. Be sure that the DEM and vehicle positions are at least consistent (e.g. if derived from water depth + tide correction).
[ ] Create a module parsing_tools containing the relevant tools to give a standardized format of data to be used for georeferencing. Parsing could be a script that uses the config file to handle the variety of "raw data formats".
[ ] 1. Parse (if necessary) data cube formats into .h5 with size-control
[ ] 2. Parse various pose formats to pose-per-HSI frame and embed as folder in .h5 file. Must be done in conjunction with the above.
[ ] 3. (Independent) Parse (if necessary) HSI camera geometry into *.xml file. Maybe do something with the annoying binning stuff for UHI.
[ ] 4. (Independent) Parse 3D model into a mesh. It is important that potential offsets are applied. In future, simplistic altimeter registration (underwater) or constant (altitude) modes should be implemented.
The current parsing is poorly structured, and ideally the parsing layer should deliver the following in a standardized form:
Vehicle position/orientation (pose): The preferred format is pose with respect to earth-centered earth-fixed (ECEF) coordinate reference system. This with either come from visual navigation where the camera defines the body frame, or from an GNSS-INS where the IMU typically defines the body frame.
HSI geometry: Since we work with push-broom sensors, the geometry includes the line camera model parameters and the orientation/position of the sensor. These are also called boresight/lever arms.
3D triangle mesh (mesh.ply): The 3D mesh is used for ray intersection a.k.a. ray casting/tracing. It may be derived from a DEM or a mesh from photogrammetry.
Data cube: Raw data cubes may come in hdf formats or ENVI formats. Processing ENVI cubes into hdf-format with embedded NAV seems useful. This also allows the handling of oversized data cubes.
Reference Orthomosaic/DEM (optional): For validation/calibration it is important to have reference orthomosaics/DEMs. This data can be downloaded from online databases (other surveys) or from a photogrammetry project. Important to be aware of the vertical reference of the DEMs. It is on the TODO to to add support for both ellipsoid-relative and geoid-relative elevations. Be sure that the DEM and vehicle positions are at least consistent (e.g. if derived from water depth + tide correction).
[ ] Create a module parsing_tools containing the relevant tools to give a standardized format of data to be used for georeferencing. Parsing could be a script that uses the config file to handle the variety of "raw data formats".
[ ] 1. Parse (if necessary) data cube formats into .h5 with size-control
[ ] 2. Parse various pose formats to pose-per-HSI frame and embed as folder in .h5 file. Must be done in conjunction with the above.
[ ] 3. (Independent) Parse (if necessary) HSI camera geometry into *.xml file. Maybe do something with the annoying binning stuff for UHI.
[ ] 4. (Independent) Parse 3D model into a mesh. It is important that potential offsets are applied. In future, simplistic altimeter registration (underwater) or constant (altitude) modes should be implemented.