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