SBASOrbitalElements.java

  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.propagation.analytical.gnss.data;

  18. import org.orekit.propagation.analytical.gnss.SBASPropagator;
  19. import org.orekit.time.TimeStamped;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  131. }