OTB  9.0.0
Orfeo Toolbox
otbVarSol.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 otbVarSol_h
22 #define otbVarSol_h
23 
24 #include "itkMacro.h"
25 #include "otbMath.h"
26 
27 namespace otb
28 {
29 
43 class ITK_EXPORT VarSol
44 {
45 public:
47  static double GetVarSol(const int day, const int month)
48  {
49  /* System generated locals */
50  double d__1;
51 
52  /* Local variables */
53  int j;
54  double om;
55 
56  /* calculation of the variability of the solar constant during the year. */
57  /* day is the number of the day in the month */
58  if (month <= 2)
59  j = (month - 1) * 31 + day;
60  else if (month > 8)
61  j = (month - 1) * 31 - (month - 2) / 2 - 2 + day;
62  else
63  j = (month - 1) * 31 - (month - 1) / 2 - 2 + day;
64 
65  om = (double)(j - 4) * .9856 * CONST_PI_180;
66  /* Computing 2nd power */
67  d__1 = 1. - std::cos(om) * .01673;
68  return 1. / (d__1 * d__1);
69  }
70 };
71 } // end namespace otb
72 #endif
otbMath.h
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::CONST_PI_180
constexpr double CONST_PI_180
Definition: otbMath.h:56
otb::VarSol
VarSol operations.
Definition: otbVarSol.h:43
otb::VarSol::GetVarSol
static double GetVarSol(const int day, const int month)
Definition: otbVarSol.h:47