diff --git a/LICENSE.md b/LICENSE.md
index 1f8932ba2098e1bf3f6c60df72ae72d2bc8ba36b..4edd82f5fb961e43e3789fa01d550824992d2709 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,11 +1,48 @@
-Copyright  © 2017-2022 BAE Systems Information and Electronic Systems Integration Inc.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Unless otherwise noted, this project is in the public domain in the
+United States.
+
+It contains materials that originally came from the United States
+Geological Survey, an agency of the United States Department of
+Interior.  For more information on their copyright policies, see
+https://www.usgs.gov/information-policies-and-instructions/copyrights-and-credits
+
+Several files in this project were originally developed and are copyrighted by
+BAE Systems Information and Electronic Systems Integration Inc. They are licensed
+under the BDS 3 clause license and have comments identifying this at the top.
+
+It also contains materials from contributors that have waived their
+copyright interest to the public domain.
+
+Additionally, the authors waive copyright and related rights in the
+work worldwide through the CC0 1.0 Universal public domain dedication.
+
+CC0 1.0 Universal Summary
+-------------------------
+
+This is a human-readable summary of the [Legal Code (read the full
+text)](https://creativecommons.org/publicdomain/zero/1.0/legalcode).
+
+
+### No Copyright
+
+The authors have associated their contributions to the ISIS project
+with this deed, and have dedicated the work to the public domain
+by waiving all of their rights to the work worldwide under copyright
+law, including all related and neighboring rights, to the extent
+allowed by law.
+
+You can copy, modify, distribute and perform the work, even for
+commercial purposes, all without asking permission.
+
+
+### Other Information
+
+In no way are the patent or trademark rights of any person affected
+by CC0, nor are the rights that other persons may have in the work
+or in how the work is used, such as publicity or privacy rights.
+
+Unless expressly stated otherwise, the authors who have associated
+the ISIS project with this deed make no warranties about the work,
+and disclaim liability for all uses of the work, to the fullest
+extent permitted by applicable law. When using or citing the work,
+you should not imply endorsement by the authors.
diff --git a/code.json b/code.json
index 06368356a7567a331e28215c39040bdba2246596..f556466d5e6a73019cdac34e2f4a4d870cade739 100644
--- a/code.json
+++ b/code.json
@@ -10,7 +10,7 @@
       "usageType": "openSource",
       "licenses": [
         {
-          "name": "BSD 3-Clause",
+          "name": "Public Domain, CC-1.0",
           "URL": "https://github.com/USGS-Astrogeology/usgscsm/blob/dev/LICENSE.md"
         }
       ]
@@ -41,7 +41,7 @@
     },
 
     "date": {
-      "metadataLastUpdated": "2022-04-15"
+      "metadataLastUpdated": "2022-07-06"
     }
   }
 ]
diff --git a/include/usgscsm/UsgsAstroLsSensorModel.h b/include/usgscsm/UsgsAstroLsSensorModel.h
index ec0e6c698d4980928a9ca083b23cf05fee9651cc..d9421a7a66a16cb4f1f7b9815354c3ec96471afb 100644
--- a/include/usgscsm/UsgsAstroLsSensorModel.h
+++ b/include/usgscsm/UsgsAstroLsSensorModel.h
@@ -1,29 +1,26 @@
-//----------------------------------------------------------------------------
-//
-//                                UNCLASSIFIED
-//
-// Copyright © 1989-2017 BAE Systems Information and Electronic Systems
-// Integration Inc.
-//                            ALL RIGHTS RESERVED
-// Use of this software product is governed by the terms of a license
-// agreement. The license agreement is found in the installation directory.
-//
-//             For support, please visit http://www.baesystems.com/gxp
-//
-//  Description:
-//    The Astro Line Scanner sensor model implements the CSM 3.0.3 API.
-//    Since it supports a sensor used on non-Earth bodies (Moon, Mars), the
-//    ellipsoid is made settable based on the support data.  This ellipsoid
-//    is reported using the methods in the SettableEllipsoid class from which
-//    this model inherits.
-//
-//  Revision History:
-//  Date        Name         Description
-//  ----------- ------------ -----------------------------------------------
-//  13-Nov-2015 BAE Systems  Initial Implementation
-//  16-OCT-2017 BAE Systems  Update for CSM 3.0.3
-//
-//-----------------------------------------------------------------------------
+/** Copyright  © 2017-2022 BAE Systems Information and Electronic Systems Integration Inc.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions
+and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **/
 
 #ifndef INCLUDE_USGSCSM_USGSASTROLSSENSORMODEL_H_
 #define INCLUDE_USGSCSM_USGSASTROLSSENSORMODEL_H_
@@ -159,7 +156,7 @@ class UsgsAstroLsSensorModel : public csm::RasterGM,
   // coordinates.
   static void applyTransformToState(ale::Rotation const& r, ale::Vec3d const& t,
                                     std::string& stateString);
-  
+
   // Set the sensor model based on the input state data
   void set(const std::string& state_data);
 
@@ -972,23 +969,23 @@ class UsgsAstroLsSensorModel : public csm::RasterGM,
   // for iterative rigorous calculations.
   void computeProjectiveApproximation(const csm::EcefCoord& gp,
                                       csm::ImageCoord& ip) const;
-  
+
   // Create the projective approximation to be used at each ground point
   void createProjectiveApproximation();
-  
+
   // A function whose value will be 0 when the line a given ground
   // point projects into is found. The obtained line will be
   // approxPt.line + t.
   double calcDetectorLineErr(double t, csm::ImageCoord const& approxPt,
                              const csm::EcefCoord& groundPt,
                              const std::vector<double>& adj) const;
-  
+
   csm::NoCorrelationModel _no_corr_model;  // A way to report no correlation
                                            // between images is supported
   std::vector<double> _no_adjustment;  // A vector of zeros indicating no internal adjustment
 
   // Store here the projective approximation of the sensor model
-  std::vector<double> m_projTransCoeffs; 
+  std::vector<double> m_projTransCoeffs;
 
   // Flag indicating if an initial approximation is used
   bool m_useApproxInitTrans;
diff --git a/include/usgscsm/UsgsAstroPlugin.h b/include/usgscsm/UsgsAstroPlugin.h
index 19a28295938e356162f3dff949368b3c0ee7f8da..f1e950f94a4dc58e1071df2b583e5f1ce32d2836 100644
--- a/include/usgscsm/UsgsAstroPlugin.h
+++ b/include/usgscsm/UsgsAstroPlugin.h
@@ -1,3 +1,27 @@
+/** Copyright  © 2017-2022 BAE Systems Information and Electronic Systems Integration Inc.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions
+and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **/
+
 #ifndef INCLUDE_USGSCSM_USGSASTROPLUGIN_H_
 #define INCLUDE_USGSCSM_USGSASTROPLUGIN_H_
 
diff --git a/include/usgscsm/UsgsAstroPushFrameSensorModel.h b/include/usgscsm/UsgsAstroPushFrameSensorModel.h
index 9d1bdadbf6eda71bf2898039175297b4068eacd1..4e410db5fefeb70bc485ad2634ccc707c1f30e19 100644
--- a/include/usgscsm/UsgsAstroPushFrameSensorModel.h
+++ b/include/usgscsm/UsgsAstroPushFrameSensorModel.h
@@ -1,3 +1,27 @@
+/** Copyright  © 2017-2022 BAE Systems Information and Electronic Systems Integration Inc.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions
+and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **/
+
 #ifndef INCLUDE_USGSCSM_USGSASTROPUSHFRAMESENSORMODEL_H_
 #define INCLUDE_USGSCSM_USGSASTROPUSHFRAMESENSORMODEL_H_
 
diff --git a/src/UsgsAstroLsSensorModel.cpp b/src/UsgsAstroLsSensorModel.cpp
index d65bd39ea4f831440b36e111edd46aa0429d0608..be87bde4e07fea758718ee917cb45c4d9043ea80 100644
--- a/src/UsgsAstroLsSensorModel.cpp
+++ b/src/UsgsAstroLsSensorModel.cpp
@@ -1,22 +1,27 @@
-//----------------------------------------------------------------------------
-//
-//                                UNCLASSIFIED
-//
-// Copyright © 1989-2017 BAE Systems Information and Electronic Systems
-// Integration Inc.
-//                            ALL RIGHTS RESERVED
-// Use of this software product is governed by the terms of a license
-// agreement. The license agreement is found in the installation directory.
-//
-//             For support, please visit http://www.baesystems.com/gxp
-//
-//  Revision History:
-//  Date        Name         Description
-//  ----------- ------------ -----------------------------------------------
-//  13-Nov-2015 BAE Systems  Initial Implementation
-//  24-Apr-2017 BAE Systems  Update for CSM 3.0.2
-//  24-OCT-2017 BAE Systems  Update for CSM 3.0.3
-//-----------------------------------------------------------------------------
+/** Copyright  © 2017-2022 BAE Systems Information and Electronic Systems Integration Inc.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions
+and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **/
+
 #include "UsgsAstroLsSensorModel.h"
 #include "Distortion.h"
 #include "Utilities.h"
@@ -678,7 +683,7 @@ csm::ImageCoord UsgsAstroLsSensorModel::groundToImage(
     const csm::EcefCoord& groundPt, const std::vector<double>& adj,
     double desiredPrecision, double* achievedPrecision,
     csm::WarningList* warnings) const {
-  
+
   csm::ImageCoord approxPt;
   computeProjectiveApproximation(groundPt, approxPt);
 
@@ -692,14 +697,14 @@ csm::ImageCoord UsgsAstroLsSensorModel::groundToImage(
   double lineErr1 = calcDetectorLineErr(t1, approxPt, groundPt, adj);
   while (std::abs(lineErr1) > desiredPrecision && ++count < 15) {
 
-    if (lineErr1 == lineErr0) 
+    if (lineErr1 == lineErr0)
       break; // avoid division by 0
-    
+
     // Secant method update
     // https://en.wikipedia.org/wiki/Secant_method
     double t2 = t1 - lineErr1 * (t1 - t0) / (lineErr1 - lineErr0);
     double lineErr2 = calcDetectorLineErr(t2, approxPt, groundPt, adj);
-    
+
     // Update for the next step
     t0 = t1; lineErr0 = lineErr1;
     t1 = t2; lineErr1 = lineErr2;
@@ -1957,7 +1962,7 @@ void UsgsAstroLsSensorModel::getAdjSensorPosVel(const double& time,
         return;
     }
   }
-  
+
   double sensVelNom[3];
   lagrangeInterp(m_numPositions / 3, &m_velocities[0], m_t0Ephem, m_dtEphem,
                  time, 3, nOrder, sensVelNom);
@@ -2117,7 +2122,7 @@ void UsgsAstroLsSensorModel::computeProjectiveApproximation(const csm::EcefCoord
     // Sanity checks. Ensure we don't divide by 0 and that the numbers are valid.
     if (line_den == 0.0 || std::isnan(line_den) || std::isinf(line_den) ||
         samp_den == 0.0 || std::isnan(samp_den) || std::isinf(samp_den)) {
-      
+
       ip.line = m_nLines / 2.0;
       ip.samp = m_nSamples / 2.0;
       MESSAGE_LOG("Computing initial guess with constant approx line/2 and sample/2");
@@ -2138,7 +2143,7 @@ void UsgsAstroLsSensorModel::computeProjectiveApproximation(const csm::EcefCoord
 
     if (ip.samp < 0.0) ip.samp = 0.0;
     if (ip.samp > numCols) ip.samp = numCols;
-    
+
     MESSAGE_LOG("Computing initial guess with projective approximation");
   } else {
     ip.line = m_nLines / 2.0;
@@ -2185,7 +2190,7 @@ void UsgsAstroLsSensorModel::createProjectiveApproximation() {
   // Sample at two heights above the ellipsoid in order to get a
   // reliable estimate of the relationship between image points and
   // ground points.
-  
+
   for (int i = 0; i < numPts; i++) {
     ip[i].line = u_factors[i] * numImageRows;
     ip[i].samp = v_factors[i] * numImageCols;
@@ -2202,7 +2207,7 @@ void UsgsAstroLsSensorModel::createProjectiveApproximation() {
 
   usgscsm::computeBestFitProjectiveTransform(ip, gp, m_projTransCoeffs);
   m_useApproxInitTrans = true;
-  
+
   MESSAGE_LOG("Completed createProjectiveApproximation");
 }
 
@@ -2573,19 +2578,19 @@ csm::EcefVector UsgsAstroLsSensorModel::getSunPosition(
 double UsgsAstroLsSensorModel::calcDetectorLineErr(double t, csm::ImageCoord const& approxPt,
                                                    const csm::EcefCoord& groundPt,
                                                    const std::vector<double>& adj) const {
-  
+
   csm::ImageCoord currPt = approxPt;
   currPt.line += t;
-    
+
   double timei = getImageTime(currPt);
   std::vector<double> detectorView = computeDetectorView(timei, groundPt, adj);
-  
+
   // Convert to detector line
   double detectorLine = m_iTransL[0] + m_iTransL[1] * detectorView[0] +
     m_iTransL[2] * detectorView[1] + m_detectorLineOrigin -
     m_startingDetectorLine;
   detectorLine /= m_detectorLineSumming;
-    
+
   return detectorLine;
 }
-  
+
diff --git a/src/UsgsAstroPlugin.cpp b/src/UsgsAstroPlugin.cpp
index 0b7b38f7e50cd196ec86b2316d9cfca66d6dce75..b073a469a699c0ddbcf7cb205526ae432ce187e6 100644
--- a/src/UsgsAstroPlugin.cpp
+++ b/src/UsgsAstroPlugin.cpp
@@ -1,3 +1,27 @@
+/** Copyright  © 2017-2022 BAE Systems Information and Electronic Systems Integration Inc.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions
+and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **/
+
 #include "UsgsAstroPlugin.h"
 
 #include "UsgsAstroFrameSensorModel.h"
diff --git a/src/UsgsAstroPushFrameSensorModel.cpp b/src/UsgsAstroPushFrameSensorModel.cpp
index 75e65695164a2b41742106c55f04d73c2e166841..034fb51d63cfcd8b1d81918ac162c45769bc5d5c 100644
--- a/src/UsgsAstroPushFrameSensorModel.cpp
+++ b/src/UsgsAstroPushFrameSensorModel.cpp
@@ -1,3 +1,27 @@
+/** Copyright  © 2017-2022 BAE Systems Information and Electronic Systems Integration Inc.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions
+and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other materials provided
+with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **/
+
 #include "UsgsAstroPushFrameSensorModel.h"
 #include "Distortion.h"
 #include "Utilities.h"
@@ -464,7 +488,7 @@ std::string UsgsAstroPushFrameSensorModel::getModelState() const {
       "m_nReducedLines: {} ",
       state["m_numLinesOverlap"].dump(), state["m_reducedFrameletHeight"].dump(),
       state["m_nReducedLines"].dump());
-  
+
   std::string stateString = getModelName() + "\n" + state.dump(2);
   return stateString;
 }
@@ -752,7 +776,7 @@ csm::ImageCoord UsgsAstroPushFrameSensorModel::groundToImage(
 
   // Adjust for the fact that several lines were removed at the framelet top and bottom
   imagePt.line -= m_numLinesOverlap/2;
-  
+
   imagePt.samp = (detectorSample + m_detectorSampleOrigin - m_startingDetectorSample)
                / m_detectorSampleSumming;
 
@@ -1238,7 +1262,7 @@ std::string UsgsAstroPushFrameSensorModel::getReferenceDateAndTime() const {
   double relativeTime =
       UsgsAstroPushFrameSensorModel::getImageTime(referencePointImage);
   time_t ephemTime = m_centerEphemerisTime + relativeTime;
-  
+
   return ephemTimeToCalendarTime(ephemTime);
 }
 
@@ -1743,12 +1767,12 @@ void UsgsAstroPushFrameSensorModel::losToEcf(
   double frameletLine = std::fmod(line, summedFrameletHeight);
   if (m_frameletsFlipped) {
     // TODO: Below may need to subtract 1. Need a testcase where this happens.
-    frameletLine = summedFrameletHeight - frameletLine; 
+    frameletLine = summedFrameletHeight - frameletLine;
   }
 
   // Adjust for the fact that several lines were removed at the framelet top and bottom
   frameletLine += m_numLinesOverlap/2;
-  
+
   // Compute distorted image coordinates in mm (sample, line on image (pixels)
   // -> focal plane
   double distortedFocalPlaneX, distortedFocalPlaneY;
@@ -2433,7 +2457,7 @@ std::string UsgsAstroPushFrameSensorModel::constructStateFromIsd(
     - state["m_numLinesOverlap"].get<int>();
   int numFramelets = state["m_nLines"].get<int>() / state["m_frameletHeight"].get<int>();
   state["m_nReducedLines"] = numFramelets * state["m_reducedframeletHeight"].get<int>();
-  
+
   if (!parsingWarnings->empty()) {
     if (warnings) {
       warnings->insert(warnings->end(), parsingWarnings->begin(),