1   /* Copyright 2002-2025 CS GROUP
2    * Licensed to CS GROUP (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.orekit.models.earth.atmosphere;
18  
19  import java.io.Serializable;
20  import org.orekit.time.AbsoluteDate;
21  
22  /**
23   * Interface for solar activity and magnetic activity data.
24   *
25   * @author Fabien Maussion
26   */
27  public interface JB2006InputParameters extends Serializable {
28  
29      /**
30       * Get the value of the instantaneous solar flux index
31       * (1e<sup>-22</sup>*Watt/(m²*Hertz)).
32       * Tabular time 1.0 day earlier.
33       *
34       * @param date the current date
35       * @return the instantaneous F10.7 index
36       */
37      double getF10(AbsoluteDate date);
38  
39      /**
40       * Get the value of the mean solar flux.
41       * Averaged 81-day centered F10.7 B index on the input time.
42       *
43       * @param date the current date
44       * @return the mean solar flux F10.7B index
45       */
46      double getF10B(AbsoluteDate date);
47  
48      /**
49       * Get the EUV index (26-34 nm) scaled to F10.
50       * Tabular time 1 day earlier.
51       *
52       * @param date the current date
53       * @return the the EUV S10 index
54       */
55      double getS10(AbsoluteDate date);
56  
57      /**
58       * Get the EUV 81-day averaged centered index.
59       *
60       * @param date the current date
61       * @return the the mean EUV S10B index
62       */
63      double getS10B(AbsoluteDate date);
64  
65      /**
66       * Get the MG2 index scaled to F10.
67       *
68       * @param date the current date
69       * @return the the EUV S10 index
70       */
71      double getXM10(AbsoluteDate date);
72  
73      /**
74       * Get the MG2 81-day average centered index.
75       * Tabular time 5.0 days earlier.
76       *
77       * @param date the current date
78       * @return the the mean EUV S10B index
79       */
80      double getXM10B(AbsoluteDate date);
81  
82      /**
83       * Get the Geomagnetic planetary 3-hour index A<sub>p</sub>.
84       * Tabular time 6.7 hours earlier.
85       *
86       * @param date the current date
87       * @return the A<sub>p</sub> index
88       */
89      double getAp(AbsoluteDate date);
90  
91      /**
92       * Gets the available data range minimum date.
93       *
94       * @return the minimum date.
95       */
96      AbsoluteDate getMinDate();
97  
98      /**
99       * Gets the available data range maximum date.
100      *
101      * @return the maximum date.
102      */
103     AbsoluteDate getMaxDate();
104 }