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.ionosphere;
18
19 import org.hipparchus.CalculusFieldElement;
20
21 /**
22 * Interface for mapping functions used in the ionospheric delay computation.
23 * <p>
24 * The purpose of an ionospheric mapping function is to convert the
25 * Vertical Total Electron Content (VTEC) to a Slant Total Electron Content (STEC)
26 * using the following formula:
27 * </p> <pre>
28 * STEC = VTEC * m(e)
29 * </pre> <p>
30 * With m(e) the ionospheric mapping function and e the satellite elevation.
31 * </p>
32 * @author Bryan Cazabonne
33 * @since 10.2
34 */
35 public interface IonosphericMappingFunction {
36
37 /**
38 * This method allows the computation of the ionospheric mapping factor.
39 * @param elevation the elevation of the satellite, in radians.
40 * @return the ionospheric mapping factor.
41 */
42 double mappingFactor(double elevation);
43
44 /**
45 * This method allows the computation of the ionospheric mapping factor.
46 * @param elevation the elevation of the satellite, in radians.
47 * @param <T> type of the elements
48 * @return the ionospheric mapping factor.
49 */
50 <T extends CalculusFieldElement<T>> T mappingFactor(T elevation);
51
52 }