SBASOrbitalElements.java

  1. /* Copyright 2002-2020 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;

  18. import org.orekit.time.TimeStamped;

  19. /** This interface provides the minimal set of orbital elements needed by the {@link SBASPropagator}.
  20. *
  21. * @author Bryan Cazabonne
  22. * @since 10.1
  23. *
  24. */
  25. public interface SBASOrbitalElements extends TimeStamped {

  26.     /** WGS 84 value of the Earth's universal gravitational parameter for SBAS user in m³/s². */
  27.     double SBAS_MU = 3.986005e+14;

  28.     /**
  29.      * Gets the PRN number of the SBAS satellite.
  30.      *
  31.      * @return the PRN number of the SBAS satellite
  32.      */
  33.     int getPRN();

  34.     /**
  35.      * Gets the Reference Week of the SBAS orbit.
  36.      *
  37.      * @return the Reference Week of the SBAS orbit
  38.      */
  39.     int getWeek();

  40.     /**
  41.      * Gets the Reference Time of the SBAS orbit in GPS seconds of the week.
  42.      *
  43.      * @return the Reference Time of the SBAS orbit (s)
  44.      */
  45.     double getTime();

  46.     /**
  47.      * Get the ECEF-X component of satellite coordinates.
  48.      *
  49.      * @return the ECEF-X component of satellite coordinates (m)
  50.      */
  51.     double getX();

  52.     /**
  53.      * Get the ECEF-X component of satellite velocity vector.
  54.      *
  55.      * @return the the ECEF-X component of satellite velocity vector (m/s)
  56.      */
  57.     double getXDot();

  58.     /**
  59.      * Get the ECEF-X component of satellite acceleration vector.
  60.      *
  61.      * @return the GLONASS ECEF-X component of satellite acceleration vector (m/s²)
  62.      */
  63.     double getXDotDot();

  64.     /**
  65.      * Get the ECEF-Y component of satellite coordinates.
  66.      *
  67.      * @return the ECEF-Y component of satellite coordinates (m)
  68.      */
  69.     double getY();

  70.     /**
  71.      * Get the ECEF-Y component of satellite velocity vector.
  72.      *
  73.      * @return the ECEF-Y component of satellite velocity vector (m/s)
  74.      */
  75.     double getYDot();

  76.     /**
  77.      * Get the ECEF-Y component of satellite acceleration vector.
  78.      *
  79.      * @return the ECEF-Y component of satellite acceleration vector (m/s²)
  80.      */
  81.     double getYDotDot();

  82.     /**
  83.      * Get the ECEF-Z component of satellite coordinates.
  84.      *
  85.      * @return the ECEF-Z component of satellite coordinates (m)
  86.      */
  87.     double getZ();

  88.     /**
  89.      * Get the ECEF-Z component of satellite velocity vector.
  90.      *
  91.      * @return the the ECEF-Z component of satellite velocity vector (m/s)
  92.      */
  93.     double getZDot();

  94.     /**
  95.      * Get the ECEF-Z component of satellite acceleration vector.
  96.      *
  97.      * @return the ECEF-Z component of satellite acceleration vector (m/s²)
  98.      */
  99.     double getZDotDot();

  100.     /**
  101.      * Gets the Issue Of Data Navigation (IODN).
  102.      *
  103.      * @return the IODN
  104.      */
  105.     default int getIODN() {
  106.         return 0;
  107.     }

  108.     /**
  109.      * Gets the Zeroth Order Clock Correction.
  110.      *
  111.      * @return the Zeroth Order Clock Correction (s)
  112.      */
  113.     default double getAGf0() {
  114.         return 0.0;
  115.     }

  116.     /**
  117.      * Gets the First Order Clock Correction.
  118.      *
  119.      * @return the First Order Clock Correction (s/s)
  120.      */
  121.     default double getAGf1() {
  122.         return 0.0;
  123.     }

  124.     /**
  125.      * Gets the clock correction reference time toc.
  126.      *
  127.      * @return the clock correction reference time (s)
  128.      */
  129.     default double getToc() {
  130.         return 0.0;
  131.     }

  132. }