1 /* Copyright 2002-2019 CS Systèmes d'Information 2 * Licensed to CS Systèmes d'Information (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; 18 19 import org.hipparchus.RealFieldElement; 20 import org.orekit.time.AbsoluteDate; 21 import org.orekit.time.FieldAbsoluteDate; 22 23 /** Defines a tropospheric model, used to calculate the path delay imposed to 24 * electro-magnetic signals between an orbital satellite and a ground station. 25 * <p> 26 * Models that implement this interface split the delay into hydrostatic 27 * and non-hydrostatic part: 28 * </p> 29 * <pre> 30 * δ = δ<sub>h</sub> + δ<sub>nh</sub> 31 * </pre> 32 * With: 33 * <ul> 34 * <li> δ<sub>h</sub> = hydrostatic delay </li> 35 * <li> δ<sub>nh</sub> = non-hydrostatic (or wet) delay </li> 36 * </ul> 37 * @author Bryan Cazabonne 38 */ 39 public interface DiscreteTroposphericModel extends MappingFunction { 40 41 /** Calculates the tropospheric path delay for the signal path from a ground 42 * station to a satellite. 43 * 44 * @param elevation the elevation of the satellite, in radians 45 * @param height the height of the station in m above sea level 46 * @param parameters tropospheric model parameters. 47 * @param date current date 48 * @return the path delay due to the troposphere in m 49 */ 50 double pathDelay(double elevation, double height, double[] parameters, AbsoluteDate date); 51 52 /** Calculates the tropospheric path delay for the signal path from a ground 53 * station to a satellite. 54 * 55 * @param <T> type of the elements 56 * @param elevation the elevation of the satellite, in radians 57 * @param height the height of the station in m above sea level 58 * @param parameters tropospheric model parameters. 59 * @param date current date 60 * @return the path delay due to the troposphere in m 61 */ 62 <T extends RealFieldElement<T>> T pathDelay(T elevation, T height, T[] parameters, FieldAbsoluteDate<T> date); 63 64 /** This method allows the computation of the zenith hydrostatic and 65 * zenith wet delay. The resulting element is an array having the following form: 66 * <ul> 67 * <li>double[0] = D<sub>hz</sub> → zenith hydrostatic delay 68 * <li>double[1] = D<sub>wz</sub> → zenith wet delay 69 * </ul> 70 * @param height the height of the station in m above sea level. 71 * @param parameters tropospheric model parameters. 72 * @param date current date 73 * @return a two components array containing the zenith hydrostatic and wet delays. 74 */ 75 double[] computeZenithDelay(double height, double[] parameters, AbsoluteDate date); 76 77 /** This method allows the computation of the zenith hydrostatic and 78 * zenith wet delay. The resulting element is an array having the following form: 79 * <ul> 80 * <li>T[0] = D<sub>hz</sub> → zenith hydrostatic delay 81 * <li>T[1] = D<sub>wz</sub> → zenith wet delay 82 * </ul> 83 * @param <T> type of the elements 84 * @param height the height of the station in m above sea level. 85 * @param parameters tropospheric model parameters. 86 * @param date current date 87 * @return a two components array containing the zenith hydrostatic and wet delays. 88 */ 89 <T extends RealFieldElement<T>> T[] computeZenithDelay(T height, T[] parameters, FieldAbsoluteDate<T> date); 90 91 }