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)
# 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)
......
......@@ -4,8 +4,9 @@ channels:
- default
dependencies:
- cmake>=3.15
- ale>=0.8.8
- cmake>=3.15
- csm
- nlohmann_json
- 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.
#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();
......
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