Skip to content
Snippets Groups Projects
Commit a4a28be5 authored by acpaquette's avatar acpaquette
Browse files

Stubbed in the projected line scan sensor model

parent 2331aaa4
No related branches found
No related tags found
No related merge requests found
...@@ -35,6 +35,10 @@ if(USGSCSM_EXTERNAL_DEPS) ...@@ -35,6 +35,10 @@ if(USGSCSM_EXTERNAL_DEPS)
# Eigen # Eigen
find_package(Eigen3 3.3 REQUIRED NO_MODULE) find_package(Eigen3 3.3 REQUIRED NO_MODULE)
# GDAL
find_package(PROJ REQUIRED CONFIG)
set(PROJ_TARGET PROJ::proj)
# ALE # ALE
find_package(ale REQUIRED) find_package(ale REQUIRED)
set(ALE_TARGET ale::ale) set(ALE_TARGET ale::ale)
...@@ -66,6 +70,7 @@ add_library(usgscsm SHARED ...@@ -66,6 +70,7 @@ add_library(usgscsm SHARED
src/UsgsAstroFrameSensorModel.cpp src/UsgsAstroFrameSensorModel.cpp
src/UsgsAstroPushFrameSensorModel.cpp src/UsgsAstroPushFrameSensorModel.cpp
src/UsgsAstroLsSensorModel.cpp src/UsgsAstroLsSensorModel.cpp
src/UsgsAstroProjectedLsSensorModel.cpp
src/UsgsAstroSarSensorModel.cpp src/UsgsAstroSarSensorModel.cpp
src/Distortion.cpp src/Distortion.cpp
src/Utilities.cpp src/Utilities.cpp
...@@ -75,11 +80,11 @@ set_target_properties(usgscsm PROPERTIES ...@@ -75,11 +80,11 @@ set_target_properties(usgscsm PROPERTIES
VERSION ${PROJECT_VERSION} VERSION ${PROJECT_VERSION}
SOVERSION 1 SOVERSION 1
) )
set(USGSCSM_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/usgscsm" set(USGSCSM_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/usgscsm"
"${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}"
"${EIGEN3_INCLUDE_DIR}") "${EIGEN3_INCLUDE_DIR}"
"${PROJ_INCLUDE_DIR}")
# These will be copied upon installation to ${CMAKE_INSTALL_INCLUDEDIR}/include # These will be copied upon installation to ${CMAKE_INSTALL_INCLUDEDIR}/include
set(USGSCSM_INSTALL_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/usgscsm" set(USGSCSM_INSTALL_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/usgscsm"
...@@ -94,6 +99,7 @@ target_include_directories(usgscsm ...@@ -94,6 +99,7 @@ target_include_directories(usgscsm
target_link_libraries(usgscsm target_link_libraries(usgscsm
${CSM_LIBRARY} ${CSM_LIBRARY}
${ALE_TARGET} ${ALE_TARGET}
${PROJ_TARGET}
nlohmann_json::nlohmann_json) nlohmann_json::nlohmann_json)
add_executable(usgscsm_cam_test bin/usgscsm_cam_test.cc) add_executable(usgscsm_cam_test bin/usgscsm_cam_test.cc)
......
...@@ -4,8 +4,9 @@ channels: ...@@ -4,8 +4,9 @@ channels:
- default - default
dependencies: dependencies:
- cmake>=3.15
- ale>=0.8.8 - ale>=0.8.8
- cmake>=3.15
- csm - csm
- nlohmann_json
- eigen - eigen
- gdal
- nlohmann_json
This diff is collapsed.
...@@ -26,6 +26,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ...@@ -26,6 +26,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "UsgsAstroFrameSensorModel.h" #include "UsgsAstroFrameSensorModel.h"
#include "UsgsAstroLsSensorModel.h" #include "UsgsAstroLsSensorModel.h"
#include "UsgsAstroProjectedLsSensorModel.h"
#include "UsgsAstroPushFrameSensorModel.h" #include "UsgsAstroPushFrameSensorModel.h"
#include "UsgsAstroSarSensorModel.h" #include "UsgsAstroSarSensorModel.h"
...@@ -133,6 +134,7 @@ std::string UsgsAstroPlugin::getModelName(size_t modelIndex) const { ...@@ -133,6 +134,7 @@ std::string UsgsAstroPlugin::getModelName(size_t modelIndex) const {
std::vector<std::string> supportedModelNames = { std::vector<std::string> supportedModelNames = {
UsgsAstroFrameSensorModel::_SENSOR_MODEL_NAME, UsgsAstroFrameSensorModel::_SENSOR_MODEL_NAME,
UsgsAstroLsSensorModel::_SENSOR_MODEL_NAME, UsgsAstroLsSensorModel::_SENSOR_MODEL_NAME,
UsgsAstroProjectedLsSensorModel::_SENSOR_MODEL_NAME,
UsgsAstroSarSensorModel::_SENSOR_MODEL_NAME, UsgsAstroSarSensorModel::_SENSOR_MODEL_NAME,
UsgsAstroPushFrameSensorModel::_SENSOR_MODEL_NAME}; UsgsAstroPushFrameSensorModel::_SENSOR_MODEL_NAME};
MESSAGE_LOG(spdlog::level::debug, "Get Model Name: {}. Used index: {}", MESSAGE_LOG(spdlog::level::debug, "Get Model Name: {}. Used index: {}",
...@@ -186,7 +188,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromState( ...@@ -186,7 +188,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromState(
if (warnings) { if (warnings) {
warnings->push_back(csm::Warning warnings->push_back(csm::Warning
(csm::Warning::UNKNOWN_WARNING, fullMsg, (csm::Warning::UNKNOWN_WARNING, fullMsg,
"UsgsAstroFrameSensorModel::canModelBeConstructedFromState()")); "UsgsAstroPlugin::canModelBeConstructedFromState()"));
} }
return false; return false;
...@@ -210,7 +212,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromISD( ...@@ -210,7 +212,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromISD(
MESSAGE_LOG(spdlog::level::warn, msg); MESSAGE_LOG(spdlog::level::warn, msg);
warnings->push_back(csm::Warning( warnings->push_back(csm::Warning(
csm::Warning::UNKNOWN_WARNING, msg, csm::Warning::UNKNOWN_WARNING, msg,
"UsgsAstroFrameSensorModel::canModelBeConstructedFromISD()")); "UsgsAstroPlugin::canModelBeConstructedFromISD()"));
} }
} catch (...) { } catch (...) {
if (warnings) { if (warnings) {
...@@ -220,7 +222,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromISD( ...@@ -220,7 +222,7 @@ bool UsgsAstroPlugin::canModelBeConstructedFromISD(
MESSAGE_LOG(spdlog::level::warn, msg); MESSAGE_LOG(spdlog::level::warn, msg);
warnings->push_back(csm::Warning( warnings->push_back(csm::Warning(
csm::Warning::UNKNOWN_WARNING, msg, csm::Warning::UNKNOWN_WARNING, msg,
"UsgsAstroFrameSensorModel::canModelBeConstructedFromISD()")); "UsgsAstroPlugin::canModelBeConstructedFromISD()"));
} }
} }
return false; return false;
...@@ -294,7 +296,7 @@ bool UsgsAstroPlugin::canISDBeConvertedToModelState( ...@@ -294,7 +296,7 @@ bool UsgsAstroPlugin::canISDBeConvertedToModelState(
MESSAGE_LOG(spdlog::level::warn, msg); MESSAGE_LOG(spdlog::level::warn, msg);
warnings->push_back(csm::Warning( warnings->push_back(csm::Warning(
csm::Warning::UNKNOWN_WARNING, msg, csm::Warning::UNKNOWN_WARNING, msg,
"UsgsAstroFrameSensorModel::canISDBeConvertedToModelState()")); "UsgsAstroPlugin::canISDBeConvertedToModelState()"));
} }
return false; return false;
} }
...@@ -367,6 +369,26 @@ csm::Model *UsgsAstroPlugin::constructModelFromISD( ...@@ -367,6 +369,26 @@ csm::Model *UsgsAstroPlugin::constructModelFromISD(
throw csm::Error(aErrorType, aMessage, aFunction); throw csm::Error(aErrorType, aMessage, aFunction);
} }
return model; 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) { } else if (modelName == UsgsAstroSarSensorModel::_SENSOR_MODEL_NAME) {
UsgsAstroSarSensorModel *model = new UsgsAstroSarSensorModel(); UsgsAstroSarSensorModel *model = new UsgsAstroSarSensorModel();
MESSAGE_LOG(spdlog::level::debug, "Trying to construct a UsgsAstroSarSensorModel"); MESSAGE_LOG(spdlog::level::debug, "Trying to construct a UsgsAstroSarSensorModel");
...@@ -433,6 +455,11 @@ csm::Model *UsgsAstroPlugin::constructModelFromState( ...@@ -433,6 +455,11 @@ csm::Model *UsgsAstroPlugin::constructModelFromState(
UsgsAstroLsSensorModel *model = new UsgsAstroLsSensorModel(); UsgsAstroLsSensorModel *model = new UsgsAstroLsSensorModel();
model->replaceModelState(modelState); model->replaceModelState(modelState);
return model; 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) { }else if (modelName == UsgsAstroSarSensorModel::_SENSOR_MODEL_NAME) {
MESSAGE_LOG(spdlog::level::debug, "Constructing a UsgsAstroSarSensorModel"); MESSAGE_LOG(spdlog::level::debug, "Constructing a UsgsAstroSarSensorModel");
UsgsAstroSarSensorModel *model = new UsgsAstroSarSensorModel(); UsgsAstroSarSensorModel *model = new UsgsAstroSarSensorModel();
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment