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