OTB  9.0.0
Orfeo Toolbox
otbDimensionalityReductionTrainPCA.hxx
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 #ifndef otbDimensionalityReductionTrainPCA_hxx
21 #define otbDimensionalityReductionTrainPCA_hxx
22 
24 #include "otbPCAModel.h"
25 
26 namespace otb
27 {
28 namespace Wrapper
29 {
30 
31 template <class TInputValue, class TOutputValue>
32 void TrainDimensionalityReductionApplicationBase<TInputValue, TOutputValue>::InitPCAParams()
33 {
34  AddChoice("algorithm.pca", "Shark PCA");
35  SetParameterDescription("algorithm.pca", "This group of parameters allows setting Shark PCA parameters. ");
36 
37  // Output Dimension
38  AddParameter(ParameterType_Int, "algorithm.pca.dim", "Dimension of the output of the pca transformation");
39  SetParameterInt("algorithm.pca.dim", 10, false);
40  SetParameterDescription("algorithm.pca.dim", "Dimension of the output of the pca transformation.");
41 }
42 
43 template <class TInputValue, class TOutputValue>
44 void TrainDimensionalityReductionApplicationBase<TInputValue, TOutputValue>::TrainPCA(typename ListSampleType::Pointer trainingListSample,
45  std::string modelPath)
46 {
47  typedef otb::PCAModel<InputValueType> PCAModelType;
48  typename PCAModelType::Pointer dimredTrainer = PCAModelType::New();
49  dimredTrainer->SetDimension(GetParameterInt("algorithm.pca.dim"));
50  dimredTrainer->SetInputListSample(trainingListSample);
51  dimredTrainer->SetWriteEigenvectors(true);
52  dimredTrainer->Train();
53  dimredTrainer->Save(modelPath);
54 }
55 
56 } // end namespace wrapper
57 } // end namespace otb
58 
59 #endif
otbPCAModel.h
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::Wrapper::ParameterType_Int
@ ParameterType_Int
Definition: otbWrapperTypes.h:38
otbTrainDimensionalityReductionApplicationBase.h
otb::PCAModel
Definition: otbPCAModel.h:73