OTB  10.0.0
Orfeo Toolbox
otbPleiadesNeoImageMetadataInterface.h
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 
21 #ifndef otbPleiadesNeoImageMetadataInterface_h
22 #define otbPleiadesNeoImageMetadataInterface_h
23 
25 #include <string>
26 #include "otbDateTime.h"
27 #include "otbDimapMetadataHelper.h"
28 namespace otb
29 {
38 {
39 public:
42  using Pointer = itk::SmartPointer<Self>;
43  using ConstPointer = itk::SmartPointer<const Self>;
44 
45 itkNewMacro(Self);
46 
49 
50  using ImageType = Superclass::ImageType;
51  using MetaDataDictionaryType = Superclass::MetaDataDictionaryType;
54 
55  void Parse(ImageMetadata &) override;
56 
57 protected:
60 
61 private:
63  void operator=(const Self&) = delete;
64 
66  void FetchSolarIrradiance(const std::vector<double> & dimapSolarIrradiance, ImageMetadata& imd);
67 
68  void FetchSatAngles(const std::vector<double> & incidenceAngles,
69  const std::vector<double> & alongTrackIncidenceAngles,
70  const std::vector<double> & axrossTrackIncidenceAngles,
71  const std::vector<double> & sceneOrientation,
72  ImageMetadata & imd);
73 
76  void FetchSpectralSensitivity(const std::string & sensorId, ImageMetadata &imd, DimapMetadataHelper & helper);
77 };
79 
80 
81 namespace MetaData
82 {
83  namespace PleiadesNeoUtils
84  {
85  const std::string IMAGE_ID_KEY = "ImageID";
86  const std::string TIME_RANGE_START_KEY = "TimeRangeStart";
87  const std::string TIME_RANGE_END_KEY = "TimeRangeEnd";
88  const std::string LINE_PERIOD_KEY = "LinePeriod";
89  const std::string SWATH_FIRST_COL_KEY = "SwathFirstCol";
90  const std::string SWATH_LAST_COL_KEY = "SwathLastCol";
91 
94  {
95  std::string imageID;
98  double linePeriod;
101  };
102 
104 
107 
108  } // end namespace PleiadesNeoUtils
109 } // end namespace MetaData
110 
111 } // end namespace otb
112 
113 #endif
Helper class to read dimap data from various sources (Dimap v1, dimap v2, Ossim geom file) and variou...
Base class for captor metadata reading.
itk::SmartPointer< const Self > ConstPointer
MetaDataKey::VariableLengthVectorType VariableLengthVectorType
Generic class containing image metadata used in OTB.
Represents a point in Time.
Definition: otbDateTime.h:98
Class for Optical captor metadata reading.
Creation of an "otb" PleiadesNeoImageMetadataInterface that gets metadata.
PleiadesNeoImageMetadataInterface(const Self &)=delete
void Parse(ImageMetadata &) override
void operator=(const Self &)=delete
void FetchSolarIrradiance(const std::vector< double > &dimapSolarIrradiance, ImageMetadata &imd)
void FetchSatAngles(const std::vector< double > &incidenceAngles, const std::vector< double > &alongTrackIncidenceAngles, const std::vector< double > &axrossTrackIncidenceAngles, const std::vector< double > &sceneOrientation, ImageMetadata &imd)
void FetchSpectralSensitivity(const std::string &sensorId, ImageMetadata &imd, DimapMetadataHelper &helper)
void FetchTabulatedPhysicalGain(ImageMetadata &imd)
std::vector< double > VectorType
itk::VariableLengthVector< double > VariableLengthVectorType
SensorModelCharacteristics GetSensorModelCharacteristics(const ImageMetadata &)
bool HasSensorModelCharacteristics(const ImageMetadata &)
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.