From b422964fbee785f6c337b2a07abab3963c31a7b3 Mon Sep 17 00:00:00 2001 From: dcookastro <34168267+dcookastro@users.noreply.github.com> Date: Mon, 20 May 2019 17:18:03 -0700 Subject: [PATCH] Lro lidar infrastructure updated with improved documentation and exclusions added to jigsaw (#3297) * Updated the cmake version to 3.10 * Adding configurations for gtest * Tweaking things for gtest * Got gtest working and made a small example test * Updated the cmake version to be 3.10 or greater * Added test file discovery support and seperated the main into another file * Added more tests for FileName * Updated with the new testing guidelines and added new tests. * Added gmock * PixelTest (#536) * initial Pixel test * Add more test cases for Pixel * testing parameterization in Pixel test * testing function parameterization * parameterize static vs object methods * basic PixelTests implementation * clean up and more static tests * update PixelTests with float/dbl expects * Refactored stats to a functions * Modified to have cubeit remove mosaic pixel tracking info from labels. Fixes #5533 * Update cubeit.xml Fixed a typo * Fixes conda channels in Jenkinsfile & adds a MacOS node (#633) * Merged dev and cleaned up header conflicts * Update for #619. * Fix libtiff dependency (#636) (#644) * Upgrade libtiff to 4.0.10 (#636) * Switch libtiff to 4.0.9 or higher to remove geotiff conflict * Moved ISIS3 conda-build recipe from ISIS3_deps repository (#650) * Fixed warning in Pixel unit tests * Removing build numbers from external libraries (#660) * Moved ISIS3 conda-build recipe from ISIS3_deps repository * Un-pinned non-astro build numbers * Removing build numbers from external libraries in the environment and meta.yeml files * Final merging * Added pixel type attribute to the output image of program shadow. Fixes #5187 (#659) * Removed bolding of some text to decrease distraction. * Fixed some typos. * Reworded documentation. * Added section for Environment and PreferemcesSetup in the Getting Started Section. (#663) * Updated .gitmodules to use https rather than ssh (#673) * Added build type release to conda recipe (#676) * Updates README with Discourse (#690) * Updates README with Discourse * Update README.md * Update README.md * Added fix to Spice Server to accept clients with version nums >=3.5.*.* (#780) * Fixed error when trying to export a compressed image using pds2hideal. Fixes #5525. (#2059) * Added capability to export a compressed image with tables missing RECORD_BYTES keyword. Added test for compressed image. * Changed names of test output cubes. * Adding explanatory comments to the meta.yaml file (#2358) * Adding explanatory comments to the recipes/meta.yaml * Replacing accidentally erased line * Added option to sort the output for consistent order in testing and added a test case * Cleaned up commented out lines in LidarData.h and .cpp * Added additional documentation for LidarData, LidarControlPoint, and lrolola2isis * Multisegment DSK support for Bullet engine (#2791) * Merged multisegment DSKs for Bullet * basic tests * removed original tests * Minor updates to download sizes and some text. (#2790) * Removed debug lines from LidarData.cpp and old comments from the lrolola2isis twoImage test * Added an additional comment about the Test format to LidarData.cpp * Phocube will export RA and declination planes even if the point is not on the planet. Fixes #4446 (#657) * Made it so that RA and Dec are added last. * Updated code to be up to standards. * Added RA and dec test. * Updated history comment. * Renamed test. * Fixed typo in documentation * Refactored code so that RA and dec are placed in the correct bands instead of moving them to the last two bands. * Updated documentation, test now checks cube label. * Fixed SummingMode keyword being set in tgocassis2isis (#2847) * Adding Expanded keyword to cassis label and modifying SummingMode keyword * Updating the window count value * Adding capacity to handle imports without Expanded tag * Setting tgocassismos to have tracking turned-on (#2856) * Adding parameter "tracking=true" to tgocassismos call to automos * Adding documentation * Fixing indentation in documentation * Updates to tgocassisrdrgen and ProcessExportPds4 to add content to exported CaSSIS Label. (#2858) * Add 32-bit ISIS Special Pixel Constants to ProcessExportPds4 * Add ability to set title and version id in exported PDS4 produce in tgocassisrdrgen and ProcessExportPds4 API * Fix bug that occurs when exporting mosaics with Archive groups and fixed min/max lat/lon to east/west bounding box positive east flip bug * Added docs. * Update schema to most recent versions and comment-out schema that isn't used (temporarily) in tgocassisrdrgen. * Adds Issue Templates to Issues (#664) * Adds issue templates * Verbage update * Updates issue template for questions (#3131) Removed a newline in the header that I believe was causing the automatic template detection to fail. * Added gtest for ID and split TestUtilities into a cpp and h file to fix duplicate symbol error when building. (#2824) Code reviewed and tested * tgocassisrdrgen exported label re-order. (#3135) * Add 32-bit ISIS Special Pixel Constants to ProcessExportPds4 * Add ability to set title and version id in exported PDS4 produce in tgocassisrdrgen and ProcessExportPds4 API * Fix bug that occurs when exporting mosaics with Archive groups and fixed min/max lat/lon to east/west bounding box positive east flip bug * Added docs. * Update schema to most recent versions and comment-out schema that isn't used (temporarily) in tgocassisrdrgen. * Added reorder function to ProcessExportPds4 to reorder xml files generated in the wrong order for PDS4 and added cassis-specific schema * Update label generated by tgocassisrdrgen from additional feedback (#3137) * Add 32-bit ISIS Special Pixel Constants to ProcessExportPds4 * Add ability to set title and version id in exported PDS4 produce in tgocassisrdrgen and ProcessExportPds4 API * Fix bug that occurs when exporting mosaics with Archive groups and fixed min/max lat/lon to east/west bounding box positive east flip bug * Added docs. * Update schema to most recent versions and comment-out schema that isn't used (temporarily) in tgocassisrdrgen. * Added reorder function to ProcessExportPds4 to reorder xml files generated in the wrong order for PDS4 and added cassis-specific schema * Add StopTime to tgocassismos's Mosaic PVL group, as it is required for PDS4 export. Also, fix time formatting and east_azimuth units * Remove comment * Changed global variable proj back to projection to avoid build ambiguity errors with the std::proj * Added option to enter a list of Lidar input files * Removed deprecated code requiring target body radii to convert point coordinate sigmas from distances to angles in lrololo2isis * Updated documentation in SpiceRotation, BundleAdjust, and lrolola2isis * Added multipleInputs test to the lrolola2isis test suite * Added exclusion to jigsaw to prevent running Lidar without solving for spacecraft position * Changed history date to today --- .../base/objs/SpiceRotation/SpiceRotation.cpp | 4 ++-- .../base/objs/SpiceRotation/SpiceRotation.h | 2 ++ isis/src/control/apps/jigsaw/jigsaw.xml | 15 ++++++++++++-- .../objs/BundleAdjust/BundleAdjust.cpp | 2 +- .../lro/apps/lrolola2isis/lrolola2isis.xml | 3 ++- isis/src/lro/apps/lrolola2isis/main.cpp | 2 +- .../lrolola2isis/tsts/multipleInputs/Makefile | 20 +++++++++++++++++++ 7 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 isis/src/lro/apps/lrolola2isis/tsts/multipleInputs/Makefile diff --git a/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp b/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp index 218327ec62..86943e795d 100644 --- a/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp +++ b/isis/src/base/objs/SpiceRotation/SpiceRotation.cpp @@ -2886,9 +2886,9 @@ namespace Isis { /** - * Return the full rotation TJ as a matrix + * Return the full rotation TJ as a matrix in row major order * - * @return @b vector<double> Returned matrix. + * @return @b vector<double> Returned matrix (as an array of rows). */ std::vector<double> SpiceRotation::Matrix() { NaifStatus::CheckErrors(); diff --git a/isis/src/base/objs/SpiceRotation/SpiceRotation.h b/isis/src/base/objs/SpiceRotation/SpiceRotation.h index d700aada49..671281bfff 100644 --- a/isis/src/base/objs/SpiceRotation/SpiceRotation.h +++ b/isis/src/base/objs/SpiceRotation/SpiceRotation.h @@ -217,6 +217,8 @@ namespace Isis { * The current example is the comet 67P/CHURYUMOV-GERASIMENKO * imaged by Rosetta. Some future comet/astroid missions are expected * to use a CK defined body fixed reference frame. Fixes #5408. + * @history 2019-03-20 Debbie A. Cook - Added documentation to the Matrix() method. + * References #5343. * * @todo Downsize using Hermite cubic spline and allow Nadir tables to be downsized again. * @todo Consider making this a base class with child classes based on frame type or diff --git a/isis/src/control/apps/jigsaw/jigsaw.xml b/isis/src/control/apps/jigsaw/jigsaw.xml index 6d43034f22..d91aca3abf 100644 --- a/isis/src/control/apps/jigsaw/jigsaw.xml +++ b/isis/src/control/apps/jigsaw/jigsaw.xml @@ -279,6 +279,13 @@ <change name="Ken Edmundson" date="2018-06-22"> Added output of lidar adjusted csv file and output of adjusted lidar data file. </change> + <change name="Debbie A. Cook" date="2019-05-20"> + Added exclusions to SPSOLVE NONE option for LIDARDATA and + OLIDARDATA to prevent any attempt to run with lidar points and not + solve for spacecraft position. The lidar solution includes a constraint + on the range, which requires spacecraft position to be part of + the bundle adjustment. References #3053. + </change> </history> <groups> @@ -355,11 +362,13 @@ <internalDefault>none</internalDefault> <fileMode>input</fileMode> <brief> - Input Lidar Point File + Input Lidar Point File - requires SPSOLVE to be turned on </brief> <description> This file is a <def>lidar point data</def> generated from <b>lrolola2isis.cpp</b>. It contains <def>lidar control point</def>s and associated measures for simultaneous images. + If <def>lidar point data</def> are used, SPSOLVE must be turned on (anything besides NONE) + </description> <exclusions> </exclusions> @@ -373,7 +382,7 @@ <internalDefault>none</internalDefault> <fileMode>output</fileMode> <brief> - Output lidar data file + Output lidar data file - requires SPSOLVE to be turned on </brief> <description> This output file contains the adjusted <def>lidar data</def> with @@ -1028,6 +1037,8 @@ No spacecraft position parameters will be adjusted. </description> <exclusions> + <item>LIDARDATA</item> + <item>OLIDARDATA</item> <item>SPKDEGREE</item> <item>SPKSOLVEDEGREE</item> <item>POSITIONSEGMENTS</item> diff --git a/isis/src/control/objs/BundleAdjust/BundleAdjust.cpp b/isis/src/control/objs/BundleAdjust/BundleAdjust.cpp index c748aa8229..aa5437fcf2 100644 --- a/isis/src/control/objs/BundleAdjust/BundleAdjust.cpp +++ b/isis/src/control/objs/BundleAdjust/BundleAdjust.cpp @@ -1,4 +1,4 @@ - #include "BundleAdjust.h" +#include "BundleAdjust.h" // std lib #include <iomanip> diff --git a/isis/src/lro/apps/lrolola2isis/lrolola2isis.xml b/isis/src/lro/apps/lrolola2isis/lrolola2isis.xml index 80bb8b95a4..3797d4a3c7 100644 --- a/isis/src/lro/apps/lrolola2isis/lrolola2isis.xml +++ b/isis/src/lro/apps/lrolola2isis/lrolola2isis.xml @@ -49,7 +49,8 @@ </change> <change name="Debbie A Cook" date="2019-03-11"> Added new input parameter FROMLIST to allow entering multiple input - Lidar CSV files. All input points are written out into a single Lidar data file. + Lidar CSV files. All input points are written out into a single Lidar data + file. References #5343. </change> </history> diff --git a/isis/src/lro/apps/lrolola2isis/main.cpp b/isis/src/lro/apps/lrolola2isis/main.cpp index a8b88ee828..4f6063c76d 100644 --- a/isis/src/lro/apps/lrolola2isis/main.cpp +++ b/isis/src/lro/apps/lrolola2isis/main.cpp @@ -119,7 +119,7 @@ void IsisMain() { lidarPoint->setRange(range); lidarPoint->setSigmaRange(rangeSigma); - // Set the point coordinates and their sigmas and add to the Lidar Control Point file + // Set the point coordinates and their sigmas and add to the Lidar Control Point SurfacePoint spoint(lat, lon, radius); spoint.SetSphericalSigmasDistance( Distance(latSigma, Distance::Units::Meters), diff --git a/isis/src/lro/apps/lrolola2isis/tsts/multipleInputs/Makefile b/isis/src/lro/apps/lrolola2isis/tsts/multipleInputs/Makefile new file mode 100644 index 0000000000..587e6ddf14 --- /dev/null +++ b/isis/src/lro/apps/lrolola2isis/tsts/multipleInputs/Makefile @@ -0,0 +1,20 @@ +APPNAME = lrolola2isis +# This test exercises the ingestion of Lola data from the LRO mission +# with multiple input files. The output is sorted by id to have consistent +# output for comparison with the truth data. Normal behavior fills the +# file from a hash so the order varies. +# +# 2019-03-13 Debbie A. Cook - original test + +include $(ISISROOT)/make/isismake.tsts + +commands: +# ls $(INPUT)/*.cub > $(OUTPUT)/multipleInputs.lis + cp $(INPUT)/*.lis $(OUTPUT) + $(APPNAME) fromlist=$(OUTPUT)/shortCsv.lis cubes=$(OUTPUT)/shortMultipleInput.lis \ + to=$(OUTPUT)/LidarTest.json outputtype=test threshold=10 \ + point_range_sigma=10 point_latitude_sigma=10 point_longitude_sigma=10 \ + point_radius_sigma=10 pointid=Lidar???? \ + > /dev/null; + rm $(OUTPUT)/*.lis + mv $(OUTPUT)/LidarTest.json $(OUTPUT)/LidarTest.txt -- GitLab