OTB  9.0.0
Orfeo Toolbox
otbPleiadesImageMetadataInterface.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 otbPleiadesImageMetadataInterface_h
22 #define otbPleiadesImageMetadataInterface_h
23 
25 #include <string>
26 #include "otbDateTime.h"
27 
28 namespace otb
29 {
38 {
39 public:
42  typedef itk::SmartPointer<Self> Pointer;
43  typedef itk::SmartPointer<const Self> ConstPointer;
44 
46  itkNewMacro(Self);
47 
50 
51  typedef Superclass::ImageType ImageType;
52  typedef Superclass::MetaDataDictionaryType MetaDataDictionaryType;
55 
56  void Parse(ImageMetadata &) override;
57 
58 protected:
60  ~PleiadesImageMetadataInterface() = default;
61 
62 private:
63  PleiadesImageMetadataInterface(const Self&) = delete;
64  void operator=(const Self&) = delete;
65 
66  void FetchTabulatedPhysicalGain(const MetaData::TimePoint & date, ImageMetadata& imd);
67  void FetchSolarIrradiance(const std::vector<double> & dimapSolarIrradiance, ImageMetadata& imd);
68 
69  void FetchSatAngles(const std::vector<double> & incidenceAngles,
70  const std::vector<double> & alongTrackIncidenceAngles,
71  const std::vector<double> & axrossTrackIncidenceAngles,
72  const std::vector<double> & sceneOrientation,
73  ImageMetadata & imd);
74 
77  void FetchSpectralSensitivity(const std::string & sensorId, ImageMetadata &imd);
78 };
80 
81 
82 namespace MetaData
83 {
84 namespace PleiadesUtils
85 {
86  const std::string IMAGE_ID_KEY = "ImageID";
87  const std::string TIME_RANGE_START_KEY = "TimeRangeStart";
88  const std::string TIME_RANGE_END_KEY = "TimeRangeEnd";
89  const std::string LINE_PERIOD_KEY = "LinePeriod";
90  const std::string SWATH_FIRST_COL_KEY = "SwathFirstCol";
91  const std::string SWATH_LAST_COL_KEY = "SwathLastCol";
92 
95  {
96  std::string imageID;
99  double linePeriod;
102  };
103 
105 
108 
109 } // end namespace PleiadesUtils
110 } // end namespace MetaData
111 
112 
113 
114 } // end namespace otb
115 
116 #endif
otb::PleiadesImageMetadataInterface::VariableLengthVectorType
Superclass::VariableLengthVectorType VariableLengthVectorType
Definition: otbPleiadesImageMetadataInterface.h:54
otb::PleiadesImageMetadataInterface
Creation of an "otb" PleiadesImageMetadataInterface that gets metadata.
Definition: otbPleiadesImageMetadataInterface.h:37
otb::PleiadesImageMetadataInterface::MetaDataDictionaryType
Superclass::MetaDataDictionaryType MetaDataDictionaryType
Definition: otbPleiadesImageMetadataInterface.h:52
otb::MetaData::PleiadesUtils::SensorModelCharacteristics::timeRangeEnd
MetaData::TimePoint timeRangeEnd
Definition: otbPleiadesImageMetadataInterface.h:98
otb::MetaData::PleiadesUtils::TIME_RANGE_START_KEY
const std::string TIME_RANGE_START_KEY
Definition: otbPleiadesImageMetadataInterface.h:87
otb::OpticalImageMetadataInterface
Class for Optical captor metadata reading.
Definition: otbOpticalImageMetadataInterface.h:39
otb::MetaData::PleiadesUtils::LINE_PERIOD_KEY
const std::string LINE_PERIOD_KEY
Definition: otbPleiadesImageMetadataInterface.h:89
otb::PleiadesImageMetadataInterface::Superclass
OpticalImageMetadataInterface Superclass
Definition: otbPleiadesImageMetadataInterface.h:41
otb::MetaData::PleiadesUtils::SWATH_FIRST_COL_KEY
const std::string SWATH_FIRST_COL_KEY
Definition: otbPleiadesImageMetadataInterface.h:90
otbDateTime.h
otb::MetaData::PleiadesUtils::SensorModelCharacteristics::linePeriod
double linePeriod
Definition: otbPleiadesImageMetadataInterface.h:99
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::PleiadesImageMetadataInterface::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbPleiadesImageMetadataInterface.h:42
otb::MetaDataKey::VectorType
std::vector< double > VectorType
Definition: otbMetaDataKey.h:119
otb::PleiadesImageMetadataInterface::VectorType
Superclass::VectorType VectorType
Definition: otbPleiadesImageMetadataInterface.h:53
otb::MetaDataKey::VariableLengthVectorType
itk::VariableLengthVector< double > VariableLengthVectorType
Definition: otbMetaDataKey.h:121
otb::MetaData::PleiadesUtils::HasSensorModelCharacteristics
bool HasSensorModelCharacteristics(const ImageMetadata &)
otb::MetaData::PleiadesUtils::SensorModelCharacteristics::swathLastCol
int swathLastCol
Definition: otbPleiadesImageMetadataInterface.h:101
otb::PleiadesImageMetadataInterface::ImageType
Superclass::ImageType ImageType
Definition: otbPleiadesImageMetadataInterface.h:49
otbOpticalImageMetadataInterface.h
otb::MetaData::PleiadesUtils::SensorModelCharacteristics
Definition: otbPleiadesImageMetadataInterface.h:94
otb::MetaData::PleiadesUtils::SensorModelCharacteristics::timeRangeStart
MetaData::TimePoint timeRangeStart
Definition: otbPleiadesImageMetadataInterface.h:97
otb::MetaData::PleiadesUtils::GetSensorModelCharacteristics
SensorModelCharacteristics GetSensorModelCharacteristics(const ImageMetadata &)
otb::MetaData::PleiadesUtils::SensorModelCharacteristics::imageID
std::string imageID
Definition: otbPleiadesImageMetadataInterface.h:96
otb::MetaData::PleiadesUtils::TIME_RANGE_END_KEY
const std::string TIME_RANGE_END_KEY
Definition: otbPleiadesImageMetadataInterface.h:88
otb::MetaData::PleiadesUtils::IMAGE_ID_KEY
const std::string IMAGE_ID_KEY
Definition: otbPleiadesImageMetadataInterface.h:86
otb::MetaData::PleiadesUtils::SWATH_LAST_COL_KEY
const std::string SWATH_LAST_COL_KEY
Definition: otbPleiadesImageMetadataInterface.h:91
otb::ImageMetadataInterfaceBase
Base class for captor metadata reading.
Definition: otbImageMetadataInterfaceBase.h:44
otb::PleiadesImageMetadataInterface::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbPleiadesImageMetadataInterface.h:43
otb::MetaData::PleiadesUtils::SensorModelCharacteristics::swathFirstCol
int swathFirstCol
Definition: otbPleiadesImageMetadataInterface.h:100
otb::ImageMetadata
Generic class containing image metadata used in OTB.
Definition: otbImageMetadata.h:270
otb::MetaData::TimePoint
Represents a point in Time.
Definition: otbDateTime.h:94
otb::PleiadesImageMetadataInterface::Self
PleiadesImageMetadataInterface Self
Definition: otbPleiadesImageMetadataInterface.h:40