public abstract class PotentialCoefficientsReader extends Object implements DataLoader
As it exits many different coefficients models and containers this
interface represents all the methods that should be implemented by a reader.
The proper way to use this interface is to call the GravityFieldFactory
which will determine which reader to use with the selected potential
coefficients file.
GravityFields
Modifier | Constructor and Description |
---|---|
protected |
PotentialCoefficientsReader(String supportedNames,
boolean missingCoefficientsAllowed)
Simple constructor.
|
protected |
PotentialCoefficientsReader(String supportedNames,
boolean missingCoefficientsAllowed,
TimeScale timeScale)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
protected static double[] |
buildFlatArray(org.orekit.forces.gravity.potential.Flattener flattener,
double value)
Build a coefficients array in flat form.
|
protected static double[] |
buildRow(int degree,
int order,
double value)
Build a coefficients row.
|
protected static double[][] |
buildTriangularArray(int degree,
int order,
double value)
Deprecated.
as of 11.1, replaced by
buildFlatArray(Flattener, double) |
protected void |
extendListOfLists(List<List<Double>> list,
int degree,
int order,
double value)
Deprecated.
as of 11.1, not used anymore
|
protected double |
getAe()
Get the central body reference radius.
|
protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics |
getBaseProvider(boolean wantNormalized,
int degree,
int order)
Get a time-independent provider containing base harmonics coefficients.
|
protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics |
getConstantProvider(boolean wantNormalized,
int degree,
int order)
Deprecated.
as of 11.1, not used anymore
|
int |
getMaxAvailableDegree()
Get the maximal degree available in the last file parsed.
|
int |
getMaxAvailableOrder()
Get the maximal order available in the last file parsed.
|
int |
getMaxParseDegree()
Get the degree limit for the next file parsing.
|
int |
getMaxParseOrder()
Get the order limit for the next file parsing.
|
protected double |
getMu()
Get the central body attraction coefficient.
|
abstract RawSphericalHarmonicsProvider |
getProvider(boolean wantNormalized,
int degree,
int order)
Get a provider for read spherical harmonics coefficients.
|
String |
getSupportedNames()
Get the regular expression for supported files names.
|
protected TideSystem |
getTideSystem()
Get the
TideSystem used in the gravity field. |
abstract void |
loadData(InputStream input,
String name)
Load data from a stream.
|
boolean |
missingCoefficientsAllowed()
Check if missing coefficients are allowed in the input data.
|
protected void |
parseCoefficient(String field,
double[][] array,
int i,
int j,
String cName,
String name)
Deprecated.
as of 11.1, replaced by
parseCoefficient(String,
Flattener, double[], int, int, String, String) |
protected void |
parseCoefficient(String field,
org.orekit.forces.gravity.potential.Flattener f,
double[] array,
int i,
int j,
String cName,
String name)
Parse a coefficient.
|
protected void |
parseCoefficient(String field,
List<List<Double>> list,
int i,
int j,
String cName,
String name)
Deprecated.
as of 11.1, replaced by
parseCoefficient(String,
Flattener, double[], int, int, String, String) |
protected static double |
parseDouble(String string)
Parse a double from a string.
|
protected org.orekit.forces.gravity.potential.TimeDependentHarmonic[] |
rescale(boolean wantNormalized,
org.orekit.forces.gravity.potential.Flattener rescaledFlattener,
org.orekit.forces.gravity.potential.Flattener originalFlattener,
org.orekit.forces.gravity.potential.TimeDependentHarmonic[] original)
Rescale coefficients arrays.
|
protected static void |
rescale(double scale,
boolean normalizedOrigin,
double[][] originC,
double[][] originS,
boolean wantNormalized,
double[][] rescaledC,
double[][] rescaledS)
Deprecated.
as of 11.1, replaced by
rescale(double, boolean, Flattener, Flattener, double[]) |
protected double[] |
rescale(double scale,
boolean wantNormalized,
org.orekit.forces.gravity.potential.Flattener rescaledFlattener,
org.orekit.forces.gravity.potential.Flattener originalFlattener,
double[] original)
Rescale coefficients arrays.
|
protected void |
setAe(double ae)
Set the central body reference radius.
|
void |
setMaxParseDegree(int maxParseDegree)
Set the degree limit for the next file parsing.
|
void |
setMaxParseOrder(int maxParseOrder)
Set the order limit for the next file parsing.
|
protected void |
setMu(double mu)
Set the central body attraction coefficient.
|
protected void |
setRawCoefficients(boolean rawNormalized,
double[][] c,
double[][] s,
String name)
Deprecated.
as of 11.1, replaced by
setRawCoefficients(boolean,
Flattener, double[], double[], String) |
protected void |
setRawCoefficients(boolean rawNormalized,
org.orekit.forces.gravity.potential.Flattener f,
double[] c,
double[] s,
String name)
Set the tesseral-sectorial coefficients matrix.
|
protected void |
setReadComplete(boolean readComplete)
Set the indicator for completed read.
|
protected void |
setTideSystem(TideSystem tideSystem)
Set the
TideSystem used in the gravity field. |
boolean |
stillAcceptsData()
Check if the loader still accepts new data.
|
protected double[][] |
toArray(List<List<Double>> list)
Deprecated.
as of 11.1, not used anymore
|
protected AbsoluteDate |
toDate(DateComponents components)
Create a date from components.
|
protected AbsoluteDate |
toDate(DateComponents dc,
TimeComponents tc)
Create a date from components.
|
@DefaultDataContext protected PotentialCoefficientsReader(String supportedNames, boolean missingCoefficientsAllowed)
Build an uninitialized reader.
This constructor uses the default data context
.
supportedNames
- regular expression for supported files namesmissingCoefficientsAllowed
- allow missing coefficients in the input dataPotentialCoefficientsReader(String, boolean, TimeScale)
protected PotentialCoefficientsReader(String supportedNames, boolean missingCoefficientsAllowed, TimeScale timeScale)
Build an uninitialized reader.
supportedNames
- regular expression for supported files namesmissingCoefficientsAllowed
- allow missing coefficients in the input datatimeScale
- to use when parsing dates.public String getSupportedNames()
public boolean missingCoefficientsAllowed()
public void setMaxParseDegree(int maxParseDegree)
maxParseDegree
- maximal degree to parse (may be safely
set to Integer.MAX_VALUE
to parse all available coefficients)public int getMaxParseDegree()
public void setMaxParseOrder(int maxParseOrder)
maxParseOrder
- maximal order to parse (may be safely
set to Integer.MAX_VALUE
to parse all available coefficients)public int getMaxParseOrder()
public boolean stillAcceptsData()
This method is used to speed up data loading by interrupting crawling the data sets as soon as a loader has found the data it was waiting for. For loaders that can merge data from any number of sources (for example JPL ephemerides or Earth Orientation Parameters that are split among several files), this method should always return true to make sure no data is left over.
stillAcceptsData
in interface DataLoader
protected void setReadComplete(boolean readComplete)
readComplete
- if true, a gravity field has been completely readprotected void setAe(double ae)
ae
- central body reference radiusprotected double getAe()
protected void setMu(double mu)
mu
- central body attraction coefficientprotected double getMu()
protected void setTideSystem(TideSystem tideSystem)
TideSystem
used in the gravity field.tideSystem
- tide system used in the gravity fieldprotected TideSystem getTideSystem()
TideSystem
used in the gravity field.@Deprecated protected void setRawCoefficients(boolean rawNormalized, double[][] c, double[][] s, String name)
setRawCoefficients(boolean,
Flattener, double[], double[], String)
rawNormalized
- if true, raw coefficients are normalizedc
- raw tesseral-sectorial coefficients matrixs
- raw tesseral-sectorial coefficients matrixname
- name of the file (or zip entry)protected void setRawCoefficients(boolean rawNormalized, org.orekit.forces.gravity.potential.Flattener f, double[] c, double[] s, String name)
rawNormalized
- if true, raw coefficients are normalizedf
- converter from triangular to flat formc
- raw tesseral-sectorial coefficients matrixs
- raw tesseral-sectorial coefficients matrixname
- name of the file (or zip entry)public int getMaxAvailableDegree()
public int getMaxAvailableOrder()
public abstract void loadData(InputStream input, String name) throws IOException, ParseException, OrekitException
loadData
in interface DataLoader
input
- data input streamname
- name of the file (or zip entry)IOException
- if data can't be readParseException
- if data can't be parsed
or if some loader specific error occursOrekitException
public abstract RawSphericalHarmonicsProvider getProvider(boolean wantNormalized, int degree, int order)
wantNormalized
- if true, the provider will provide normalized coefficients,
otherwise it will provide un-normalized coefficientsdegree
- maximal degreeorder
- maximal ordergetConstantProvider(boolean, int, int)
protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics getBaseProvider(boolean wantNormalized, int degree, int order)
Beware that some coeefficients may be missing here, if they are managed as time-dependent piecewise models (as in ICGEM V2.0).
wantNormalized
- if true, the raw provider must provide normalized coefficients,
otherwise it will provide un-normalized coefficientsdegree
- maximal degreeorder
- maximal ordergetProvider(boolean, int, int)
@Deprecated protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics getConstantProvider(boolean wantNormalized, int degree, int order)
wantNormalized
- if true, the raw provider must provide normalized coefficients,
otherwise it will provide un-normalized coefficientsdegree
- maximal degreeorder
- maximal ordergetProvider(boolean, int, int)
@Deprecated protected static double[][] buildTriangularArray(int degree, int order, double value)
buildFlatArray(Flattener, double)
degree
- array degreeorder
- array ordervalue
- initial value to put in array elementsprotected static double[] buildFlatArray(org.orekit.forces.gravity.potential.Flattener flattener, double value)
flattener
- converter from triangular to flat formvalue
- initial value to put in array elementsprotected static double parseDouble(String string)
string
- to be parsed.string
.protected static double[] buildRow(int degree, int order, double value)
degree
- row degreeorder
- row ordervalue
- initial value to put in array elements@Deprecated protected void extendListOfLists(List<List<Double>> list, int degree, int order, double value)
list
- list of lists of coefficientsdegree
- degree required to be presentorder
- order required to be presentvalue
- initial value to put in list elements@Deprecated protected double[][] toArray(List<List<Double>> list)
list
- list of lists of coefficients@Deprecated protected void parseCoefficient(String field, List<List<Double>> list, int i, int j, String cName, String name)
parseCoefficient(String,
Flattener, double[], int, int, String, String)
field
- text field to parselist
- list where to put the coefficienti
- first index in the listj
- second index in the listcName
- name of the coefficientname
- name of the file@Deprecated protected void parseCoefficient(String field, double[][] array, int i, int j, String cName, String name)
parseCoefficient(String,
Flattener, double[], int, int, String, String)
field
- text field to parsearray
- array where to put the coefficienti
- first index in the listj
- second index in the listcName
- name of the coefficientname
- name of the fileprotected void parseCoefficient(String field, org.orekit.forces.gravity.potential.Flattener f, double[] array, int i, int j, String cName, String name)
field
- text field to parsef
- converter from triangular to flat formarray
- array where to put the coefficienti
- first index in the listj
- second index in the listcName
- name of the coefficientname
- name of the file@Deprecated protected static void rescale(double scale, boolean normalizedOrigin, double[][] originC, double[][] originS, boolean wantNormalized, double[][] rescaledC, double[][] rescaledS)
rescale(double, boolean, Flattener, Flattener, double[])
scale
- general scaling factor to apply to all elementsnormalizedOrigin
- if true, the origin coefficients are normalizedoriginC
- cosine part of the original coefficientsoriginS
- sine part of the origin coefficientswantNormalized
- if true, the rescaled coefficients must be normalizedrescaledC
- cosine part of the rescaled coefficients to fill in (may be the originC array)rescaledS
- sine part of the rescaled coefficients to fill in (may be the originS array)protected double[] rescale(double scale, boolean wantNormalized, org.orekit.forces.gravity.potential.Flattener rescaledFlattener, org.orekit.forces.gravity.potential.Flattener originalFlattener, double[] original)
The normalized/unnormalized nature of original coefficients is inherited from previous parsing.
scale
- general scaling factor to apply to all elementswantNormalized
- if true, the rescaled coefficients must be normalized,
otherwise they must be un-normalizedrescaledFlattener
- converter from triangular to flat formoriginalFlattener
- converter from triangular to flat formoriginal
- original coefficientsprotected org.orekit.forces.gravity.potential.TimeDependentHarmonic[] rescale(boolean wantNormalized, org.orekit.forces.gravity.potential.Flattener rescaledFlattener, org.orekit.forces.gravity.potential.Flattener originalFlattener, org.orekit.forces.gravity.potential.TimeDependentHarmonic[] original)
The normalized/unnormalized nature of original coefficients is inherited from previous parsing.
wantNormalized
- if true, the rescaled coefficients must be normalized,
otherwise they must be un-normalizedrescaledFlattener
- converter from triangular to flat formoriginalFlattener
- converter from triangular to flat formoriginal
- original coefficientsprotected AbsoluteDate toDate(DateComponents components)
components
- year, month, day.protected AbsoluteDate toDate(DateComponents dc, TimeComponents tc)
dc
- dates components.tc
- time componentsCopyright © 2002-2022 CS GROUP. All rights reserved.