OrbitFile.java
/* Copyright 2002-2012 Space Applications Services
* Licensed to CS Systèmes d'Information (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.files.general;
import java.util.Collection;
import java.util.List;
import org.orekit.time.AbsoluteDate;
/** Interface for orbit file representations.
* @author Thomas Neidhart
*/
public interface OrbitFile {
/** Time system used throughout this orbit file. */
public enum TimeSystem {
/** Greenwich Mean Sidereal Time. */
GMST,
/** Global Positioning System. */
GPS,
/** GLONASS. */
GLO,
/** GALILEO. */
GAL,
/** International Atomic Time. */
TAI,
/** Coordinated Universal Time. */
UTC,
/** Universal Time 1. */
UT1,
/** Terrestrial Time. */
TT,
/** Geocentric Coordinate Time. */
TCG,
/** Barycentric Dynamic Time. */
TDB,
/** Barycentric Coordinate Time. */
TCB,
/** Quasi-Zenith System. */
QZS,
/** Mission Elapsed Time. */
MET,
/** Mission Relative Time. */
MRT;
}
/** Returns the start epoch of the orbit file.
* @return the start epoch
*/
AbsoluteDate getEpoch();
/** Returns the time interval between epochs (in seconds).
* @return the time interval between epochs
*/
double getEpochInterval();
/** Returns the number of epochs contained in this orbit file.
* @return the number of epochs
*/
int getNumberOfEpochs();
/** Returns the coordinate system of the entries in this orbit file.
* @return the coordinate system
*/
String getCoordinateSystem();
/** Returns the {@link TimeSystem} used to time-stamp position entries.
* @return the {@link TimeSystem} of the orbit file
*/
TimeSystem getTimeSystem();
/** Returns a {@link Collection} of {@link SatelliteInformation} objects for
* all satellites contained in this orbit file.
* @return a {@link Collection} of {@link SatelliteInformation} objects
*/
Collection<SatelliteInformation> getSatellites();
/** Get the number of satellites contained in this orbit file.
* @return the number of satellites
*/
int getSatelliteCount();
/** Get additional information about a satellite.
* @param satId the satellite id
* @return a {@link SatelliteInformation} object describing the satellite if
* present, <code>null</code> otherwise
*/
SatelliteInformation getSatellite(final String satId);
/** Tests whether a satellite with the given id is contained in this orbit
* file.
* @param satId the satellite id
* @return <code>true</code> if the satellite is contained in the file,
* <code>false</code> otherwise
*/
boolean containsSatellite(final String satId);
/** Get the time coordinates for the given satellite.
* @param satId the satellite id
* @return a {@link List} of {@link SatelliteTimeCoordinate} entries for
* this satellite
*/
List<SatelliteTimeCoordinate> getSatelliteCoordinates(final String satId);
}