<commit_before>/*=========================================================================

  Program:   ORFEO Toolbox
  Language:  C++
  Date:      $Date$
  Version:   $Revision$


  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
  See OTBCopyright.txt for details.

  Copyright (c) Institut Telecom / Telecom Bretagne. All rights reserved.
  See ITCopyright.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.

=========================================================================*/
#ifndef __otbGCPsToRPCSensorModelImageFilter_h
#define __otbGCPsToRPCSensorModelImageFilter_h

#include "itkInPlaceImageFilter.h"
#include "otbDEMHandler.h"

namespace otb {

/** \class GCPsToRPCSensorModelImageFilter
 * \brief 
 *
 */
template < class TImage><commit_msg>DOC: Adding GCPsToRPCSensorModel filter<commit_after>/*=========================================================================

  Program:   ORFEO Toolbox
  Language:  C++
  Date:      $Date$
  Version:   $Revision$


  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
  See OTBCopyright.txt for details.

  Copyright (c) Institut Telecom / Telecom Bretagne. All rights reserved.
  See ITCopyright.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.

=========================================================================*/
#ifndef __otbGCPsToRPCSensorModelImageFilter_h
#define __otbGCPsToRPCSensorModelImageFilter_h

#include "itkInPlaceImageFilter.h"
#include "otbDEMHandler.h"

namespace otb {

/** \class GCPsToRPCSensorModelImageFilter
 * \brief This filter estimates a RPC sensor models from GCPs.
 * 
 * This filters estimates an RPC sensor model from a list of user
 * defined GCPs. Internally, it uses an ossimRpcSolver, which performs
 * the estimation using the well known least-square method.
 *
 * The UseImageGCPs flag allows to import GCPs from the image
 * metadata, if any.
 *  
 * GCPs can be passed to the filter using one of the AddGCP method
 * implementation.
 * 
 * The first implementation takes geographic points with elevation (3D
 * points).
 * 
 * The second implementation accepts geographic points without the
 * elevation information. In this case, either the mean elevation or
 * an elevation fetch from a SRT directory is used, depending on the
 * value of the UseDEM flag.
 *
 * If UseDEM is set to true, the DEMHandler is used to retrieve the
 * elevation information. The user can either set its own DEMHandler
 * using the appropriate setter, or configure the existing internal
 * DEMHandler using the Getter.
 *
 * The residual ground error is available through the appropriate
 * getter.
 * 
 * Please note that GCPs are infered to be given in physical
 * coordinates. This is seamless in most cases.
 *
 * Please note that at least 16 GCPs are required to estimate a proper
 * RPC sensor model, although no warning will be reported to the user
 * if the number of GCPs is lower than 16.
 *
 * This filter does not modify the image buffer, but only the
 * metadata. Therefore, it is implemented as an InPlaceImageFilter.
 * 
 * The output image can be given to the OrthorectificationFilter.
 *
 */
template < class TImage>
{'fraction_non_alphanumeric': 0.1340702947845805, 'fraction_numerical': 0.001417233560090703, 'mean_word_length': 4.330815709969788, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3866595', 'n_tokens_mistral': 949, 'n_tokens_neox': 884, 'n_words': 398}