1 /* Copyright 2002-2021 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.GNSSPropagator;
20 import org.orekit.time.TimeStamped;
21
22 /** This interface provides the minimal set of orbital elements needed by the {@link GNSSPropagator}.
23 *
24 * @author Pascal Parraud
25 *
26 */
27 public interface GNSSOrbitalElements extends TimeStamped {
28
29 /**
30 * Gets the PRN number of the GNSS satellite.
31 *
32 * @return the PRN number of the GNSS satellite
33 */
34 int getPRN();
35
36 /**
37 * Gets the Reference Week of the GNSS orbit.
38 *
39 * @return the Reference Week of the GNSS orbit within [0, 1024[
40 */
41 int getWeek();
42
43 /**
44 * Gets the Reference Time of the GNSS orbit as a duration from week start.
45 *
46 * @return the Reference Time of the GNSS orbit (s)
47 */
48 double getTime();
49
50 /**
51 * Gets the Semi-Major Axis.
52 *
53 * @return the Semi-Major Axis (m)
54 */
55 double getSma();
56
57 /**
58 * Gets the Mean Motion.
59 *
60 * @return the Mean Motion (rad/s)
61 */
62 double getMeanMotion();
63
64 /**
65 * Gets the Eccentricity.
66 *
67 * @return the Eccentricity
68 */
69 double getE();
70
71 /**
72 * Gets the Inclination Angle at Reference Time.
73 *
74 * @return the Inclination Angle at Reference Time (rad)
75 */
76 double getI0();
77
78 /**
79 * Gets the Rate of Inclination Angle.
80 *
81 * @return the Rate of Inclination Angle (rad/s)
82 */
83 double getIDot();
84
85 /**
86 * Gets the Longitude of Ascending Node of Orbit Plane at Weekly Epoch.
87 *
88 * @return the Longitude of Ascending Node of Orbit Plane at Weekly Epoch (rad)
89 */
90 double getOmega0();
91
92 /**
93 * Gets the Rate of Right Ascension.
94 *
95 * @return the Rate of Right Ascension (rad/s)
96 */
97 double getOmegaDot();
98
99 /**
100 * Gets the Argument of Perigee.
101 *
102 * @return the Argument of Perigee (rad)
103 */
104 double getPa();
105
106 /**
107 * Gets the Mean Anomaly at Reference Time.
108 *
109 * @return the Mean Anomaly at Reference Time (rad)
110 */
111 double getM0();
112
113 /**
114 * Gets the Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude.
115 *
116 * @return the Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude (rad)
117 */
118 double getCuc();
119
120 /**
121 * Gets the Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude.
122 *
123 * @return the Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude (rad)
124 */
125 double getCus();
126
127 /**
128 * Gets the Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius.
129 *
130 * @return the Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius (m)
131 */
132 double getCrc();
133
134 /**
135 * Gets the Amplitude of the Sine Harmonic Correction Term to the Orbit Radius.
136 *
137 * @return the Amplitude of the Sine Harmonic Correction Term to the Orbit Radius (m)
138 */
139 double getCrs();
140
141 /**
142 * Gets the Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination.
143 *
144 * @return the Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination (rad)
145 */
146 double getCic();
147
148 /**
149 * Gets the Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination.
150 *
151 * @return the Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination (rad)
152 */
153 double getCis();
154
155 /**
156 * Gets the Earth's universal gravitational parameter.
157 *
158 * @return the Earth's universal gravitational parameter
159 */
160 double getMu();
161
162 /**
163 * Gets the mean angular velocity of the Earth of the GNSS model.
164 *
165 * @return the mean angular velocity of the Earth of the GNSS model
166 */
167 double getAngularVelocity();
168
169 /**
170 * Gets the duration of the GNSS cycle in seconds.
171 *
172 * @return the duration of the GNSS cycle in seconds
173 */
174 double getCycleDuration();
175
176 }