Commit a4a28be5 authored by acpaquette's avatar acpaquette
Browse files

Stubbed in the projected line scan sensor model

parent 2331aaa4
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -35,6 +35,10 @@ if(USGSCSM_EXTERNAL_DEPS)
  # Eigen
  find_package(Eigen3 3.3 REQUIRED NO_MODULE)

  # GDAL
  find_package(PROJ REQUIRED CONFIG)
  set(PROJ_TARGET PROJ::proj)

  # ALE
  find_package(ale REQUIRED)
  set(ALE_TARGET ale::ale)
@@ -66,6 +70,7 @@ add_library(usgscsm SHARED
            src/UsgsAstroFrameSensorModel.cpp
            src/UsgsAstroPushFrameSensorModel.cpp
            src/UsgsAstroLsSensorModel.cpp
            src/UsgsAstroProjectedLsSensorModel.cpp
            src/UsgsAstroSarSensorModel.cpp
            src/Distortion.cpp
            src/Utilities.cpp
@@ -75,11 +80,11 @@ set_target_properties(usgscsm PROPERTIES
    VERSION ${PROJECT_VERSION}
    SOVERSION 1
)

set(USGSCSM_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/usgscsm"
                         "${CMAKE_CURRENT_SOURCE_DIR}/include"
                         "${CMAKE_CURRENT_SOURCE_DIR}"
                         "${EIGEN3_INCLUDE_DIR}")
                         "${EIGEN3_INCLUDE_DIR}"
                         "${PROJ_INCLUDE_DIR}")

# These will be copied upon installation to ${CMAKE_INSTALL_INCLUDEDIR}/include
set(USGSCSM_INSTALL_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/usgscsm"
@@ -94,6 +99,7 @@ target_include_directories(usgscsm
target_link_libraries(usgscsm
                      ${CSM_LIBRARY}
                      ${ALE_TARGET}
                      ${PROJ_TARGET}
                      nlohmann_json::nlohmann_json)

add_executable(usgscsm_cam_test bin/usgscsm_cam_test.cc)
+3 −2
Original line number Diff line number Diff line
@@ -4,8 +4,9 @@ channels:
  - default

dependencies:
  - cmake>=3.15
  - ale>=0.8.8
  - cmake>=3.15
  - csm
  - nlohmann_json
  - eigen
  - gdal
  - nlohmann_json
+793 −0

File added.

Preview size limit exceeded, changes collapsed.

+32 −5
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#include "UsgsAstroFrameSensorModel.h"
#include "UsgsAstroLsSensorModel.h"
#include "UsgsAstroProjectedLsSensorModel.h"
#include "UsgsAstroPushFrameSensorModel.h"
#include "UsgsAstroSarSensorModel.h"

@@ -133,6 +134,7 @@ std::string UsgsAstroPlugin::getModelName(size_t modelIndex) const {
  std::vector<std::string> supportedModelNames = {
      UsgsAstroFrameSensorModel::_SENSOR_MODEL_NAME,
      UsgsAstroLsSensorModel::_SENSOR_MODEL_NAME,
      UsgsAstroProjectedLsSensorModel::_SENSOR_MODEL_NAME,
      UsgsAstroSarSensorModel::_SENSOR_MODEL_NAME,
      UsgsAstroPushFrameSensorModel::_SENSOR_MODEL_NAME};
  MESSAGE_LOG(spdlog::level::debug, "Get Model Name: {}. Used index: {}",
@@ -186,7 +188,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromState(
  if (warnings) {
    warnings->push_back(csm::Warning
                        (csm::Warning::UNKNOWN_WARNING, fullMsg,
                         "UsgsAstroFrameSensorModel::canModelBeConstructedFromState()"));
                         "UsgsAstroPlugin::canModelBeConstructedFromState()"));
  }

  return false;
@@ -210,7 +212,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromISD(
      MESSAGE_LOG(spdlog::level::warn, msg);
      warnings->push_back(csm::Warning(
          csm::Warning::UNKNOWN_WARNING, msg,
          "UsgsAstroFrameSensorModel::canModelBeConstructedFromISD()"));
          "UsgsAstroPlugin::canModelBeConstructedFromISD()"));
    }
  } catch (...) {
    if (warnings) {
@@ -220,7 +222,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromISD(
      MESSAGE_LOG(spdlog::level::warn, msg);
      warnings->push_back(csm::Warning(
          csm::Warning::UNKNOWN_WARNING, msg,
          "UsgsAstroFrameSensorModel::canModelBeConstructedFromISD()"));
          "UsgsAstroPlugin::canModelBeConstructedFromISD()"));
    }
  }
  return false;
@@ -294,7 +296,7 @@ bool UsgsAstroPlugin::canISDBeConvertedToModelState(
      MESSAGE_LOG(spdlog::level::warn, msg);
      warnings->push_back(csm::Warning(
          csm::Warning::UNKNOWN_WARNING, msg,
          "UsgsAstroFrameSensorModel::canISDBeConvertedToModelState()"));
          "UsgsAstroPlugin::canISDBeConvertedToModelState()"));
    }
    return false;
  }
@@ -367,6 +369,26 @@ csm::Model *UsgsAstroPlugin::constructModelFromISD(
      throw csm::Error(aErrorType, aMessage, aFunction);
    }
    return model;
  } else if (modelName == UsgsAstroProjectedLsSensorModel::_SENSOR_MODEL_NAME) {
    UsgsAstroProjectedLsSensorModel *model = new UsgsAstroProjectedLsSensorModel();
    try {
      MESSAGE_LOG(spdlog::level::debug, "Trying to construct a UsgsAstroProjectedLsSensorModel");
      model->replaceModelState(
          model->constructStateFromIsd(stringIsd, warnings));
    } catch (std::exception &e) {
      delete model;
      csm::Error::ErrorType aErrorType =
          csm::Error::SENSOR_MODEL_NOT_CONSTRUCTIBLE;
      std::string aMessage = "Could not construct model [";
      aMessage += modelName;
      aMessage += "] with error [";
      aMessage += e.what();
      aMessage += "]";
      std::string aFunction = "UsgsAstroPlugin::constructModelFromISD()";
      MESSAGE_LOG(spdlog::level::err, aMessage);
      throw csm::Error(aErrorType, aMessage, aFunction);
    }
    return model;
  } else if (modelName == UsgsAstroSarSensorModel::_SENSOR_MODEL_NAME) {
    UsgsAstroSarSensorModel *model = new UsgsAstroSarSensorModel();
    MESSAGE_LOG(spdlog::level::debug, "Trying to construct a UsgsAstroSarSensorModel");
@@ -433,6 +455,11 @@ csm::Model *UsgsAstroPlugin::constructModelFromState(
    UsgsAstroLsSensorModel *model = new UsgsAstroLsSensorModel();
    model->replaceModelState(modelState);
    return model;
  } else if (modelName == UsgsAstroProjectedLsSensorModel::_SENSOR_MODEL_NAME) {
    MESSAGE_LOG(spdlog::level::debug, "Constructing a UsgsAstroProjectedLsSensorModel");
    UsgsAstroProjectedLsSensorModel *model = new UsgsAstroProjectedLsSensorModel();
    model->replaceModelState(modelState);
    return model;
  }else if (modelName == UsgsAstroSarSensorModel::_SENSOR_MODEL_NAME) {
    MESSAGE_LOG(spdlog::level::debug, "Constructing a UsgsAstroSarSensorModel");
    UsgsAstroSarSensorModel *model = new UsgsAstroSarSensorModel();
+1681 −0

File added.

Preview size limit exceeded, changes collapsed.