AbstractAlmanac.java

  1. /* Copyright 2002-2022 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.propagation.analytical.gnss.data;

  18. import org.hipparchus.util.FastMath;

  19. /**
  20.  * Base class for GNSS almanacs.
  21.  * @author Pascal Parraud
  22.  * @since 11.0
  23.  */
  24. public abstract class AbstractAlmanac extends CommonGnssData {

  25.     /**
  26.      * Constructor.
  27.      * @param mu Earth's universal gravitational parameter
  28.      * @param angularVelocity mean angular velocity of the Earth for the GNSS model
  29.      * @param weekNumber number of weeks in the GNSS cycle
  30.      */
  31.     public AbstractAlmanac(final double mu,
  32.                            final double angularVelocity,
  33.                            final int weekNumber) {
  34.         super(mu, angularVelocity, weekNumber);
  35.     }

  36.     /**
  37.      * Getter for the mean motion.
  38.      * @return the mean motion
  39.      */
  40.     public double getMeanMotion() {
  41.         final double absA = FastMath.abs(getSma());
  42.         return FastMath.sqrt(getMu() / absA) / absA;
  43.     }

  44.     /**
  45.      * Getter for the rate of inclination angle.
  46.      * <p>
  47.      * By default, not contained in a GNSS almanac
  48.      * </p>
  49.      * @return the rate of inclination angle in rad/s
  50.      */
  51.     public double getIDot() {
  52.         return 0.0;
  53.     }

  54.     /**
  55.      * Getter for the Cuc parameter.
  56.      * <p>
  57.      * By default, not contained in a GNSS almanac
  58.      * </p>
  59.      * @return the Cuc parameter
  60.      */
  61.     public double getCuc() {
  62.         return 0.0;
  63.     }

  64.     /**
  65.      * Getter for the Cus parameter.
  66.      * <p>
  67.      * By default, not contained in a GNSS almanac
  68.      * </p>
  69.      * @return the Cus parameter
  70.      */
  71.     public double getCus() {
  72.         return 0.0;
  73.     }

  74.     /**
  75.      * Getter for the Crc parameter.
  76.      * <p>
  77.      * By default, not contained in a GNSS almanac
  78.      * </p>
  79.      * @return the Crc parameter
  80.      */
  81.     public double getCrc() {
  82.         return 0.0;
  83.     }

  84.     /**
  85.      * Getter for the Crs parameter.
  86.      * <p>
  87.      * By default, not contained in a GNSS almanac
  88.      * </p>
  89.      * @return the Crs parameter
  90.      */
  91.     public double getCrs() {
  92.         return 0.0;
  93.     }

  94.     /**
  95.      * Getter for the Cic parameter.
  96.      * <p>
  97.      * By default, not contained in a GNSS almanac
  98.      * </p>
  99.      * @return the Cic parameter
  100.      */
  101.     public double getCic() {
  102.         return 0.0;
  103.     }

  104.     /**
  105.      * Getter for the Cis parameter.
  106.      * <p>
  107.      * By default, not contained in a GNSS almanac
  108.      * </p>
  109.      * @return the Cis parameter
  110.      */
  111.     public double getCis() {
  112.         return 0.0;
  113.     }

  114.     /**
  115.      * Getter for the Drift Rate Correction Coefficient.
  116.      * <p>
  117.      * By default, not contained in a GNSS almanac
  118.      * </p>
  119.      * @return the Drift Rate Correction Coefficient (s/s²).
  120.      */
  121.     public double getAf2() {
  122.         return 0.0;
  123.     }

  124. }