From a677b2e94fdd979c7e1c992982481da6d9977cda Mon Sep 17 00:00:00 2001 From: Kelvin Rodriguez Date: Thu, 20 Aug 2020 16:27:35 -0700 Subject: [PATCH] Update Hayabusa2 with dev (#3975) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed bug where findrx was not adding a history blob to the input cube (#3186) * Added writeHistory to findrx. * Rearranged includes in findrx. * Removed extra exceptions writing controlnets (#3185) * Fixed bug where focal plane measured x,y coordinates were not set if the cam->SetImage call failed, References #2591). (#3193) * updates to ControlPoint::ComputeApriori * Fixed bug where focal plane measured x,y coordinates were not set if the cam->SetImage call failed (References #2591). Added check to IsConstrained() method to see if point type is Free, in which case we ignore stored a priori sigmas on the coordinates. * added isis error when GenericTransform::calculateInverse gets empty matrix (#3195) * Writing 0 Value Residuals to PVL (#3194) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixing errors introduced with the changes to ProcessExportPds4.cpp for the tgo sprint. (#3202) * Github/Discuss Documentation Update (#3203) * Updated website documentation to point to github and discuss where appropriate * Updated last install link * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and tru… (#3200) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Update README.md (#3204) Updated to include instructions for release candidate builds on anaconda * Added gtests for Displacement.cpp, removed Displacement unitTest and truthfile. (#3209) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Updated README data area instructions (#3214) * Fixed data area instructions in README and some links * Fixed bold in block quote * Fixed legacy install guide link * extra l * Testing indentation list * Testing indentation list again * Testing indentation list code snippet * Minor wording clean up * Removed extra number * Removed duplicate Mars Odyssey entry * Updates to the build recipe for ISIS releases for the 3.7.0 release candidate. (#3205) * Minor modifications for RC build * Small modification to version in the recipe/meta.yaml * Updating release stage in isis/version * Added Area3DTests.cpp (#3216) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * gllssi2isis Original Label Fix (#3226) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixed pvl labels original pvl labels not being written to the resulting cube. * Updated docstrings and history for updated methods * Removed the need to set the output cube pixel type * Reverted proceeimport changes * Set the dimensions in the process before processing * Added missing 1 in a history record * Reverted and applied a more appropriate fix * Used outfile obtained at the beginning of the program * Added history comment to app xml * Removed accidental comma (#3230) * Update README.md (#3232) Update readability * Modifying files for conda build for ISIS3.7.0_RC2 (#3229) * Modifying files for conda build for ISIS3.7.0_RC_2 * Changes to modifications until issue #3231 can be completed * Small typo * One final added comment for clarification * Adding tab completion for tcsh on conda activation (#3244) * Modifying meta.yaml and version files for ISIS3.7.0 Public Release (#3254) * Modifying meta.yaml and version files for ISIS3.7.0 Public Release * Fixing date on version file * Added GaussianDistribution Tests (#3221) * Added GaussianDistribution Test. * Removed unused method and added test for exception. * Changed comment. * Added Area3DTests.cpp (#3216) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * gllssi2isis Original Label Fix (#3226) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixed pvl labels original pvl labels not being written to the resulting cube. * Updated docstrings and history for updated methods * Removed the need to set the output cube pixel type * Reverted proceeimport changes * Set the dimensions in the process before processing * Added missing 1 in a history record * Reverted and applied a more appropriate fix * Used outfile obtained at the beginning of the program * Added history comment to app xml * Removed accidental comma (#3230) * Update README.md (#3232) Update readability * Modifying files for conda build for ISIS3.7.0_RC2 (#3229) * Modifying files for conda build for ISIS3.7.0_RC_2 * Changes to modifications until issue #3231 can be completed * Small typo * One final added comment for clarification * Adding tab completion for tcsh on conda activation (#3244) * Modifying meta.yaml and version files for ISIS3.7.0 Public Release (#3254) * Modifying meta.yaml and version files for ISIS3.7.0 Public Release * Fixing date on version file * Put the Probability method back and removed the old unit test and truth data. * Changed FeatureAlgorithmFactory.cpp to allow pathnames in the algorithm parameter. (Adresses issue #2474) (#3270) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * changed formatSpecifications function to ignore pathnames when splitting the algorithm parameter. * added history comment to FeatureAlgorithmFactory header file * more changes to history in header file * Changes for de430 (#3283) * Removes patchelf; Fixes 3136 (#3265) * Removes patchelf * Removes patchelf from gcc4 as well * changed support href to github issues link (#3287) * Updated pull request for Statistics.cpp test to adhere to recommendations. (#3291) * Unit Test for Statistics object. * Added changes based on comments from PR. Added test for XML serialization read/write. * Changed special pixel type declarations to more readable Hrs,Lrs,Lis,His,.... * Updated pull request for StatisticsTest to adhere to recommendations * renamed Statistics.cpp test to StatisticsTest.cpp * Ticked version number (#3294) * Updated build meta.yaml (#3295) * Updated for 3.7.1 release ... again (#3303) * Added odyssey cat test. (#3307) * Added mex cat test. (#3309) * Updated tolerance for thmproc vis test after false positive test failures (#3315) * update release version (#3316) * Updated csvdiff to python3 (#3319) * Hayabusa2 cat test (#3304) * Added cat test for hayabusa2 * Updated campt calls and removed cub * Pipeline Test Update (#3321) * Updated pipeline to use TestPreferences where necessary * Updated pipeline truth data * Made preference parameter position consistant * Updated pipeline truth data again * Add Kaguya TC support to ISIS (#3240) * Added base for KaguyaTcCamera * Still adding to base * additonal changes * Added appropriate ckframeid * Fixed improper makefile * Added unitTest.cpp to KaguyaTcCamera * Adding camera plugin and test. * Update camera plugin. * Added working unit test. Added naif ck ID to ingestion. * Changed camera parent class to LineScanCamera * Add a Distortion Model to Kaguya TC ISIS camera model (#3215) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Update Kaguya TC Camera model to use LineScan Camera detector map (#3218) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Fixes GroundMap, SkyMap in Kaguya TC Camera Model and improve Focal Map Origin (#3220) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update Kaguya TC Camera Model to include Detector offsets for swath modes (#3222) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update to center position and offsets for distortion map swath modes added to Kaguya TC Camera Model * Change camera model to pull the Origin from the IAK * Update Kaguya TC camera model time and add option to Spice::getClockTime (#3237) * Added gtests for Displacement.cpp, removed Displacement unitTest and truthfile. (#3209) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Initial distortion model changes * Updated README data area instructions (#3214) * Fixed data area instructions in README and some links * Fixed bold in block quote * Fixed legacy install guide link * extra l * Testing indentation list * Testing indentation list again * Testing indentation list code snippet * Minor wording clean up * Removed extra number * Removed duplicate Mars Odyssey entry * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Updates to the build recipe for ISIS releases for the 3.7.0 release candidate. (#3205) * Minor modifications for RC build * Small modification to version in the recipe/meta.yaml * Updating release stage in isis/version * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update to center position and offsets for distortion map swath modes added to Kaguya TC Camera Model * Added Area3DTests.cpp (#3216) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * gllssi2isis Original Label Fix (#3226) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixed pvl labels original pvl labels not being written to the resulting cube. * Updated docstrings and history for updated methods * Removed the need to set the output cube pixel type * Reverted proceeimport changes * Set the dimensions in the process before processing * Added missing 1 in a history record * Reverted and applied a more appropriate fix * Used outfile obtained at the beginning of the program * Added history comment to app xml * Removed accidental comma (#3230) * Update README.md (#3232) Update readability * Updated the time used by the camera model to use the clock count, rather than the start time * Modifying files for conda build for ISIS3.7.0_RC2 (#3229) * Modifying files for conda build for ISIS3.7.0_RC_2 * Changes to modifications until issue #3231 can be completed * Small typo * One final added comment for clarification * Update unit test for Kaguya TC to match output of updated camera model * Update unit test for Kaguya TC to match output of updated camera model (#3241) * Merge dev info kaguyatc (#3243) * Added gtests for Displacement.cpp, removed Displacement unitTest and truthfile. (#3209) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Updated README data area instructions (#3214) * Fixed data area instructions in README and some links * Fixed bold in block quote * Fixed legacy install guide link * extra l * Testing indentation list * Testing indentation list again * Testing indentation list code snippet * Minor wording clean up * Removed extra number * Removed duplicate Mars Odyssey entry * Updates to the build recipe for ISIS releases for the 3.7.0 release candidate. (#3205) * Minor modifications for RC build * Small modification to version in the recipe/meta.yaml * Updating release stage in isis/version * Added Area3DTests.cpp (#3216) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * gllssi2isis Original Label Fix (#3226) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixed pvl labels original pvl labels not being written to the resulting cube. * Updated docstrings and history for updated methods * Removed the need to set the output cube pixel type * Reverted proceeimport changes * Set the dimensions in the process before processing * Added missing 1 in a history record * Reverted and applied a more appropriate fix * Used outfile obtained at the beginning of the program * Added history comment to app xml * Removed accidental comma (#3230) * Update README.md (#3232) Update readability * Modifying files for conda build for ISIS3.7.0_RC2 (#3229) * Modifying files for conda build for ISIS3.7.0_RC_2 * Changes to modifications until issue #3231 can be completed * Small typo * One final added comment for clarification * Update kaguyatc branch from dev (#3245) * Updated truthdata for ProcessExportPds4 class to match updates made for CaSSIS sprint * Fix trailing Z time-format in tgocassis2isis when reingesting images exported from ISIS3 * Added gtests for Displacement.cpp, removed Displacement unitTest and truthfile. (#3209) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Updated README data area instructions (#3214) * Fixed data area instructions in README and some links * Fixed bold in block quote * Fixed legacy install guide link * extra l * Testing indentation list * Testing indentation list again * Testing indentation list code snippet * Minor wording clean up * Removed extra number * Removed duplicate Mars Odyssey entry * Updates to the build recipe for ISIS releases for the 3.7.0 release candidate. (#3205) * Minor modifications for RC build * Small modification to version in the recipe/meta.yaml * Updating release stage in isis/version * Added Area3DTests.cpp (#3216) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * gllssi2isis Original Label Fix (#3226) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixed pvl labels original pvl labels not being written to the resulting cube. * Updated docstrings and history for updated methods * Removed the need to set the output cube pixel type * Reverted proceeimport changes * Set the dimensions in the process before processing * Added missing 1 in a history record * Reverted and applied a more appropriate fix * Used outfile obtained at the beginning of the program * Added history comment to app xml * Removed accidental comma (#3230) * Update README.md (#3232) Update readability * Modifying files for conda build for ISIS3.7.0_RC2 (#3229) * Modifying files for conda build for ISIS3.7.0_RC_2 * Changes to modifications until issue #3231 can be completed * Small typo * One final added comment for clarification * Adding tab completion for tcsh on conda activation (#3244) * Added base for KaguyaTcCamera * Still adding to base * additonal changes * Added appropriate ckframeid * Fixed improper makefile * Added unitTest.cpp to KaguyaTcCamera * Adding camera plugin and test. * Update camera plugin. * Added working unit test. Added naif ck ID to ingestion. * Changed camera parent class to LineScanCamera * Add a Distortion Model to Kaguya TC ISIS camera model (#3215) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Update Kaguya TC Camera model to use LineScan Camera detector map (#3218) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Fixes GroundMap, SkyMap in Kaguya TC Camera Model and improve Focal Map Origin (#3220) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update Kaguya TC Camera Model to include Detector offsets for swath modes (#3222) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update to center position and offsets for distortion map swath modes added to Kaguya TC Camera Model * Change camera model to pull the Origin from the IAK * Update Kaguya TC camera model time and add option to Spice::getClockTime (#3237) * Added gtests for Displacement.cpp, removed Displacement unitTest and truthfile. (#3209) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Initial distortion model changes * Updated README data area instructions (#3214) * Fixed data area instructions in README and some links * Fixed bold in block quote * Fixed legacy install guide link * extra l * Testing indentation list * Testing indentation list again * Testing indentation list code snippet * Minor wording clean up * Removed extra number * Removed duplicate Mars Odyssey entry * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Updates to the build recipe for ISIS releases for the 3.7.0 release candidate. (#3205) * Minor modifications for RC build * Small modification to version in the recipe/meta.yaml * Updating release stage in isis/version * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update to center position and offsets for distortion map swath modes added to Kaguya TC Camera Model * Added Area3DTests.cpp (#3216) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * gllssi2isis Original Label Fix (#3226) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixed pvl labels original pvl labels not being written to the resulting cube. * Updated docstrings and history for updated methods * Removed the need to set the output cube pixel type * Reverted proceeimport changes * Set the dimensions in the process before processing * Added missing 1 in a history record * Reverted and applied a more appropriate fix * Used outfile obtained at the beginning of the program * Added history comment to app xml * Removed accidental comma (#3230) * Update README.md (#3232) Update readability * Updated the time used by the camera model to use the clock count, rather than the start time * Modifying files for conda build for ISIS3.7.0_RC2 (#3229) * Modifying files for conda build for ISIS3.7.0_RC_2 * Changes to modifications until issue #3231 can be completed * Small typo * One final added comment for clarification * Update unit test for Kaguya TC to match output of updated camera model * Moddified description (#3246) * updates for review comments (#3277) * Updated truthdata for ProcessExportPds4 class to match updates made for CaSSIS sprint * Fix trailing Z time-format in tgocassis2isis when reingesting images exported from ISIS3 * Added base for KaguyaTcCamera * Still adding to base * additonal changes * Added appropriate ckframeid * Fixed improper makefile * Added unitTest.cpp to KaguyaTcCamera * Adding camera plugin and test. * Update camera plugin. * Added working unit test. Added naif ck ID to ingestion. * Changed camera parent class to LineScanCamera * Add a Distortion Model to Kaguya TC ISIS camera model (#3215) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Update Kaguya TC Camera model to use LineScan Camera detector map (#3218) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Fixes GroundMap, SkyMap in Kaguya TC Camera Model and improve Focal Map Origin (#3220) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update Kaguya TC Camera Model to include Detector offsets for swath modes (#3222) * Initial distortion model changes * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update to center position and offsets for distortion map swath modes added to Kaguya TC Camera Model * Change camera model to pull the Origin from the IAK * Update Kaguya TC camera model time and add option to Spice::getClockTime (#3237) * Added gtests for Displacement.cpp, removed Displacement unitTest and truthfile. (#3209) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Initial distortion model changes * Updated README data area instructions (#3214) * Fixed data area instructions in README and some links * Fixed bold in block quote * Fixed legacy install guide link * extra l * Testing indentation list * Testing indentation list again * Testing indentation list code snippet * Minor wording clean up * Removed extra number * Removed duplicate Mars Odyssey entry * Distortion model updates to actually match equation in documentation * Update truthdata for sensor model * Updates to the build recipe for ISIS releases for the 3.7.0 release candidate. (#3205) * Minor modifications for RC build * Small modification to version in the recipe/meta.yaml * Updating release stage in isis/version * Switch Kaguya TC to use L/S camera detector map. It is not a framer! * Fix typo * Update detector origin in Kaguya TC model to be more reasonable * Update to center position and offsets for distortion map swath modes added to Kaguya TC Camera Model * Added Area3DTests.cpp (#3216) * Added BasisFunctionTests.cpp. Removed BasisFunction unit test and truthfile. * changed expectedOutput values for some of the tests * Made tests for Displacement.cpp using gtest. removed Displacement unitTest and truthfile. * Added Area3DTests.cpp, removed Area3D truthfile and unit test. * included TestUtilities.h for use with exception testing, added a test for teh Area3D '=' operator * changed formatting to adhere to USGS coding standards * re-addedd the unit test and truth file * gllssi2isis Original Label Fix (#3226) * Allowed writting of residuals when value is zero to controlnet pvl * Updated ControlNetVersioner unit test * Fixed pvl labels original pvl labels not being written to the resulting cube. * Updated docstrings and history for updated methods * Removed the need to set the output cube pixel type * Reverted proceeimport changes * Set the dimensions in the process before processing * Added missing 1 in a history record * Reverted and applied a more appropriate fix * Used outfile obtained at the beginning of the program * Added history comment to app xml * Removed accidental comma (#3230) * Update README.md (#3232) Update readability * Updated the time used by the camera model to use the clock count, rather than the start time * Modifying files for conda build for ISIS3.7.0_RC2 (#3229) * Modifying files for conda build for ISIS3.7.0_RC_2 * Changes to modifications until issue #3231 can be completed * Small typo * One final added comment for clarification * Update unit test for Kaguya TC to match output of updated camera model * Updates to Kaguya TC big PR based on comments * Update kaguyatc2isis.xml Replace tab with spaces. * Fix spacing * Updated comment for clarity * Move comment * Update chandrayaan1 test data for switch to use base lro dem (#3322) * Fixed caminfo csv test Makefile sed to remove isis version and date (#3325) * Remove "kernels can be excluded" from README.md (#3329) Fixed a small typo, reworded a paragraph, and then removed "(kernels can be excluded)" from the description of how to download data for each mission. It was present for _each mission_, so including (kernels can be excluded) didn't communicate any real, mission-specific information. The paragraph above the mission-specific data downloads explains that the kernels can be excluded unless a mission-specific calibration program or end-to-end program needs them and directs the reader to consult mission-specific documentation. * Add sensor model support for Calibrated VIRTIS_M_IR and VIRTIS_M_VIS images to ISIS (#647) * Fixes the reading of SCETs into the ISIS3 table in the ingested image for level-3, calibrated VIRTIS-M images * Added initial updates to the RosettaVirtisCamera model to support VIRTIS-M calibrated images * Corrected StartTime and SpacecraftClockStartCount in calibrated VIRTIS-M ingested images and initial camera model cleanup * Fix spacecraft clock start / stop count and start time and stop time in rosetta virtis labels * Updated label fix for rosvirtis2isis. * fixed StopTime and SpacecraftClockStopCount in virtis labels * Cleanup of camera model * Fix sclk calculation in rosvirtis2isis, update table attached to ingested cube to include the sclk string, update camera model to use updated table. * Changes to the RosettaVirtisCamera and SpiceRotation to allow spiceinit with mirror kernels * Clean up debug output * Update SpiceRotation's minimize-cache-status setting function to not update if it has been previously set to fixed * Update SpiceRotation to only set the time cache explicitly if one has not already been loaded from the InstrumentPosition table attached to the cube * Clean up rosetta virtis changes * Cleanup of merge of virtis changes * Minor Update to Fix Voyager Bundle Adjustment (#3343) * Added argument to CameraGroundMap::GetXY to allow back-of-planet test to be skipped for the bundle adjust * Added ability to turn off back-of-planet test while iterating in a bundle adjust * Replaced DBL_EPSILON as a testing constant for valid distances and angles in SurfacePoint. * Corrected a bool check in CameraGroundMap::GetXY * Virtis level 2 ingestion fix (#3347) * Update date and other metadata * Fix level 2 virtis ingestion * Fix accidental merge with 3.7? * Updates for 3.8.0_RC1 (#3349) * Fix ckwriter failing test - update to use fixed kernels aside from the sclks (#3350) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Fix for 3.8 (#3354) * Fixes failing Rosetta VIRTIS Camera Model test (#3355) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Update Rosetta VIRTIS test to test the calibrated (level 3) data supported by the camera model and test both VIS and IR * Wrong version of GSL (#3359) Based on the file environment.yml in this repository, the GSL version used is 2.2.1. Yet CMakeLists.txt insists on version 19. That is wrong. The latest stable release of GSL is 2.5. Maybe there 1.9 was meant. In either case, apparently this version number is ignored anyway, the only reason I found out is when I switched from your homegrown isis/cmake/FindGSL.cmake when does not use the version in its logic to miniconda3/envs/isis3/share/cmake-3.11/Modules/FindGSL.cmake which does. * Updates qmos to fix grid-drawing if LongitudeDirection is PositiveWest (#3368) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Swaps min/max longitude for PositiveWest * Remove debug comment * Updated cisscal label output (#3375) * Updated cisscal to output the version of cisscal that ISIS has ported over * Added history to cisscal xml * Improved voycal error messages (#3373) * Testing updates for Jenkins and MRO (#3380) * updated tests to get them passing in different OSes * removed bad program launcher test * tracking table except fix * missed PDS table file * typo * added colon * tracking table test updated * Changed FileName to use US English for date conversions (#3379) * Changed FileName to use US English for date conversions * Removed defaulte locale * Fixed FileList test * Fixes 3382 Removes mention of redmine. Fixes #3382. * add fish support * Removed grep from Makefile and added Program to diff file. (#3393) * Update isis3VarInit.py (#3392) fix paste bug * Update kerneldbgen to work with spks with many time intervals (#3386) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated spk max window size to 200000 to accomodate large smithed spks * fix size to be consistent * Removed redundant find scripts (#3394) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * Set the buffer size to the area being worked instead of 1x1 (#3381) * Modifying how ProcessRubberSheet::transformPatch() handles buffers. * Updated a comment to reflect the new way * Fix for slight diff in DNs at edge of image for cam2map * Add to a comment * Removed comments and moved tests so they trigger sooner * removed email message from DawnFcCamera (#3397) * Findfeatures (#3399) * Changed match function in Matchmaker to pass in copies of pointers * Revert "Changed match function in Matchmaker to pass in copies of pointers" This reverts commit f687eb668f4438245572a0c6a62b50b64846a12f. * updated match method in MatchMaker to pass in clones of pointers * Added the ability to pass lists instead of directories and filters to kerneldbgen (#3398) * Added file list option to spicedbgen * First pass at actual params * Fixed scoping error * Updated no parameters selected check * Added historty comment to SpiceDbGen * Fixed weird type logic * added error for level 2 input cube * Simplifies Jenkinsfile for webhook testing (#3403) * made RELEASE mode default, added debug optimization flag * Update to CaSSIS Exported PDS4 images and Mosaicking program (#3402) * Update date and other metadata * Added changes to tgo-related applications and PEP4 to update PDS4 exported labels for CaSSIS based on requests * Updated tgocassisrdrgen to add PSA schema * Add function on cube to return actual min/max lat/lons based on DNs and updated PEP4 to format a couple of specific output map values with a trailing .0. Also update PEP4 to use the new function on Cube to calculate min/max lat/lons * Fixed description order, updated geom schema details to pass validation, propagate Archive group to mosaic output needed for PDS4 export * Update to PEP4 * Update tgocassisrdrgen * Cleanup before commit * More cleanup add header file history entries * Clean up PEP4 before commit * Updates to address review comments * Patch jenkinsfile (#3407) * Simplifies Jenkinsfile for webhook testing * Updates to how bundleout.txt is being written cont'd. (#3404) * Added column/unit descriptions to image header in outputHeader(...) function. * More changes to clean up the bundleout.txt file. * Added the locations of the cube list file/file_prefix to the bundleout.txt file. * Added bundleOut output function to the BundleObservation class. * Updated BundleObservation::bundleOutput(std::ofstream &fpOut,bool errorPropagation, bool imageCCSV) * Added history entries/function documentation and minor tweaks to BundleSolutionInfo/BundleObservation * Fixed a memory issue associated with attempting to set the output control network for BundleSettingsInfo in jigsaw. * Added reviewer-requested changes. * Added more updates to this PR per Summer's (the reviewer) request. * Fixed some formatting in the parameter list ouput introduced by the refactor of the bundleOutputString function. * Formatting tweaks in BundleSolutionInfo::outputText(...) and BundleObservation::bundleOutputString()... so the columns line-up nicely. * Implemented more changes requested by Summer (the reviewer). * Added BundleObservation::bundleoutCSV()/bundleoutputFetchData() functions. Also changed precision of output, which necessitated formatting changs to the BundleSolutionInfo::outputText() function. Full refactor per Summer's request not completed yet (needs to be tested). * Removed BundleObservation::formatBundleOutputString and all references to it in ISIS3. * Minor formatting changes requested by reviewers. * Cleaning-up code and logic for changes made for bundleout.txt * Adding logic to fix incorrect values in bundleout.txt * Updated cisscal to output the version of cisscal that ISIS has ported over * Added history to cisscal xml * Fixing failing unit tests for bundleout logic. * Minor reversal of modification to BundleObservation.cpp * Minor typo fixes before PR creation * Cleaning-up the output code as per reviewer request * Added back in old formatBundleOutputString function * Added deprication message for the old bundle output formatter * Addressed PR comments * Fixes failing tgo cat tests and PEP4 unitTest (#3408) * Update date and other metadata * Added changes to tgo-related applications and PEP4 to update PDS4 exported labels for CaSSIS based on requests * Updated tgocassisrdrgen to add PSA schema * Add function on cube to return actual min/max lat/lons based on DNs and updated PEP4 to format a couple of specific output map values with a trailing .0. Also update PEP4 to use the new function on Cube to calculate min/max lat/lons * Fixed description order, updated geom schema details to pass validation, propagate Archive group to mosaic output needed for PDS4 export * Update to PEP4 * Update tgocassisrdrgen * Cleanup before commit * More cleanup add header file history entries * Clean up PEP4 before commit * Updates to address review comments * Fix raw image failing tests * Update truthdata for PEP4 * Added oblique resolutions to advanced track tool and the geometry and camstats groups of caminfo output (#3249) (#3288) * Removed oblique resolutions not needed in the Advanced Track Tool and added oblique res max/min to camstats group. * Pulled down branch and made changes to documentaiton. * Changed documentation. * updated documentation. * Quick fixes. * Deleted old caminfo.cpp * Fixes 3410 - Question template improvement (#3411) * Fixes 3410 * Update 3_Support_question.md * Bundle Output Test Update (#3414) * Rebased off of dev * Reset bundleObservation cpp * Removed duplicate outputs * Updates deltack tests with bundle changes * Changed cube sample and line loop to double (#3421) * Updated Bundle Utilities truth data * Allows user control of output bit type in hideal2pds. Added for tjwilson. #2692 #3366 (#3420) * Allows user control of output bit type. Added for tjwilson * Updated no global variables, indents * Fixed race condition in FileName test * Updated cisscal to match IDL version 3.9.1 (#3406) * Removed grep from Makefile and added Program to diff file. * Updated cisscall to IDL version 3.9. * Fixed typo. * Updated to version 3.9.1. * Updated documentation. * Updated version number. * Fixed CissLabels unit test. (#3428) * Fixed mac build error. * Updates for 3.9.0 RC (#3431) * Fixed optimization flag for Linux and added -g for debug builds * Bundleout Reformat (#3447) * Updated bundle text output to match expected output * Further formatting for the bundle text output * Added history comments * Reformat of RMS output in bundleout.txt * Updated BundleSolutionInfo unittest * Updated version to 3.9.0_RC1 (#3448) * Fixed compiler warnings. Fixes #3418, Fixes #3198 (#3459) * Updated version to 3.9.0_RC1 * Removed compiler warnings with as few changes as possible * Updated pvldiff to support PvlContainers with unequal keyword lengths (#3460) * Updated pvldiff to support PvlContainers with unequal keyword lengths with IngoreKeys * groups now remove keys as well * Added Anaconda cloud badge (#3463) * Ale integration into dev (#3464) * Adds Ale into isis env (#3437) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * remove load call * reordered env.yml * reordered env * unpinned more stuff * updated cmakelists * Naif Keywords/SpicePosition/SpiceRotation now obtained from Ale label and not Spice kernels on Spiceinit (#3442) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * working naif keywords from ale * added PvlObject constructor from json * reverted env file * added loadcache(json) * reverted spiceinit main * Spice Rotation and Position now derived from ale * added PvlObject from json null behavior * type * SpiceRotation no longer default to iden matrix * Adding spiceinit classic as back up to Ale implementation. (#3458) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * working naif keywords from ale * added PvlObject constructor from json * reverted env file * added loadcache(json) * reverted spiceinit main * Spice Rotation and Position now derived from ale * added PvlObject from json null behavior * type * SpiceRotation no longer default to iden matrix * added back ISIS spiceinit classic as a backup to ale * added source keyword to Kernels group * kernel group now added only in spiceinit * updates as per comments * Matrix p_cache (#3461) * Converted quaternion into matrix when pushing onto the p_cache * Removed extra print * Tests docs (#3467) * Reverted Blob change * Added doc strings * Moved usage into source files * Added SpicePosition test * changed thread inc to target * Updated SpicePoition unitTest * Added SpiceRotation unit test * Updated SpiceRotation truth * Update README.md fixes a white space formatting issue in step 7 which prevented a portion of the documentation being rendered correctly * Correct documentation. The file written to the path specified by CNETFILE will be in binary control network format, not plain-text PVL format. The incorrect description in this documentation has been incorrect for at least 7 years, based on the 'Blame' view of the relevant lines in hijitreg/main.cpp, ControlNet/ControlNet.h, and ControlNet/ControlNet.cpp. * Revert "Ale integration into dev (#3464)" This reverts commit 48e4efd1babab7e9608ec15cd4030cc7f51d66c2. * Converted PixelType unit test to gtest (#3478) * converted Pixel type unit test to gtest * removed old unit test and truth data * converted Column unit test to gtest (#3480) * converted Column unit test to gtest * removed redundant tests * Added Working BundleMeasure gtest File (#3470) * Initial Stab at BundleMeasureTest with Fixtures. * Added Working BundleMeasure gtest File * Added a refernce to phocube to camdev docs * Fixes Qmos grid to properly consider PositiveWest and PositiveEast (#3488) * Fixes Qmos grid to properly consider PositiveWest and PositiveEast * clean up * update as per comments * added comments on positive west angles as they come into the GridGraphicsItem constructor * Bundleout Text file update (#3485) * Initial changes to get the bundleout into a better place * Added a few comments and updated how the spacing for the sprintfs is obtained * Reverted unnecessary changes to BundleObservation * Updated file path length checking as suggested * Updates voy2isis to add an optional parameter to specify the instrument name (#3490) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated voy2isis to add instrument parameter which can be used to specify the instrument name wac or nac if it is not provided in the image label * Added simple test * Updates test and documentation for voy2isis adds instrument_name update * Updated history documentation to add ticket number for voy2isis changes * Warning for photomet added (#3486) * added warning if anglesource option is used with mixed or topo normalization method; based on github tickets 3451 and 3452 * adding tests * Addressing Stuarts comments * Addressing Kristin's comment * Updating Kaguya Distortion Model with Boresight (Finishing #3492) (#3498) * added warning if anglesource option is used with mixed or topo normalization method; based on github tickets 3451 and 3452 * adding tests * changes to KaguyaTC distortion map * Fixed test on Aarons PR * updated unit test * reseting test data location * Adding camera uptick * Replaced code, removed earlier, that abandons work on a tile Fixes: #3466 (#3497) * Replaced code, removed earlier, that abondons work on a tile when it is outside the output image * Typo * Cisscal Output Change (#3496) * Updated cisscal output cub creation to after bitweight correction and dark subtraction * Updated history in cisscal app xml * Added issue number * Added new test for cisscal * Typo * Removed cube when an exception is thrown rather than moving the instantiation point * Austin Sander's "clemhirescal: Adds support for all MCP gain settings for filters A and D" (#3503) * Added support for all MCP gain settings. Closes #3190 * Revised comments to better reflect updated logic * Added history comment. * Added additional description and link to Robinson paper. * added issue number * Added dynamic creation of version file (#3502) * Added dynamic creation of version file * removed commented line * Update README.md * Updates marci2isis to add variable exposure times and associated frame sequences (#3501) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated voy2isis to add instrument parameter which can be used to specify the instrument name wac or nac if it is not provided in the image label * Added simple test * Updates test and documentation for voy2isis adds instrument_name update * Updated history documentation to add ticket number for voy2isis changes * Updated to reverse frameseq number appropriately with flip * Remove commented-out code * Added documentation for change and test * Updated no exposure duration in varexp file condition * Re-remove iTime.h * Update warning message for assuming a single exposure time * Modified to use the frame and exposure keywords added by marci2isis i… (#3505) * Modified to use the frame and exposure keywords added by marci2isis instead of the varexp.tab file * Added the issue that caused this to need to be fixed * Update main.cpp * Updated Readme with Contributing link * Jenkins Build Script update (#3533) * Updated pipeline to use TestPreferences where necessary * Updated pipeline truth data * Made preference parameter position consistant * Updated pipeline truth data again * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Changed testing avoid which failure * Removed echo * Pointed at install bin instead of build bin * Added a forgotten / * Added the actual install directory * Changed isisroot to point to install directory * More tweeks to the groovy script * Removed conda prefix echo * Moved path update to a single line * new groove * new groove * new groove * new groove * new groove * Updated spice rotation test with isis variable * Testing with appjit * Only testing app jit * Changed app test to -R * More messing with stuffs * Added check for catlab * Changed install directory location * Changed paths again * Echoed pwd in checkout * Retry the print * Pathing one more time * Paths * updated build.groovy * Update Jenkinsfile (#3525) * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * fixed compiler warning. Fixes #3531 * Update kerneldbgen test to handle input file path edge case (#3536) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated kerneldbgen test to deal with specific filepath length edge case * Updated groovy to use new Kakadu include (#3537) * Updated groovy to use new Kakadu include * Fixed typo in include path * changed cisscal to no longer use absolute paths (#3541) * excluded file group now prints original file * Added preferences variable to shapemodel path. * Update failing kerneldbgen ck test again (#3540) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated kerneldbgen test to deal with specific filepath length edge case * Update kerneldbgen ck test to use IgnoreFilePaths * Removed requirement of having to start a path with a slash, and added the dollar sign to the regex to allow the ignorepath feature to ignore file paths that start with an environment or isis variable * Updating test and truth data to print relative file (#3545) * Minor updates to "How to Write Documentation" documentation (#3510) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Minor updates to How to Write Documentation documentation to reflect build changes post-cmake * remove additionally as per review comments * Adding just the meta.yml, previous PR updated CMakeLists.txt (#3549) * Moved deactivates outside of the try block, also added an env clean up step (#3556) * Jenkins Changes (#3557) * Jenkins file update to make use of the web hook * Added a groovy utilities file * Changed the pipeline to load the right file * Updated the name of the groovy file * Removed unnecessary isis app -help commands * Copy the header files on install (#3565) * Copy the header files on install * Update CMakeLists.txt * Added flag to skip SSL verification in CI (#3572) * Added flag to skip SSL verification on PR CI * Added no SSL flag to nightly build script * Update Jenkinsfile * Update build.groovy * Update build.groovy * Update Jenkinsfile * Added command to skip SSL verification in Anaconda * Updated build.groovy with anaconda SSL flag * Merging ALE into dev (#3590) * Adds Ale into isis env (#3437) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * remove load call * reordered env.yml * reordered env * unpinned more stuff * updated cmakelists * Naif Keywords/SpicePosition/SpiceRotation now obtained from Ale label and not Spice kernels on Spiceinit (#3442) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * working naif keywords from ale * added PvlObject constructor from json * reverted env file * added loadcache(json) * reverted spiceinit main * Spice Rotation and Position now derived from ale * added PvlObject from json null behavior * type * SpiceRotation no longer default to iden matrix * Adding spiceinit classic as back up to Ale implementation. (#3458) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * working naif keywords from ale * added PvlObject constructor from json * reverted env file * added loadcache(json) * reverted spiceinit main * Spice Rotation and Position now derived from ale * added PvlObject from json null behavior * type * SpiceRotation no longer default to iden matrix * added back ISIS spiceinit classic as a backup to ale * added source keyword to Kernels group * kernel group now added only in spiceinit * updates as per comments * Matrix p_cache (#3461) * Converted quaternion into matrix when pushing onto the p_cache * Removed extra print * Tests docs (#3467) * Reverted Blob change * Added doc strings * Moved usage into source files * Added SpicePosition test * changed thread inc to target * Updated SpicePoition unitTest * Added SpiceRotation unit test * Updated SpiceRotation truth * Merging Dev into ale_integration (#3552) * Fixed optimization flag for Linux and added -g for debug builds * Bundleout Reformat (#3447) * Updated bundle text output to match expected output * Further formatting for the bundle text output * Added history comments * Reformat of RMS output in bundleout.txt * Updated BundleSolutionInfo unittest * Updated version to 3.9.0_RC1 (#3448) * Fixed compiler warnings. Fixes #3418, Fixes #3198 (#3459) * Updated version to 3.9.0_RC1 * Removed compiler warnings with as few changes as possible * Updated pvldiff to support PvlContainers with unequal keyword lengths (#3460) * Updated pvldiff to support PvlContainers with unequal keyword lengths with IngoreKeys * groups now remove keys as well * Added Anaconda cloud badge (#3463) * Ale integration into dev (#3464) * Adds Ale into isis env (#3437) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * remove load call * reordered env.yml * reordered env * unpinned more stuff * updated cmakelists * Naif Keywords/SpicePosition/SpiceRotation now obtained from Ale label and not Spice kernels on Spiceinit (#3442) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * working naif keywords from ale * added PvlObject constructor from json * reverted env file * added loadcache(json) * reverted spiceinit main * Spice Rotation and Position now derived from ale * added PvlObject from json null behavior * type * SpiceRotation no longer default to iden matrix * Adding spiceinit classic as back up to Ale implementation. (#3458) * removed redundant scripts * removed unused check from cmake lists * removed debug prints * removed v007 comment and boost debug flag * added ale into ISIS * removed debug prints * working naif keywords from ale * added PvlObject constructor from json * reverted env file * added loadcache(json) * reverted spiceinit main * Spice Rotation and Position now derived from ale * added PvlObject from json null behavior * type * SpiceRotation no longer default to iden matrix * added back ISIS spiceinit classic as a backup to ale * added source keyword to Kernels group * kernel group now added only in spiceinit * updates as per comments * Matrix p_cache (#3461) * Converted quaternion into matrix when pushing onto the p_cache * Removed extra print * Tests docs (#3467) * Reverted Blob change * Added doc strings * Moved usage into source files * Added SpicePosition test * changed thread inc to target * Updated SpicePoition unitTest * Added SpiceRotation unit test * Updated SpiceRotation truth * Update README.md fixes a white space formatting issue in step 7 which prevented a portion of the documentation being rendered correctly * Correct documentation. The file written to the path specified by CNETFILE will be in binary control network format, not plain-text PVL format. The incorrect description in this documentation has been incorrect for at least 7 years, based on the 'Blame' view of the relevant lines in hijitreg/main.cpp, ControlNet/ControlNet.h, and ControlNet/ControlNet.cpp. * Revert "Ale integration into dev (#3464)" This reverts commit 48e4efd1babab7e9608ec15cd4030cc7f51d66c2. * Converted PixelType unit test to gtest (#3478) * converted Pixel type unit test to gtest * removed old unit test and truth data * converted Column unit test to gtest (#3480) * converted Column unit test to gtest * removed redundant tests * Added Working BundleMeasure gtest File (#3470) * Initial Stab at BundleMeasureTest with Fixtures. * Added Working BundleMeasure gtest File * Added a refernce to phocube to camdev docs * Fixes Qmos grid to properly consider PositiveWest and PositiveEast (#3488) * Fixes Qmos grid to properly consider PositiveWest and PositiveEast * clean up * update as per comments * added comments on positive west angles as they come into the GridGraphicsItem constructor * Bundleout Text file update (#3485) * Initial changes to get the bundleout into a better place * Added a few comments and updated how the spacing for the sprintfs is obtained * Reverted unnecessary changes to BundleObservation * Updated file path length checking as suggested * Updates voy2isis to add an optional parameter to specify the instrument name (#3490) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated voy2isis to add instrument parameter which can be used to specify the instrument name wac or nac if it is not provided in the image label * Added simple test * Updates test and documentation for voy2isis adds instrument_name update * Updated history documentation to add ticket number for voy2isis changes * Warning for photomet added (#3486) * added warning if anglesource option is used with mixed or topo normalization method; based on github tickets 3451 and 3452 * adding tests * Addressing Stuarts comments * Addressing Kristin's comment * Updating Kaguya Distortion Model with Boresight (Finishing #3492) (#3498) * added warning if anglesource option is used with mixed or topo normalization method; based on github tickets 3451 and 3452 * adding tests * changes to KaguyaTC distortion map * Fixed test on Aarons PR * updated unit test * reseting test data location * Adding camera uptick * Replaced code, removed earlier, that abandons work on a tile Fixes: #3466 (#3497) * Replaced code, removed earlier, that abondons work on a tile when it is outside the output image * Typo * Cisscal Output Change (#3496) * Updated cisscal output cub creation to after bitweight correction and dark subtraction * Updated history in cisscal app xml * Added issue number * Added new test for cisscal * Typo * Removed cube when an exception is thrown rather than moving the instantiation point * Austin Sander's "clemhirescal: Adds support for all MCP gain settings for filters A and D" (#3503) * Added support for all MCP gain settings. Closes #3190 * Revised comments to better reflect updated logic * Added history comment. * Added additional description and link to Robinson paper. * added issue number * Added dynamic creation of version file (#3502) * Added dynamic creation of version file * removed commented line * Update README.md * Updates marci2isis to add variable exposure times and associated frame sequences (#3501) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated voy2isis to add instrument parameter which can be used to specify the instrument name wac or nac if it is not provided in the image label * Added simple test * Updates test and documentation for voy2isis adds instrument_name update * Updated history documentation to add ticket number for voy2isis changes * Updated to reverse frameseq number appropriately with flip * Remove commented-out code * Added documentation for change and test * Updated no exposure duration in varexp file condition * Re-remove iTime.h * Update warning message for assuming a single exposure time * Modified to use the frame and exposure keywords added by marci2isis i… (#3505) * Modified to use the frame and exposure keywords added by marci2isis instead of the varexp.tab file * Added the issue that caused this to need to be fixed * Update main.cpp * Updated Readme with Contributing link * Jenkins Build Script update (#3533) * Updated pipeline to use TestPreferences where necessary * Updated pipeline truth data * Made preference parameter position consistant * Updated pipeline truth data again * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Jenkins * Changed testing avoid which failure * Removed echo * Pointed at install bin instead of build bin * Added a forgotten / * Added the actual install directory * Changed isisroot to point to install directory * More tweeks to the groovy script * Removed conda prefix echo * Moved path update to a single line * new groove * new groove * new groove * new groove * new groove * Updated spice rotation test with isis variable * Testing with appjit * Only testing app jit * Changed app test to -R * More messing with stuffs * Added check for catlab * Changed install directory location * Changed paths again * Echoed pwd in checkout * Retry the print * Pathing one more time * Paths * updated build.groovy * Update Jenkinsfile (#3525) * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * Update Jenkinsfile * fixed compiler warning. Fixes #3531 * Update kerneldbgen test to handle input file path edge case (#3536) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated kerneldbgen test to deal with specific filepath length edge case * Updated groovy to use new Kakadu include (#3537) * Updated groovy to use new Kakadu include * Fixed typo in include path * changed cisscal to no longer use absolute paths (#3541) * excluded file group now prints original file * Added preferences variable to shapemodel path. * Update failing kerneldbgen ck test again (#3540) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Updated kerneldbgen test to deal with specific filepath length edge case * Update kerneldbgen ck test to use IgnoreFilePaths * Removed requirement of having to start a path with a slash, and added the dollar sign to the regex to allow the ignorepath feature to ignore file paths that start with an environment or isis variable * Updating test and truth data to print relative file (#3545) * Minor updates to "How to Write Documentation" documentation (#3510) * Update date and other metadata * ckwriter_test_fix * Fix unintentional cmakelists change * Minor updates to How to Write Documentation documentation to reflect build changes post-cmake * remove additionally as per review comments * Adding just the meta.yml, previous PR updated CMakeLists.txt (#3549) * pinned boost (#3561) * Merge Dev into Ale_integration (#3560) * Updated version to 3.9.0_RC1 (#3448) * Added dynamic creation of version file (#3502) * Added dynamic creation of version file * removed commented line * Moved deactivates outside of the try block, also added an env clean up step (#3556) * Jenkins Changes (#3557) * Jenkins file update to make use of the web hook * Added a groovy utilities file * Changed the pipeline to load the right file * Updated the name of the groovy file * Removed unnecessary isis app -help commands * Added ninja into environment.yml * Add ALESPICEROOT to ENV (#3568) * Updated variable initialization to include ALESPICEROOT * Removed duplicate code from the isis3VarInit file * Update isis3VarInit.py * CkWriter Changes (#3571) * Updated variable initialization to include ALESPICEROOT * Removed couts and added CKs to the list of kernels to load * Updated ckwriters lroc test * Added AngularVelocities to the Ale load code in SpiceRotation * Added history comment * Removed unnecessary couts and variable * Removed accidental duplicate argparse code * Env update to support building with ALE (#3563) * pinned boost * updated envs for ale support * trivial jenkinsfile change * revert Jenkinsfile * added excplicit ninja * pcl now 1.8 * 1.8.1 -> 1.8 in cmake config * experimenting with unpinned PCL * removing versions from find PCL * repinned some things * unpinned some things * moved order for gcc4 * more experiments with ale * using env used on local prog24 * fit adjustment * eeeeeeeehhhhhhh * Moved usgs-astrogeology first in channel order * Ticked ALE version up * Forced Spice class to use ISIS when pointing is NADIR * updated truth for SpiceRotation (#3577) * Added flag to skip SSL verification in CI (#3572) * Added flag to skip SSL verification on PR CI * Added no SSL flag to nightly build script * Update Jenkinsfile * Update build.groovy * Update build.groovy * Update Jenkinsfile * Added command to skip SSL verification in Anaconda * Updated build.groovy with anaconda SSL flag * Working on a working Linux env (#3578) * Working on a working Linux env * fixed ALE pin * Removed FindFeatures filter test (#3582) * updated truth for SpiceRotation * removed findfeatures filter test * Removed var_init call from jenkins nightly * Changed to print out build environment * cnet2dem tests updated with a tolerance (#3586) * updated truth for SpiceRotation * removed findfeatures filter test * updated cnet2dem tests to have a floating point tolerance * fixed spacing * Fixed test to account for numbers starting with plus signs (#3588) * Restricted openssl version (#3589) * Ticked ALE version * Update Cube.cpp No real change. Just removed spaces * Removed NGINX cache for Jenkins tests (#3591) * Changed to use c++ and * Fixed links in README (#3593) The table of contents links were missing dashes * Update README.md links Update to follow on to PR #3593. I found that the link names were fixed, but the `##` didn't actually work to go to each subsection "anchor" (at least on my browser.) I changed these all to `#` and the links work now. * Solar Lon now computed via SpiceRotation and Position caches (#3599) * Solar Lon now computed via SpiceRotation and Position caches * remembered we have to support non-ale instruments lmao * Getting CentOS environment working (#3596) * Tick CentOS ALE version * Testing disabling kakadu * Reverted gcc4 channel order change * Re-enable Kakadu * Dumb thing to see if this works * Revert dumb change * Remove compiler from GCC4 env * Pin specially distributed libraries * Pin x264 * Reduce jenkins, fix MacOS builds (#3609) * Solar Lon now computed via SpiceRotation and Position caches * remembered we have to support non-ale instruments lmao * reduced build.groovy, made MacOS use per-job envs * removed conda search * removed conda search * added env bin * removed echos * removed echos * Centos has no which (#3613) * Month/Day/Year for Mac Builds (#3615) * Centos has no which * month/day/year now also hashed * updated lronacal to compute sun to body distance from cached ephem data (#3611) * updated lronacal to compute sun -> body distance from cached ephem data * removed forced exception * added basic Spice test * Added doc string to Spice::Spice(PVL, json) and removed debug print * Update photomet's LunarLambertEmperical model to handle PVL input in photemplate format. (#3614) * Update LunarLambertEmpherical model to handle frompvl input with values of the form PvlKeyword = (1,2,3,3,4) in addition to PvlKeyword = 1,2,3,3,4 * Added tests for new functionality * Avoid edge cases where the histogram only has one bin (#3616) * Updating Geos to 3.7 (#3617) * Centos has no which * month/day/year now also hashed * Added GDAL and ported ISIS to Geos 3.6 port to geos 3.6 ported chip updated env env ev env env * removed uneeded contructor env environment environment environment build env Asda env removed gdal * unpinned opencv force remove anaconda channel printing conda channels afkasdfg asdfkjas;d updated env updated ev 3.7 pinned bullet added defaults again hopefully this works sdlkfjlasdkj sjdfhalsdjhf * updated for centos * updated centos env * Merging build.groovy into Jenkinsfile (#3620) * teasting different way to get os * moved build.groovy into Jenkinsfile * made ISISENV scoped * updated env * Made CMAKEFLAGS scoped * updated centos recipe * pinned geos for centos * sepaerated create and update * added channel * removed krodriguez channel * removed lib * hushed Geos Warning (#3622) * hushed Geos Warning * moved flag location * defined unstable API flag for Geos * Fix for spkwriter test failing with bad personal IsisPreference file.… (#3624) * Fix for spkwriter test failing with bad personal IsisPreference file. Fixes #3623 * Used TSTARGS instead of explicit preference file * Fix for CSV errors in Jenkins (#3625) * hushed Geos Warning moved flag location csvdiff now outputs everything explicit export removed warning line * reverted redirect * reverted cmakelists * reverted weird slash * moved install * slashes * explicit mac cleaup * Moved Kernel and KernelDb unitTests to GTest (#3626) * Converted Kernel test to GTest * Changed kernel type 0 to None * Stub kernel db gtest * Added another test * Fixed KernelDb tests * Added HiRISE test * Fixed HiRISE test * Added CRISM test * fixed CK Config test * Removed old KernelDb unit test * Removed None type from kernels * Fixed rename * removed inline * Update version to 4.0 to prep for release candidate (#3629) * Update version to 4.0 to prep for release candidate * Update correct version * Revert "Update version to 4.0 to prep for release candidate (#3629)" (#3631) This reverts commit 8f48ed94db46daa1c44ba77d1c0f6263439f209b. * Update version to 4.0 to prep for release candidate #3629 (#3632) * Update version to 4.0 to prep for release candidate * Update correct version * Remove accidental comment * Moved Kernel type compositon to source file (#3633) * Fix Environment unitTest failure in dev (#3634) * Update version to 4.0 to prep for release candidate * Update correct version * Remove accidental comment * Update Environment unitTest for ISIS 4.0 * Moved spiceinit to a callable (#3628) * Update meta.yaml build/run environment for 4.0 (#3635) * Update meta.yaml build/run environment for 4.0 * Pin opencv to remove libopencv not found errors in installed ISIS package * Update meta.yaml to rename conda package to isis from isis3 (#3642) * Pin armadillo in meta.yaml (#3650) * Update meta.yaml to rename conda package to isis from isis3 * Pin anaconda to version 9.0 in meta.yaml so it will run without a missing shared libraries error. * Actually pin armadillo to version 8.200.0 because 9 isn't needed and we know 8.200.0 works. * Update installation information to reflect 4.0 vs. 3.10 and package name change (#3649) * Update meta.yaml to rename conda package to isis from isis3 * Initial update to install docs to reflect install guide changes with the 3.10 and 4.0 split and the change in the package name * Update readme to newer installation instructions based on what we decided to do for the builds. * Update install docs to fix formatting * Add badge for isis package * Initial PR for Europa Clipper ingest, models, jitter correction (#3661) * Add initial files needed for EIS/clipper (#3636) * First add of jitterfit application * Initial commit of jitterfit * Clipper (#3656) * Try again * Try again * Documentation improvements * Fixed issues from first review * Initial ClipperNacRollingShutterCameraModel and associated classes PR (#3657) * Adds NthOrderPolynomial class needed for jitterfit (for EIS) to ISIS * Remove incorrect documentation * Update unitTest output * Remove unnecessary Makefile * Adds NthOrderPolynomial class to ISIS needed for jitterfit for EIS (#3639) * Adds NthOrderPolynomial class needed for jitterfit (for EIS) to ISIS * Remove incorrect documentation * Update unitTest output * Remove unnecessary Makefile * Adds ingestion application eis2isis to ISIS (#3638) * Initial commit of eis2isis * Remove references to EISBlob in comments and remove unnecessary Makefiles * Initial EIS Camera model commit with associated classes * Convert initial RSCameraDetectorMap unit test to a gtest * Changes in response to review comments: add checks to make sure tables and keywords exist before setting * Updated with old-style unit tests for camera models * Clipper (#3658) * Try again * Try again * Documentation improvements * Fixed issues from first review * Add more documentation * Fixed compile warning * Fix typo. Co-authored-by: Kristin * Adds Europa Clipper WAC Framing Camera Model - initial. (#3660) * Adds NthOrderPolynomial class needed for jitterfit (for EIS) to ISIS * Remove incorrect documentation * Update unitTest output * Remove unnecessary Makefile * Adds NthOrderPolynomial class to ISIS needed for jitterfit for EIS (#3639) * Adds NthOrderPolynomial class needed for jitterfit (for EIS) to ISIS * Remove incorrect documentation * Update unitTest output * Remove unnecessary Makefile * Adds ingestion application eis2isis to ISIS (#3638) * Initial commit of eis2isis * Remove references to EISBlob in comments and remove unnecessary Makefiles * Initial checkin of WAC camera model and associated changes to eis2isis. * add truthdata Co-authored-by: Kristin * Update installation instructions for 4.0 release. (#3671) * normalized apps (#3668) * normalized apps * added code for attaching spice tables to cube from ISD * noww featuring brain-dead cube test * added fixtures * readded docs * updated with docs * chnaged test names * Fixes EIS/Clipper-related errors with tests on CI (#3673) * Update meta.yaml to rename conda package to isis from isis3 * Update clipper-related errors discovered by CI * Adds new method to contruct cubes (#3675) * added new methods to Cube, tried to update spiceinit and cube tests * fixed errors * tweaks * syntax errors * re-added cout line that was suppoed to be there * updates as per comments * tempfile.open() lmao * revert j flag Co-authored-by: paarongiroux <47163875+paarongiroux@users.noreply.github.com> * Attempting to fix RollingShutterCameraDetectorMap CI failure on CentOS (#3677) * Update meta.yaml to rename conda package to isis from isis3 * Update maximum iterations to 50 because maxiters=20 is failing in CI on CentOS * added cnet fixture (#3680) * added cnet fixture * removed filelist * update as per comments * updated docs * typo * Campt Error App tests using TestCube fixture (#3679) * Abstracted campt app. * adds campt error app tests using cube fixture, adds new campt method to take in a pointer to a cube * updated variable names * Added default test case. * finished assterts * Changed expect_double_eq to expect_near. * added coordlist and allowoutside tests * removed extra tests, updated APP_XML variable Co-authored-by: Kaitlyn Lee Co-authored-by: Kelvin Rodriguez * added cnetcheck tests (#3681) * added cnetcheck tests * typos * whitespace * forgot the head lmao * forgot the source lmao * removed current cnetcheck tests * added comments * removed results line * Update README.md (#3691) * Initial application + testing refactor for cnetbin2pvl (#3693) * Initial application/testing refactor of cnetbin2pvl * Removed makefile for old test. * Adjusted spacing to better comply with isis3 internal standard. * Removed default cnetbin2pvl testing makefile * Addressed PR comments / reviews. Removed old comment Removed unnecessary cnet write Added default null pointer for progress parameter. * Removed extra whitespace * Added campt tests and removed old Makefile tests (#3687) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Added more tests. * Removed old Makfile tests. * Updated CAMPT_XML to APP_XML. * adds CoordList and AllowOutside test cases Co-authored-by: paarongiroux <47163875+paarongiroux@users.noreply.github.com> * Cmake update to link mission libraries with gtest executable (#3694) * Update meta.yaml to rename conda package to isis from isis3 * Update gtests to link against all the non-isis3 shared libraries built by ISIS * Update to work on macs * Cnet Winnow App Conversion and Functional Test (#3682) * Converted cnetwinnow and added in functional test * Moved cnetwinnow helper function declaration out of the header and back into the cpp * Updated PR based on comments <3 * Forgot Test in test name * Removed old comment and updated docs string * Camstats normalization and test refactor (#3696) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * normalized camstats, added functional tests * removed old test makefile * added docstring Co-authored-by: Kaitlyn Lee * Added temp dir for test files (#3692) * Added temp dir for test files * Moved to fixture inheritance * Added valid check * Updated tests to use new fixtures * Fixed build errors * Fixed build warning * Updated winnow test * Refactored and added cnetstats tests (#3702) * Abstracted cnetstats. * Added default test for cnetstats and cleaned up imports. * Added more tests. * Added exception tests. * Removed unnecessary tests. * Removed old makefiles. * Added docstrings and renamed test. * Added temp dir for test files (#3692) * Added temp dir for test files * Moved to fixture inheritance * Added valid check * Updated tests to use new fixtures * Fixed build errors * Fixed build warning * Updated winnow test * updated tests to pass Co-authored-by: Jesse Mapel Co-authored-by: Kelvin Rodriguez * Initial application + testing refactor for cnetpvl2bin (#3695) * Initial cnetpvl2bin refactor and gtest * Renamed cnetbin2pvlTests.cpp to FunctionalTestsCnetbin2pvl.cpp * Added docstring. * Replaced temporary directory logic with temp dir from fixtures. * Added docstring * Update cmake for gtest again to successfully link against shared libraries (#3699) * Update meta.yaml to rename conda package to isis from isis3 * Update gtests to link against all the non-isis3 shared libraries built by ISIS * Update to work on macs * Update CMakeLists for tests to grab all shared libraries on linux and mac successfully * Autoseed, Footprintinit, and 1/2 of Findimageoverlaps (#3688) * Initial stab at converting autoseed which includes findimageoverlaps and footprintinit (eventually) * Finished autoseed test and added footprintinit test * Finished autoseed and footprintinit tests * Updated autoseed, and tests and addressed PR feedback * Updated footprintinit from feedback * Updated findimageoverlaps based on feedback * Moved enum into the namespace * Adding overlaps list file to data, fixtures, and tests * Fixed path pointing to the wrong file * Finished last autoseed test * Updated autoseed test * Removed unnecessary temp file and renamed footprintinit test * leisa2isis app test conversion and one gtest replacement (#3704) * Update meta.yaml to rename conda package to isis from isis3 * Initial leisa2isis app test conversion and gtest * Remove debug code * Update main.cpp Added a CR at EOF Co-authored-by: Stuart Sides * fixed building errors (#3707) * Leisa2ISIS tests passing (#3708) * fixed building errors * fixed leisa tests * Set MALLOC_CHECK_ in Jenkinsfile as a temporary fix for the failing tests (#3712) * Fix for QMOS not updating lat/lon ranges correctly. (#3714) * qqqqqqmoooooosssssss * added doc string * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * 2.5D Occlusion and Testing Update (#3757) * Adds occlusion handling to cam2map * Added conditional check for occlusion, updated xml * Updated documentation * Converted cam2map to a function style application * Converted map2cam to cpp / functions * Added new cam2map file and test file * Moved cam2map gui helpers into the main.cpp * Added baseline cam2map gtest * Added a projected version of the default cube with a mapping for mars * Updated map2cam for testability * Added a gtest for map2cam * Mocked rubbersheet and added initial cam2map test with mocked process * Added initial mock file. * Added cam2map transform tests, new line scanner fixture, and a mocked camera * Fixed a few things in the cam2map tests * Updated ISD and fixed paths * Added more tests * Updated fromisd with necessary camera load for some data sources * Added cam2map mock tests, added bodies for transform pure virtual funcs * Updated gtest to latest version * Fixed a few things after the rebase * Removed a cout Co-authored-by: Austin Sanders * Multisensor (#3792) * added SCCONFIG parameter to jigsaw * fixed problem with how I was assigning observation numbers, added history comments * fixed problem with how I was removing observation numbers * cleaned up BOSS constructor * more fixes to BOSS constructor * added BOSS gtest * Added jigsaw scconfig app test * Added scconfig with heldlist app test * more updates to xml save test * finished xml save test * Updated with Themis VO data * Updating jigsaw errors Co-authored-by: Peter Aaron Giroux * updated spiceserver version check to include major version (#3791) * updated spiceserver version check to include major version * spiceserver tests added * removed old tests * big binaries are bad * uses different temp file * correcting swapped line sample prints in enlarge application output file (#3797) * correcting swapped line sample prints in output file * Updating unit test truth data to check Results Group * I forgot to add the changed test Co-authored-by: Lauren Adoram-Kershner * PDS2ISIS Docs Update (#3800) * Update to pds2isis docs regarding zero values in 8bit images * Updated docs with recommended verbage. * Updated pds2isis docs based on feedback round 2 * Fixed special pixels link * Fixed a few other special pixels links * Added in missing comma * Fixed typo * Getsn tests (#3790) * Replaced old getsn tests with gtests * removed an old Makefile * getsn? for like get working am I right? (now featuring less spiceinit) Co-authored-by: Kelvin * Fixed cam2map ignoring band specifications on the input cube (#3798) * Added input atts to cam2map * Fixed cam2map ui call * Trying to get vbands working again * Revert gtest * Changed to use GetInputAttribute * Move application-related data into the repository. (#3804) * Adds initial directory structure for appdata in source and update from dev (#3724) * Update meta.yaml to rename conda package to isis from isis3 * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Add directory structure for appdata in source Co-authored-by: Jesse Mapel Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Update CMakeLists process translation files in the ISIS source code. (#3726) * Update meta.yaml to rename conda package to isis from isis3 * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Add directory structure for appdata in source * Update cmakelists to copy translation files over into the appdata/translations area in the build directory. * Update to install appdata * Add appdata/templates directory needed for apollo work. Co-authored-by: Jesse Mapel Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Change ISIS3DATA to ISISDATA (#3728) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA * Migrates subset of base data to appdata area in source. Fixes CI error. (#3731) * Update meta.yaml to rename conda package to isis from isis3 * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Add directory structure for appdata in source * Update cmakelists to copy translation files over into the appdata/translations area in the build directory. * Update to install appdata * Add appdata/templates directory needed for apollo work. * Migrates everything in maps, labels, and and autoreg into source, adds placeholders for cmake for images and templates, and adds two actual base translation files and associated changes * Actually address all merge conflicts * Add placeholder for serialnumbers Co-authored-by: Jesse Mapel Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Updates cmake to copy apollo templates (#3732) * Just hard-code the apollo templates for now * Updated to have templates only search for *.def * Moving apollo15 data into source (#3733) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * adds apollopantranstable translations * rename apollopantranstable0001.trn -> apollopantranstable.trn * move apollopantranstable0002.trn -> apollopantranstable.trn * adds apollo15 serialNumbers * renaming serial number files * moved SerialNumber0002 -> Apollo15SerialNumber and metricSerialNumber002 -> Apollo15MetricSerialNumber * moved metricSerialNumber0003.trn -> Apollo15MetricSerialNumber.trn * created templates directory and added apollo template. updated apollopaninit and apollopanstitcher to reflect data directory changes * added apollo templates directory * renamed apolloPanFiducialFinder.pvl -> apolloPanFiducialFinder.def * update paths referencing data * fixed redundant naming of apolloPanFiducialFinder.def -> PanFiducialFinder.def * renamed apollopantranstable.trn -> ApolloPanInit.trn, updated reference in source code * changed Instruments translation file to uper camel case * more tweaks to Instruments.trn Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Moving apollo16 data into source (#3734) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * adds apollo16 serialnumbers * moved panoramicSerialNumber0001.trn -> Apollo15PanoramicSerialNumber.trn and metricSerialNumber0001.trn -> ApolloMetricSerialNumber.trn * moved metricSerialNumber0002.trn -> ApolloMetricSerialNumber.trn * moved metricSerialNumber0003.trn -> ApolloMetricSerialNumber.trn * fixed serialnumber file naming * removed serialnumbers DELETEME file Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Moving apollo17 data into source (#3735) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * adds apollo17 serialnumber files * moved metricSerialNumber0001.trn -> Apollo17MetricSerialNumber.trn and panoramicSerialNumber0001.trn -> Apollo17PanoramicSerialNumber.trn * moved metricSerialNumber0002.trn Apollo17MetricSerialNumber.trn * moved metricSerialNumber0003.trn -> Apollo17MetricSerialNumber.trn * remove serialnumbers DELETEME file Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Moved Juno data files into source code (#3736) * Added translation files. * Renamed junoSerialNumber0001.trn * Updated Preference file to use ISISDATA env variable for juno. * Moved SN xfile to appdata and updated app to point to appdata/translations. * Removed commented line. * Renamed files to be upper camel case. * Fixed typo. * Moved Mex data files into source code (#3738) * Added translation files. * Renamed hrscSerialNumber0001.trn * Renamed Xfiles, updated app to point to /appdata/translations, and moved SN xfile to appdata. * Renamed files to be upper camel case. * Removed commented line Co-authored-by: Stuart Sides * Moved Dawn data files into source code (#3739) * Set MALLOC_CHECK_ in Jenkinsfile as a temporary fix for the failing tests * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Copied dawn serial number files. * renamed files. * Updated serial number file with the most recent version. * copied over some xfiles. * New version. * updated to new version. * Added xfile. * New xfile. * new version. * new version. * new version. * copied xfile. * new version. * updated version. * copied xfile. * copied xfile. * updated version. * updated apps. * Updated env variable in preferences files. * Renamed files to be upper camel case. * Removed commented lines. * Renmaed serial number files to be upper camel case. Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Migrates application data from base into source (#3740) * Just hard-code the apollo templates for now * Updated to have templates only search for *.def * Add CMakeLists updates to support lro * Migrate icons and targets and update source code as needed * Migrate remaining base translation files and make any additional needed code changes * Move base serial number to serial numbers directory * Remove unneeded additional serial number trn file * Update LRO appdata (#3742) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA * Converted LRO mission to new data area * Added MiniRF format files * Add pft files * Update typ paths, and add LRO serial number files * Moved Messenger data into source (#3745) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * moved mdessenger translation files into source * moved mdisArchive translation files to MessengerMdisArchive.trn * moved mdisBandBin translation files to MessengerMdisBandBin.trn * moved mdisInstrument translation files to MessengerMdisInstrument.trn * moved mdisCDRLabel translation files to MessengerMdisCdrLabel.trn * moved mdisDDRLabel translation files to MessengerMdisDdrLabel.trn * added translations directory with mdisCalibration translation files * moved mdisCalibration files to MessengerMdisCalibration.trn * updated mdis apps references to translation files. * renamed mdisSerialNumber files to MessengerMdisSerialNumber.trn * copied over mdis template files to source * renamed mdis template files * update references to template files in source code * changed naming and references of template files Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level (#3746) * moved Kaguya data into source (#3747) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * copied over translation files from data area * renamed kaguya translation files to upper camel case. Updated references to these files in source code. Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Move template files into revision control (#3748) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * Added templates files to revision control * Update source files to use moved template files * Moved Cassini data into source (#3744) * Added ciss2isis files. * Added first version of file. * Added new version. * Renamed new version. * Updated vims2isis * Added cassini iss sn files. * New version. * New version. * Added cassini vims sn files. * Updated vims sn to v2. * Updated vims sn to v3. * Newhorizons data (#3749) * Abstracted campt app. * Revert "Merge branch 'campt' of https://github.com/kaitlyndlee/ISIS3 into dev" This reverts commit 521dd44a6831b488052aa0e21e65ca3c5f40f7f1, reversing changes made to 2874acf628c944823f317ebd1a2525d15dee497b. * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * moved over translation and serialnumber files from isis3 data area into source * renaming translation and serial number files to fit naming conventions * updated references to newhorizons data are in application source code * fixed filename typo * actually fixed file name typo this time * isis/src/newhorizons/apps/leisa2isis/NewHorizonsLeisaKernels_fit.trn removed comment from leisa kernels translation file Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * moved hayabusa2 data into source (#3752) * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * moves hayabusa2 translation and serial number files into source * renamed translation files to match naming conventions * updates references to translation files Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * moved hayabusa data into source (#3751) * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * moves hayabusa translation and serial file numbers from isis data area into source * renamed translation and serial number files to match convention * updated references to translation files in source code Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Fix unit test failures associated with base data area update. (#3753) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * Update classes and tests with base-area changes that were uncovered via CI tests failing * Moved Near Data into Source (#3755) * Set MALLOC_CHECK_ in Jenkinsfile as a temporary fix for the failing tests * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Added near translation files. Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Appdata for viking 1 and 2 (#3743) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA * Converted LRO mission to new data area * Added MiniRF format files * Add pft files * Update typ paths, and add LRO serial number files * Move Viking 1 data files into git source repo * Additions to initial commit of Viking 1 and 2, move data to repo * Updated serial number file names * Removed uneeded translations and fixed now that there is one file per instrument * Updating Application data for LRO (#3758) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA * Converted LRO mission to new data area * Added MiniRF format files * Add pft files * Update typ paths, and add LRO serial number files * Fixed LRO serial number file names * Moved MGS data into source (#3754) * Set MALLOC_CHECK_ in Jenkinsfile as a temporary fix for the failing tests * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Added moc2isis translation files. * Added serial number files. * SN file v2. * SN file v3. * SN file v4. * Removed from unit test. * Updated truth data. * Update truthdata to strip out path before mgs * Update unit test Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Moved Odyssey Data into Source (#3750) * Set MALLOC_CHECK_ in Jenkinsfile as a temporary fix for the failing tests * Used CK quality for PCK selection in spiceinit (#3716) * Changed PCK to use CK quality in spiceinit * Added spiceinit history for change * Adds the ability to save and restore a greyscale stretch to/from a Cube (#3717) * Update meta.yaml to rename conda package to isis from isis3 * Initial stretch attempt * Now will write a single stretch with a name and type to the cube * Stretch updated to inherit from Blob, re-loading a saved stretch works but only if Linear right now * Clean up Stretch class * Completely move stretchTypes into stretch class, and some minor cleanup * Fixed combo-box not updating bug and more cleanup * Further cleanup of propagated earlier changes with types and names being removed from unnecessary classes * Removed added unneeded member variables from StretchType * Cleanup StretchTool class * Update enter-text dialogs to drop down selection options * Wrapped some long strings * Initial commit to address most of review comments * Removed buttons in case of RGB stretch and add a 'Color' PvlKeyword to Stretch output Co-authored-by: Stuart Sides * Updated kaguyatc2isis to allow ingestion of data provided by JAXA online archive (#3713) * Updated to allow ingestion of data provided by JAXA online archive * Listed SLN-L-TC-5-MORNING-MAP-V4.0 as a supported format. * Added tests + testing data * Replaced several label parsing tests with cube attribute tests. * Fixes ddd2isis to support updated uvflat files (#3719) * Fixes ddd2isis to support updated uvflat files * Added history comment * Changed version numbers for 4.1 RC (#3722) * Added themis sn files. * Updated sn file to v2. * Updated sn file to v3. * Updated sn file to v4. * Updated Pipeline's truth data since it had references to . * New truth data. * Updated pipeline truth data. Co-authored-by: Jesse Mapel Co-authored-by: Kristin Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette * Move application data from ISIS3DATA to git repo for Voyager 1 and 2 (#3759) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA * Converted LRO mission to new data area * Added MiniRF format files * Add pft files * Update typ paths, and add LRO serial number files * Fixed LRO serial number file names * Adding Voyager 1 and 2 application files to repo from the data area * Moved the voyager translation files to voy2isis * Moves tgo application data into source control and also fixes other assorted issues that were causing tests to fail (#3756) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * Move tgo translation files into revision control and update apps accordingly * Fix some failing tests unrelated to tgo * Update TestPreferences file. * Make necessary changes to tgocassis2isis and put in debug output for other baffling failing tests on Jenkins * Fix failing tgo tests and update SerialNumber class to use the correct new file names * Clean up commented-out groups from translation files * Fixed spiceinit path to MissionName2DataDir.trn * Modify path of Map formatting file to point to the /scratch/localhome/kberry/dev/ISIS3/appdata-debug/appdata/ area * Update paths to map files in applications that use map templates (#3760) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Initial commit of files with map paths that needed to be updated * Moves lo-associated appdata into the repository (#3761) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * Initial move of lo into git repo * Add addition lo files to git repo * Update lo data into source to get tests passing * Moves Clementine-related appdata into repository (#3762) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Move clementine appdata into repo * Moves Mariner10 related appdata into the repo (#3763) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Move appdata for Mariner10 into repo and associated updates * Moves MER-related appdata into the repo (#3764) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Migrate MER appdata into the repo * Update Instruments.trn for MER * Moves Rosetta-related application data into this repo (#3765) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Update rosetta by moving appdata into the repo * Move application-related data for mro into repo (#3766) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Move appdata files for mro into repo * Chandrayaan1 changes for #3727 (#3768) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA * Converted LRO mission to new data area * Added MiniRF format files * Add pft files * Update typ paths, and add LRO serial number files * Fixed LRO serial number file names * Adding Voyager 1 and 2 application files to repo from the data area * Adding Chandrayaan1 to appdata * Removed Chandrayaan1 MiniRf test embeded in the M3 tests * Fixed mistakes * Add missing lo translation file (#3769) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Added missing Lo translation file. Fixes failing lo2isis_app_test_case03 test * Move Galileo application data into the repo (#3770) * Changeing env variable ISIS3DATA to ISISDATA * Changed ISIS3DATA to ISISDATA and pointed to new data area * Updating PR with new location of ISISDATA * Converted LRO mission to new data area * Added MiniRF format files * Add pft files * Update typ paths, and add LRO serial number files * Fixed LRO serial number file names * Adding Voyager 1 and 2 application files to repo from the data area * Adding Chandrayaan1 to appdata * Removed Chandrayaan1 MiniRf test embeded in the M3 tests * Adding Galileo and changed permissions on TGO trn files * Update GalileoNIMSCoreBandBin.trn * Update GalileoNIMSSuffixBandBin.trn * Removed ISIS3DATA from base apps (#3771) * Removed ISIS3DATA from base apps * Removing ISIS3DATA from base/objs * more ISIS3DATAs * more ISIS3DATAs * Other non base ISIS3DATAs * Remove ISIS3DATA from docsys * Update maptemplate.xml * Update smtk.xml * Update unitTest.xml * Fixed another file name * Fix unit test failures in appdata branch (#3772) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Fixes XmlToPvlTranslationManager unit test failure after migrating appdata to repo * Forgot the truth file update * Update $base paths for files moved into the repo, add noproj template, and remove unused file. (#3773) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Update references to for files that have been moved into the appdata area * Removed unused file * Removed references to Standard Pref file (#3774) * Removed ISIS3DATA from base apps * Removing ISIS3DATA from base/objs * more ISIS3DATAs * more ISIS3DATAs * Other non base ISIS3DATAs * Remove ISIS3DATA from docsys * Update maptemplate.xml * Update smtk.xml * Update unitTest.xml * Fixed another file name * Removed local Standard preference file references and took all but the ShapeModel group out of the other two preference files in the input dir * Adds rolo translation files to repo, fixes additional paths to point to data in the repo. (#3775) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Remove unneeded references to DataDirectory, fix paths where needed, and add rolo translation files to this repo * Fix failing lrowac2pds and mrf2pds tests on appdata branch (#3776) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Remove unneeded references to DataDirectory, fix paths where needed, and add rolo translation files to this repo * Fix failing lrowac2pds and mrf2pds tests on appdata branch * Fix scripts to use isis_testData and fix app tests (#3777) * Removed ISIS3DATA from base apps * Removing ISIS3DATA from base/objs * more ISIS3DATAs * more ISIS3DATAs * Other non base ISIS3DATAs * Remove ISIS3DATA from docsys * Update maptemplate.xml * Update smtk.xml * Update unitTest.xml * Fixed another file name * Removed local Standard preference file references and took all but the ShapeModel group out of the other two preference files in the input dir * Moving ISIS3DATA to ISISDATA fixing apptests * Fixing app tests * App test fixes (#3779) * Removed ISIS3DATA from base apps * Removing ISIS3DATA from base/objs * more ISIS3DATAs * more ISIS3DATAs * Other non base ISIS3DATAs * Remove ISIS3DATA from docsys * Update maptemplate.xml * Update smtk.xml * Update unitTest.xml * Fixed another file name * Removed local Standard preference file references and took all but the ShapeModel group out of the other two preference files in the input dir * Moving ISIS3DATA to ISISDATA fixing apptests * Fixing app tests * More app test fixes * Fixes mro test failures in appdata branch (#3778) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Remove unneeded references to DataDirectory, fix paths where needed, and add rolo translation files to this repo * Fixes failing mro tests and remove unused label file in chan1 * Update MroHirisePdsRdrEqui.pft * Update MroHirisePdsRdrEquiJP2.pft * Update MroHirisePdsRdrPolarJP2.pft * Update MroHirisePdsRdrPolar.pft * Update MroHirisePdsRdrPolar.pft * Fixes failing hirdrgen tests in appdata branch (#3782) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Remove unneeded references to DataDirectory, fix paths where needed, and add rolo translation files to this repo * Fixes failing mro tests and remove unused label file in chan1 * Remove reference to ISIS3DATA (#3783) * Removed ISIS3DATA from base apps * Removing ISIS3DATA from base/objs * more ISIS3DATAs * more ISIS3DATAs * Other non base ISIS3DATAs * Remove ISIS3DATA from docsys * Update maptemplate.xml * Update smtk.xml * Update unitTest.xml * Fixed another file name * Removed local Standard preference file references and took all but the ShapeModel group out of the other two preference files in the input dir * Moving ISIS3DATA to ISISDATA fixing apptests * Fixing app tests * More app test fixes * Remove ref to ISIS3DATA * Remove unnecessary TestPreferences file from ISIS (#3780) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Remove unneeded references to DataDirectory, fix paths where needed, and add rolo translation files to this repo * Fixes failing mro tests and remove unused label file in chan1 * Remove un-needed TestPreferences file and remove from install * Fixes individual ISIS applications missing icons in appdata branch (#3784) * Fix missed ProcessImportPds base references and update CMakelists to move translation files from the ISIS3/isis/src/missionName/translations level * merge cmakelists * Remove unneeded references to DataDirectory, fix paths where needed, and add rolo translation files to this repo * Fixes failing mro tests and remove unused label file in chan1 * ../isis/src/base/objs/Gui/Gui.cpp * Fixed icons not showing up in individual ISIS apps in appdata branch * Replace ISIS3TESTDATA with ISISTESTDATA and update Jenkinsscript to use the new data area (#3785) * Move Europa Clipper data files into repo (#3787) * Removed ISIS3DATA from base apps * Removing ISIS3DATA from base/objs * more ISIS3DATAs * more ISIS3DATAs * Other non base ISIS3DATAs * Remove ISIS3DATA from docsys * Update maptemplate.xml * Update smtk.xml * Update unitTest.xml * Fixed another file name * Removed local Standard preference file references and took all but the ShapeModel group out of the other two preference files in the input dir * Moving ISIS3DATA to ISISDATA fixing apptests * Fixing app tests * More app test fixes * Remove ref to ISIS3DATA * Moved Europa Clipper data files to reop * Update ClipperEisCore.trn Co-authored-by: Kristin * Add osirisrex translation files to repo (#3789) * move lopdsgen out of templates into translations, add hidtmgen template, add controlnetwork template (#3793) * Moves maps and labels under templates in appdata (#3794) * move lopdsgen out of templates into translations, add hidtmgen template, add controlnetwork template * Move maps under appdata/templates * Move labels and maps under templates * Fixes mdiscal and osirisrex test failures in appdata branch (#3799) * move lopdsgen out of templates into translations, add hidtmgen template, add controlnetwork template * Fixes mdiscal and osirisrex test failures in appdata branch * Cmake update for appdata branch (#3803) * move lopdsgen out of templates into translations, add hidtmgen template, add controlnetwork template * tesitng * Update cmakelists again * Cmake update * Update path in spiceserver from merge failure (#3808) * Update viking serial number translation files for backwards compatabi… (#3811) * Update viking serial number translation files for backwards compatability * Readd default option for translation Co-authored-by: Jesse Mapel Co-authored-by: Stuart Sides Co-authored-by: AustinSanders Co-authored-by: acpaquette Co-authored-by: paarongiroux <47163875+paarongiroux@users.noreply.github.com> Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: AustinSanders Co-authored-by: acpaquette * Updates cassini vims visable light cub calibration to use the old vis_perf files (#3807) * Upate IsisPreferences for backwards compatability with cubes created with versions of ISIS prior to 4.1 using ISIS3DATA env var * Reformatted slpmap documentation (#3809) * Set MALLOC_CHECK_ in Jenkinsfile as a temporary fix for the failing tests * Fixed typos in slpmap documentation. * Reformatted documentation. * Update slpmap.xml Co-authored-by: Kristin * update hyb2onc2isis to support newer image format * Changed jitterfit test to use a csv * Update README.md Updates README to remove the ISIS3 header and to include the Zenodo DOI for citing our work. * Update README.md * Make gtests resillient to error printing (#3820) * correcting swapped line sample prints in output file * Updating unit test truth data to check Results Group * I forgot to add the changed test * Removing period is search phrases Co-authored-by: Lauren Adoram-Kershner * Updated build script to set ISISROOT prior to build * Add support for MacOS 10.14, needed for make base tests * Adds support for JAXA archive Level 2B2 images to Kaguya MI in ISIS. (#3823) * Get kaguyami2isis working with l2b2 images from Jaxa archive and update unittest to includes images of this type. * Updated documentation to include level 2B2 support. * Added NIR image to unit test Co-authored-by: Kaitlyn Lee * Fix: hyb2onccal expects 2nd coord of ROI to be called X4, Y4; not X2, Y2 (#3827) * Fixed tc data set IDs (#3830) * Change to a CC0-based license. (#3831) * Change to a CC0-based license. * I always forget the link syntax. * Adds image data to the default cube fixture and enlarge tests (#3840) * refactored enlarge. * Added setinputcube call. * Removed return from setinputcube. * Removed print. * Added fixture for adding image data to a cube. * Need to add changed files to a different machine. * Changed SetOutputCube call so we can pass in the ui object. * Added enlarge tests. * Removed Makefile tests. * Added CubeAttribute. * Fixed typo. * Refactored opening input cube * Update README.md (#3844) That space is kinda important. ;) * Fix: update to reflect license change .txt --> .md (#3843) License file was changed from LICENSE.txt to LICENSE.md in ffa861e * Add support for Mars Express HRSC SRC instrument (#3826) * Add support for MacOS 10.14, needed for make base tests * Add support for MEX SRC instrument * Fixs found by PR review * Fixed PR issues * Tweaking translation * Added exposure duration * Adding in the SRC model * Now with lat/lon, and test updates * Adding Mex SRC Camera unitest * Fix spelling in application docs. Co-authored-by: Kristin * Instructions for using conda packages in different environments (#3835) * Added instructions for using conda packages in different environment than ISIS. * Fixed typos. * Changes from PR discussion with Jay. * Typo fixes (why can't I ever just do one commit?) and ISIS3 cleanup. * More typos ... grr. * Spelling fix. * Changes suggested by Jesse. * updated with new isd format (#3839) * updated with new isd format * removed missed debug prints * changed header stuff for ale * updated env * Added reference for boilerplate text. (#3845) * Added reference for boilerplate text. * Cleaned up SPDX line comment and refined text per Jesse's comment. * added authors list as per ISIS_TC action item, (#3867) * added authors list as per ISIS_TC action item, need to figure out some first name only authors still * Converted some e-mails to names * Fixed alphabetical order and removed duplicate * Update AUTHORS.rst Lee -> Kaitlyn Lee * Removed old Michael * Removed Oxez as duplicate Co-authored-by: Jesse Mapel * Fixes Jenkins errors: Revert "updated with new isd format" (#3888) * Revert "updated with new isd format (#3839)" This reverts commit e926548c06d7f60937f76975ab40dea8ac19b514. * Un-revert environment.yml and include changes * Updated GCC4 environment (#3889) * Updated GCC4 environment * Fixed warning in SpiceRotation unit test * Removed tracking table warning * MacOS tests (#3887) * Adds k8s dockerfile & updates Jenkinsfile * Updates Make config for Mac 10.15 * added mac 15 config * custom workspace * lower macx * removed custom workspace * uuuuugh * envs * sdafl;kajsdf * added retry on checkout * changed grep line * upped the retrys * changed grep * changed grep * simplified tests for exception checking * SpiceRotation os truth * Jenkinsfile ISIS3 env -> ISIS env * revert conda env name * Jenkinsfile env update Co-authored-by: Evin Dunn Co-authored-by: isis3mgr * Added small cube with image data fixture (#3893) * Added small cube fixture * fixed double definition * mappt will now report physical band number (#3890) * mappt will now report physical band number * added filter name output * translated tests * allowoutside tests now check pvl * now more tests * removed prints * Added and tested functionality for 'N/A' stats calculation. (#3895) * Added and tested functionality for 'N/A' stats calculation. * Added changelog and updated style to conform with isis standards. * Closed cube file and deleted cube after propagating tables (#3899) * Update PolarStereographic projection to directly translate ISIS's center longitude value (#3900) * Added closing tag for changelog. (#3902) * Test Fixes (#3898) * added findutils * temp output for findfeatures * embree tests rounding * re-added prints * Isis2ascii Header Update (#3903) * Updated the isis2ascii header to be more CSV friendly * Changed isis2ascii header from colmnar data to be more header like * Updated app and added gtests * Updated special pixel test and added fixture based on feedback * fab af * Added the ability to skip special pixels in phocube (#3897) * Added ignore special pixels parameter and new test * Forgot to include change to xml file * Changed process function to lambda function to get rid of global variables * Response to comments * Speed up q-isis applications by decreasing the number of times CubeViewport::paintPixmap() gets a new stretch (#3906) * Update CubeViewport class to speed up q-isis applications by moving getStretch out of for-loop * Add time-saving fix to rgb stretches, too, and update docs in header * Linux test fixes (#3911) * fab af * added find image overlap tests overlap * removed old test * isis2ascii spacing fix (#3910) * Increased the width of ascii DN output from 13 spaces to 14 spaces * Removed old ISIS test make files * Addresses PR feedback * Added a test for a custom delimiter * Added new delimiter to header * Added optional logging to cnetcombinept (#3907) * Added simple logging to cnetcombinept logic * Now outputing? * cnetcombinept test conversion * Cleaned up fixture * Added merge log test * Added starting and ending measure counts * Fixed app docs * Add local solar time option to phocube (#3912) * Add local solar time option to phocube * Add missing ticket number * Added more documentation updates for adding localsolartime to phocube * Updated logic so that min/max are not calculated if values are provided (#3909) * Updated logic so that min/max are no longer calculated if values are provided. * Resolved memory leak * added mappt coordlist functionality (#3905) * added mappt coordlist functionality * include guards * more copy paste errors * uuuuuuuuuggggghhhh * reverted campt.xml * updated docs * added flatfile output and associated tests * addressing Kristin's comment * left in group selection * removed couts * Changed histogram binning logic (#3918) * Changed how the bins are calculated and where the data goes. * Changed hist's output to align with the changes to Histogram * Added changes to cnethist * Added history entries * Changed histogram binning logic * Added ui.interactive check * Removed extra history end tag Co-authored-by: Kaitlyn Lee * Ticked ALE to 0.8.1 * Cleaned up installation instructions (#3916) * Cleaned up installation instructions * Update README.md Just a couple changes Co-authored-by: Stuart Sides * Revert "Changed histogram binning logic (#3918)" (#3922) This reverts commit 92296341c7322686fab981628ad1a035a43b8dd5. * Updates ISIS to use the unified ale format (#3926) * Updates ISIS to use the unified ale format * Restore SpiceRostation unit test * Fix spacing * Fix format for TimeDepedentFrames to fix CI test errors * Update test to use new ale format labels * Remove debug output * Added new startup scripts that don't blast existing ISIS environment … (#3927) * Added new startup scripts that don't blast existing ISIS environment variables * Update isisStartup.csh * Update hist application to accpet nbins when min/max are not set (#3935) * Update hist application to accpet nbins when min/max are not set * Updated history comment on hist test * Removed label from nn (#3937) * ALE Spice Reduction (#3940) * Reduced incoming ALE ephemeris data to be in the same source state as it would be from an ISIS spiceinit * Fixed keys accessing ale json * Minor doc string fix * Updated test for SpicePosition to check the cache size * Updated SpiceRotation unit test to check the cache size * Updated linux truth data * Added zerod out angular velocities to the spice rotation unit test * Updated mac 10.13 truth data * Updated angular velocity unit test * Updated linux truth data * Updated mac 10.15 truth data * Updated linux truth again * One more change to linux truth data * Re-add space to SpiceRotation truth data Co-authored-by: Jesse Mapel * Restricted OpenCV to 3.2 (#3944) * Removed label from nn * Restricted opencv to 3.2 * Modified the isisVarInit.py script (#3945) * Removed version number from filename. * feat: Changed the name of the VarInit script, changed how it worked internally, and made it write out isis-activate.* and isis_deactivate.* files. * Fix: Now has correct csh syntax, updated mkdir() with a proper docstring and to return a string (only main should print(), functions shouldn't or should log, but that's overkill for this). * Update README.md to indicate that isis3VarInit.py is still the script name to use for the current relelase (#3962) * Update README.md * fixed formatting * typo * formatting again * Update based on feedback * add authors checklist item to pr template action item from last ISIS_TC meeting https://github.com/USGS-Astrogeology/ISIS_TC/blob/master/meetings/2020-07-14.md adds a step to the pr template for the author to make sure they add themselves to the authors.rst file * Updates Zenodo (DOI) (#3949) * Updates Zenodo (DOI) The DOI entered will now always resolve tot he newest release. The other DOI was pinned to a specific release. * Updates with a How to Cite section * Review comments addressed * Update README.md * stashing * Update Hayabusa2OncInstrument.trn Co-authored-by: Kaitlyn Lee Co-authored-by: Jesse Mapel Co-authored-by: kledmundson <6842706+kledmundson@users.noreply.github.com> Co-authored-by: acpaquette Co-authored-by: Summer Stapleton Co-authored-by: paarongiroux <47163875+paarongiroux@users.noreply.github.com> Co-authored-by: Jesse Mapel Co-authored-by: jlaura Co-authored-by: egaultUSGS <47678984+egaultUSGS@users.noreply.github.com> Co-authored-by: Kristin Co-authored-by: acpaquette Co-authored-by: Stuart Sides Co-authored-by: dcookastro <34168267+dcookastro@users.noreply.github.com> Co-authored-by: Oleg Alexandrov Co-authored-by: jlaura Co-authored-by: K.-Michael Aye Co-authored-by: K.-Michael Aye Co-authored-by: Peter Giroux Co-authored-by: evindunn-usgs <47226513+evindunn-usgs@users.noreply.github.com> Co-authored-by: ascbot <41846569+ascbot@users.noreply.github.com> Co-authored-by: Andrew Annex Co-authored-by: Ross Beyer Co-authored-by: Lauren Adoram-Kershner <42873279+ladoramkershner@users.noreply.github.com> Co-authored-by: Austin Sanders Co-authored-by: Lauren Adoram-Kershner Co-authored-by: tgiroux <62255438+tgiroux@users.noreply.github.com> Co-authored-by: AustinSanders Co-authored-by: Aaron Curtis Co-authored-by: Evin Dunn Co-authored-by: isis3mgr --- .github/pull_request_template.md | 1 + .gitignore | 3 + README.md | 168 +++--- environment.yml | 4 +- isis/scripts/isis3VarInit.py | 175 ------ isis/scripts/isisStartup.csh | 38 ++ isis/scripts/isisStartup.sh | 41 ++ isis/scripts/isisVarInit.py | 146 +++++ isis/src/base/apps/hist/hist.xml | 8 +- isis/src/base/apps/hist/main.cpp | 68 +-- isis/src/base/apps/hist/tsts/default/Makefile | 13 +- isis/src/base/objs/Cube/Cube.cpp | 1 + isis/src/base/objs/Spice/Spice.cpp | 174 ++++-- .../base/objs/SpicePosition/SpicePosition.cpp | 14 +- .../base/objs/SpicePosition/SpicePosition.h | 5 + .../objs/SpicePosition/SpicePosition.truth | 1 + isis/src/base/objs/SpicePosition/unitTest.cpp | 13 +- .../base/objs/SpiceRotation/SpiceRotation.cpp | 22 +- .../base/objs/SpiceRotation/SpiceRotation.h | 4 + .../objs/SpiceRotation/SpiceRotation.truth | 1 + ...ceRotation_Darwin_x86_64_MacOSX10_13.truth | 1 + ...ceRotation_Darwin_x86_64_MacOSX10_15.truth | 1 + isis/src/base/objs/SpiceRotation/unitTest.cpp | 33 +- isis/src/docsys/build/Installation.xsl | 19 +- isis/src/docsys/build/homepage.xml | 18 +- .../documents/InstallGuide/InstallGuide.xml | 521 +----------------- .../LegacyInstallGuide/LegacyInstallGuide.xml | 5 +- .../apps/hyb2onc2isis/Hayabusa2OncArchive.trn | 4 +- .../hyb2onc2isis/Hayabusa2OncInstrument.trn | 41 +- .../apps/hyb2onc2isis/Hayabusa2OncKernels.trn | 1 + isis/src/hayabusa2/apps/hyb2onc2isis/main.cpp | 105 +++- isis/src/hayabusa2/apps/hyb2pds4gen/main.cpp | 232 +------- isis/src/hayabusa2/tsts/Makefile | 4 - isis/src/odyssey/tsts/Makefile | 4 - isis/tests/CMakeLists.txt | 1 - isis/tests/CubeTests.cpp | 72 +-- .../tests/FuntionalTestsFindImageOverlaps.cpp | 2 +- isis/tests/Hyabusa2OncCameraTests.cpp | 1 + isis/tests/SpiceTests.cpp | 74 +-- .../LineScannerImage/defaultLineScanner.isd | 2 +- isis/tests/data/defaultImage/defaultCube.isd | 70 +-- isis/tests/data/threeImageNetwork/cube1.isd | 68 +-- isis/tests/data/threeImageNetwork/cube2.isd | 68 +-- isis/tests/data/threeImageNetwork/cube3.isd | 68 +-- 44 files changed, 949 insertions(+), 1366 deletions(-) delete mode 100755 isis/scripts/isis3VarInit.py create mode 100644 isis/scripts/isisStartup.csh create mode 100644 isis/scripts/isisStartup.sh create mode 100755 isis/scripts/isisVarInit.py delete mode 100644 isis/src/hayabusa2/tsts/Makefile delete mode 100644 isis/src/odyssey/tsts/Makefile diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c9ce01f66c..0a3bc69d37 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -36,6 +36,7 @@ - [ ] I have updated the documentation accordingly. - [ ] I have added tests to cover my changes. - [ ] All new and existing tests passed. +- [ ] I have added myself to the [AUTHORS.rst](https://github.com/USGS-Astrogeology/ISIS3/blob/dev/AUTHORS.rst) document. ## 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: diff --git a/.gitignore b/.gitignore index bce992dee0..d4bc1304e7 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,9 @@ print.prt build/ install/ +# Unignore the documentation build +!isis/src/docsys/build + # Created by https://www.gitignore.io/api/macos # Edit at https://www.gitignore.io/?templates=macos diff --git a/README.md b/README.md index 172384ab44..762c0e8550 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,16 @@ [![Join the chat at https://gitter.im/USGS-Astrogeology/isis3_cmake](https://badges.gitter.im/USGS-Astrogeology/isis3_cmake.svg)](https://gitter.im/USGS-Astrogeology/isis3_cmake?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Join the discourse at https://astrodiscuss.usgs.gov](https://img.shields.io/discourse/https/astrodiscuss.usgs.gov/topics.svg?style=flat)](https://astrodiscuss.usgs.gov/) - [![Anaconda-Server Badge](https://anaconda.org/usgs-astrogeology/isis3/badges/version.svg)](https://anaconda.org/usgs-astrogeology/isis3) [![Anaconda-Server Badge](https://anaconda.org/usgs-astrogeology/isis/badges/version.svg)](https://anaconda.org/usgs-astrogeology/isis) -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3697216.svg)](https://doi.org/10.5281/zenodo.3697216) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2563341.svg)](https://doi.org/10.5281/zenodo.2563341) ## Table of Contents * [Requests for Comment](README.md#Requests-for-Comment) * [FAQ](README.md#FAQ) * [Installation](README.md#Installation) +* [Citing ISIS](README.md#Citing-ISIS) * [Start Contributing](https://github.com/USGS-Astrogeology/ISIS3/wiki/How-to-Start-Contributing) * [ISIS Data Area](README.md#The-ISIS-Data-Area) * [Installing Older Versions of ISIS](README.md#Installing-older-versions-of-ISIS) @@ -22,7 +22,7 @@ The ISIS project uses a Request for Comment (RFC) model whereby major potential Current open RFCs: * [Migration of ISIS Data to Git](https://github.com/USGS-Astrogeology/ISIS3/wiki/RFC4---Migration-of-ISIS-Data-to-Git) * [Removal of LOLAGRAIL SPKs from the data area](https://github.com/USGS-Astrogeology/ISIS3/wiki/RFC5-Remove-old-LOLAGRAIL-SPKs) - + We encourage all contributors and users to review open RFCs and comment as these proposed changes will impact use of the software. ## FAQ @@ -90,18 +90,27 @@ This installation guide is for ISIS users interested in installing ISIS (3.6.0)+ 7. Finally, setup the environment variables: - #Execute the ISIS variable initialization script with default arguments. - #This script prepares default values for: $ISISROOT, $ISIS3DATA, $ISIS3TESTDATA + To use the default values for: `$ISISROOT, $ISISDATA, $ISISTESTDATA`, run the ISIS variable initialization script with default arguments. + + To do this, for versions of ISIS 4.2.0 and earlier, use: python $CONDA_PREFIX/scripts/isis3VarInit.py + For versions of ISIS after 4.2.0, use: + + python $CONDA_PREFIX/scripts/isisVarInit.py - Executing this script with no arguments will result in $ISIS3DATA=$CONDA\_PREFIX/data, and $ISIS3TESTDATA=$CONDA\_PREFIX/testdata. The user can specify different directories for both of these optional values: + Executing this script with no arguments will result in $ISISDATA=$CONDA\_PREFIX/data, and $ISISTESTDATA=$CONDA\_PREFIX/testdata. The user can specify different directories for both of these optional values: + + For ISIS 4.2.0 and earlier, use: python $CONDA_PREFIX/scripts/isis3VarInit.py --data-dir=[path to data directory] --test-dir=[path to test data directory] + For versions of ISIS after 4.2.0, use: + + python $CONDA_PREFIX/scripts/isisVarInit.py --data-dir=[path to data directory] --test-dir=[path to test data directory] - More information about the ISIS3DATA environment variable and the ISIS Data Area can be found [here]("#The-ISIS-Data-Area"). Now everytime the isis environment is activated, $ISISROOT, $ISIS3DATA, and $ISIS3TESTDATA will be set to the values passed to isis3VarInit.py. This does not happen retroactively, re-activate the isis envionment with one of the following commands: + More information about the ISISDATA environment variable and the ISIS Data Area can be found [here]("#The-ISIS-Data-Area"). Now everytime the isis environment is activated, $ISISROOT, $ISISDATA, and $ISISTESTDATA will be set to the values passed to isisVarInit.py. This does not happen retroactively, so re-activate the isis envionment with one of the following commands: for Anaconda 3.4 and up - conda activate isis prior to Anaconda 3.4 - source activate isis @@ -187,7 +196,7 @@ already done this. that it starts with whatever you got from step 1, and ends in the name of your isis environment, if you followed the installation instructions above, you called that environment 'isis'. - + You can do the same thing to find the path to your new 'working' environment, but in this example, it will be at `$HOME/anaconda3/envs/working`. @@ -245,11 +254,11 @@ remove these elements to and from your path. To update to our latest release candidate up to version 3.9.1, run `conda update -c usgs-astrogeology -c usgs-astrogeology/label/RC isis3` - Note that for ISIS versions 3.10 and above, new versions and release candidates will only be + Note that for ISIS versions 3.10 and above, new versions and release candidates will only be available under the package name `isis` and `conda update isis3` and - `conda update -c usgs-astrogeology -c usgs-astrogeology/label/RC isis3` + `conda update -c usgs-astrogeology -c usgs-astrogeology/label/RC isis3` will no longer work for additional updates. Instead, after installing an `isis` package, - `conda update isis` should be used to update to a new version and + `conda update isis` should be used to update to a new version and `conda update -c usgs-astrogeology/label/RC isis` to update to a new release candidate. ### Operating System Requirements @@ -285,15 +294,18 @@ To build and compile ISIS requires following the instructions listed below, whic - [Building ISIS3 documentation](https://github.com/USGS-Astrogeology/ISIS3/wiki/Developing-ISIS3-with-cmake#building-isis3-documentation) - [What to do if you encounter any problems](https://github.com/USGS-Astrogeology/ISIS3/wiki/Developing-ISIS3-with-cmake#problems) +## Citing ISIS +This project uses a [Zenodo](https://zenodo.org) generated DOI. The badge at the top of this README links to the DOI for the [latest release](https://doi.org/10.5281/zenodo.2563341). It is [good practice](https://help.zenodo.org) (See 'Which DOI Should I Use in Citations?') to cite the version of the software being used by the citing work. To obtain this DOI, one can follow the [link to the latest version](https://doi.org/10.5281/zenodo.2563341) and then check the right sidebar area titled **Versions** for a listing of all ISIS versions that currently have a Zenodo DOI. + ## The ISIS Data Area ### Ancillary Data -Many ISIS applications require ancillary data. For example, ingestion applications require translation tables to convert labels, calibration applications require flat files to do flat field correct, and map projection applications require DTMs to accurately compute intersections. Due to its size, this data is stored in a separate directory called the ISIS Data Area. Any location can be used for the ISIS Data Area, the software simply requires that the ISIS3DATA environment variable is set to its location. +Many ISIS applications require ancillary data. For example, calibration applications require flat files to do flat field corrections, and map projection applications require DTMs to accurately compute intersections. Due to its size, this data is stored in a separate directory called the ISIS Data Area. Any location can be used for the ISIS Data Area, the software simply requires that the ISISDATA environment variable is set to its location. ### Structure of the ISIS3 Data Area -Under the root directory of the ISIS Data Area pointed to by the ISIS3DATA environment variable are a variety of sub-directories. Each mission supported by ISIS has a sub-directory that contains mission specific processing data such as flat files and mission specific SPICE. There are also data areas used by more generic applications. These sub-directories contain everything from templates to test data. +Under the root directory of the ISIS Data Area pointed to by the ISISDATA environment variable are a variety of sub-directories. Each mission supported by ISIS has a sub-directory that contains mission specific processing data such as flat files and mission specific SPICE. There are also data areas used by more generic applications. These sub-directories contain everything from templates to test data. ### Size of the ISIS3 Data Area @@ -305,19 +317,19 @@ The ISIS Data Area is hosted on rsync servers and not through conda channels lik To download all ISIS data, enter the following commands in the location where you want to install the ISIS Data Area: - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/ . > Note: The above command downloads all ISIS data including the required base data area and all of the optional mission data areas. -### Partial Download of ISIS Base Data (Required) +### Partial Download of ISIS Base Data -The base data area is separate from the source code. This data area is crucial to ISIS and must be downloaded. To do that run the following commands: +This data area contains data that is common between multiple missions such as DEMS and leap second kernels. As of ISIS 4.1, the base data area is no longer required to run many applications as data such as icons and templates has been moved into the binary distribution. If you plan to work with any applications that use camera models (e.g., cam2map, campt, qview), it is still recommended you download the base data area. To download the base data area run the following commands: - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/base . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/base . ### Partial Download of Mission Specific Data @@ -332,8 +344,8 @@ ISIS can now use a service to retrieve the SPICE data for all instruments ISIS s For example:
-cd $ISIS3DATA
-rsync -azv --exclude='kernels' --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/cassini .
+cd $ISISDATA
+rsync -azv --exclude='kernels' --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/cassini .
 
**WARNING:** Some instruments require mission data to be present for radiometric calibration, which is not supported by the SPICE Web Server, and some programs that are designed to run an image from ingestion through the mapping phase do not have an option to use the SPICE Web Service. For information specific to an instrument, see the documentation for radiometric calibration programs. @@ -342,163 +354,163 @@ rsync -azv --exclude='kernels' --delete --partial isisdist.astrogeology.u **Apollo Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/apollo15 . - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/apollo16 . - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/apollo17 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/apollo15 . + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/apollo16 . + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/apollo17 . **Cassini Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/cassini . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/cassini . **Chandrayaan Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/chandrayaan1 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/chandrayaan1 . **Clementine Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/clementine1 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/clementine1 . **Dawn Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/dawn . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/dawn . **ExoMars Trace Gas Orbiter Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/tgo . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/tgo . **Galileo Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/galileo . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/galileo . **Hayabusa Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/hayabusa . - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/hayabusa2 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/hayabusa . + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/hayabusa2 . **Juno Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/juno . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/juno . **Kaguya Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/kaguya . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/kaguya . **Lunar Orbiter Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/lo . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/lo . **Lunar Reconnaissance Orbiter Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/lro . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/lro . **Mars Exploration Rover Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mer . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/mer . **Mariner10 Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mariner10 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/mariner10 . **Messenger Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/messenger . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/messenger . **Mars Express Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mex . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/mex . **Mars Global Surveyor Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mgs . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/mgs . **Mars Reconnaissance Orbiter Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mro . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/mro . **Mars Odyssey Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/odyssey . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/odyssey . **Near Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/near . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/near . **New Horizons Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/newhorizons . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/newhorizons . **Rolo Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/rolo . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/rolo . **Rosetta Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/rosetta . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/rosetta . **Smart1 Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/smart1 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/smart1 . **Viking Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/viking1 . - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/viking2 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/viking1 . + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/viking2 . **Voyager Mission:** - cd $ISIS3DATA - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/voyager1 . - rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/voyager2 . + cd $ISISDATA + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/voyager1 . + rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isisdata/data/voyager2 . ## Installing older versions of ISIS diff --git a/environment.yml b/environment.yml index 9701aacae0..f84f390b67 100644 --- a/environment.yml +++ b/environment.yml @@ -39,8 +39,8 @@ dependencies: - nanoflann - nlohmann_json - ninja==1.7.2 - - conda-forge/label/gcc7::nn - - opencv>=3.0.0,<=4.0.0 + - nn + - opencv=3.2 - openssl>=1.0.0,<1.1.0 - pcl - protobuf=3.9.1 diff --git a/isis/scripts/isis3VarInit.py b/isis/scripts/isis3VarInit.py deleted file mode 100755 index ca0793517c..0000000000 --- a/isis/scripts/isis3VarInit.py +++ /dev/null @@ -1,175 +0,0 @@ -#!/usr/bin/env python -""" -This program builds shell scripts that define ISIS3 environment variables during -conda environment activation and deactivation, and creates some directories. -""" - -import argparse -import os -import sys - -########################################################################################################## -# -# This work is free and unencumbered software released into the public domain. -# In jurisdictions that recognize copyright laws, the author or authors -# of this software dedicate any and all copyright interest in the -# software to the public domain. -# -# -# Description: This program builds the shell scripts that define the -# ISISROOT/ISISDATA/ISISTESTDATA environment variables for the user -# when the ISIS3 conda environment is activated, and clean up when it is -# deactivated. -# -# The data directory and test directory are optional command line arguments. -# If the user chooses not to set them, they will both be created in the -# $ISISROOT directory. -# -# History: -# Author: Tyler Wilson, USGS -# Date: 2018-10-05 -# Description: Initial commit. -# -# Author: Tyler Wilson, USGS -# Date: 2018-11-01 -# Description: Removed a pair of lines which were causing output errors on Mac OS X and were not -# required anyway. -# -# Author: Ross Beyer -# Date: 2018-11-19 -# Description: Streamlined the program, improved documentation, and made the directory and -# file creation more `pythonic' rather than using system calls. -# -# Author: Jesse Mapel -# Date: 2019-03-25 -# Description: Added C-Shell support. -# -# Author: K.-Michael Aye -# Date: 2019-08-09 -# Description: Added support for fish shell. -# -# Author: Adam Paquette -# Date: 2019-12-02 -# Description: Added ALESPICEROOT environment variable for ISIS 4. -# -########################################################################################################## - -# There are still a lot of Python 2 installations out there, and if people don't have -# their conda environment set up properly, the error message they'll get will be hard -# to decipher. This might help: -assert sys.version_info >= (3, 2) # Must be using Python 3.2 or later - - -# This just wraps and reports on the directory creation: -def mkdir(p): - if os.path.exists(p): - print("Tried to create " + p + ", but it already exists.") - else: - os.makedirs(p) - print("Created " + p) - return - - -# Set up and then parse the command line: -parser = argparse.ArgumentParser(description=__doc__) - -parser.add_argument( - "-d", - "--data-dir", - default=os.environ["CONDA_PREFIX"] + "/data", - help="ISIS3 Data Directory, default: %(default)s", -) -parser.add_argument( - "-t", - "--test-dir", - default=os.environ["CONDA_PREFIX"] + "/testData", - help="ISIS3 Test Data Directory, default: %(default)s", -) - -parser.add_argument( - "-a", - "--ale-dir", - default=os.environ["CONDA_PREFIX"] + "/aleData", - help="ISIS3 Ale Data Directory, default: %(default)s", -) -args = parser.parse_args() - -# Create the data directories: -mkdir(args.data_dir) -mkdir(args.test_dir) -mkdir(args.ale_dir) - -# Create the conda activation and deactivation directories: -activate_dir = os.environ["CONDA_PREFIX"] + "/etc/conda/activate.d" -deactivate_dir = os.environ["CONDA_PREFIX"] + "/etc/conda/deactivate.d" - -mkdir(activate_dir) -mkdir(deactivate_dir) - -# Write the files that manage the ISIS3 environments: -# Three coralated lists for zsh, csh, and fish shell - -# Associated file -activate_deactivate_files = ["/env_vars.sh", "/env_vars.csh", "/env_vars.fish"] - -# Activation script -activate_scripts = [""" - #!/usr/bin/env sh - export ISISROOT={} - export ISISDATA={} - export ISISTESTDATA={} - export ALESPICEROOT={} - """, - """ - #!/usr/bin/env csh - setenv ISISROOT {} - setenv ISISDATA {} - setenv ISISTESTDATA {} - setenv ALESPICEROOT {} - - source $CONDA_PREFIX/scripts/tabCompletion.csh - """, - """ - #!/usr/bin/env fish - set -gx ISISROOT {} - set -gx ISISDATA {} - set -gx ISISTESTDATA {} - set -gx ALESPICEROOT {} - """] - -# Deactivation script -deactivate_scripts = [""" - #!/usr/bin/env sh - unset ISISROOT - unset ISISDATA - unset ISISTESTDATA - unset ALESPICEROOT - """, - """ - #!/usr/bin/env csh - unsetenv ISISROOT - unsetenv ISISDATA - unsetenv ISISTESTDATA - unsetenv ALESPICEROOT - """, - """ - #!/usr/bin/env fish - set -e ISISROOT - set -e ISISDATA - set -e ISISTESTDATA - set -e ALESPICEROOT - """] - -# Loop over the files and create the correct script associated with -# said file -for i, file in enumerate(activate_deactivate_files): - with open(activate_dir + file, mode="w") as a: - script = activate_scripts[i].format( - os.environ["CONDA_PREFIX"], args.data_dir, args.test_dir, args.ale_dir - ) - a.write(script) - print("Wrote " + activate_dir + file) - - with open(deactivate_dir + file, mode="w") as d: - d.write(deactivate_scripts[i]) - print("Wrote " + deactivate_dir + file) diff --git a/isis/scripts/isisStartup.csh b/isis/scripts/isisStartup.csh new file mode 100644 index 0000000000..8192b6a3e2 --- /dev/null +++ b/isis/scripts/isisStartup.csh @@ -0,0 +1,38 @@ +#!/bin/csh +################################################################################ +# This file should be sourced within your current shell using the "source" +# command. +# +# On the command line type: +# > setenv ISISROOT ???? +# > source isis3Startup.csh +# +# Replace the "????" in the above command line with the path you installed +# the Isis distribution +# +################################################################################ + +if ($?ISISROOT == 0) then + echo "ISISROOT environment variable is not set" + exit 1 +endif + +if ($?ISISDATA == 0) then + if (-d $ISISROOT/../data) then + setenv ISISDATA $ISISROOT/../isis_data + else + setenv ISISDATA /usgs/cpkgs/isis3/isis_data + endif +endif + +if ($?ISISTESTDATA == 0) then + if (-d $ISISROOT/../testData) then + setenv ISISTESTDATA $ISISROOT/../testData + else + setenv ISISTESTDATA /usgs/cpkgs/isis3/isis_testData + endif +endif + +if ( -f $ISISROOT/scripts/tabcomplete.csh ) then + source $ISISROOT/scripts/tabcomplete.csh; +endif diff --git a/isis/scripts/isisStartup.sh b/isis/scripts/isisStartup.sh new file mode 100644 index 0000000000..ac2644503e --- /dev/null +++ b/isis/scripts/isisStartup.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# This file should be executed within your current shell using the "." or "source" +# command. +# +# On the command line type: +# > set ISISROOT=???? +# > . isis3Startup.sh +# +# Replace the "????" in the above command line with the path where you installed +# the Isis distribution +# +if [ ! "$ISISROOT" ]; then + ISISROOT=/usgs/pkgs/isis3/install + export ISISROOT +fi + +if [ ! "$ISISDATA" ]; then + if [ -d $ISISROOT/../data ]; then + ISISDATA=$ISISROOT/../isis_data + else + ISISDATA=/usgs/cpkgs/isis3/isis_data + fi + export ISISDATA +fi + +if [ ! "$ISISTESTDATA" ]; then + if [ -d $ISISROOT/../testData ]; then + ISISTESTDATA=$ISISROOT/../testData + else + ISISTESTDATA=/usgs/cpkgs/isis3/isis_testData + fi + export ISISTESTDATA +fi + +if [ "$PATH" ]; then + PATH="${PATH}:${ISISROOT}/bin" +else + PATH="$ISISROOT/bin" +fi +export PATH diff --git a/isis/scripts/isisVarInit.py b/isis/scripts/isisVarInit.py new file mode 100755 index 0000000000..bdaf84fb87 --- /dev/null +++ b/isis/scripts/isisVarInit.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python +""" +This program builds shell scripts that define the ISIS environment +variables that are sourced during conda environment activation and +removed at deactivation. + +If the directories don't exist, they are created. If their path is +not specified, they are placed in $ISISROOT. +""" + +import argparse +import os +from pathlib import Path + +# 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 + + +def mkdir(p: Path) -> str: + """Returns a string with a message about the creation or existance + of the path, *p*.""" + if p.exists(): + return f"{p} exists, don't need to create." + else: + p.mkdir(parents=False) + return f"Created {p}" + + +def activate_text(shell: dict, env_vars: dict) -> str: + """Returns the formatted text to write to the activation script + based on the passed dictionaries.""" + + lines = [shell["shebang"]] + for k, v in env_vars.items(): + lines.append(shell["activate"].format(k, v)) + + if shell["activate_extra"] != "": + lines.append(shell["activate_extra"]) + + lines.append("cat $ISISROOT/version") + + return "\n".join(lines) + + +def deactivate_text(shell: dict, env_vars: dict) -> str: + """Returns the formatted text to write to the deactivation script + based on the passed dictionaries.""" + + lines = [shell["shebang"]] + for k in env_vars.keys(): + lines.append(shell["deactivate"].format(k)) + + return "\n".join(lines) + + +# Set up and then parse the command line: +parser = argparse.ArgumentParser(description=__doc__) + +parser.add_argument( + "-d", + "--data-dir", + default=os.environ["CONDA_PREFIX"] + "/data", + type=Path, + help="ISIS Data Directory, default: %(default)s", +) +parser.add_argument( + "-t", + "--test-dir", + default=os.environ["CONDA_PREFIX"] + "/testData", + type=Path, + help="ISIS Test Data Directory, default: %(default)s", +) + +parser.add_argument( + "-a", + "--ale-dir", + default=os.environ["CONDA_PREFIX"] + "/aleData", + type=Path, + help="ISIS Ale Data Directory, default: %(default)s", +) +args = parser.parse_args() + +print("-- ISIS Data Directories --") +# Create the data directories: +print(mkdir(args.data_dir)) +print(mkdir(args.test_dir)) +print(mkdir(args.ale_dir)) + +print("-- Conda activation and deactivation scripts --") +# Create the conda activation and deactivation directories: +activate_dir = Path(os.environ["CONDA_PREFIX"]) / "etc/conda/activate.d" +deactivate_dir = Path(os.environ["CONDA_PREFIX"]) / "etc/conda/deactivate.d" + +print(mkdir(activate_dir)) +print(mkdir(deactivate_dir)) + +# Set the environment variables to manage +env_vars = dict( + ISISROOT=os.environ["CONDA_PREFIX"], + ISISDATA=args.data_dir, + ISISTESTDATA=args.test_dir, + ALESPICEROOT=args.ale_dir +) + +# These dicts define the unique aspects of the shell languages +# for setting and unsetting the environment variables. + +sh = dict( # this covers bash and zsh + extension=".sh", + shebang="#!/usr/bin/env sh", + activate="export {}={}", + activate_extra="", + deactivate="unset {}" +) + +csh = dict( + extension=".csh", + shebang="#!/usr/bin/env csh", + activate="setenv {} {}", + activate_extra="source $CONDA_PREFIX/scripts/tabCompletion.csh", + deactivate="unsetenv {}" +) + +fish = dict( + extension=".fish", + shebang="#!/usr/bin/env fish", + activate="set -gx {} {}", + activate_extra="", + deactivate="set -e {}" +) + +# Loop over the shell types and create the correct scripts associated with +# each: +for shell in (sh, csh, fish): + a_path = activate_dir / ("isis-activate" + shell["extension"]) + a_path.write_text(activate_text(shell, env_vars)) + print(f"Wrote {a_path}") + + d_path = deactivate_dir / ("isis-deactivate" + shell["extension"]) + d_path.write_text(deactivate_text(shell, env_vars)) + print(f"Wrote {d_path}") diff --git a/isis/src/base/apps/hist/hist.xml b/isis/src/base/apps/hist/hist.xml index e0d4171a04..17c580d68d 100644 --- a/isis/src/base/apps/hist/hist.xml +++ b/isis/src/base/apps/hist/hist.xml @@ -84,11 +84,9 @@ Updated logic such that min/max values are no longer calculated from .cub if values are provided by the user. Fixes #3881. - - Added "Pixels Below Min" and "Pixels Above Max" to the CSV output and changed how the data is - outputted. Originally, the CSV output and the GUI histogram would use the DN value in the - middle of a bin to represent that bin. That is, the CSV output used to have a "DN" value that - was the bin's middle pixel DN. This was not intuitive to users. Removed the "DN" value and added "MinInclusive" and "MaxExclusive" to the CSV so that bins are represented by their min/max values. These changes were also reflected in the histrogram creation. The x-axis is now based off of the min value of a bin instead of the middle value. These changes were made alongside changes made to Histogram and cnethist. + + Re-added the ability to set number of bins without setting min/max values after the last update. + Follow-on to #3881. diff --git a/isis/src/base/apps/hist/main.cpp b/isis/src/base/apps/hist/main.cpp index 2b078ea2ee..5f37938835 100644 --- a/isis/src/base/apps/hist/main.cpp +++ b/isis/src/base/apps/hist/main.cpp @@ -57,9 +57,15 @@ void IsisMain() { } else { hist = new Histogram(*icube, 1, p.Progress()); + + if (ui.WasEntered("NBINS")){ + hist->SetBins(ui.GetInteger("NBINS")); + } } // Setup the histogram + // Setup the histogram + // Loop and accumulate histogram p.Progress()->SetText("Gathering Histogram"); p.Progress()->SetMaximumSteps(icube->lineCount()); @@ -79,26 +85,24 @@ void IsisMain() { ofstream fout; fout.open(outfile.toLatin1().data()); - fout << "Cube: " << ui.GetFileName("FROM") << endl; - fout << "Band: " << icube->bandCount() << endl; - fout << "Average: " << hist->Average() << endl; - fout << "Std Deviation: " << hist->StandardDeviation() << endl; - fout << "Variance: " << hist->Variance() << endl; - fout << "Median: " << hist->Median() << endl; - fout << "Mode: " << hist->Mode() << endl; - fout << "Skew: " << hist->Skew() << endl; - fout << "Minimum: " << hist->Minimum() << endl; - fout << "Maximum: " << hist->Maximum() << endl; + fout << "Cube: " << ui.GetFileName("FROM") << endl; + fout << "Band: " << icube->bandCount() << endl; + fout << "Average: " << hist->Average() << endl; + fout << "Std Deviation: " << hist->StandardDeviation() << endl; + fout << "Variance: " << hist->Variance() << endl; + fout << "Median: " << hist->Median() << endl; + fout << "Mode: " << hist->Mode() << endl; + fout << "Skew: " << hist->Skew() << endl; + fout << "Minimum: " << hist->Minimum() << endl; + fout << "Maximum: " << hist->Maximum() << endl; fout << endl; - fout << "Total Pixels: " << hist->TotalPixels() << endl; - fout << "Valid Pixels: " << hist->ValidPixels() << endl; - fout << "Pixels Below Min: " << hist->UnderRangePixels() << endl; - fout << "Pixels Above Max: " << hist->OverRangePixels() << endl; - fout << "Null Pixels: " << hist->NullPixels() << endl; - fout << "Lis Pixels: " << hist->LisPixels() << endl; - fout << "Lrs Pixels: " << hist->LrsPixels() << endl; - fout << "His Pixels: " << hist->HisPixels() << endl; - fout << "Hrs Pixels: " << hist->HrsPixels() << endl; + fout << "Total Pixels: " << hist->TotalPixels() << endl; + fout << "Valid Pixels: " << hist->ValidPixels() << endl; + fout << "Null Pixels: " << hist->NullPixels() << endl; + fout << "Lis Pixels: " << hist->LisPixels() << endl; + fout << "Lrs Pixels: " << hist->LrsPixels() << endl; + fout << "His Pixels: " << hist->HisPixels() << endl; + fout << "Hrs Pixels: " << hist->HrsPixels() << endl; // Write histogram in tabular format fout << endl; @@ -110,16 +114,13 @@ void IsisMain() { double low; double high; - for (int i = 0; i < hist->Bins(); i++) { - if (hist->BinCount(i) > 0) { + for(int i = 0; i < hist->Bins(); i++) { + if(hist->BinCount(i) > 0) { total += hist->BinCount(i); double pct = (double)hist->BinCount(i) / hist->ValidPixels() * 100.; cumpct += pct; - hist->BinRange(i, low, high); - - fout << low << ","; - fout << high << ","; + fout << hist->BinMiddle(i) << ","; fout << hist->BinCount(i) << ","; fout << total << ","; fout << pct << ","; @@ -166,16 +167,13 @@ void IsisMain() { QVector binCountData; QVector cumPctData; double cumpct = 0.0; - double low; - double high; - for (int i = 0; i < hist->Bins(); i++) { - if (hist->BinCount(i) > 0) { - hist->BinRange(i, low, high); - binCountData.append(QPointF(low, hist->BinCount(i) ) ); + for(int i = 0; i < hist->Bins(); i++) { + if(hist->BinCount(i) > 0) { + binCountData.append(QPointF(hist->BinMiddle(i), hist->BinCount(i) ) ); - double pct = (double)hist->BinCount(i) / hist->ValidPixels() * 100.0; + double pct = (double)hist->BinCount(i) / hist->ValidPixels() * 100.; cumpct += pct; - cumPctData.append(QPointF(low, cumpct) ); + cumPctData.append(QPointF(hist->BinMiddle(i), cumpct) ); } } @@ -213,6 +211,10 @@ void IsisMain() { plot->add(histCurve); plot->add(cdfCurve); +// plot->fillTable(); + +// plot->setScale(QwtPlot::yLeft, 0, maxYValue); +// plot->setScale(QwtPlot::xBottom, hist.Minimum(), hist.Maximum()); QLabel *label = new QLabel(" Average = " + QString::number(hist->Average()) + '\n' + "\n Minimum = " + QString::number(hist->Minimum()) + '\n' + diff --git a/isis/src/base/apps/hist/tsts/default/Makefile b/isis/src/base/apps/hist/tsts/default/Makefile index 92b0a4cfd2..89268ffcf8 100644 --- a/isis/src/base/apps/hist/tsts/default/Makefile +++ b/isis/src/base/apps/hist/tsts/default/Makefile @@ -1,9 +1,20 @@ +# 2020-06-25 - Kristin Berry - Added a test to check that if nbins is set, it is used. +# To make the truthdata for this test, I set the number of bins to 25, a number much smaller than +# the internal default, and just checked that the output was different from the default test. + APPNAME = hist histTruth.txt.IGNORELINES = Cube +histTruthNbins.txt.IGNORELINES = Cube TEMP = $(OUTPUT)/histTruth.txt +TEMPNBINS = $(OUTPUT)/histTruthNbins.txt include $(ISISROOT)/make/isismake.tsts commands: + # Test without additional arguments $(APPNAME) from=$(INPUT)/isisTruth.cub \ - to= $(TEMP) > /dev/null; + to=$(TEMP) > /dev/null; + + # Test with setting nbins + $(APPNAME) from=$(INPUT)/isisTruth.cub nbins=25\ + to=$(TEMPNBINS) > /dev/null; diff --git a/isis/src/base/objs/Cube/Cube.cpp b/isis/src/base/objs/Cube/Cube.cpp index 5273e29e74..b2cbfb568f 100644 --- a/isis/src/base/objs/Cube/Cube.cpp +++ b/isis/src/base/objs/Cube/Cube.cpp @@ -55,6 +55,7 @@ using namespace std; namespace Isis { + //! Constructs a Cube object. Cube::Cube() { construct(); diff --git a/isis/src/base/objs/Spice/Spice.cpp b/isis/src/base/objs/Spice/Spice.cpp index 2f82d6efa8..4b37800029 100644 --- a/isis/src/base/objs/Spice/Spice.cpp +++ b/isis/src/base/objs/Spice/Spice.cpp @@ -94,6 +94,17 @@ namespace Isis { } + /** + * Constructs a Spice Object + * + * @param lab Isis Cube Pvl Lavel + * @param isd ALE Json ISD + */ + Spice::Spice(Pvl &lab, json isd) { + init(lab, true, isd); + } + + /** * Constructs a Spice Object * @@ -122,6 +133,7 @@ namespace Isis { // Initialize members m_solarLongitude = new Longitude; + m_et = NULL; m_kernels = new QVector; @@ -170,9 +182,9 @@ namespace Isis { *m_endTimePadding = 0.0; } - // We should remove this completely in the near future + // We should remove this completely in the near future m_usingNaif = !lab.hasObject("NaifKeywords") || noTables; - m_usingAle = false; + m_usingAle = false; // Modified to load planetary ephemeris SPKs before s/c SPKs since some // missions (e.g., MESSENGER) may augment the s/c SPK with new planet @@ -185,7 +197,7 @@ namespace Isis { QString msg = "Falling back to ISIS generation of nadir pointing"; throw IException(IException::Programmer, msg, _FILEINFO_); } - + if (isd == NULL){ // try using ALE std::ostringstream kernel_pvl; @@ -194,19 +206,19 @@ namespace Isis { json props; props["kernels"] = kernel_pvl.str(); - isd = ale::load(lab.fileName().toStdString(), props.dump(), "isis"); + isd = ale::load(lab.fileName().toStdString(), props.dump(), "ale"); } - - json aleNaifKeywords = isd["NaifKeywords"]; + + json aleNaifKeywords = isd["naif_keywords"]; m_naifKeywords = new PvlObject("NaifKeywords", aleNaifKeywords); - // Still need to load clock kernels for now + // Still need to load clock kernels for now load(kernels["LeapSecond"], noTables); if ( kernels.hasKeyword("SpacecraftClock")) { load(kernels["SpacecraftClock"], noTables); } - m_usingAle = true; - } + m_usingAle = true; + } catch(...) { // Backup to stadnard ISIS implementation if (noTables) { @@ -227,12 +239,12 @@ namespace Isis { if (kernels.hasKeyword("InstrumentAddendum")) { load(kernels["InstrumentAddendum"], noTables); } - - // Still need to load clock kernels for now + + // Still need to load clock kernels for now load(kernels["LeapSecond"], noTables); if ( kernels.hasKeyword("SpacecraftClock")) { load(kernels["SpacecraftClock"], noTables); - } + } // Modified to load extra kernels last to allow overriding default values // (2010-04-07) (DAC) @@ -240,14 +252,14 @@ namespace Isis { load(kernels["Extra"], noTables); } } - - // Moved the construction of the Target after the NAIF kenels have been loaded or the - // NAIF keywords have been pulled from the cube labels, so we can find target body codes + + // Moved the construction of the Target after the NAIF kenels have been loaded or the + // NAIF keywords have been pulled from the cube labels, so we can find target body codes // that are defined in kernels and not just body codes build into spicelib // TODO: Move this below the else once the rings code below has been refactored m_target = new Target(this, lab); - // This should not be here. Consider having spiceinit add the necessary rings kernels to the + // This should not be here. Consider having spiceinit add the necessary rings kernels to the // Extra parameter if the user has set the shape model to RingPlane. // If Target is Saturn and ShapeModel is RingPlane, load the extra rings pck file // which changes the prime meridian values to report longitudes with respect to @@ -259,9 +271,9 @@ namespace Isis { } else { *m_naifKeywords = lab.findObject("NaifKeywords"); - - // Moved the construction of the Target after the NAIF kenels have been loaded or the - // NAIF keywords have been pulled from the cube labels, so we can find target body codes + + // Moved the construction of the Target after the NAIF kenels have been loaded or the + // NAIF keywords have been pulled from the cube labels, so we can find target body codes // that are defined in kernels and not just body codes build into spicelib // TODO: Move this below the else once the rings code above has been refactored m_target = new Target(this, lab); @@ -344,7 +356,7 @@ namespace Isis { QString naifTarget = "IAU_" + m_target->name().toUpper(); namfrm_c(naifTarget.toLatin1().data(), &frameCode); if (frameCode == 0) { - QString msg = "Can not find NAIF BODY_FRAME_CODE for target [" + QString msg = "Can not find NAIF BODY_FRAME_CODE for target [" + m_target->name() + "]"; throw IException(IException::Io, msg, _FILEINFO_); } @@ -363,7 +375,7 @@ namespace Isis { m_instrumentRotation = new SpiceRotation(*m_ckCode); - // Set up for observer/target and light time correction to between s/c + // Set up for observer/target and light time correction to between s/c // and target body. LightTimeCorrectionState ltState(*m_ikCode, this); ltState.checkSpkKernelsForAberrationCorrection(); @@ -376,11 +388,19 @@ namespace Isis { m_sunPosition = new SpicePosition(10, m_target->naifBodyCode()); + // Check to see if we have nadir pointing that needs to be computed & - // See if we have table blobs to load + // See if we have table blobs to load if (m_usingAle) { - m_sunPosition->LoadCache(isd["SunPosition"]); - m_bodyRotation->LoadCache(isd["BodyRotation"]); + m_sunPosition->LoadCache(isd["sun_position"]); + if (m_sunPosition->cacheSize() > 3) { + m_sunPosition->Memcache2HermiteCache(0.01); + } + m_bodyRotation->LoadCache(isd["body_rotation"]); + m_bodyRotation->MinimizeCache(SpiceRotation::DownsizeStatus::Yes); + if (m_bodyRotation->cacheSize() > 5) { + m_bodyRotation->LoadTimeCache(); + } solarLongitude(); } else if (kernels["TargetPosition"][0].toUpper() == "TABLE") { @@ -421,7 +441,11 @@ namespace Isis { m_instrumentRotation = new SpiceRotation(*m_ikCode, *m_spkBodyCode); } else if (m_usingAle) { - m_instrumentRotation->LoadCache(isd["InstrumentPointing"]); + m_instrumentRotation->LoadCache(isd["instrument_pointing"]); + m_instrumentRotation->MinimizeCache(SpiceRotation::DownsizeStatus::Yes); + if (m_instrumentRotation->cacheSize() > 5) { + m_instrumentRotation->LoadTimeCache(); + } } else if (kernels["InstrumentPointing"][0].toUpper() == "TABLE") { Table t("InstrumentPointing", lab.fileName(), lab); @@ -429,23 +453,27 @@ namespace Isis { } + if (kernels["InstrumentPosition"].size() == 0) { throw IException(IException::Unknown, "No instrument position available", _FILEINFO_); } - + if (m_usingAle) { - m_instrumentPosition->LoadCache(isd["InstrumentPosition"]); + m_instrumentPosition->LoadCache(isd["instrument_position"]); + if (m_instrumentPosition->cacheSize() > 3) { + m_instrumentPosition->Memcache2HermiteCache(0.01); + } } else if (kernels["InstrumentPosition"][0].toUpper() == "TABLE") { Table t("InstrumentPosition", lab.fileName(), lab); m_instrumentPosition->LoadCache(t); } - - + + NaifStatus::CheckErrors(); - } + } /** * Loads/furnishes NAIF kernel(s) @@ -850,9 +878,9 @@ namespace Isis { * spacecraft and sun positions. * * @return @b iTime the currently set ephemeris time - * - * @throws IException::Programmer "Unable to retrieve the time Spice::setTime must be called - * first." + * + * @throws IException::Programmer "Unable to retrieve the time Spice::setTime must be called + * first." */ iTime Spice::time() const { if (m_et == NULL) { @@ -901,7 +929,7 @@ namespace Isis { * @param r[] Radii of the target in kilometers */ void Spice::radii(Distance r[3]) const { - for (int i = 0; i < 3; i++) + for (int i = 0; i < 3; i++) r[i] =m_target->radii()[i]; } @@ -953,7 +981,7 @@ namespace Isis { } /** - * This returns the NAIF body frame code. It is read from the labels, if it + * This returns the NAIF body frame code. It is read from the labels, if it * exists. Otherwise, it's calculated by the init() method. * * @return @b SpiceInt NAIF body frame code @@ -966,7 +994,7 @@ namespace Isis { /** * This returns the PvlObject that stores all of the requested Naif data - * and can be a replacement for furnishing text kernels. + * and can be a replacement for furnishing text kernels. */ PvlObject Spice::getStoredNaifKeywords() const { return *m_naifKeywords; @@ -1015,10 +1043,10 @@ namespace Isis { /** * This converts the spacecraft clock ticks value (clockValue) to an iTime. - * - * If the clock ticks value is provided directly, rather than the spacecraft - * clock string, set clockTicks=true. - * + * + * If the clock ticks value is provided directly, rather than the spacecraft + * clock string, set clockTicks=true. + * * Use this when possible because naif calls (such as scs2e_c) cannot be * called when not using naif. */ @@ -1036,10 +1064,10 @@ namespace Isis { SpiceDouble timeOutput; NaifStatus::CheckErrors(); if (clockTicks) { - sct2e_c(sclkCode, (SpiceDouble) clockValue.toDouble(), &timeOutput); + sct2e_c(sclkCode, (SpiceDouble) clockValue.toDouble(), &timeOutput); } else { - scs2e_c(sclkCode, clockValue.toLatin1().data(), &timeOutput); + scs2e_c(sclkCode, clockValue.toLatin1().data(), &timeOutput); } NaifStatus::CheckErrors(); storedClockTime = timeOutput; @@ -1274,7 +1302,7 @@ namespace Isis { SpiceBoolean found; SpiceDouble subB[3]; - + surfpt_c(originB, usB, a, b, c, subB, &found); SpiceDouble mylon, mylat; @@ -1309,7 +1337,7 @@ namespace Isis { SpiceDouble uuB[3], dist; unorm_c(m_uB, uuB, &dist); std::vector radii = target()->radii(); - + SpiceDouble a = radii[0].kilometers(); SpiceDouble b = radii[1].kilometers(); SpiceDouble c = radii[2].kilometers(); @@ -1362,6 +1390,17 @@ namespace Isis { } + double Spice::sunToBodyDist() const { + std::vector sunPosition = m_sunPosition->Coordinate(); + std::vector bodyRotation = m_bodyRotation->Matrix(); + + double sunPosFromTarget[3]; + mxv_c(&bodyRotation[0], &sunPosition[0], sunPosFromTarget); + + return vnorm_c(sunPosFromTarget); + } + + /** * Computes the solar longitude for the given ephemeris time. If the target * is sky, the longitude is set to -999.0. @@ -1377,15 +1416,50 @@ namespace Isis { } if (m_usingAle) { - double og_time = m_bodyRotation->EphemerisTime(); + double og_time = m_bodyRotation->EphemerisTime(); m_bodyRotation->SetEphemerisTime(et.Et()); m_sunPosition->SetEphemerisTime(et.Et()); - std::vector bodyRotMat = m_bodyRotation->Matrix(); - std::vector sunPos = m_sunPosition->Coordinate(); + std::vector bodyRotMat = m_bodyRotation->Matrix(); + std::vector sunPos = m_sunPosition->Coordinate(); std::vector sunVel = m_sunPosition->Velocity(); double sunAv[3]; + ucrss_c(&sunPos[0], &sunVel[0], sunAv); + + double npole[3]; + for (int i = 0; i < 3; i++) { + npole[i] = bodyRotMat[6+i]; + } + + double x[3], y[3], z[3]; + vequ_c(sunAv, z); + ucrss_c(npole, z, x); + ucrss_c(z, x, y); + + double trans[3][3]; + for (int i = 0; i < 3; i++) { + trans[0][i] = x[i]; + trans[1][i] = y[i]; + trans[2][i] = z[i]; + } + + double pos[3]; + mxv_c(trans, &sunPos[0], pos); + + double radius, ls, lat; + reclat_c(pos, &radius, &ls, &lat); + + *m_solarLongitude = Longitude(ls, Angle::Radians).force360Domain(); + + NaifStatus::CheckErrors(); + m_bodyRotation->SetEphemerisTime(og_time); + m_sunPosition->SetEphemerisTime(og_time); + return; + } + + if (m_bodyRotation->IsCached()) return; + ucrss_c(&sunPos[0], &sunVel[0], sunAv); double npole[3]; @@ -1540,9 +1614,9 @@ namespace Isis { /** * Returns true if time has been initialized. - * + * * @author 2016-10-19 Kristin Berry - * + * * @return @b bool true if time has been set */ bool Spice::isTimeSet(){ @@ -1593,7 +1667,7 @@ namespace Isis { SpiceRotation *Spice::instrumentRotation() const { return m_instrumentRotation; } - + bool Spice::isUsingAle(){ return m_usingAle; } diff --git a/isis/src/base/objs/SpicePosition/SpicePosition.cpp b/isis/src/base/objs/SpicePosition/SpicePosition.cpp index a7f1b6fcc7..0414ed0885 100644 --- a/isis/src/base/objs/SpicePosition/SpicePosition.cpp +++ b/isis/src/base/objs/SpicePosition/SpicePosition.cpp @@ -354,22 +354,22 @@ namespace Isis { } // Load the full cache time information from the label if available - p_fullCacheStartTime = isdPos["SpkTableStartTime"].get(); - p_fullCacheEndTime = isdPos["SpkTableEndTime"].get(); - p_fullCacheSize = isdPos["SpkTableOriginalSize"].get(); - p_cacheTime = isdPos["EphemerisTimes"].get>(); + p_fullCacheStartTime = isdPos["spk_table_start_time"].get(); + p_fullCacheEndTime = isdPos["spk_table_end_time"].get(); + p_fullCacheSize = isdPos["spk_table_original_size"].get(); + p_cacheTime = isdPos["ephemeris_times"].get>(); - for (auto it = isdPos["Positions"].begin(); it != isdPos["Positions"].end(); it++) { + for (auto it = isdPos["positions"].begin(); it != isdPos["positions"].end(); it++) { std::vector pos = {it->at(0).get(), it->at(1).get(), it->at(2).get()}; p_cache.push_back(pos); } p_cacheVelocity.clear(); - bool hasVelocityKey = isdPos.find("Velocities") != isdPos.end(); + bool hasVelocityKey = isdPos.find("velocities") != isdPos.end(); if (hasVelocityKey) { - for (auto it = isdPos["Velocities"].begin(); it != isdPos["Velocities"].end(); it++) { + for (auto it = isdPos["velocities"].begin(); it != isdPos["velocities"].end(); it++) { std::vector vel = {it->at(0).get(), it->at(1).get(), it->at(2).get()}; p_cacheVelocity.push_back(vel); } diff --git a/isis/src/base/objs/SpicePosition/SpicePosition.h b/isis/src/base/objs/SpicePosition/SpicePosition.h index e770949877..f727d4553a 100644 --- a/isis/src/base/objs/SpicePosition/SpicePosition.h +++ b/isis/src/base/objs/SpicePosition/SpicePosition.h @@ -250,6 +250,11 @@ namespace Isis { return (p_cache.size() > 0); }; + //! Get the size of the current cached positions + int cacheSize() const { + return p_cache.size(); + }; + void SetPolynomial(const Source type = PolyFunction); void SetPolynomial(const std::vector& XC, diff --git a/isis/src/base/objs/SpicePosition/SpicePosition.truth b/isis/src/base/objs/SpicePosition/SpicePosition.truth index faaf3dc128..6592dd3bbc 100644 --- a/isis/src/base/objs/SpicePosition/SpicePosition.truth +++ b/isis/src/base/objs/SpicePosition/SpicePosition.truth @@ -62,6 +62,7 @@ Velocity (J) = -3.5732696 1.5440214 -2.5639247 Time = -69382512 Spacecraft (J) = -2908.5545 -1132.3409 1981.0142 Velocity (J) = -3.4897306 1.5779899 -2.6234689 +Cache Size: 10 Testing tables ... Time = -69382819 diff --git a/isis/src/base/objs/SpicePosition/unitTest.cpp b/isis/src/base/objs/SpicePosition/unitTest.cpp index d4fc022012..ba367d4dad 100644 --- a/isis/src/base/objs/SpicePosition/unitTest.cpp +++ b/isis/src/base/objs/SpicePosition/unitTest.cpp @@ -61,6 +61,7 @@ int main(int argc, char *argv[]) { cout << "Spacecraft (J) = " << p[0] << " " << p[1] << " " << p[2] << endl; cout << "Velocity (J) = " << v[0] << " " << v[1] << " " << v[2] << endl; } + std::cout << "Cache Size: " << pos.cacheSize() << '\n'; cout << endl; // Test table options @@ -296,11 +297,11 @@ int main(int argc, char *argv[]) { // Test loading cache from an ALE ISD without velocities cout << "Test loading cache from an ALE ISD with velocities" << endl; - json aleIsd = {{"SpkTableStartTime" , -10.0}, - {"SpkTableEndTime" , 10.0}, - {"SpkTableOriginalSize" , 3}, - {"EphemerisTimes" , {-10.0, 0.0, 10.0}}, - {"Positions" , {{-10.0, -10.0, -10.0}, + json aleIsd = {{"spk_table_start_time" , -10.0}, + {"spk_table_end_time" , 10.0}, + {"spk_table_original_size" , 3}, + {"ephemeris_times" , {-10.0, 0.0, 10.0}}, + {"positions" , {{-10.0, -10.0, -10.0}, {0.0, 0.0, 0.0}, {10.0, 10.0, 10.0}}}}; SpicePosition alePos(-94, 499); @@ -319,7 +320,7 @@ int main(int argc, char *argv[]) { // Test loading cache from an ALE ISD with velocities cout << "Test loading cache from an ALE ISD with velocities" << endl; json aleVelIsd = aleIsd; - aleVelIsd["Velocities"] = {{1.0, 1.0, 1.0}, + aleVelIsd["velocities"] = {{1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}}; SpicePosition aleVelPos(-94, 499); diff --git a/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp b/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp index 7b335bacfb..d21091e021 100644 --- a/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp +++ b/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp @@ -429,32 +429,32 @@ namespace Isis { m_frameType = CK; // Load the full cache time information from the label if available - p_fullCacheStartTime = isdRot["CkTableStartTime"].get(); - p_fullCacheEndTime = isdRot["CkTableEndTime"].get(); - p_fullCacheSize = isdRot["CkTableOriginalSize"].get(); - p_cacheTime = isdRot["EphemerisTimes"].get>(); - p_timeFrames = isdRot["TimeDependentFrames"].get>(); + p_fullCacheStartTime = isdRot["ck_table_start_time"].get(); + p_fullCacheEndTime = isdRot["ck_table_end_time"].get(); + p_fullCacheSize = isdRot["ck_table_original_size"].get(); + p_cacheTime = isdRot["ephemeris_times"].get>(); + p_timeFrames = isdRot["time_dependent_frames"].get>(); - for (auto it = isdRot["Quaternions"].begin(); it != isdRot["Quaternions"].end(); it++) { + for (auto it = isdRot["quaternions"].begin(); it != isdRot["quaternions"].end(); it++) { std::vector quat = {it->at(0).get(), it->at(1).get(), it->at(2).get(), it->at(3).get()}; Quaternion q(quat); std::vector CJ = q.ToMatrix(); p_cache.push_back(CJ); } - if (isdRot["AngularVelocity"].size() != 0) { - for (auto it = isdRot["AngularVelocity"].begin(); it != isdRot["AngularVelocity"].end(); it++) { + if (isdRot["angular_velocities"].size() != 0) { + for (auto it = isdRot["angular_velocities"].begin(); it != isdRot["angular_velocities"].end(); it++) { std::vector av = {it->at(0).get(), it->at(1).get(), it->at(2).get()}; p_cacheAv.push_back(av); } p_hasAngularVelocity = true; } - bool hasConstantFrames = isdRot.find("ConstantFrames") != isdRot.end(); + bool hasConstantFrames = isdRot.find("constant_frames") != isdRot.end(); if (hasConstantFrames) { - p_constantFrames = isdRot["ConstantFrames"].get>(); - p_TC = isdRot["ConstantRotation"].get>(); + p_constantFrames = isdRot["constant_frames"].get>(); + p_TC = isdRot["constant_rotation"].get>(); } else { diff --git a/isis/src/base/objs/SpiceRotation/SpiceRotation.h b/isis/src/base/objs/SpiceRotation/SpiceRotation.h index 4fac02f418..8effc6eef7 100644 --- a/isis/src/base/objs/SpiceRotation/SpiceRotation.h +++ b/isis/src/base/objs/SpiceRotation/SpiceRotation.h @@ -425,6 +425,10 @@ namespace Isis { void checkForBinaryPck(); + int cacheSize() { + return p_cache.size(); + } + protected: void SetFullCacheParameters(double startTime, double endTime, int cacheSize); void setEphemerisTimeMemcache(); diff --git a/isis/src/base/objs/SpiceRotation/SpiceRotation.truth b/isis/src/base/objs/SpiceRotation/SpiceRotation.truth index 5978be72bd..de5c26eef0 100644 --- a/isis/src/base/objs/SpiceRotation/SpiceRotation.truth +++ b/isis/src/base/objs/SpiceRotation/SpiceRotation.truth @@ -93,6 +93,7 @@ CJ(9) = -0.61729588 0.4060182 -0.67386573 0.010223693 0.86060645 0.50916796 0.78666465 0.30741789 -0.53539982 av(9) = -1.2932496e-05 -0.0010747293 -0.00063276804 +Cache Size: 10 Testing with functions ... Source = 3 diff --git a/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_13.truth b/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_13.truth index dd0c2fcebc..a8558bd9b8 100644 --- a/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_13.truth +++ b/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_13.truth @@ -93,6 +93,7 @@ CJ(9) = -0.61729588 0.4060182 -0.67386573 0.010223693 0.86060645 0.50916796 0.78666465 0.30741789 -0.53539982 av(9) = -1.2932496e-05 -0.0010747293 -0.00063276804 +Cache Size: 10 Testing with functions ... Source = 3 diff --git a/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_15.truth b/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_15.truth index dd0c2fcebc..a8558bd9b8 100644 --- a/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_15.truth +++ b/isis/src/base/objs/SpiceRotation/SpiceRotation_Darwin_x86_64_MacOSX10_15.truth @@ -93,6 +93,7 @@ CJ(9) = -0.61729588 0.4060182 -0.67386573 0.010223693 0.86060645 0.50916796 0.78666465 0.30741789 -0.53539982 av(9) = -1.2932496e-05 -0.0010747293 -0.00063276804 +Cache Size: 10 Testing with functions ... Source = 3 diff --git a/isis/src/base/objs/SpiceRotation/unitTest.cpp b/isis/src/base/objs/SpiceRotation/unitTest.cpp index 93eb4171ad..0097f78bff 100644 --- a/isis/src/base/objs/SpiceRotation/unitTest.cpp +++ b/isis/src/base/objs/SpiceRotation/unitTest.cpp @@ -102,6 +102,7 @@ int main(int argc, char *argv[]) { cout << "av(" << i << ") = " << av[0] << " " << av[1] << " " << av[2] << endl; } } + std::cout << "Cache Size: " << rot.cacheSize() << '\n'; cout << endl; // Save off cache for polynomial over SPICE test @@ -620,12 +621,12 @@ int main(int argc, char *argv[]) { // [-90, 0, 0], // [-90, 180, 0], // [-90, 180, 90] - json aleQuatIsd = {{"CkTableStartTime" , 0.0}, - {"CkTableEndTime" , 3.0}, - {"CkTableOriginalSize" , 4}, - {"EphemerisTimes" , {0.0, 1.0, 2.0, 3.0}}, - {"TimeDependentFrames" , {-94031, 10014, 1}}, - {"Quaternions" , {{0.0, 0.0, 0.0, 1.0}, + json aleQuatIsd = {{"ck_table_start_time" , 0.0}, + {"ck_table_end_time" , 3.0}, + {"ck_table_original_size" , 4}, + {"ephemeris_times" , {0.0, 1.0, 2.0, 3.0}}, + {"time_dependent_frames" , {-94031, 10014, 1}}, + {"quaternions" , {{0.0, 0.0, 0.0, 1.0}, {-1.0 / sqrt(2), 0.0, 0.0, 1.0 / sqrt(2)}, {0.0, 1.0 / sqrt(2), 1.0 / sqrt(2), 0.0}, {-0.5, -0.5, 0.5, 0.5}}}}; @@ -644,7 +645,7 @@ int main(int argc, char *argv[]) { cout << " }" << endl; vector constChain = aleQuatRot.ConstantFrameChain(); cout << "Time dependent frame chain = { "; - for (unsigned int i = 0; i < constChain.size(); i++) { + for (int i = 0; i < constChain.size(); i++) { if (i > 0) { cout << ", "; } @@ -664,10 +665,10 @@ int main(int argc, char *argv[]) { cout << endl << endl << "Testing loading cache from ALE ISD with time dependent quaternions and AV ..." << endl; SpiceRotation aleQuatAVRot(-94031); json aleQuatAVIsd(aleQuatIsd); - aleQuatAVIsd["AngularVelocity"] = {{-Isis::PI / 2, 0.0, 0.0}, - {0.0, Isis::PI, 0.0}, - {0.0, 0.0, Isis::PI / 2}, - {0.0, 0.0, Isis::PI / 2}}; + aleQuatAVIsd["angular_velocities"] = {{-Isis::PI / 2, 0.0, 0.0}, + {0.0, Isis::PI, 0.0}, + {0.0, 0.0, Isis::PI / 2}, + {0.0, 0.0, Isis::PI / 2}}; aleQuatAVRot.LoadCache(aleQuatAVIsd); cout << "Has AV? " << (aleQuatAVRot.HasAngularVelocity() ? "Yes" : "No") << endl; @@ -675,13 +676,13 @@ int main(int argc, char *argv[]) { cout << endl << endl << "Testing loading cache from ALE ISD with time dependent quaternions and constant rotation ..." << endl; SpiceRotation aleQuatConstRot(-94031); json aleQuatConstIsd(aleQuatIsd); - aleQuatConstIsd["TimeDependentFrames"] = {-94030, 10014, 1}; - aleQuatConstIsd["ConstantFrames"] = {-94031, -94030}; - aleQuatConstIsd["ConstantRotation"] = {1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0}; + aleQuatConstIsd["time_dependent_frames"] = {-94030, 10014, 1}; + aleQuatConstIsd["constant_frames"] = {-94031, -94030}; + aleQuatConstIsd["constant_rotation"] = {1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0}; aleQuatConstRot.LoadCache(aleQuatConstIsd); timeDepChain = aleQuatConstRot.TimeFrameChain(); cout << "Time dependent frame chain = { "; - for (unsigned int i = 0; i < timeDepChain.size(); i++) { + for (int i = 0; i < timeDepChain.size(); i++) { if (i > 0) { cout << ", "; } @@ -690,7 +691,7 @@ int main(int argc, char *argv[]) { cout << " }" << endl; constChain = aleQuatConstRot.ConstantFrameChain(); cout << "Time dependent frame chain = { "; - for (unsigned int i = 0; i < constChain.size(); i++) { + for (int i = 0; i < constChain.size(); i++) { if (i > 0) { cout << ", "; } diff --git a/isis/src/docsys/build/Installation.xsl b/isis/src/docsys/build/Installation.xsl index e1b67d8a94..3679a8bc3a 100644 --- a/isis/src/docsys/build/Installation.xsl +++ b/isis/src/docsys/build/Installation.xsl @@ -1,7 +1,7 @@ - - @@ -104,13 +104,13 @@ Deborah Lee Soltesz

- See the ISIS 3 Installation Guide - for instructions on downloading and installing ISIS 3. + See the ISIS Installation Guide + for instructions on downloading and installing ISIS 3.6 and later.

See the Legacy ISIS 3 Installation Guide - for instructions on downloading and installing versions of ISIS3 3.5.2 and earlier. + for instructions on downloading and installing versions of ISIS3 3.5.2 and earlier.

@@ -297,4 +297,3 @@ Deborah Lee Soltesz - diff --git a/isis/src/docsys/build/homepage.xml b/isis/src/docsys/build/homepage.xml index 725aed8532..1a41d138aa 100644 --- a/isis/src/docsys/build/homepage.xml +++ b/isis/src/docsys/build/homepage.xml @@ -25,10 +25,10 @@

Welcome

- This is the home page for ISIS, a digital image processing software - package. The focus of the software is to manipulate imagery collected - by current and past NASA and International planetary missions sent - throughout our Solar System. + This is the home page for ISIS, a digital image processing software + package. The focus of the software is to manipulate imagery collected + by current and past NASA and International planetary missions sent + throughout our Solar System.

Announcements

@@ -38,6 +38,14 @@
+

Request for comments

+

+ Major changes to how ISIS works are now handled through Requests for Comment (RFCs). + These are a venue for the user community to voice their opinions on how they would + like the software to work. + Currently open RFCs can be found on the + ISIS Github. +

Popular Destinations

diff --git a/isis/src/docsys/documents/InstallGuide/InstallGuide.xml b/isis/src/docsys/documents/InstallGuide/InstallGuide.xml index 8c7047c6cb..c73152846e 100644 --- a/isis/src/docsys/documents/InstallGuide/InstallGuide.xml +++ b/isis/src/docsys/documents/InstallGuide/InstallGuide.xml @@ -22,513 +22,20 @@ you must not upgrade the ISIS Data Files!!!

--> -

Overview

+

+ See the ISIS Installation Guide + for instructions on downloading and installing ISIS 3.6 and later. +

-

- This installation guide is for ISIS3 users interested in installing ISIS3 (3.6.0)+ through conda. - If you are a developer, we refer you to our GitHub repository. -

+

+ See the Legacy ISIS 3 Installation Guide + for instructions on downloading and installing versions of ISIS 3.5.2 and earlier. +

- -

ISIS3 Installation With Conda

-
    -
  1. Download either the Anaconda or Miniconda installation script for your OS platform. Anaconda is a much larger distribtion of packages supporting scientific python, while Miniconda is a minimal installation and not as large: - Anaconda installer, Miniconda installer
  2. - -
  3. If you are running on some variant of Linux, open a terminal window in the directory where you downloaded the script, and run the following commands. In this example, we chose to do a full install of Anaconda, and our OS is Linux-based. Your file name may be different depending on your environment. -
    -          chmod +x Anaconda3-5.2.0-Linux-x86_64.sh
    -          ./Anaconda3-5.2.0-Linux-x86_64.sh
    -        
    - - This will start the Anaconda installer which will guide you through the installation process.
  4. - -
  5. If you are running Mac OS X, a pkg file (which looks similar to Anaconda3-5.3.0-MacOSX-x86_64.pkg) will be downloaded. Double-click on the file to start the installation process.
  6. - -
  7. After the installation has finished, open up a bash prompt in your terminal window.
  8. - -
  9. Next setup your Anaconda environment for ISIS3. In the bash prompt, run the following commands: -
    -          #Create a new conda environment to install ISIS3 in
    -          conda create -n isis3 python=3.6
    -
    -          #Activate the environment
    -          #Depending on your OS, you may need to use conda activate isis3 instead
    -          source activate isis3
    -
    -          #Add the following channels to the environment
    -          conda config --env --add channels conda-forge
    -          conda config --env --add channels usgs-astrogeology
    -
    -          #Verify you have the correct channels:
    -          conda config --show channels
    -
    -          #You should see:
    -
    -          channels:
    -             - usgs-astrogeology
    -             - conda-forge
    -             - defaults
    -
    -          #The order is important.  If conda-forge is before usgs-astrogeology, you will need to run:
    -
    -          conda config --env --add channels usgs-astrogeology
    -        
  10. - -
  11. The environment is now ready to download ISIS3 and its dependencies: -
    -          conda install -c usgs-astrogeology isis3
    -        
  12. - -
  13. Finally, setup the environment variables: -
    -          #Execute the ISIS3 variable initialization script with default arguments.
    -          #This script prepares default values for:  $ISISROOT/$ISISDATA/$ISISTESTDATA
    -
    -          python $CONDA_PREFIX/scripts/isis3VarInit.py
    -        
    - - Executing this script with no arguments will result in $ISISDATA=$CONDA_PREFIX/data, - and $ISISTESTDATA=$CONDA_PREFIX/testdata. The user can specify different directories - for both of these optional values: -
    -          python $CONDA_PREFIX/scripts/isis3VarInit.py --data-dir=[path to data directory]  --test-dir=[path to test data directory]
    -        
    - - More information about the ISISDATA environment variable and the ISIS3 Data Area - can be found here. - - Now everytime the isis3 environment is activated, $ISISROOT, $ISISDATA, and $ISISTESTDATA - will be set to the values passed to isis3VarInit.py. This does not happen retroactively, - re-activate the isis3 envionment with the following command: -
    -          #Depending on your OS, you may need to use conda activate isis3 instead
    -          source activate isis3
    -        
  14. -
- - -

Operating System Requirements

-

ISIS3 runs on many UNIX variants. ISIS does not run natively on MS Windows, - although it has been successfully run on Windows 10 using the Windows - Subsystem for Linux (WSL). Instructions for doing this can be found - here. - - The UNIX variants ISIS3 has been successfully built on are:

-
    -
  • Ubuntu 18.04 LTS
  • -
  • Mac OS X 10.13.6 High Sierra
  • -
  • Fedora 28
  • -
  • CentOS 7.2
  • -
- -

- ISIS3 may be run on other Linux or macOS operating systems then those listed above, - but it has not been tested and is not supported. -

- - -

Hardware Requirements

-

Here are the minimum hardware requirements

-
    -
  • 64-bit (x86) processors
  • -
  • 2 GB RAM
  • -
  • 2.5 GB of disk space for ISIS3 binaries
  • -
  • 10 GB to 510 GB disk space for ISIS3 data
  • -
  • 10 GB to many TB disk space for processing images
  • -
  • A quality graphics card
  • -
- -

To build and compile ISIS3 requires following the instructions listed below, which are given on - the GitHub wiki page for the ISIS3 project: -

-

- - - -

Running ISIS3 on Windows 10

- -

- While the ISIS3 development team has not examined these - instructions for correctness or completeness, they appear to have - successfully worked for a number of ISIS3 users within the USGS who run Windows. - Thanks for these instructions are directed towards Trent Hare who maintains an - excellent and thoughtful blog on Planetary GIS Science. -

- - -

Setting Up X11 forwarding on Windows with Putty and Xming

-

-Some ISIS3 users prefer to run ISIS3 in Windows, but SSH into a computer -that is running ISIS3 and has enabled X11 forwarding. This requires the -installation of an X server on Windows. Below are links to two popular choices -in Astrogeology. -

- -

-Additionally, a Windows SSH client is required to create an SSH connection. PuTTY -is a popular choice and may be downloaded below. -

- - - -

The ISIS3 Data Area

- -

Ancillary Data

-

Many ISIS3 applications require ancillary data. For example, ingestion applications require - translation tables to convert labels, calibration applications require flat files to do - flat field correct, and map projection applications require DTMs to accurately compute intersections. - Due to its size, this data is stored in a separate directory called the ISIS3 Data Area. Any - location can be used for the ISIS3 Data Area, the software simply requires that the ISISDATA - environment variable is set to its location. -

- -

Structure of the ISIS3 Data Area

-

Under the root directory of the ISIS3 Data Area pointed to by the ISISDATA environment - variable are a variety of sub-directories. Each mission supported by ISIS3 has a sub-directory - that contains mission specific processing data such as flat files and mission specific SPICE. - There are also data areas used by more generic applications. These sub-directories contain - everything from templates to test data. -

- -

Size of the ISIS3 Data Area

-

If you plan to work with data from all missions, then the download will require about 520 GB - for all the ancillary data. However, most of this volume is taken up by SPICE files. We have a - SPICE Web service that can be used in lieu of downloading all of - the SPICE files. This reduces the total download size to about 10 GB. -

- - -

Full ISIS3 Data Area Download

- -

The ISIS3 Data Area is hosted on rsync servers and not through conda channels like the - ISIS3 binaries. This requires using the rsync command from within a terminal window within - your Unix distribution, or from within WSL if running Windows 10. Downloading all mission - data requires over 520 GB of disk space. If you want to acquire only certain mission data - click here. To download all ISIS3 data files, continue reading. -

- -

To download all ISIS3 data, enter the following commands in the location where you want - to install the ISIS3 Data Area: -

- -
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/ .
-      
- -

Note: The above command downloads all ISIS data including the required base data area - and all of the optional missiondata areas. -

- - - -

Partial Download of ISIS3 Base Data (Required)

-

The base data area is separate from the source code. This data area is crucial to ISIS3 and - must be downloaded. -

- -
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/base .
-      
- -

Partial Download of Mission Specific Data

- - -

There are many missions supported by ISIS. If you are only working with a few missions - then you should download only those specific sub-directories of the ISIS3 Data Area. One way - you can save time and space is to not download the SPICE data for the mission you need. - If you choose to not download the SPICE data, read the next section about the SPICE Web Service - that provides instructions for excluding the SPICE kernels. Otherwise - jump to the mission specific sections. -

- - - -

ISIS SPICE Web Service

- -

ISIS can now use a service to retrieve the SPICE data for all instruments ISIS supports - via the internet. To use this service instead of your local SPICE data, click the WEB check box - in the spiceinit program GUI or type spiceinit web=yes at the command line. Using the ISIS SPICE - Web Service will significantly reduce the size of the downloads from our data area. - - If you want to use this service, without having to download all the SPICE data, add the - following argument to the mission-specific rsync command: -

- -
-      --exclude='kernels'
-      
-

For example, the following command will download the Cassini mission data except for SPICE kernels: -

- -
-      cd $ISISDATA
-      rsync -azv --exclude='kernels' --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/cassini .
-      
- - - WARNING: Some instruments require mission data to be present for calibration, which may - not be supported by the SPICE Web Server exclusively, and some programs that are designed - to run an image from ingestion through the mapping phase do not have an option to use the - SPICE Web Service. For information specific to an instrument, see the documentation for - radiometric callobration programs. - - - -

Apollo Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/apollo15 .
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/apollo16 .
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/apollo17 .
-      
- - -

Cassini Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/cassini .
-      
- - -

Chandrayaan Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/chandrayaan1 .
-      
- - -

Clementine Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/clementine1 .
-      
- - -

Dawn Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/dawn .
-      
- - -

ExoMars Trace Gas Orbiter Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/tgo .
-      
- - -

Galileo Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/galileo .
-      
- - -

Hayabusa Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/hayabusa .
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/hayabusa2 .
-      
- - -

Juno Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/juno .
-      
- - -

Kaguya Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/kaguya .
-      
- - -

Lunar Orbiter Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/lo .
-      
- - -

Lunar Reconnaissance Orbiter Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/lro .
-      
- - -

Mars Exploration Rover Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mer .
-      
- - -

Mariner10 Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mariner10 .
-      
- - -

Messenger Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/messenger .
-      
- - -

Mars Express Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mex .
-      
- - -

Mars Global Surveyor Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mgs .
-      
- - -

Mars Reconnaissance Orbiter Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mro .
-      
- - -

Mars Odyssey Mission (kernels can be excluded): -

-
-        cd $ISISDATA
-        rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/odyssey .
-        
- - -

Near Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/near .
-      
- - -

New Horizons Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/newhorizons .
-      
- - -

Odyssey Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/odyssey .
-      
- - -

Rolo Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/rolo .
-      
- - -

Rosetta Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/rosetta .
-      
- - -

Smart1 Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/smart1 .
-      
- - -

Viking Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/viking1 .
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/viking2 .
-      
- - -

Voyager Mission (kernels can be excluded): -

-
-      cd $ISISDATA
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/voyager1 .
-      rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/voyager2 .
-      
- -

Installing older versions of ISIS

-

How do I install ISIS2?

-

- If you are looking for ISIS2, please - refer to the ISIS 2 Installation - Guide for instructions on downloading and installing ISIS 2. -

- -

How do I install ISIS3.5.2 or earlier?

-

- If you are looking for a version of ISIS3 prior to 3.6.0, please - refer to the Legacy ISIS3 Installation - Guide for instructions on downloading and installing ISIS3, versions prior to 3.6.0. -

+

+ Refer to the ISIS 2 Installation Guide + for instructions on downloading and installing ISIS 2. +

@@ -548,6 +55,7 @@ is a popular choice and may be downloaded below. Original Version Updated version to incorporate installation through Conda Updated version after feedback was received from outside users. + Changed to point to Github and legacy install guide. @@ -555,8 +63,7 @@ is a popular choice and may be downloaded below. Installing ISIS Downloading and installing ISIS3 - This document describes how to download/compile and install a - binary version of ISIS3 as well + This document describes how to download and install ISIS3 ASC Development Team 2018-08-28 diff --git a/isis/src/docsys/documents/LegacyInstallGuide/LegacyInstallGuide.xml b/isis/src/docsys/documents/LegacyInstallGuide/LegacyInstallGuide.xml index 36950f49b0..47084016d4 100644 --- a/isis/src/docsys/documents/LegacyInstallGuide/LegacyInstallGuide.xml +++ b/isis/src/docsys/documents/LegacyInstallGuide/LegacyInstallGuide.xml @@ -643,11 +643,12 @@ you must not upgrade the ISIS Data Files!!! and how to tell what shell a user is using to the UNIX Enviroment Setup section. Fixes #5372.
Updated for latest supported Fedora version (Fedora25). Removed references to deprecated Java-based installer and split off into a new Legacy ISIS3 installation instructions page. + Fixed version spacing to be a little more consistant. - Installing Legacy Versions of ISIS3 - Downloading and installing ISIS 3 versions 3.5.2.0 and earlier + Installing Legacy Versions of ISIS3 + Downloading and installing ISIS versions 3.5.2.0 and earlier This document describes how to download and install a binary version of ISIS. diff --git a/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncArchive.trn b/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncArchive.trn index 4498b0e25f..4374e5021a 100755 --- a/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncArchive.trn +++ b/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncArchive.trn @@ -14,8 +14,9 @@ Group = ProducerId End_Group Group = L0FileName - Auto + Auto InputKey = P_L0NAME + InputKey = L0FILE InputPosition = FitsLabels OutputName = L0FileName OutputPosition = (Object, IsisCube, Group, Archive) @@ -94,6 +95,7 @@ End_Group # AMICA calls this one "ImageNumber" Group = ImageNumber Auto + Optional InputKey = P_IMGID InputPosition = FitsExtras OutputName = ImageNumber diff --git a/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncInstrument.trn b/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncInstrument.trn index 68da05521b..8f3f737a63 100755 --- a/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncInstrument.trn +++ b/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncInstrument.trn @@ -16,6 +16,7 @@ End_Group Group = InstrumentId Auto InputKey = P_NAME + InputKey = NAIFNAME InputPosition = FitsLabels OutputName = InstrumentId OutputPosition = (Object, IsisCube, Group, Instrument) @@ -79,6 +80,7 @@ End_Group Group = ExposureDuration Auto InputKey = EXPOSURE + InputKey = XPOSURE InputPosition = FitsLabels OutputName = ExposureDuration OutputPosition = (Object, IsisCube, Group, Instrument) @@ -88,6 +90,7 @@ End_Group Group = SpacecraftClockStartCount Auto InputKey = P_SCCSC + InputKey = SCCL-BEG InputPosition = FitsLabels OutputName = SpacecraftClockStartCount OutputPosition = (Object, IsisCube, Group, Instrument) @@ -97,6 +100,7 @@ End_Group Group = SpacecraftClockEndCount Auto InputKey = P_SCCEC + InputKey = SCCL-END InputPosition = FitsLabels OutputName = SpacecraftClockStartCount OutputPosition = (Object, IsisCube, Group, Instrument) @@ -116,6 +120,7 @@ End_Group #s/c counter at data recorded time Group = OnboardDataRecordedTime Auto + Optional InputKey = P_RECTI InputPosition = FitsExtras OutputName = OnboardDataRecordedTime @@ -126,6 +131,7 @@ End_Group Group = Binning Auto InputKey = P_BINN + InputKey = NPIXBIN InputPosition = FitsLabels OutputName = Binning OutputPosition = (Object, IsisCube, Group, Instrument) @@ -136,6 +142,7 @@ End_Group Group = SelectedImageAreaX1 Auto InputKey = P_OPOSX1 + InputKey = ROI_LLX InputPosition = FitsLabels OutputName = SelectedImageAreaX1 OutputPosition = (Object, IsisCube, Group, Instrument) @@ -145,6 +152,7 @@ End_Group Group = SelectedImageAreaY1 Auto InputKey = P_OPOSY1 + InputKey = ROI_LLY InputPosition = FitsLabels OutputName = SelectedImageAreaY1 OutputPosition = (Object, IsisCube, Group, Instrument) @@ -153,7 +161,9 @@ End_Group Group = SelectedImageAreaX2 Auto + Optional InputKey = P_OPOSX2 + InputKey = ROI_URX InputPosition = FitsLabels OutputName = SelectedImageAreaX2 OutputPosition = (Object, IsisCube, Group, Instrument) @@ -162,7 +172,9 @@ End_Group Group = SelectedImageAreaY2 Auto + Optional InputKey = P_OPOSY2 + InputKey = ROI_URY InputPosition = FitsLabels OutputName = SelectedImageAreaY2 OutputPosition = (Object, IsisCube, Group, Instrument) @@ -171,6 +183,7 @@ End_Group Group = SelectedImageAreaX3 Auto + Optional InputKey = P_OPOSX3 InputPosition = FitsLabels OutputName = SelectedImageAreaX3 @@ -180,6 +193,7 @@ End_Group Group = SelectedImageAreaY3 Auto + Optional InputKey = P_OPOSY3 InputPosition = FitsLabels OutputName = SelectedImageAreaY3 @@ -190,6 +204,7 @@ End_Group Group = SelectedImageAreaX4 Auto InputKey = P_OPOSX4 + InputKey = ROI_URX InputPosition = FitsLabels OutputName = SelectedImageAreaX4 OutputPosition = (Object, IsisCube, Group, Instrument) @@ -199,6 +214,7 @@ End_Group Group = SelectedImageAreaY4 Auto InputKey = P_OPOSY4 + InputKey = ROI_URY InputPosition = FitsLabels OutputName = SelectedImageAreaY4 OutputPosition = (Object, IsisCube, Group, Instrument) @@ -217,6 +233,7 @@ End_Group Group = OffsetCorrection Auto InputKey = OFFSETCR + InputKey = AOFFSET InputPosition = FitsLabels OutputName = OffsetCorrection OutputPosition = (Object, IsisCube, Group, Instrument) @@ -235,6 +252,7 @@ End_Group Group = RadianceConversion Auto InputKey = RADIANCE + InputKey = RADCONV InputPosition = FitsLabels OutputName = RadianceConversion OutputPosition = (Object, IsisCube, Group, Instrument) @@ -262,6 +280,7 @@ End_Group Group = L2BFlatFileName Auto InputKey = L2BFLTFN + InputKey = FLATFN InputPosition = FitsLabels OutputName = L2BFlatFileName OutputPosition = (Object, IsisCube, Group, Instrument) @@ -270,6 +289,7 @@ End_Group Group = L2BSystemEfficiencyFileName Auto + Optional InputKey = L2BEFCFN InputPosition = FitsLabels OutputName = L2BSystemEfficiencyFileName @@ -280,6 +300,7 @@ End_Group Group = L2CShapeModelFileName Auto InputKey = L2CSHPFN + InputKey = SHAPEFN InputPosition = FitsLabels OutputName = L2CShapeModelFileName OutputPosition = (Object, IsisCube, Group, Instrument) @@ -289,6 +310,7 @@ End_Group Group = L2DPhaseFunctionFileName Auto InputKey = L2DPHSFN + InputKey = PHASEFN InputPosition = FitsLabels OutputName = L2DPhaseFunctionFileName OutputPosition = (Object, IsisCube, Group, Instrument) @@ -298,6 +320,7 @@ End_Group Group = L2DShapeModelFileName Auto InputKey = L2DSHPFN + InputKey = SHAPEFN InputPosition = FitsLabels OutputName = L2DShapeModelFileName OutputPosition = (Object, IsisCube, Group, Instrument) @@ -307,6 +330,7 @@ End_Group # the following image ID is assigned by the onboard image processor: Group = ImageID Auto + Optional InputKey = P_IMGID InputPosition = FitsExtras OutputName = ImageID @@ -465,20 +489,21 @@ End_Group Group = Compression Auto InputKey = P_CMPSTY + InputKey = IMGCMPRV InputPosition = FitsLabels OutputName = Compression OutputPosition = (Object, IsisCube, Group, Instrument) Translation = (*, *) End_Group -# Distance from sun to Hayabusa2 -Group = SolarDistance - Auto - InputKey = S_DISTRS - InputPosition = FitsLabels - OutputName = SolarDistance - OutputPosition = (Object, IsisCube, Group, Instrument) - Translation = (*, *) +# Distance from sun to Hayabusa2 +Group = SolarDistance + Auto + InputKey = S_DISTRS + InputPosition = FitsLabels + OutputName = SolarDistance + OutputPosition = (Object, IsisCube, Group, Instrument) + Translation = (*, *) End_Group End diff --git a/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncKernels.trn b/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncKernels.trn index 57a120bab5..4516171643 100755 --- a/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncKernels.trn +++ b/isis/src/hayabusa2/apps/hyb2onc2isis/Hayabusa2OncKernels.trn @@ -7,6 +7,7 @@ Group = NaifCode Auto Optional InputKey = P_ID + InputKey = NAIFID InputPosition = FitsLabels OutputName = NaifFrameCode OutputPosition = (Object, IsisCube, Group, Kernels) diff --git a/isis/src/hayabusa2/apps/hyb2onc2isis/main.cpp b/isis/src/hayabusa2/apps/hyb2onc2isis/main.cpp index a95c241168..7fc770723c 100644 --- a/isis/src/hayabusa2/apps/hyb2onc2isis/main.cpp +++ b/isis/src/hayabusa2/apps/hyb2onc2isis/main.cpp @@ -9,5 +9,108 @@ using namespace Isis; void IsisMain () { UserInterface &ui = Application::GetUserInterface(); - hyb2onc2isis(ui); + importFits.setFitsFile(FileName(ui.GetFileName("FROM"))); + importFits.setProcessFileStructure(0); + + Cube *outputCube = importFits.SetOutputCube("TO"); + + // Get the directory where the Hayabusa translation tables are. + QString transDir = "$ISISROOT/appdata/translations/"; + + // Create a PVL to store the translated labels in + Pvl outputLabel; + + // Get the FITS label + Pvl fitsLabel; + fitsLabel.addGroup(importFits.fitsImageLabel(0)); + try { + fitsLabel.addGroup(importFits.extraFitsLabel(0)); + } + catch (IException &e) { + QString msg = "Input file [" + FileName(ui.GetFileName("FROM")).expanded() + + "] does not appear to be a Hayabusa2/ONC label file."; + throw IException(e, IException::Unknown, msg, _FILEINFO_); + } + + QString instid; + QString missid; + try { + instid = fitsLabel.findGroup("FitsLabels").findKeyword("INSTRUME")[0]; + missid = fitsLabel.findGroup("FitsLabels").findKeyword ("SPCECRFT")[0]; + } + catch (IException &e) { + QString msg = "Unable to read instrument ID, [INSTRUME], or spacecraft ID, [SPCECRFT], " + "from input file [" + FileName(ui.GetFileName("FROM")).expanded() + "]"; + throw IException(e, IException::Io,msg, _FILEINFO_); + } + + missid = missid.simplified().trimmed(); + if (QString::compare(missid, "HAYABUSA-2", Qt::CaseInsensitive) != 0) { + QString msg = "Input file [" + FileName(ui.GetFileName("FROM")).expanded() + + "] does not appear to be a Hayabusa2 label file."; + throw IException(IException::Unknown, msg, _FILEINFO_); + } + instid = instid.simplified().trimmed(); + if (QString::compare(instid, "Optical Navigation Camera", Qt::CaseInsensitive) != 0) { + QString msg = "Input file [" + FileName(ui.GetFileName("FROM")).expanded() + + "] does not appear to be a Hayabusa2/ONC label file."; + throw IException(IException::Unknown, msg, _FILEINFO_); + } + + // Translate the Instrument group + FileName transFile(transDir + "Hayabusa2OncInstrument.trn"); + PvlToPvlTranslationManager instrumentXlater (fitsLabel, transFile.expanded()); + instrumentXlater.Auto(outputLabel); + + // Update target if user specifies it + PvlGroup &instGrp = outputLabel.findGroup("Instrument",Pvl::Traverse); + QString target; + if (ui.WasEntered("TARGET")) { + instGrp["TargetName"] = ui.GetString("TARGET"); + } + instGrp["ExposureDuration"].setUnits("seconds"); + outputCube->putGroup(instGrp); + + // Translate the BandBin group + transFile = transDir + "Hayabusa2OncBandBin.trn"; + PvlToPvlTranslationManager bandBinXlater (fitsLabel, transFile.expanded()); + bandBinXlater.Auto(outputLabel); + PvlGroup &bandGrp = outputLabel.findGroup("BandBin",Pvl::Traverse); + if (bandGrp.hasKeyword("Width")) { // if width exists, then so must center + bandGrp["Width"].setUnits("nanometers"); + bandGrp["Center"].setUnits("nanometers"); + } + outputCube->putGroup(outputLabel.findGroup("BandBin",Pvl::Traverse)); + + // Translate the Archive group + transFile = transDir + "Hayabusa2OncArchive.trn"; + PvlToPvlTranslationManager archiveXlater (fitsLabel, transFile.expanded()); + archiveXlater.Auto(outputLabel); + PvlGroup &archGrp = outputLabel.findGroup("Archive", Pvl::Traverse); + QString source = archGrp.findKeyword("SourceProductId")[0]; + archGrp["SourceProductId"].setValue(FileName(source).baseName()); + + // Create YearDoy keyword in Archive group + iTime stime(outputLabel.findGroup("Instrument", Pvl::Traverse)["StartTime"][0]); + PvlKeyword yeardoy("YearDoy", toString(stime.Year()*1000 + stime.DayOfYear())); + archGrp.addKeyword(yeardoy); + outputCube->putGroup(archGrp); + + + // Create a Kernels group + transFile = transDir + "Hayabusa2OncKernels.trn"; + PvlToPvlTranslationManager kernelsXlater(fitsLabel, transFile.expanded()); + kernelsXlater.Auto(outputLabel); + outputCube->putGroup(outputLabel.findGroup("Kernels", Pvl::Traverse)); + + // Now write the FITS augmented label as the original label + // Save the input FITS label in the Cube original labels + OriginalLabel originalLabel(fitsLabel); + outputCube->write(originalLabel); + + // Convert the image data + importFits.Progress()->SetText("Importing Hayabusa2 image"); + importFits.StartProcess(); + importFits.Finalize(); + } diff --git a/isis/src/hayabusa2/apps/hyb2pds4gen/main.cpp b/isis/src/hayabusa2/apps/hyb2pds4gen/main.cpp index fe4d3b33e2..acb12e0e76 100644 --- a/isis/src/hayabusa2/apps/hyb2pds4gen/main.cpp +++ b/isis/src/hayabusa2/apps/hyb2pds4gen/main.cpp @@ -1,233 +1,11 @@ #include "Isis.h" -#include +#include "UserInterface.h" +#include "hyb2pds4gen.h" -#include -#include -#include +using namespace Isis; -#include "Application.h" -#include "Cube.h" -#include "ExportDescription.h" -#include "FileName.h" -#include "Process.h" -#include "ProcessExportPds.h" -#include "ProcessExportPds4.h" -#include "Pvl.h" -#include "PvlKeyword.h" -#include "PvlToXmlTranslationManager.h" - -using namespace std; -using namespace Isis; - - -static QMap descMap({ - {"J2000Q0", "element q0 of quaternion representing a rotation"}, - {"J2000Q1", "element q1 of quaternion representing a rotation"}, - {"J2000Q2", "element q2 of quaternion representing a rotation"}, - {"J2000Q3", "element q3 of quaternion representing a rotation"}, - {"AV1", "Angular velocity vector"}, - {"AV2", "Angular velocity vector"}, - {"AV3", "Angular velocity vector"}, - {"ET", "Ephemeris time"}, - {"J2000X", "J2000 position x"}, - {"J2000Y", "J2000 position y"}, - {"J2000Z", "J2000 position z"}, - {"J2000XV", "J2000 velocity xv"}, - {"J2000YV", "J2000 velocity yv"}, - {"J2000ZV", "J2000 velocity zv"} - }); - -Pvl toPvl(PvlObject &container); -QDomDocument emptyDoc(); - -void IsisMain() { +void IsisMain() { UserInterface &ui = Application::GetUserInterface(); - - QString translationFile = "$ISISROOT/appdata/translations/Hayabusa2OncPds4Export.trn"; - - // Setup the process and set the input cube - ProcessExportPds4 process; - Cube *inputCube = process.SetInputCube("FROM"); - Pvl *inputLabel = inputCube->label(); - - process.setImageType(ProcessExportPds4::BinSetSpectrum); - - QDomDocument &pdsLabel = process.StandardPds4Label(); - ProcessExportPds4::translateUnits(pdsLabel); - - QString logicalId = ui.GetString("PDS4LOGICALIDENTIFIER"); - process.setLogicalId(logicalId); - - QStringList xmlPath = {"Product_Observational", "File_Area_Observational"}; - - for (int i = 0; i < inputLabel->objects(); i++) { - PvlObject obj = inputLabel->object(i); - if (obj.name() == "Table") { - QDomDocument doc = emptyDoc(); - - Pvl pvlObj = toPvl(obj); - PvlToXmlTranslationManager tableXlator(pvlObj,"$ISISROOT/appdata/translations/pds4ExportSpiceTable.trn"); - tableXlator.Auto(doc); - QDomElement recordBinary = doc.createElement("Record_Binary"); - QDomElement fields = doc.createElement("fields"); - QDomElement groups = doc.createElement("groups"); - QDomElement record_len = doc.createElement("record_length"); - - QDomElement tableBinary = process.getElement({"Product_Observational", "File_Area_Observational", "Table_Binary"}, doc.documentElement()); - - PvlToXmlTranslationManager::setElementValue(fields, QString::number(obj.groups())); - PvlToXmlTranslationManager::setElementValue(groups, QString::number(0)); - PvlToXmlTranslationManager::setElementValue(record_len, obj["Bytes"]); - record_len.setAttribute("unit", "byte"); - - tableBinary.appendChild(recordBinary).appendChild(fields); - recordBinary.appendChild(groups); - recordBinary.appendChild(record_len); - - // Translate Field Groups - for (int j = 0; j < obj.groups(); j++) { - PvlGroup grp = obj.group(j); - QDomElement field = doc.createElement("Field_Binary"); - - QDomElement name = doc.createElement("name"); - PvlToXmlTranslationManager::setElementValue(name, grp["Name"]); - - QDomElement fieldNumber = doc.createElement("field_number"); - PvlToXmlTranslationManager::setElementValue(fieldNumber, QString::number(j+1)); - - QDomElement fieldLocation = doc.createElement("field_location"); - PvlToXmlTranslationManager::setElementValue(fieldLocation, QString::number((j*8)+1)); - fieldLocation.setAttribute("unit", "byte"); - - QDomElement dataType = doc.createElement("data_type"); - PvlToXmlTranslationManager::setElementValue(dataType, "IEEE754MSBDouble"); - - QDomElement fieldLength = doc.createElement("field_length"); - PvlToXmlTranslationManager::setElementValue(fieldLength, QString::number(8)); - fieldLength.setAttribute("unit", "byte"); - - QDomElement description = doc.createElement("description"); - PvlToXmlTranslationManager::setElementValue(description, descMap[grp["Name"]]); - - field.appendChild(name); - field.appendChild(fieldNumber); - field.appendChild(fieldLocation); - field.appendChild(dataType); - field.appendChild(fieldLength); - field.appendChild(description); - recordBinary.appendChild(field); - - } - - // translation files do not support adding attrs to siblings so we have to do it manually - QDomNodeList fieldList = doc.elementsByTagName("field_length"); - for (int j = 0; j < fieldList.size(); j++) { - fieldList.at(j).toElement().setAttribute("unit", "byte"); - } - - QDomElement tableElement = process.getElement(xmlPath, doc.documentElement()).firstChildElement("Table_Binary"); - QDomElement base = process.getElement(xmlPath, pdsLabel.documentElement()); - base.appendChild(tableElement); - } - } - - // remove elements not wanted in hyb2 - QDomElement del = process.getElement({"Product_Observational", "Observation_Area", "Discipline_Area"}, pdsLabel.documentElement()); - del.removeChild(del.firstChildElement("img:Imaging")); - del.removeChild(del.firstChildElement("sp:Spectral_Characteristics")); - - del = process.getElement({"Product_Observational", "File_Area_Observational", "Array_3D_Spectrum"}, pdsLabel.documentElement()); - del.removeChild(del.firstChildElement("Special_Constants")); - - PvlToXmlTranslationManager xlator(*(inputLabel), translationFile); - xlator.Auto(pdsLabel); - - QDomElement base = process.getElement(xmlPath, pdsLabel.documentElement()); - - QDomDocument tempDoc = emptyDoc(); - PvlToXmlTranslationManager originalLabelXlator(*(inputLabel), "$ISISROOT/appdata/translations/pds4ExportOriginalLabel.trn"); - originalLabelXlator.Auto(tempDoc); - QDomElement ogLabelElem = process.getElement(xmlPath, tempDoc.documentElement()).firstChildElement("Header"); - base.appendChild(ogLabelElem); - - tempDoc = emptyDoc(); - PvlToXmlTranslationManager histXlator(*(inputLabel), "$ISISROOT/appdata/translations/pds4ExportHistory.trn"); - histXlator.Auto(tempDoc); - QDomElement histElem = process.getElement(xmlPath, tempDoc.documentElement()).firstChildElement("Header"); - base.appendChild(histElem); - - tempDoc = emptyDoc(); - PvlToXmlTranslationManager labXlator(*(inputLabel), "$ISISROOT/appdata/translations/pds4ExportLabelObject.trn"); - labXlator.Auto(tempDoc); - QDomElement labElem = process.getElement(xmlPath, tempDoc.documentElement()).firstChildElement("Header"); - QDomElement fileElem = process.getElement({"Product_Observational", "File_Area_Observational", "Array_3D_Spectrum"}, pdsLabel.documentElement()); - base.insertBefore(labElem, fileElem); - - PvlGroup instGroup = inputLabel->findObject("IsisCube").findGroup("Instrument"); - - QStringList subFramePath = {"Product_Observational", - "Observation_Area", - "Discipline_Area", - "img:Imaging", - "img:Image_Product_Information", - "img:Subframe_Parameters"}; - - if (instGroup.hasKeyword("FirstLine") && instGroup.hasKeyword("LastLine")) { - - int lines = (int) instGroup["LastLine"] - (int) instGroup["FirstLine"]; - QDomElement baseElement = pdsLabel.documentElement(); - QDomElement subframeParametersElement = process.getElement(subFramePath, baseElement); - - QDomElement linesElement = pdsLabel.createElement("img:lines"); - PvlToXmlTranslationManager::setElementValue(linesElement, toString(lines)); - subframeParametersElement.appendChild(linesElement); - - } - - if (instGroup.hasKeyword("FirstSample") && instGroup.hasKeyword("LastSample")) { - int samples = (int) instGroup["LastSample"] - (int) instGroup["FirstSample"]; - QDomElement baseElement = pdsLabel.documentElement(); - QDomElement subframeParametersElement = process.getElement(subFramePath, baseElement); - - QDomElement samplesElement = pdsLabel.createElement("img:samples"); - PvlToXmlTranslationManager::setElementValue(samplesElement, toString(samples)); - subframeParametersElement.appendChild(samplesElement); - } - - QString outFile = ui.GetFileName("TO"); - process.WritePds4(outFile); - - return; + hyb2pds4gen(ui); } - - -/** - * Converts a PvlObject instance to a PVL instance. - * - * Something about the relationship between the Pvl class and PvlObject class - * makes it impossible to simply cast without a segfault, so we have to do a - * bit more massaging. - * - */ -Pvl toPvl(PvlObject &container) { - Pvl newPvl; - std::stringstream buffer; - buffer << container << std::endl; - buffer >> newPvl; - return newPvl; -} - - -/** - * Returns a minimal QDomDocument for running it through - * PvlToXmlTranslationManager - */ -QDomDocument emptyDoc() { - QDomDocument doc; - QDomElement root = doc.createElement("Product_Observational"); - doc.appendChild(root); - return doc; -} - - diff --git a/isis/src/hayabusa2/tsts/Makefile b/isis/src/hayabusa2/tsts/Makefile deleted file mode 100644 index d29fa4cf81..0000000000 --- a/isis/src/hayabusa2/tsts/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -BLANKS = "%-6s" -LENGTH = "%-42s" - -include $(ISISROOT)/make/isismake.tststree diff --git a/isis/src/odyssey/tsts/Makefile b/isis/src/odyssey/tsts/Makefile deleted file mode 100644 index 016388fc89..0000000000 --- a/isis/src/odyssey/tsts/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -BLANKS = "%-6s" -LENGTH = "%-42s" - -include $(ISISROOT)/make/isismake.tststree diff --git a/isis/tests/CMakeLists.txt b/isis/tests/CMakeLists.txt index a42d49b9fd..7f7483d5c5 100644 --- a/isis/tests/CMakeLists.txt +++ b/isis/tests/CMakeLists.txt @@ -38,7 +38,6 @@ set(MISSION_LIBS voyager) - # Link runISISTests with what we want to test and the GTest and pthread library add_executable(runISISTests IsisTestMain.cpp diff --git a/isis/tests/CubeTests.cpp b/isis/tests/CubeTests.cpp index 0a19a4582a..c70b06c83d 100644 --- a/isis/tests/CubeTests.cpp +++ b/isis/tests/CubeTests.cpp @@ -120,8 +120,8 @@ TEST(CubeTest, TestCubeAttachSpiceFromIsd) { json isd = json::parse(R"( - {"CameraVersion": 2, - "NaifKeywords": { + {"isis_camera_version": 2, + "naif_keywords": { "BODY_CODE" : 499, "BODY499_RADII" : [3396.19, 3396.19, 3376.2], "BODY_FRAME_CODE" : 10014, @@ -131,75 +131,75 @@ TEST(CubeTest, TestCubeAttachSpiceFromIsd) { "INS-27002_ITRANSS" : [0.0, 85.0, 0.0], "INS-27002_ITRANSL" : [0.0, 0.0, 85.0] }, - "InstrumentPointing": { - "TimeDependentFrames": [-85600, -85000, 1], - "CkTableStartTime": 100, - "CkTableEndTime": 100.1, - "CkTableOriginalSize": 2, - "EphemerisTimes": [ + "instrument_pointing": { + "time_dependent_frames": [-85600, -85000, 1], + "ck_table_start_time": 100, + "ck_table_end_time": 100.1, + "ck_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Quaternions": [ + "quaternions": [ [0.0, -0.660435174378928, 0, 0.750883067090392], [0.0, -0.660435174378928, 0, 0.750883067090392] ], - "AngularVelocity": [ + "angular_velocity": [ [0, 0, 0], [0, 0, 0] ], - "ConstantFrames": [-85600], - "ConstantRotation": [1, 0, 0, 0, 1, 0, 0, 0, 1] + "constant_frames": [-85600], + "constant_rotation": [1, 0, 0, 0, 1, 0, 0, 0, 1] }, - "BodyRotation": { - "TimeDependentFrames": [31006, 1], - "CkTableStartTime": 100, - "CkTableEndTime": 100.1, - "CkTableOriginalSize": 2, - "EphemerisTimes": [ + "body_rotation": { + "time_dependent_frames": [31006, 1], + "ck_table_start_time": 100, + "ck_table_end_time": 100.1, + "ck_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Quaternions": [ + "quaternions": [ [ 0, 0.8509035, 0, 0.525322 ], [ 0, 0.8509035, 0, 0.525322 ] ], - "AngularVelocity": [ + "angular_velocity": [ [0, 0, 0], [0, 0, 0] ], - "ConstantFrames": [31001, 31007, 31006], - "ConstantRotation": [-0.4480736, 0, 0.8939967, 0, 1, 0, -0.8939967, 0, -0.4480736] + "constant_frames": [31001, 31007, 31006], + "constant_rotation": [-0.4480736, 0, 0.8939967, 0, 1, 0, -0.8939967, 0, -0.4480736] }, - "InstrumentPosition": { - "SpkTableStartTime": 100, - "SpkTableEndTime": 100.1, - "SpkTableOriginalSize": 2, - "EphemerisTimes": [ + "instrument_position": { + "spk_table_start_time": 100, + "spk_table_end_time": 100.1, + "spk_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Positions": [ + "positions": [ [1000, 0, 0], [1000, 0, 0] ], - "Velocities": [ + "velocities": [ [0, 0, 0], [0, 0, 0] ] }, - "SunPosition": { - "SpkTableStartTime": 100, - "SpkTableEndTime": 100.1, - "SpkTableOriginalSize": 2, - "EphemerisTimes": [ + "sun_position": { + "spk_table_start_time": 100, + "spk_table_end_time": 100.1, + "spk_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Positions": [ + "positions": [ [0, 20, 0] ], - "Velocities": [ + "velocities": [ [10,10,10] ] } diff --git a/isis/tests/FuntionalTestsFindImageOverlaps.cpp b/isis/tests/FuntionalTestsFindImageOverlaps.cpp index a66cbd84ab..13c1ef352b 100644 --- a/isis/tests/FuntionalTestsFindImageOverlaps.cpp +++ b/isis/tests/FuntionalTestsFindImageOverlaps.cpp @@ -21,7 +21,7 @@ TEST_F(ThreeImageNetwork, FunctionalTestFindImageOverlapsNoOverlap) { std::ifstream i(isdPath2->expanded().toStdString()); i >> newIsd2; - newIsd2["InstrumentPosition"]["Positions"] = {{1,1,1}, {2,2,2}, {3,3,3}}; + newIsd2["instrument_position"]["positions"] = {{1,1,1}, {2,2,2}, {3,3,3}}; newCube2.fromIsd(tempDir.path()+"/new2.cub", *cube2->label(), newIsd2, "rw"); ImagePolygon fp2; diff --git a/isis/tests/Hyabusa2OncCameraTests.cpp b/isis/tests/Hyabusa2OncCameraTests.cpp index 8a28fe0b4c..3cfe1abc2c 100644 --- a/isis/tests/Hyabusa2OncCameraTests.cpp +++ b/isis/tests/Hyabusa2OncCameraTests.cpp @@ -24,6 +24,7 @@ void testCamera(Cube &c, double knownLat, double knownLon, double s2, double l2, double s3, double l3, double s4, double l4); + void testLineSamp(Camera *cam, double sample, double line); class Hayabusa2Cube : public DefaultCube { diff --git a/isis/tests/SpiceTests.cpp b/isis/tests/SpiceTests.cpp index 1f84c99b2f..43536e4964 100644 --- a/isis/tests/SpiceTests.cpp +++ b/isis/tests/SpiceTests.cpp @@ -22,84 +22,84 @@ class ConstVelIsd : public ::testing::Test { void SetUp() { constVelIsdStr = json::parse(R"( - {"CameraVersion": 2, - "NaifKeywords": { + {"isis_camera_version": 2, + "naif_keywords": { "BODY301_RADII": [ 1000, 2000, 3000 ], "BODY_FRAME_CODE": 31001, "BODY_CODE": 301, "INS-85600_FOCAL_LENGTH" : 699.62, "INS-85600_CK_FRAME_ID": -85000, "FRAME_-85600_NAME": "LRO_LROCNACL" - }, - "InstrumentPointing": { - "TimeDependentFrames": [-85600, -85000, 1], - "CkTableStartTime": 100, - "CkTableEndTime": 100.1, - "CkTableOriginalSize": 2, - "EphemerisTimes": [ + }, + "instrument_pointing": { + "time_dependent_frames": [-85600, -85000, 1], + "ck_table_start_time": 100, + "ck_table_end_time": 100.1, + "ck_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Quaternions": [ + "quaternions": [ [0.0, -0.660435174378928, 0, 0.750883067090392], [0.0, -0.660435174378928, 0, 0.750883067090392] ], - "AngularVelocity": [ + "angular_velocity": [ [0, 0, 0], [0, 0, 0] ], - "ConstantFrames": [-85600], - "ConstantRotation": [1, 0, 0, 0, 1, 0, 0, 0, 1] + "constant_frames": [-85600], + "constant_rotation": [1, 0, 0, 0, 1, 0, 0, 0, 1] }, - "BodyRotation": { - "TimeDependentFrames": [31006, 1], - "CkTableStartTime": 100, - "CkTableEndTime": 100.1, - "CkTableOriginalSize": 2, - "EphemerisTimes": [ + "body_rotation": { + "time_dependent_frames": [31006, 1], + "ck_table_start_time": 100, + "ck_table_end_time": 100.1, + "ck_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Quaternions": [ + "quaternions": [ [ 0, 0.8509035, 0, 0.525322 ], [ 0, 0.8509035, 0, 0.525322 ] ], - "AngularVelocity": [ + "angular_velocity": [ [0, 0, 0], [0, 0, 0] ], - "ConstantFrames": [31001, 31007, 31006], - "ConstantRotation": [-0.4480736, 0, 0.8939967, 0, 1, 0, -0.8939967, 0, -0.4480736] + "constant_frames": [31001, 31007, 31006], + "constant_rotation": [-0.4480736, 0, 0.8939967, 0, 1, 0, -0.8939967, 0, -0.4480736] }, - "InstrumentPosition": { - "SpkTableStartTime": 100, - "SpkTableEndTime": 100.1, - "SpkTableOriginalSize": 2, - "EphemerisTimes": [ + "instrument_position": { + "spk_table_start_time": 100, + "spk_table_end_time": 100.1, + "spk_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Positions": [ + "positions": [ [1000, 0, 0], [1000, 0, 0] ], - "Velocities": [ + "velocities": [ [0, 0, 0], [0, 0, 0] ] }, - "SunPosition": { - "SpkTableStartTime": 100, - "SpkTableEndTime": 100.1, - "SpkTableOriginalSize": 2, - "EphemerisTimes": [ + "sun_position": { + "spk_table_start_time": 100, + "spk_table_end_time": 100.1, + "spk_table_original_size": 2, + "ephemeris_times": [ 100, 100.1 ], - "Positions": [ + "positions": [ [0, 20, 0] ], - "Velocities": [ + "velocities": [ [10,10,10] ] } diff --git a/isis/tests/data/LineScannerImage/defaultLineScanner.isd b/isis/tests/data/LineScannerImage/defaultLineScanner.isd index bd44240ee0..d7fff45153 100644 --- a/isis/tests/data/LineScannerImage/defaultLineScanner.isd +++ b/isis/tests/data/LineScannerImage/defaultLineScanner.isd @@ -1 +1 @@ -{"CameraVersion": 1, "NaifKeywords": {"BODY301_RADII": [1737.4, 1737.4, 1737.4], "BODY_FRAME_CODE": 31001, "BODY_CODE": 301, "INS-131371_FOV_SHAPE": "RECTANGLE", "INS-131371_TRANSX": [0.0, 0.0, -0.007], "INS-131371_TRANSY": [0.0, -0.007, 0.0], "INS-131371_PIXEL_SIZE": 0.007, "INS-131371_FOV_FRAME": "LISM_TC2_HEAD", "INS-131371_BORESIGHT_SAMPLE": 2048.0, "INS-131371_PIXEL_SAMPLES": 4096.0, "INS-131371_ITRANSL": [0.0, -142.857142857, 0.0], "INS-131371_ITRANSS": [0.0, 0.0, -142.857142857], "INS-131371_F_NUMBER": 4.0, "INS-131371_PIXEL_PITCH": 0.007, "INS-131371_CENTER": [2048.5, 1.0], "INS-131371_LT_SURFACE_CORRECT": "FALSE", "INS-131371_SWAP_OBSERVER_TARGET": "TRUE", "INS-131371_LIGHTTIME_CORRECTION": "NONE", "INS-131371_FOV_BOUNDARY_CORNERS": [-0.0439, 14.3486, 72.63, -0.0509, 14.3486, 72.63, -0.0509, -14.3234, 72.63, -0.0439], "INS-131371_DISTORTION_COEF_X": [0.0029786, 7.7836e-05, 3.9265e-06, -4.4088e-06], "INS-131371_DISTORTION_COEF_Y": [0.0009241, -0.00011994000000000001, 2.9281000000000003e-05, -3.7239e-07], "INS-131371_BORESIGHT": [-0.0474, 0.0126, 72.63], "INS-131371_FOCAL_LENGTH": 72.63, "INS-131371_BORESIGHT_LINE": 0.5, "INS-131371_PIXEL_LINES": 1.0, "BODY301_POLE_RA": [269.9949, 0.0031, 0.0], "BODY301_NUT_PREC_PM": [3.561, 0.1208, -0.0642, 0.0158, 0.0252, -0.0066, -0.0047, -0.0046, 0.0028, 0.0052], "BODY301_NUT_PREC_RA": [-3.8787000000000003, -0.1204, 0.07, -0.0172, 0.0, 0.0072, 0.0, 0.0, 0.0, -0.0052], "BODY301_LONG_AXIS": 0.0, "BODY301_NUT_PREC_DEC": [1.5419, 0.0239, -0.0278, 0.0068, 0.0, -0.0029, 0.0009, 0.0, 0.0, 0.0008], "BODY301_POLE_DEC": [66.5392, 0.013, 0.0], "BODY301_PM": [38.3213, 13.17635815, -1.3999999999999999e-12]}, "InstrumentPointing": {"TimeDependentFrames": [-131000, 1], "CkTableStartTime": 266722396.0643095, "CkTableEndTime": 266722396.08380935, "CkTableOriginalSize": 3, "EphemerisTimes": [266722396.0643095, 266722396.07405943, 266722396.08380935], "Quaternions": [[-0.07258178603278033, -0.7585172886441466, -0.20634853751680124, 0.6138433743463404], [-0.07258093817800686, -0.758514789204515, -0.20634857716124952, 0.613846549778329], [-0.07258009031162928, -0.7585122897213898, -0.20634861680266406, 0.6138497252386755]], "AngularVelocity": [[0.0022430600523948674, 0.0024569399476051332, 0.002917674499750139], [0.002234285151958466, 0.002465714848041535, 0.0029084121048450476], [0.0022255101442337044, 0.002474489855766297, 0.002899149596691133]], "ConstantFrames": [-131370, -131320, -131000], "ConstantRotation": [0.9656985673997477, 0.0004905793956105436, 0.2596652388247834, -0.00017391330559124002, 0.9999992129874262, -0.0012424889096336862, -0.25966564400443376, 0.0011547105200121683, 0.9656978927011169]}, "BodyRotation": {"TimeDependentFrames": [31006, 1], "CkTableStartTime": 266722396.0643095, "CkTableEndTime": 266722396.08380935, "CkTableOriginalSize": 3, "EphemerisTimes": [266722396.0643095, 266722396.07405943, 266722396.08380935], "Quaternions": [[-0.936287351474061, 0.18636368544486284, -0.049044014917789314, 0.29364818544959587], [-0.9362873476659693, 0.1863636847964222, -0.04904401733836228, 0.29364819759882477], [-0.9362873438578776, 0.18636368414798168, -0.04904401975893525, 0.2936482097480537]], "AngularVelocity": [[4.461810256128659e-08, -1.0067093480197162e-06, 2.463694017891988e-06], [4.461810256885661e-08, -1.006709348029926e-06, 2.463694017890467e-06], [4.461810257642673e-08, -1.0067093480401365e-06, 2.4636940178889463e-06]], "ConstantFrames": [31001, 31007, 31006], "ConstantRotation": [0.9999998732547144, -0.00032928542237557133, 0.00038086961867138755, 0.00032928600021094723, 0.9999999457843062, -1.4544409378362713e-06, -0.00038086911909607826, 1.5798557868269087e-06, 0.9999999274681067]}, "InstrumentPosition": {"SpkTableStartTime": 266722396.0643095, "SpkTableEndTime": 266722396.08380935, "SpkTableOriginalSize": 3, "EphemerisTimes": [266722396.0643095, 266722396.07405943, 266722396.08380935], "Positions": [[1754.316476671243, 258.61475417125087, 437.92308833352314], [1754.319021749069, 258.62120353743677, 437.9086303378481], [1754.3215666926658, 258.6276528838555, 437.89417230867934]], "Velocities": [[0.2610422280584062, 0.6614800902405181, -1.4828820831912195], [0.26102846094480053, 0.6614780628557761, -1.482885518642688], [0.2610146938087066, 0.6614760354201006, -1.4828889539812709]]}, "SunPosition": {"SpkTableStartTime": 266722396.07405943, "SpkTableEndTime": 266722396.07405943, "SpkTableOriginalSize": 1, "EphemerisTimes": [266722396.07405943], "Positions": [[16892830.68946849, 138798081.1105639, 60210916.96805835]], "Velocities": [[-29.702056155683298, 3.7793859578794873, 1.6599285017040675]]}} \ No newline at end of file +{"isis_camera_version": 1, "naif_keywords": {"BODY301_RADII": [1737.4, 1737.4, 1737.4], "BODY_FRAME_CODE": 31001, "BODY_CODE": 301, "INS-131371_FOV_SHAPE": "RECTANGLE", "INS-131371_TRANSX": [0.0, 0.0, -0.007], "INS-131371_TRANSY": [0.0, -0.007, 0.0], "INS-131371_PIXEL_SIZE": 0.007, "INS-131371_FOV_FRAME": "LISM_TC2_HEAD", "INS-131371_BORESIGHT_SAMPLE": 2048.0, "INS-131371_PIXEL_SAMPLES": 4096.0, "INS-131371_ITRANSL": [0.0, -142.857142857, 0.0], "INS-131371_ITRANSS": [0.0, 0.0, -142.857142857], "INS-131371_F_NUMBER": 4.0, "INS-131371_PIXEL_PITCH": 0.007, "INS-131371_CENTER": [2048.5, 1.0], "INS-131371_LT_SURFACE_CORRECT": "FALSE", "INS-131371_SWAP_OBSERVER_TARGET": "TRUE", "INS-131371_LIGHTTIME_CORRECTION": "NONE", "INS-131371_FOV_BOUNDARY_CORNERS": [-0.0439, 14.3486, 72.63, -0.0509, 14.3486, 72.63, -0.0509, -14.3234, 72.63, -0.0439], "INS-131371_DISTORTION_COEF_X": [0.0029786, 7.7836e-05, 3.9265e-06, -4.4088e-06], "INS-131371_DISTORTION_COEF_Y": [0.0009241, -0.00011994000000000001, 2.9281000000000003e-05, -3.7239e-07], "INS-131371_BORESIGHT": [-0.0474, 0.0126, 72.63], "INS-131371_FOCAL_LENGTH": 72.63, "INS-131371_BORESIGHT_LINE": 0.5, "INS-131371_PIXEL_LINES": 1.0, "BODY301_POLE_RA": [269.9949, 0.0031, 0.0], "BODY301_NUT_PREC_PM": [3.561, 0.1208, -0.0642, 0.0158, 0.0252, -0.0066, -0.0047, -0.0046, 0.0028, 0.0052], "BODY301_NUT_PREC_RA": [-3.8787000000000003, -0.1204, 0.07, -0.0172, 0.0, 0.0072, 0.0, 0.0, 0.0, -0.0052], "BODY301_LONG_AXIS": 0.0, "BODY301_NUT_PREC_DEC": [1.5419, 0.0239, -0.0278, 0.0068, 0.0, -0.0029, 0.0009, 0.0, 0.0, 0.0008], "BODY301_POLE_DEC": [66.5392, 0.013, 0.0], "BODY301_PM": [38.3213, 13.17635815, -1.3999999999999999e-12]}, "instrument_pointing": {"time_dependent_frames": [-131000, 1], "ck_table_start_time": 266722396.0643095, "ck_table_end_time": 266722396.08380935, "ck_table_original_size": 3, "ephemeris_times": [266722396.0643095, 266722396.07405943, 266722396.08380935], "quaternions": [[-0.07258178603278033, -0.7585172886441466, -0.20634853751680124, 0.6138433743463404], [-0.07258093817800686, -0.758514789204515, -0.20634857716124952, 0.613846549778329], [-0.07258009031162928, -0.7585122897213898, -0.20634861680266406, 0.6138497252386755]], "angular_velocity": [[0.0022430600523948674, 0.0024569399476051332, 0.002917674499750139], [0.002234285151958466, 0.002465714848041535, 0.0029084121048450476], [0.0022255101442337044, 0.002474489855766297, 0.002899149596691133]], "constant_frames": [-131370, -131320, -131000], "constant_rotation": [0.9656985673997477, 0.0004905793956105436, 0.2596652388247834, -0.00017391330559124002, 0.9999992129874262, -0.0012424889096336862, -0.25966564400443376, 0.0011547105200121683, 0.9656978927011169]}, "body_rotation": {"time_dependent_frames": [31006, 1], "ck_table_start_time": 266722396.0643095, "ck_table_end_time": 266722396.08380935, "ck_table_original_size": 3, "ephemeris_times": [266722396.0643095, 266722396.07405943, 266722396.08380935], "quaternions": [[-0.936287351474061, 0.18636368544486284, -0.049044014917789314, 0.29364818544959587], [-0.9362873476659693, 0.1863636847964222, -0.04904401733836228, 0.29364819759882477], [-0.9362873438578776, 0.18636368414798168, -0.04904401975893525, 0.2936482097480537]], "angular_velocity": [[4.461810256128659e-08, -1.0067093480197162e-06, 2.463694017891988e-06], [4.461810256885661e-08, -1.006709348029926e-06, 2.463694017890467e-06], [4.461810257642673e-08, -1.0067093480401365e-06, 2.4636940178889463e-06]], "constant_frames": [31001, 31007, 31006], "constant_rotation": [0.9999998732547144, -0.00032928542237557133, 0.00038086961867138755, 0.00032928600021094723, 0.9999999457843062, -1.4544409378362713e-06, -0.00038086911909607826, 1.5798557868269087e-06, 0.9999999274681067]}, "instrument_position": {"spk_table_start_time": 266722396.0643095, "spk_table_end_time": 266722396.08380935, "spk_table_original_size": 3, "ephemeris_times": [266722396.0643095, 266722396.07405943, 266722396.08380935], "positions": [[1754.316476671243, 258.61475417125087, 437.92308833352314], [1754.319021749069, 258.62120353743677, 437.9086303378481], [1754.3215666926658, 258.6276528838555, 437.89417230867934]], "velocities": [[0.2610422280584062, 0.6614800902405181, -1.4828820831912195], [0.26102846094480053, 0.6614780628557761, -1.482885518642688], [0.2610146938087066, 0.6614760354201006, -1.4828889539812709]]}, "sun_position": {"spk_table_start_time": 266722396.07405943, "spk_table_end_time": 266722396.07405943, "spk_table_original_size": 1, "ephemeris_times": [266722396.07405943], "positions": [[16892830.68946849, 138798081.1105639, 60210916.96805835]], "velocities": [[-29.702056155683298, 3.7793859578794873, 1.6599285017040675]]}} diff --git a/isis/tests/data/defaultImage/defaultCube.isd b/isis/tests/data/defaultImage/defaultCube.isd index 0a8764f1fb..9adff719b8 100644 --- a/isis/tests/data/defaultImage/defaultCube.isd +++ b/isis/tests/data/defaultImage/defaultCube.isd @@ -1,6 +1,6 @@ { - "CameraVersion": 1, - "NaifKeywords": { + "isis_camera_version": 1, + "naif_keywords": { "BODY_CODE": 499, "BODY499_RADII": [ 3396.19, @@ -30,18 +30,18 @@ 85.0 ] }, - "InstrumentPointing": { - "TimeDependentFrames": [ + "instrument_pointing": { + "time_dependent_frames": [ -27000, 1 ], - "CkTableStartTime": -709401200.2611448, - "CkTableEndTime": -709401200.2611448, - "CkTableOriginalSize": 1, - "EphemerisTimes": [ + "ck_table_start_time": -709401200.2611448, + "ck_table_end_time": -709401200.2611448, + "ck_table_original_size": 1, + "ephemeris_times": [ -709401200.2611448 ], - "Quaternions": [ + "quaternions": [ [ 0.31520810249542935, -0.9166503199522611, @@ -49,18 +49,18 @@ -0.18786937311160073 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ 0.0, 0.0, 0.0 ] ], - "ConstantFrames": [ + "constant_frames": [ -27002, -27000 ], - "ConstantRotation": [ + "constant_rotation": [ -0.0003979349968896706, 0.9999292841798486, -0.011885633652183106, @@ -72,18 +72,18 @@ 0.9999292100388355 ] }, - "BodyRotation": { - "TimeDependentFrames": [ + "body_rotation": { + "time_dependent_frames": [ 10014, 1 ], - "CkTableStartTime": -709401200.2611448, - "CkTableEndTime": -709401200.2611448, - "CkTableOriginalSize": 1, - "EphemerisTimes": [ + "ck_table_start_time": -709401200.2611448, + "ck_table_end_time": -709401200.2611448, + "ck_table_original_size": 1, + "ephemeris_times": [ -709401200.2611448 ], - "Quaternions": [ + "quaternions": [ [ 0.53600001724021, 0.07306205657296709, @@ -91,7 +91,7 @@ 0.7819827021000583 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ 3.1626696613081345e-05, -2.8772751199032417e-05, @@ -99,21 +99,21 @@ ] ] }, - "InstrumentPosition": { - "SpkTableStartTime": -709401200.2611448, - "SpkTableEndTime": -709401200.2611448, - "SpkTableOriginalSize": 1, - "EphemerisTimes": [ + "instrument_position": { + "spk_table_start_time": -709401200.2611448, + "spk_table_end_time": -709401200.2611448, + "spk_table_original_size": 1, + "ephemeris_times": [ -709401200.2611448 ], - "Positions": [ + "positions": [ [ -2314.3697349186045, 1641.5929356131498, 3043.112681407324 ] ], - "Velocities": [ + "velocities": [ [ -4.130724817121533, -0.7713952678774164, @@ -121,21 +121,21 @@ ] ] }, - "SunPosition": { - "SpkTableStartTime": -709401200.2611448, - "SpkTableEndTime": -709401200.2611448, - "SpkTableOriginalSize": 1, - "EphemerisTimes": [ + "sun_position": { + "spk_table_start_time": -709401200.2611448, + "spk_table_end_time": -709401200.2611448, + "spk_table_original_size": 1, + "ephemeris_times": [ -709401200.2611448 ], - "Positions": [ + "positions": [ [ -199122331.6742814, -67302869.13807923, -25474695.77623297 ] ], - "Velocities": [ + "velocities": [ [ 7.293383953631856, -22.524325637284665, @@ -143,4 +143,4 @@ ] ] } -} \ No newline at end of file +} diff --git a/isis/tests/data/threeImageNetwork/cube1.isd b/isis/tests/data/threeImageNetwork/cube1.isd index ec1d9af868..5684f7aa25 100644 --- a/isis/tests/data/threeImageNetwork/cube1.isd +++ b/isis/tests/data/threeImageNetwork/cube1.isd @@ -1,6 +1,6 @@ { - "CameraVersion": 1, - "NaifKeywords": { + "isis_camera_version": 1, + "naif_keywords": { "BODY_CODE": 499, "BODY499_RADII": [ 3396.19, @@ -32,15 +32,15 @@ 0.0 ] }, - "InstrumentPointing": { - "TimeDependentFrames": [ + "instrument_pointing": { + "time_dependent_frames": [ -94000, 1 ], - "CkTableStartTime": 57345753.41254357, - "CkTableEndTime": 57345797.412537105, - "CkTableOriginalSize": 12, - "EphemerisTimes": [ + "ck_table_start_time": 57345753.41254357, + "ck_table_end_time": 57345797.412537105, + "ck_table_original_size": 12, + "ephemeris_times": [ 57345753.41254357, 57345757.412542984, 57345761.412542395, @@ -54,7 +54,7 @@ 57345793.412537694, 57345797.412537105 ], - "Quaternions": [ + "quaternions": [ [ 0.39560723871934095, 0.002543915547405817, @@ -128,7 +128,7 @@ -0.282771910736018 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ -0.00010791818838034288, 0.0007403987312518469, @@ -190,11 +190,11 @@ 0.0004544935032716655 ] ], - "ConstantFrames": [ + "constant_frames": [ -94032, -94000 ], - "ConstantRotation": [ + "constant_rotation": [ 0.9998746454987442, -0.01386759067459899, 0.007640891155002286, @@ -206,19 +206,19 @@ 0.9998016874925517 ] }, - "BodyRotation": { - "TimeDependentFrames": [ + "body_rotation": { + "time_dependent_frames": [ 10014, 1 ], - "CkTableStartTime": 57345756.56332419, - "CkTableEndTime": 57345795.19372419, - "CkTableOriginalSize": 2, - "EphemerisTimes": [ + "ck_table_start_time": 57345756.56332419, + "ck_table_end_time": 57345795.19372419, + "ck_table_original_size": 2, + "ephemeris_times": [ 57345756.56332419, 57345795.19372419 ], - "Quaternions": [ + "quaternions": [ [ 0.16259508712075812, 0.19507578814318294, @@ -232,7 +232,7 @@ 0.9337347048229626 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ 3.162454196512495e-05, -2.8796806937405154e-05, @@ -245,16 +245,16 @@ ] ] }, - "InstrumentPosition": { - "SpkTableStartTime": 57345756.56332419, - "SpkTableEndTime": 57345795.19372419, - "SpkTableOriginalSize": 3, - "EphemerisTimes": [ + "instrument_position": { + "spk_table_start_time": 57345756.56332419, + "spk_table_end_time": 57345795.19372419, + "spk_table_original_size": 3, + "ephemeris_times": [ 57345756.56332419, 57345775.87852419, 57345795.19372419 ], - "Positions": [ + "positions": [ [ -3224.660848158962, -1579.8820847949596, @@ -271,7 +271,7 @@ 1303.818495003927 ] ], - "Velocities": [ + "velocities": [ [ 1.5628364874133902, -1.177618181741141, @@ -289,15 +289,15 @@ ] ] }, - "SunPosition": { - "SpkTableStartTime": 57345756.56332419, - "SpkTableEndTime": 57345795.19372419, - "SpkTableOriginalSize": 2, - "EphemerisTimes": [ + "sun_position": { + "spk_table_start_time": 57345756.56332419, + "spk_table_end_time": 57345795.19372419, + "spk_table_original_size": 2, + "ephemeris_times": [ 57345756.56332419, 57345795.19372419 ], - "Positions": [ + "positions": [ [ -199550116.6918371, 47316995.30654406, @@ -309,7 +309,7 @@ 27096372.01931588 ] ], - "Velocities": [ + "velocities": [ [ -7.28188692220347, -23.20890830715373, diff --git a/isis/tests/data/threeImageNetwork/cube2.isd b/isis/tests/data/threeImageNetwork/cube2.isd index 978a2c9e89..f9cd10f174 100644 --- a/isis/tests/data/threeImageNetwork/cube2.isd +++ b/isis/tests/data/threeImageNetwork/cube2.isd @@ -1,6 +1,6 @@ { - "CameraVersion": 1, - "NaifKeywords": { + "isis_camera_version": 1, + "naif_keywords": { "BODY_CODE": 499, "BODY499_RADII": [ 3396.19, @@ -32,15 +32,15 @@ 0.0 ] }, - "InstrumentPointing": { - "TimeDependentFrames": [ + "instrument_pointing": { + "time_dependent_frames": [ -94000, 1 ], - "CkTableStartTime": 60009029.02132867, - "CkTableEndTime": 60009073.02132221, - "CkTableOriginalSize": 12, - "EphemerisTimes": [ + "ck_table_start_time": 60009029.02132867, + "ck_table_end_time": 60009073.02132221, + "ck_table_original_size": 12, + "ephemeris_times": [ 60009029.02132867, 60009033.021328084, 60009037.021327496, @@ -54,7 +54,7 @@ 60009069.021322794, 60009073.02132221 ], - "Quaternions": [ + "quaternions": [ [ 0.40693445003466444, 0.09370103307741508, @@ -128,7 +128,7 @@ -0.3778959357220759 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ -0.00040284417832488114, 0.0006373852214281113, @@ -190,11 +190,11 @@ 0.0004598654565784397 ] ], - "ConstantFrames": [ + "constant_frames": [ -94032, -94000 ], - "ConstantRotation": [ + "constant_rotation": [ 0.9998746454987442, -0.01386759067459899, 0.007640891155002286, @@ -206,19 +206,19 @@ 0.9998016874925517 ] }, - "BodyRotation": { - "TimeDependentFrames": [ + "body_rotation": { + "time_dependent_frames": [ 10014, 1 ], - "CkTableStartTime": 60009030.54710953, - "CkTableEndTime": 60009069.17750953, - "CkTableOriginalSize": 2, - "EphemerisTimes": [ + "ck_table_start_time": 60009030.54710953, + "ck_table_end_time": 60009069.17750953, + "ck_table_original_size": 2, + "ephemeris_times": [ 60009030.54710953, 60009069.17750953 ], - "Quaternions": [ + "quaternions": [ [ 0.29273270866157947, 0.15764863994086384, @@ -232,7 +232,7 @@ 0.9012758952381467 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ 3.162453445077168e-05, -2.8796890497762457e-05, @@ -245,16 +245,16 @@ ] ] }, - "InstrumentPosition": { - "SpkTableStartTime": 60009030.54710953, - "SpkTableEndTime": 60009069.17750953, - "SpkTableOriginalSize": 3, - "EphemerisTimes": [ + "instrument_position": { + "spk_table_start_time": 60009030.54710953, + "spk_table_end_time": 60009069.17750953, + "spk_table_original_size": 3, + "ephemeris_times": [ 60009030.54710953, 60009049.86230953, 60009069.17750953 ], - "Positions": [ + "positions": [ [ -2864.8218379130535, -2395.6108663245764, @@ -271,7 +271,7 @@ 719.6840669870414 ] ], - "Velocities": [ + "velocities": [ [ 1.5289903270898393, -1.1646169362680832, @@ -289,15 +289,15 @@ ] ] }, - "SunPosition": { - "SpkTableStartTime": 60009030.54710953, - "SpkTableEndTime": 60009069.17750953, - "SpkTableOriginalSize": 2, - "EphemerisTimes": [ + "sun_position": { + "spk_table_start_time": 60009030.54710953, + "spk_table_end_time": 60009069.17750953, + "spk_table_original_size": 2, + "ephemeris_times": [ 60009030.54710953, 60009069.17750953 ], - "Positions": [ + "positions": [ [ -208160310.7093076, -15893543.022472382, @@ -309,7 +309,7 @@ -1663361.3085369645 ] ], - "Velocities": [ + "velocities": [ [ 0.8354733466372126, -23.84032456833683, diff --git a/isis/tests/data/threeImageNetwork/cube3.isd b/isis/tests/data/threeImageNetwork/cube3.isd index bd67caa9af..46ae685a63 100644 --- a/isis/tests/data/threeImageNetwork/cube3.isd +++ b/isis/tests/data/threeImageNetwork/cube3.isd @@ -1,6 +1,6 @@ { - "CameraVersion": 1, - "NaifKeywords": { + "isis_camera_version": 1, + "naif_keywords": { "BODY_CODE": 499, "BODY499_RADII": [ 3396.19, @@ -32,15 +32,15 @@ 0.0 ] }, - "InstrumentPointing": { - "TimeDependentFrames": [ + "instrument_pointing": { + "time_dependent_frames": [ -94000, 1 ], - "CkTableStartTime": 87174528.8705133, - "CkTableEndTime": 87174568.87050696, - "CkTableOriginalSize": 11, - "EphemerisTimes": [ + "ck_table_start_time": 87174528.8705133, + "ck_table_end_time": 87174568.87050696, + "ck_table_original_size": 11, + "ephemeris_times": [ 87174528.8705133, 87174532.87051266, 87174536.87051204, @@ -53,7 +53,7 @@ 87174564.8705076, 87174568.87050696 ], - "Quaternions": [ + "quaternions": [ [ 0.12581038781350534, 0.6406424399561862, @@ -121,7 +121,7 @@ -0.6823688904629003 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ 0.0002065094235121068, -0.0006759077796039037, @@ -178,11 +178,11 @@ -0.0005166682152265915 ] ], - "ConstantFrames": [ + "constant_frames": [ -94032, -94000 ], - "ConstantRotation": [ + "constant_rotation": [ 0.9998746454987442, -0.01386759067459899, 0.007640891155002286, @@ -194,19 +194,19 @@ 0.9998016874925517 ] }, - "BodyRotation": { - "TimeDependentFrames": [ + "body_rotation": { + "time_dependent_frames": [ 10014, 1 ], - "CkTableStartTime": 87174529.64629424, - "CkTableEndTime": 87174568.27669424, - "CkTableOriginalSize": 2, - "EphemerisTimes": [ + "ck_table_start_time": 87174529.64629424, + "ck_table_end_time": 87174568.27669424, + "ck_table_original_size": 2, + "ephemeris_times": [ 87174529.64629424, 87174568.27669424 ], - "Quaternions": [ + "quaternions": [ [ 0.9308240822213619, -0.2549921202399327, @@ -220,7 +220,7 @@ -0.18093657295008497 ] ], - "AngularVelocity": [ + "angular_velocity": [ [ 3.1624457792113795e-05, -2.879774281803634e-05, @@ -233,16 +233,16 @@ ] ] }, - "InstrumentPosition": { - "SpkTableStartTime": 87174529.64629424, - "SpkTableEndTime": 87174568.27669424, - "SpkTableOriginalSize": 3, - "EphemerisTimes": [ + "instrument_position": { + "spk_table_start_time": 87174529.64629424, + "spk_table_end_time": 87174568.27669424, + "spk_table_original_size": 3, + "ephemeris_times": [ 87174529.64629424, 87174548.96149424, 87174568.27669424 ], - "Positions": [ + "positions": [ [ 3358.1610455693144, 1538.8001589071823, @@ -259,7 +259,7 @@ -725.6570999899571 ] ], - "Velocities": [ + "velocities": [ [ 1.3975653521284683, -1.5714265645896175, @@ -277,15 +277,15 @@ ] ] }, - "SunPosition": { - "SpkTableStartTime": 87174529.64629424, - "SpkTableEndTime": 87174568.27669424, - "SpkTableOriginalSize": 2, - "EphemerisTimes": [ + "sun_position": { + "spk_table_start_time": 87174529.64629424, + "spk_table_end_time": 87174568.27669424, + "spk_table_original_size": 2, + "ephemeris_times": [ 87174529.64629424, 87174568.27669424 ], - "Positions": [ + "positions": [ [ 237858169.72921923, -64521076.64051085, @@ -297,7 +297,7 @@ -36021479.07972962 ] ], - "Velocities": [ + "velocities": [ [ 6.246446793600917, 19.22500582446158,