OTB  10.0.0
Orfeo Toolbox
otbSpot5Metadata.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2024 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 
21 #ifndef otbSpot5Metadata_h
22 #define otbSpot5Metadata_h
23 
24 #include "itkPoint.h"
25 #include "itkPointSet.h"
26 #include "OTBMetadataExport.h"
27 #include "otbMetaDataKey.h"
28 #include "otbDateTime.h"
29 
30 #include <string>
31 #include <vector>
32 
33 namespace otb
34 {
35 
40 struct OTBMetadata_EXPORT Ephemeris
41 {
42  using PointType = itk::Point<double, 3>;
43  using VectorType = itk::Vector<double, 3>;
44 
46  //MetaData::TimePoint time;
47  double time;
48 
51 
54 
56  void ToKeywordlist(MetaData::Keywordlist & kwl, const std::string & prefix = "") const;
57 
59  static Ephemeris FromKeywordlist(const MetaData::Keywordlist & kwl, const std::string & prefix = "");
60 };
61 
68 struct OTBMetadata_EXPORT Spot5Param
69 {
70  // Constructors
71  Spot5Param() = default;
72  Spot5Param(const Spot5Param &) = default; // CopyConstructible required for boost::any
73  Spot5Param& operator=(Spot5Param &) = default; //CopyAssignment optional for boost::any
75 
76  using Point3DType = itk::Point<double, 3>;
77  using Point2DType = itk::Point<double, 2>;
78 
79  double RefLineTime;
81 
83 
86 
87 
88  std::vector<Point3DType> AttitudesSamples;
89  std::vector<double> AttitudesSamplesTimes;
90 
91  std::vector<double> PixelLookAngleX;
92  std::vector<double> PixelLookAngleY;
93 
94  //std::vector<Ephemeris> EcefSamples;
95  std::vector<Point3DType> EcefPosSamples;
96  std::vector<Point3DType> EcefVelSamples;
97  std::vector<double> EcefTimeSamples;
98 };
99 
100 }
101 
102 #endif
std::unordered_map< std::string, std::string > Keywordlist
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
This structure is used to handle Ephemeris information.
PointType position
void ToKeywordlist(MetaData::Keywordlist &kwl, const std::string &prefix="") const
static Ephemeris FromKeywordlist(const MetaData::Keywordlist &kwl, const std::string &prefix="")
itk::Point< double, 3 > PointType
itk::Vector< double, 3 > VectorType
VectorType velocity
Spot5 sensors parameters.
Spot5Param & operator=(Spot5Param &)=default
itk::Point< double, 3 > Point3DType
std::vector< double > PixelLookAngleY
std::vector< double > PixelLookAngleX
Point2DType ImageSize
Point2DType SubImageOffset
itk::Point< double, 2 > Point2DType
Spot5Param(const Spot5Param &)=default
Spot5Param()=default
std::vector< double > EcefTimeSamples
std::vector< Point3DType > EcefPosSamples
std::vector< Point3DType > AttitudesSamples
std::vector< double > AttitudesSamplesTimes
std::vector< Point3DType > EcefVelSamples