public class GravityFieldFactory extends Object
Modifier and Type | Field and Description |
---|---|
static String |
EGM_FILENAME
Default regular expression for EGM files.
|
static String |
FES_CHAT_EPSILON_FILENAME
Default regular expression for FES C hat and epsilon tides files.
|
static String |
FES_CNM_SNM_FILENAME
Default regular expression for FES Cnm, Snm tides files.
|
static String |
FES_HF_FILENAME
Default regular expression for FES Hf tides files.
|
static String |
GRGS_FILENAME
Default regular expression for GRGS files.
|
static String |
ICGEM_FILENAME
Default regular expression for ICGEM files.
|
static String |
SHM_FILENAME
Default regular expression for SHM files.
|
Modifier and Type | Method and Description |
---|---|
static void |
addDefaultOceanTidesReaders()
Add the default READERS for ocean tides.
|
static void |
addDefaultPotentialCoefficientsReaders()
Add the default readers for gravity fields.
|
static void |
addOceanTidesReader(OceanTidesReader reader)
Add a reader for ocean tides.
|
static void |
addPotentialCoefficientsReader(PotentialCoefficientsReader reader)
Add a reader for gravity fields.
|
static void |
clearOceanTidesReaders()
Clear ocean tides readers.
|
static void |
clearPotentialCoefficientsReaders()
Clear gravity field readers.
|
static void |
configureOceanLoadDeformationCoefficients(OceanLoadDeformationCoefficients oldc)
Configure ocean load deformation coefficients.
|
static NormalizedSphericalHarmonicsProvider |
getConstantNormalizedProvider(int degree,
int order)
Get the constant gravity field coefficients provider from the first supported file.
|
static UnnormalizedSphericalHarmonicsProvider |
getConstantUnnormalizedProvider(int degree,
int order)
Get the constant gravity field coefficients provider from the first supported file.
|
static LazyLoadedGravityFields |
getGravityFields()
Get the instance of
GravityFields that is called by the static methods of
this class. |
static NormalizedSphericalHarmonicsProvider |
getNormalizedProvider(double ae,
double mu,
TideSystem tideSystem,
double[][] normalizedC,
double[][] normalizedS)
Create a time-independent
NormalizedSphericalHarmonicsProvider from canonical coefficients. |
static NormalizedSphericalHarmonicsProvider |
getNormalizedProvider(int degree,
int order)
Get the gravity field coefficients provider from the first supported file.
|
static NormalizedSphericalHarmonicsProvider |
getNormalizedProvider(UnnormalizedSphericalHarmonicsProvider unnormalized)
Create a
NormalizedSphericalHarmonicsProvider from an UnnormalizedSphericalHarmonicsProvider . |
static OceanLoadDeformationCoefficients |
getOceanLoadDeformationCoefficients()
Get the configured ocean load deformation coefficients.
|
static List<OceanTidesWave> |
getOceanTidesWaves(int degree,
int order)
Get the ocean tides waves from the first supported file.
|
static double[][] |
getUnnormalizationFactors(int degree,
int order)
Get a un-normalization factors array.
|
static UnnormalizedSphericalHarmonicsProvider |
getUnnormalizedProvider(double ae,
double mu,
TideSystem tideSystem,
double[][] unnormalizedC,
double[][] unnormalizedS)
Create a time-independent
UnnormalizedSphericalHarmonicsProvider from canonical coefficients. |
static UnnormalizedSphericalHarmonicsProvider |
getUnnormalizedProvider(int degree,
int order)
Get the gravity field coefficients provider from the first supported file.
|
static UnnormalizedSphericalHarmonicsProvider |
getUnnormalizedProvider(NormalizedSphericalHarmonicsProvider normalized)
Create an
UnnormalizedSphericalHarmonicsProvider from a NormalizedSphericalHarmonicsProvider . |
static PotentialCoefficientsReader |
readGravityField(int maxParseDegree,
int maxParseOrder)
Read a gravity field coefficients provider from the first supported file.
|
public static final String ICGEM_FILENAME
public static final String SHM_FILENAME
public static final String EGM_FILENAME
public static final String GRGS_FILENAME
public static final String FES_CNM_SNM_FILENAME
public static final String FES_CHAT_EPSILON_FILENAME
public static final String FES_HF_FILENAME
@DefaultDataContext public static LazyLoadedGravityFields getGravityFields()
GravityFields
that is called by the static methods of
this class.@DefaultDataContext public static void addPotentialCoefficientsReader(PotentialCoefficientsReader reader)
reader
- custom reader to add for the gravity fieldaddDefaultPotentialCoefficientsReaders()
,
clearPotentialCoefficientsReaders()
@DefaultDataContext public static void addDefaultPotentialCoefficientsReaders()
The default READERS supports ICGEM, SHM, EGM and GRGS formats with the
default names ICGEM_FILENAME
, SHM_FILENAME
, EGM_FILENAME
, GRGS_FILENAME
and don't allow missing coefficients.
@DefaultDataContext public static void clearPotentialCoefficientsReaders()
@DefaultDataContext public static void addOceanTidesReader(OceanTidesReader reader)
reader
- custom reader to add for the gravity fieldaddDefaultPotentialCoefficientsReaders()
,
clearPotentialCoefficientsReaders()
@DefaultDataContext public static void configureOceanLoadDeformationCoefficients(OceanLoadDeformationCoefficients oldc)
oldc
- ocean load deformation coefficientsgetOceanLoadDeformationCoefficients()
@DefaultDataContext public static OceanLoadDeformationCoefficients getOceanLoadDeformationCoefficients()
If configureOceanLoadDeformationCoefficients
has never been called, the default
value will be the IERS 2010
coefficients.
configureOceanLoadDeformationCoefficients(OceanLoadDeformationCoefficients)
@DefaultDataContext public static void addDefaultOceanTidesReaders()
The default READERS supports files similar to the fes2004_Cnm-Snm.dat and
fes2004.dat as published by IERS, using the configured
ocean load deformation coefficients, which by default are the
IERS 2010 coefficients, which are limited to degree 6. If higher degree
coefficients are needed, the configureOceanLoadDeformationCoefficients
method can be called prior to
loading the ocean tides model with the high degree coefficients
computed
by Pascal Gégout.
WARNING: the files referenced in the published conventions have some errors. These errors have been corrected and the updated files can be found here: http://tai.bipm.org/iers/convupdt/convupdt_c6.html.
@DefaultDataContext public static void clearOceanTidesReaders()
@DefaultDataContext public static NormalizedSphericalHarmonicsProvider getConstantNormalizedProvider(int degree, int order)
If no PotentialCoefficientsReader
has been added by calling addPotentialCoefficientsReader
or if clearPotentialCoefficientsReaders
has been called afterwards, the addDefaultPotentialCoefficientsReaders
method will be called automatically.
degree
- maximal degreeorder
- maximal ordergetNormalizedProvider(int, int)
@DefaultDataContext public static NormalizedSphericalHarmonicsProvider getNormalizedProvider(int degree, int order)
If no PotentialCoefficientsReader
has been added by calling addPotentialCoefficientsReader
or if clearPotentialCoefficientsReaders
has been called afterwards, the addDefaultPotentialCoefficientsReaders
method will be called automatically.
degree
- maximal degreeorder
- maximal ordergetConstantNormalizedProvider(int, int)
@DefaultDataContext public static UnnormalizedSphericalHarmonicsProvider getConstantUnnormalizedProvider(int degree, int order)
If no PotentialCoefficientsReader
has been added by calling addPotentialCoefficientsReader
or if clearPotentialCoefficientsReaders
has been called afterwards, the addDefaultPotentialCoefficientsReaders
method will be called automatically.
degree
- maximal degreeorder
- maximal ordergetUnnormalizedProvider(int, int)
@DefaultDataContext public static UnnormalizedSphericalHarmonicsProvider getUnnormalizedProvider(int degree, int order)
If no PotentialCoefficientsReader
has been added by calling addPotentialCoefficientsReader
or if clearPotentialCoefficientsReaders
has been called afterwards, the addDefaultPotentialCoefficientsReaders
method will be called automatically.
degree
- maximal degreeorder
- maximal ordergetConstantUnnormalizedProvider(int, int)
@DefaultDataContext public static PotentialCoefficientsReader readGravityField(int maxParseDegree, int maxParseOrder)
If no PotentialCoefficientsReader
has been added by calling addPotentialCoefficientsReader
or if clearPotentialCoefficientsReaders
has been called afterwards, the addDefaultPotentialCoefficientsReaders
method will be called automatically.
maxParseDegree
- maximal degree to parsemaxParseOrder
- maximal order to parse@DefaultDataContext public static List<OceanTidesWave> getOceanTidesWaves(int degree, int order)
If no OceanTidesReader
has been added by calling addOceanTidesReader
or if clearOceanTidesReaders
has been called afterwards, the addDefaultOceanTidesReaders
method will be called automatically.
WARNING: as of 2013-11-17, there seem to be an inconsistency when loading one or the other file, for wave Sa (Doodson number 56.554) and P1 (Doodson number 163.555). The sign of the coefficients are different. We think the problem lies in the input files from IERS and not in the conversion (which works for all other waves), but cannot be sure. For this reason, ocean tides are still considered experimental at this date.
degree
- maximal degreeorder
- maximal orderpublic static NormalizedSphericalHarmonicsProvider getNormalizedProvider(double ae, double mu, TideSystem tideSystem, double[][] normalizedC, double[][] normalizedS)
NormalizedSphericalHarmonicsProvider
from canonical coefficients.
Note that contrary to the other factory method, this one does not read any data, it simply uses the provided data
ae
- central body reference radiusmu
- central body attraction coefficienttideSystem
- tide systemnormalizedC
- normalized tesseral-sectorial coefficients (cosine part)normalizedS
- normalized tesseral-sectorial coefficients (sine part)public static NormalizedSphericalHarmonicsProvider getNormalizedProvider(UnnormalizedSphericalHarmonicsProvider unnormalized)
NormalizedSphericalHarmonicsProvider
from an UnnormalizedSphericalHarmonicsProvider
.
Note that contrary to the other factory method, this one does not read any data, it simply uses the provided data.
unnormalized
- provider to normalizepublic static UnnormalizedSphericalHarmonicsProvider getUnnormalizedProvider(double ae, double mu, TideSystem tideSystem, double[][] unnormalizedC, double[][] unnormalizedS)
UnnormalizedSphericalHarmonicsProvider
from canonical coefficients.
Note that contrary to the other factory method, this one does not read any data, it simply uses the provided data
ae
- central body reference radiusmu
- central body attraction coefficienttideSystem
- tide systemunnormalizedC
- un-normalized tesseral-sectorial coefficients (cosine part)unnormalizedS
- un-normalized tesseral-sectorial coefficients (sine part)public static UnnormalizedSphericalHarmonicsProvider getUnnormalizedProvider(NormalizedSphericalHarmonicsProvider normalized)
UnnormalizedSphericalHarmonicsProvider
from a NormalizedSphericalHarmonicsProvider
.
Note that contrary to the other factory method, this one does not read any data, it simply uses the provided data.
normalized
- provider to un-normalizepublic static double[][] getUnnormalizationFactors(int degree, int order)
Un-normalized coefficients are obtained by multiplying normalized coefficients by the factors array elements.
degree
- maximal degreeorder
- maximal orderCopyright © 2002-2020 CS Group. All rights reserved.