-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding Support for OSIRIS-REx TagCams Instruments #5427
Adding Support for OSIRIS-REx TagCams Instruments #5427
Conversation
…ts into orex/jigsawXYZ_staging Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu> # Conflicts: # isis/make/config.darwin-MacOSX10_12 # isis/src/base/apps/caminfo/caminfo.cpp # isis/src/base/apps/caminfo/caminfo.xml # isis/src/base/apps/isisminer/StrategyFactory.cpp # isis/src/base/apps/isisminer/isisminer.xml # isis/src/base/apps/phocube/phocube.cpp # isis/src/base/apps/phocube/phocube.xml # isis/src/base/objs/BulletDskShape/BulletDskShape.cpp # isis/src/base/objs/BulletDskShape/BulletDskShape.h # isis/src/base/objs/BulletDskShape/BulletDskShape.truth # isis/src/base/objs/BulletDskShape/unitTest.cpp # isis/src/base/objs/BulletWorldManager/BulletWorldManager.cpp # isis/src/base/objs/BulletWorldManager/BulletWorldManager.h # isis/src/base/objs/BulletWorldManager/BulletWorldManager.truth # isis/src/base/objs/BulletWorldManager/unitTest.cpp # isis/src/base/objs/CameraGroundMap/CameraGroundMap.h # isis/src/base/objs/GisGeometry/GisGeometry.cpp # isis/src/base/objs/GisGeometry/GisGeometry.h # isis/src/base/objs/GisGeometry/unitTest.cpp # isis/src/base/objs/ShapeModelFactory/ShapeModelFactory.cpp # isis/src/base/objs/ShapeModelFactory/ShapeModelFactory.h # isis/src/base/objs/Strategy/Strategy.cpp # isis/src/base/objs/Strategy/Strategy.h # isis/src/osirisrex/objs/OsirisRexOcamsCamera/OsirisRexOcamsCamera.cpp # isis/src/osirisrex/objs/OsirisRexOcamsCamera/OsirisRexOcamsCamera.h
Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
Provides initial version of OREX TAGCAMS camera model for NAVCam (Navcam 1), NFTCam (Navcam 2) and STOWCam instruments Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
tagcams2isis * Added more keywords to import/translate * Added option REMOVECALPIXELS to allow user to control how the boundary pixels are treated * Implemented summing and scaling based upon expected conditions * Add SourceProductId * Compute CameraHeadTemperature (Celsius) from TCCHTEMP FITS label keyword for camera distortion model * Compute and add YearDoy keyword Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
* Added full implementation of the OpenCV 10 parameter distortion model for the TAGCAMS camera * Allow selection of several models including OpenCV, OCAMS or none * Added TOLERANCE parameter to determine convergence tolerance * Added DEBUG_MODEL parameter to turn on print statements to debug the camera distortion model * Added modified kernel DB file to support TAGCAMS along with OCAMS * Updated TAGCAMS camera addendum file Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
OsirisRexTagcamsDistortionMap * Renamed OpenCV parameters in the IAK kernel to better conform and associate with the OpenCV parameter names * Added k4-k6 parameters to fully implement the OpenCV model Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
orx_tagcams_addendum_v04.ti * Version 4 of the TAGCAMS IAK kernel was created for new OpenCV distortion model parameters for Navcam 1 & 2 Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
tagcams2isis * Mistyped iTime.h with capital I - works on Macs, not Linux systems Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
tagcams2isis * Update b parameter used to convert raw DNs of camera head temperature to Celsius as provided by the NAV team in update to camera model Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
TAGCAMS Camera Model * Now use the CCD center as specified in the IK as the focal plane detector map system origin * Update camera model parameters provided by the NAV team * Renamed conversion methods to more meaningful names * Fixes pointing issues Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
orex_tagcams_addendum_v05.ti * Updated with all new TAGCAMS parameters as provided by the NAV/Kinetx team * Added distortion model reference Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
orex_tagcams_addendum_v06.ti * Added light time/stellar, abberation correction and target/observer swap parameters for each instrument * Updated documentation Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
OsirisRexTagcamsDistortionMap * Properly initialize distorted/undistorted parameters Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
Signed-off-by: Kris J. Becker <kbecker@orex.lpl.arizona.edu>
…x/apps/tagcams2isis; 2) isis/src/osirisrex/objs/OsirisRexTagcamsCamera; and 3) isis/src/base/objs/IrregularBodyCameraGroundMap. Maintaining git file histories.
Moved all private variables and methods to protected scope
… and StowCam into Instruments.trn file. Originally added to University of Arizona codebase by Kris Becker on January 10, 2019. Addresses DOI-USGS#5424.
…nd supporting files. Addresses DOI-USGS#5424.
… to support Osiris-REx instruments. Addresses DOI-USGS#5424.
* This class is derived from CameraGroundMap to support the special case of | ||
* irregular bodies. Particularly, only the GetXY() method is reimplemented | ||
* here to never perform the "emission angle" (in places called "back-of-the- | ||
* planet") test. This is because the test uses the ellipsoidd to validate |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ellipsoidd -> ellipsoid
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
using namespace std; | ||
int main() { | ||
Isis::Preference::Preferences(true); | ||
cout << "This class will be tested by the applications and the individual Camera models." << endl; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why even include it then? We really rather have more Makefile based tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed.
/** This is free and unencumbered software released into the public domain. | ||
|
||
The authors of ISIS do not claim copyright on the contents of this file. | ||
For more details about the LICENSE terms and the AUTHORS, you will | ||
find files of those names at the top level of this repository. **/ | ||
|
||
/* SPDX-License-Identifier: CC0-1.0 */ | ||
|
||
#include <iomanip> | ||
#include <iostream> | ||
|
||
#include "Camera.h" | ||
#include "CameraFactory.h" | ||
#include "IException.h" | ||
#include "iTime.h" | ||
#include "OsirisRexTagcamsCamera.h" | ||
#include "Preference.h" | ||
#include "Pvl.h" | ||
#include "PvlGroup.h" | ||
|
||
using namespace std; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Im guessing this was written a while ago, is it possible to change this to a GTEST instead? Especially since some GTESTs were already written as part of the PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed and replaced with gtests.
…ap.h; 2) removed IrregularBodyGroundMap unit test; 3) replaced OsirisRexTagcamsCamera unit test with gtest version. Addresses DOI-USGS#5424.
… to take FileName object as an argument instead of a ProcessImportFits object. Addresses DOI-USGS#5424.
Note that I also modified the tagcams2isis methods based on Adams's email of 2024-03-19. Successfully ran all tests including the Tagcams camera unitTest now in gtest format. |
Description
Adding support for the OSIRIS-REx TagCams instruments NFTCam, NAVCam, and StowCam currently in the University of Arizona code base. In addition to the associated camera model, this includes the tagcams2isis ingestion program, necessary tests, and test data.Related Issue
https://github.com//issues/5424How Has This Been Validated?
Tests have been added for the Tagcams NAVCam and NFTCam instruments in addition to a general unit test for Tagcams. Image data in the form of pvl and cub files are used in these tests and have been added in the isis/tests/osirisRexImages folder. Tests and data for the StowCam instrument will likely be added later after NAIF support files become available. Existing OsirisREx OCams tests have been confirmed as well.
Gtests for the tagcams2isis ingestion program for each sensor have also been added.
Results of ctest suite...
ctest -R OsirisRex --output-on-failure
Test project
Start 1115: osirisrex_unit_test_OsirisRexTagcamsCamera
1/7 Test #1115: osirisrex_unit_test_OsirisRexTagcamsCamera ............. Passed 0.72 sec
Start 2222: OsirisRexOcamsCube.PolyMath
2/7 Test #2222: OsirisRexOcamsCube.PolyMath ............................ Passed 1.53 sec
Start 2223: OsirisRexOcamsCube.MappingCam
3/7 Test #2223: OsirisRexOcamsCube.MappingCam .......................... Passed 1.53 sec
Start 2224: OsirisRexOcamsCube.SamplingCam
4/7 Test #2224: OsirisRexOcamsCube.SamplingCam ......................... Passed 1.54 sec
Start 2225: OsirisRexOcamsCube.PolyCamUpdatedIkCodes
5/7 Test #2225: OsirisRexOcamsCube.PolyCamUpdatedIkCodes ............... Passed 1.53 sec
Start 2226: OsirisRexTagcamsNAVCamCube.NavigationCam
6/7 Test #2226: OsirisRexTagcamsNAVCamCube.NavigationCam ............... Passed 3.54 sec
Start 2227: OsirisRexTagcamsNFTCamCube.NaturalFeatureTrackingCam
7/7 Test #2227: OsirisRexTagcamsNFTCamCube.NaturalFeatureTrackingCam ... Passed 4.04 sec
ctest -R FunctionalTestTagcams --output-on-failure
Test project
Start 1761: TempTestingFiles.FunctionalTestTagcams2IsisNavCam
1/4 Test #1761: TempTestingFiles.FunctionalTestTagcams2IsisNavCam ............... Passed 0.98 sec
Start 1762: TempTestingFiles.FunctionalTestTagcams2IsisNavCamRemCalPixOff
2/4 Test #1762: TempTestingFiles.FunctionalTestTagcams2IsisNavCamRemCalPixOff ... Passed 0.98 sec
Start 1763: TempTestingFiles.FunctionalTestTagcams2IsisNftCam
3/4 Test #1763: TempTestingFiles.FunctionalTestTagcams2IsisNftCam ............... Passed 0.97 sec
Start 1764: TempTestingFiles.FunctionalTestTagcams2IsisStowCam
4/4 Test #1764: TempTestingFiles.FunctionalTestTagcams2IsisStowCam .............. Passed 0.96 sec
Types of changes
Checklist:
Licensing
This project is mostly composed of free and unencumbered software released into the public domain, and we are unlikely to accept contributions that are not also released into the public domain. Somewhere near the top of each file should have these words: