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
19 import org.orekit.propagation.analytical.gnss.SBASPropagator;
20 import org.orekit.time.TimeStamped;
21
22 /** This interface provides the minimal set of orbital elements needed by the {@link SBASPropagator}.
23 *
24 * @author Bryan Cazabonne
25 * @since 10.1
26 *
27 */
28 public interface SBASOrbitalElements extends TimeStamped {
29
30 /**
31 * Gets the PRN number of the SBAS satellite.
32 *
33 * @return the PRN number of the SBAS satellite
34 */
35 int getPRN();
36
37 /**
38 * Gets the Reference Week of the SBAS orbit.
39 *
40 * @return the Reference Week of the SBAS orbit
41 */
42 int getWeek();
43
44 /**
45 * Gets the Reference Time of the SBAS orbit in GPS seconds of the week.
46 *
47 * @return the Reference Time of the SBAS orbit (s)
48 */
49 double getTime();
50
51 /**
52 * Get the ECEF-X component of satellite coordinates.
53 *
54 * @return the ECEF-X component of satellite coordinates (m)
55 */
56 double getX();
57
58 /**
59 * Get the ECEF-X component of satellite velocity vector.
60 *
61 * @return the the ECEF-X component of satellite velocity vector (m/s)
62 */
63 double getXDot();
64
65 /**
66 * Get the ECEF-X component of satellite acceleration vector.
67 *
68 * @return the GLONASS ECEF-X component of satellite acceleration vector (m/s²)
69 */
70 double getXDotDot();
71
72 /**
73 * Get the ECEF-Y component of satellite coordinates.
74 *
75 * @return the ECEF-Y component of satellite coordinates (m)
76 */
77 double getY();
78
79 /**
80 * Get the ECEF-Y component of satellite velocity vector.
81 *
82 * @return the ECEF-Y component of satellite velocity vector (m/s)
83 */
84 double getYDot();
85
86 /**
87 * Get the ECEF-Y component of satellite acceleration vector.
88 *
89 * @return the ECEF-Y component of satellite acceleration vector (m/s²)
90 */
91 double getYDotDot();
92
93 /**
94 * Get the ECEF-Z component of satellite coordinates.
95 *
96 * @return the ECEF-Z component of satellite coordinates (m)
97 */
98 double getZ();
99
100 /**
101 * Get the ECEF-Z component of satellite velocity vector.
102 *
103 * @return the the ECEF-Z component of satellite velocity vector (m/s)
104 */
105 double getZDot();
106
107 /**
108 * Get the ECEF-Z component of satellite acceleration vector.
109 *
110 * @return the ECEF-Z component of satellite acceleration vector (m/s²)
111 */
112 double getZDotDot();
113
114 /**
115 * Gets the Issue Of Data Navigation (IODN).
116 *
117 * @return the IODN
118 */
119 default int getIODN() {
120 return 0;
121 }
122
123 /**
124 * Gets the Zeroth Order Clock Correction.
125 *
126 * @return the Zeroth Order Clock Correction (s)
127 */
128 default double getAGf0() {
129 return 0.0;
130 }
131
132 /**
133 * Gets the First Order Clock Correction.
134 *
135 * @return the First Order Clock Correction (s/s)
136 */
137 default double getAGf1() {
138 return 0.0;
139 }
140
141 /**
142 * Gets the clock correction reference time toc.
143 *
144 * @return the clock correction reference time (s)
145 */
146 default double getToc() {
147 return 0.0;
148 }
149
150 }