FieldIntelsatElevenElements.java
/* Copyright 2002-2024 Airbus Defence and Space
* 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.
* Airbus Defence and Space 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.intelsat;
import org.hipparchus.CalculusFieldElement;
import org.orekit.time.FieldAbsoluteDate;
/**
* This class is a container for a single set of Intelsat's 11 Elements data.
* <p>
* Intelsat's 11 elements are defined in ITU-R S.1525 standard.
* </p>
*
* @author Bryan Cazabonne
* @since 12.1
*/
public class FieldIntelsatElevenElements<T extends CalculusFieldElement<T>> {
/**
* Elements epoch.
*/
private final FieldAbsoluteDate<T> epoch;
/**
* Mean longitude (East of Greenwich).
*/
private final T lm0;
/**
* Drift rate.
*/
private final T lm1;
/**
* Drift acceleration.
*/
private final T lm2;
/**
* Longitude oscillation-amplitude for the cosine term.
*/
private final T lonC;
/**
* Rate of change of longitude, for the cosine term.
*/
private final T lonC1;
/**
* Longitude oscillation-amplitude for the sine term.
*/
private final T lonS;
/**
* Rate of change of longitude, for the sine term.
*/
private final T lonS1;
/**
* Latitude oscillation-amplitude for the cosine term.
*/
private final T latC;
/**
* Rate of change of latitude, for the cosine term.
*/
private final T latC1;
/**
* Latitude oscillation-amplitude for the sine term.
*/
private final T latS;
/**
* Rate of change of latitude, for the sine term.
*/
private final T latS1;
/**
* Constructor.
*
* @param epoch elements epoch
* @param lm0 mean longitude (East of Greenwich) in degrees
* @param lm1 drift rate in degrees/day
* @param lm2 drift acceleration in degrees/day/day
* @param lonC longitude oscillation-amplitude for the cosine term in degrees
* @param lonC1 rate of change of longitude, for the cosine term, in degrees/day
* @param lonS longitude oscillation-amplitude for the sine term in degrees
* @param lonS1 rate of change of longitude, for the sine term, in degrees/day
* @param latC latitude oscillation-amplitude for the cosine term in degrees
* @param latC1 rate of change of latitude, for the cosine term, in degrees/day
* @param latS latitude oscillation-amplitude for the sine term in degrees
* @param latS1 rate of change of latitude, for the sine term, in degrees/day
*/
public FieldIntelsatElevenElements(final FieldAbsoluteDate<T> epoch, final T lm0, final T lm1, final T lm2, final T lonC, final T lonC1, final T lonS, final T lonS1,
final T latC, final T latC1, final T latS, final T latS1) {
this.epoch = epoch;
this.lm0 = lm0;
this.lm1 = lm1;
this.lm2 = lm2;
this.lonC = lonC;
this.lonC1 = lonC1;
this.lonS = lonS;
this.lonS1 = lonS1;
this.latC = latC;
this.latC1 = latC1;
this.latS = latS;
this.latS1 = latS1;
}
/**
* Get the elements epoch.
*
* @return elements epoch
*/
public FieldAbsoluteDate<T> getEpoch() {
return epoch;
}
/**
* Get the mean longitude (East of Greenwich).
*
* @return the mean longitude (East of Greenwich) in degrees
*/
public T getLm0() {
return lm0;
}
/**
* Get the drift rate.
*
* @return the drift rate in degrees/day
*/
public T getLm1() {
return lm1;
}
/**
* Get the drift acceleration.
*
* @return the drift acceleration in degrees/day/day
*/
public T getLm2() {
return lm2;
}
/**
* Get the longitude oscillation-amplitude for the cosine term.
*
* @return the longitude oscillation-amplitude for the cosine term in degrees
*/
public T getLonC() {
return lonC;
}
/**
* Get the rate of change of longitude, for the cosine term.
*
* @return the rate of change of longitude, for the cosine term, in degrees/day
*/
public T getLonC1() {
return lonC1;
}
/**
* Get the longitude oscillation-amplitude for the sine term.
*
* @return the longitude oscillation-amplitude for the sine term in degrees
*/
public T getLonS() {
return lonS;
}
/**
* Get the rate of change of longitude, for the sine term.
*
* @return the rate of change of longitude, for the sine term, in degrees/day
*/
public T getLonS1() {
return lonS1;
}
/**
* Get the latitude oscillation-amplitude for the cosine term.
*
* @return the latitude oscillation-amplitude for the cosine term in degrees
*/
public T getLatC() {
return latC;
}
/**
* Get the rate of change of latitude, for the cosine term.
*
* @return the rate of change of latitude, for the cosine term, in degrees/day
*/
public T getLatC1() {
return latC1;
}
/**
* Get the latitude oscillation-amplitude for the sine term.
*
* @return the latitude oscillation-amplitude for the sine term in degrees
*/
public T getLatS() {
return latS;
}
/**
* Get the rate of change of latitude, for the sine term.
*
* @return the rate of change of latitude, for the sine term, in degrees/day
*/
public T getLatS1() {
return latS1;
}
}