From 18db26648be863fb5fa27ac24123c2cd589b3418 Mon Sep 17 00:00:00 2001 From: Otmane Lahlou <otmane.lahlou@c-s.fr> Date: Fri, 21 Oct 2011 16:53:56 +0200 Subject: [PATCH] ENH: add SarRadiometricCalibration application --- Applications/Radiometry/CMakeLists.txt | 4 + .../otbSarRadiometricCalibration.cxx | 90 +++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 Applications/Radiometry/otbSarRadiometricCalibration.cxx diff --git a/Applications/Radiometry/CMakeLists.txt b/Applications/Radiometry/CMakeLists.txt index 509ea66d8d..634a077287 100644 --- a/Applications/Radiometry/CMakeLists.txt +++ b/Applications/Radiometry/CMakeLists.txt @@ -2,3 +2,7 @@ OTB_CREATE_APPLICATION(NAME OpticalCalibration SOURCES otbOpticalCalibration.cxx LINK_LIBRARIES OTBIO;OTBRadiometry) + +OTB_CREATE_APPLICATION(NAME SarRadiometricCalibration + SOURCES otbSarRadiometricCalibration.cxx + LINK_LIBRARIES OTBIO;OTBRadiometry) diff --git a/Applications/Radiometry/otbSarRadiometricCalibration.cxx b/Applications/Radiometry/otbSarRadiometricCalibration.cxx new file mode 100644 index 0000000000..cf9ad890b3 --- /dev/null +++ b/Applications/Radiometry/otbSarRadiometricCalibration.cxx @@ -0,0 +1,90 @@ +/*========================================================================= + + Program: ORFEO Toolbox + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. + See OTBCopyright.txt for details. + + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ +#include "otbWrapperApplication.h" +#include "otbWrapperApplicationFactory.h" + +#include "otbSarRadiometricCalibrationToImageFilter.h" + +namespace otb +{ +namespace Wrapper +{ + +class SarRadiometricCalibration : public Application +{ +public: + /** Standard class typedefs. */ + typedef SarRadiometricCalibration Self; + typedef Application Superclass; + typedef itk::SmartPointer<Self> Pointer; + typedef itk::SmartPointer<const Self> ConstPointer; + + /** Standard macro */ + itkNewMacro(Self); + + itkTypeMacro(SarRadiometricCalibration, otb::Application); + + typedef otb::SarRadiometricCalibrationToImageFilter<ComplexFloatImageType, + ComplexFloatImageType> CalibrationFilterType; + +private: + SarRadiometricCalibration() + { + SetName("SarRadiometricCalibration"); + SetDescription("Perform SAR calibration on input complex images"); + } + + virtual ~SarRadiometricCalibration() + { + } + + void DoCreateParameters() + { + AddParameter(ParameterType_ComplexInputImage, "cin", "Input Complex Image"); + AddParameter(ParameterType_ComplexOutputImage, "out", "Output Image"); + AddParameter(ParameterType_Empty, "noise", "Disable Noise"); + MandatoryOff("noise"); + } + + void DoUpdateParameters() + { } + + void DoExecute() + { + // Get the input complex image + ComplexFloatImageType* floatComplexImage = GetParameterComplexFloatImage("cin"); + + // Set the filer input + m_CalibrationFilter = CalibrationFilterType::New(); + m_CalibrationFilter->SetInput(floatComplexImage); + + if (IsParameterEnabled("noise")) + { + m_CalibrationFilter->SetEnableNoise(false); + } + + // Set the output image + SetParameterComplexOutputImage("out", m_CalibrationFilter->GetOutput()); + } + + CalibrationFilterType::Pointer m_CalibrationFilter; +}; +} +} + +OTB_APPLICATION_EXPORT(otb::Wrapper::SarRadiometricCalibration) -- GitLab