GLONASSOrbitalElements.java
/* Copyright 2002-2020 CS GROUP
* Licensed to CS GROUP (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.orekit.propagation.analytical.gnss;
import org.orekit.gnss.GLONASSAlmanac;
import org.orekit.gnss.GLONASSEphemeris;
import org.orekit.propagation.numerical.GLONASSNumericalPropagator;
import org.orekit.time.TimeStamped;
/** This interface provides the minimal set of orbital elements needed by the {@link GLONASSAnalyticalPropagator} and
* the {@link GLONASSNumericalPropagator}.
* <p>
* Because input data are different between numerical and analytical GLONASS propagators the
* methods present in this interface are implemented by default.
* Depending if the user wants to use a {@link GLONASSNumericalPropagator} or a {@link GLONASSAnalyticalPropagator}
* he can create an instance of a {@link GLONASSEphemeris} or {@link GLONASSAlmanac}.
* </p>
*
* @see <a href="http://russianspacesystems.ru/wp-content/uploads/2016/08/ICD-GLONASS-CDMA-General.-Edition-1.0-2016.pdf">
* GLONASS Interface Control Document</a>
*
* @author Bryan Cazabonne
* @since 10.0
*
*/
public interface GLONASSOrbitalElements extends TimeStamped {
// Constants
/** Value of the Earth's universal gravitational parameter for GLONASS user in m³/s². */
double GLONASS_MU = 3.986004418e+14;
/** Value of Pi for conversion from semicircles to radian. */
double GLONASS_PI = 3.14159265358979;
/**
* Get the number of the current day in a four year interval.
*
* @return the number of the current day in a four year interval
*/
default int getNa() {
return 0;
}
/**
* Get the number of the current four year interval.
*
* @return the number of the current four year interval
*/
default int getN4() {
return 0;
}
/**
* Get the Reference Time.
*
* @return the Reference Time (s)
*/
default double getTime() {
return 0.0;
}
/**
* Get the longitude of ascending node of orbit.
*
* @return the longitude of ascending node of orbit (rad)
*/
default double getLambda() {
return 0.0;
}
/**
* Get the Eccentricity.
*
* @return the Eccentricity
*/
default double getE() {
return 0.0;
}
/**
* Get the Argument of Perigee.
*
* @return the Argument of Perigee (rad)
*/
default double getPa() {
return 0.0;
}
/**
* Get the correction to the mean value of inlination.
*
* @return the correction to the mean value of inlination (rad)
*/
default double getDeltaI() {
return 0.0;
}
/**
* Get the correction to the mean value of Draconian period.
*
* @return the correction to the mean value of Draconian period (s)
*/
default double getDeltaT() {
return 0.0;
}
/**
* Get the rate of change of Draconian period.
*
* @return the rate of change of Draconian period
*/
default double getDeltaTDot() {
return 0.0;
}
/**
* Get the relative deviation of predicted satellite carrier frequency from nominal value.
*
* @return the relative deviation of predicted satellite carrier frequency from nominal value
*/
default double getGammaN() {
return 0.0;
}
/**
* Get the correction to the satellite time relative to GLONASS system time.
*
* @return the correction to the satellite time relative to GLONASS system time (s)
*
*/
default double getTN() {
return 0.0;
}
/**
* Get the ECEF-X component of satellite velocity vector in PZ-90 datum.
*
* @return the the ECEF-X component of satellite velocity vector in PZ-90 datum (m/s)
*/
default double getXDot() {
return 0.0;
}
/**
* Get the ECEF-X component of satellite coordinates in PZ-90 datum.
*
* @return the ECEF-X component of satellite coordinates in PZ-90 datum (m)
*/
default double getX() {
return 0.0;
}
/**
* Get the GLONASS ECEF-X component of satellite acceleration vector in PZ-90 datum.
*
* @return the GLONASS ECEF-X component of satellite acceleration vector in PZ-90 datum (m/s²)
*/
default double getXDotDot() {
return 0.0;
}
/**
* Get the ECEF-Y component of satellite velocity vector in PZ-90 datum.
*
* @return the ECEF-Y component of satellite velocity vector in PZ-90 datum (m/s)
*/
default double getYDot() {
return 0.0;
}
/**
* Get the ECEF-Y component of satellite coordinates in PZ-90 datum.
*
* @return the ECEF-Y component of satellite coordinates in PZ-90 datum (m)
*/
default double getY() {
return 0.0;
}
/**
* Get the GLONASS ECEF-Y component of satellite acceleration vector in PZ-90 datum.
*
* @return the GLONASS ECEF-Y component of satellite acceleration vector in PZ-90 datum (m/s²)
*/
default double getYDotDot() {
return 0.0;
}
/**
* Get the ECEF-Z component of satellite velocity vector in PZ-90 datum.
*
* @return the the ECEF-Z component of satellite velocity vector in PZ-90 datum (m/s)
*/
default double getZDot() {
return 0.0;
}
/**
* Get the ECEF-Z component of satellite coordinates in PZ-90 datum.
*
* @return the ECEF-Z component of satellite coordinates in PZ-90 datum (m)
*/
default double getZ() {
return 0.0;
}
/**
* Get the GLONASS ECEF-Z component of satellite acceleration vector in PZ-90 datum.
*
* @return the GLONASS ECEF-Z component of satellite acceleration vector in PZ-90 datum (m/s²)
*/
default double getZDotDot() {
return 0.0;
}
/**
* Gets the GLONASS Issue Of Data (IOD).
*
* @return the IOD
*/
default int getIOD() {
return 0;
}
}