Serializable
, Atmosphere
public class HarrisPriester extends Object implements Atmosphere
This model is a static one that takes into account the diurnal density bulge. It doesn't need any space weather data but a density vs. altitude table, which depends on solar activity.
The implementation relies on the book:
Satellite Orbits
Oliver Montenbruck, Eberhard Gill
Springer 2005
Constructor | Description |
---|---|
HarrisPriester(PVCoordinatesProvider sun,
OneAxisEllipsoid earth) |
Simple constructor for Modified Harris-Priester atmosphere model.
|
HarrisPriester(PVCoordinatesProvider sun,
OneAxisEllipsoid earth,
double n) |
Constructor for Modified Harris-Priester atmosphere model.
|
HarrisPriester(PVCoordinatesProvider sun,
OneAxisEllipsoid earth,
double[][] tabAltRho) |
Constructor for Modified Harris-Priester atmosphere model.
|
HarrisPriester(PVCoordinatesProvider sun,
OneAxisEllipsoid earth,
double[][] tabAltRho,
double n) |
Constructor for Modified Harris-Priester atmosphere model.
|
Modifier and Type | Method | Description |
---|---|---|
<T extends org.hipparchus.RealFieldElement<T>> |
getDensity(org.hipparchus.geometry.euclidean.threed.Vector3D sunInEarth,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> posInEarth) |
Get the local density.
|
double |
getDensity(org.hipparchus.geometry.euclidean.threed.Vector3D sunInEarth,
org.hipparchus.geometry.euclidean.threed.Vector3D posInEarth) |
Get the local density.
|
double |
getDensity(AbsoluteDate date,
org.hipparchus.geometry.euclidean.threed.Vector3D position,
Frame frame) |
Get the local density at some position.
|
<T extends org.hipparchus.RealFieldElement<T>> |
getDensity(FieldAbsoluteDate<T> date,
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position,
Frame frame) |
Get the local density at some position.
|
Frame |
getFrame() |
Get the frame of the central body.
|
double |
getMaxAlt() |
Get the maximal altitude for the model.
|
double |
getMinAlt() |
Get the minimal altitude for the model.
|
double[][] |
getTabDensity() |
Get the current density table.
|
getVelocity, getVelocity
public HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth)
The cosine exponent value is set to 4 by default.
The default embedded density table is the one given in the referenced book from Montenbruck & Gill. It is given for mean solar activity and spreads over 100 to 1000 km.
sun
- the sun positionearth
- the earth body shapepublic HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth, double n)
Recommanded values for the cosine exponent spread over the range 2, for low inclination orbits, to 6, for polar orbits.
The default embedded density table is the one given in the referenced book from Montenbruck & Gill. It is given for mean solar activity and spreads over 100 to 1000 km.
sun
- the sun positionearth
- the earth body shapen
- the cosine exponentpublic HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth, double[][] tabAltRho)
The provided density table must be an array such as:
The altitude must be increasing without limitation in range. The internal density table is a copy of the provided one.
The cosine exponent value is set to 4 by default.
sun
- the sun positionearth
- the earth body shapetabAltRho
- the density tablepublic HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth, double[][] tabAltRho, double n)
Recommanded values for the cosine exponent spread over the range 2, for low inclination orbits, to 6, for polar orbits.
The provided density table must be an array such as:
The altitude must be increasing without limitation in range. The internal density table is a copy of the provided one.
sun
- the sun positionearth
- the earth body shapetabAltRho
- the density tablen
- the cosine exponentpublic Frame getFrame()
getFrame
in interface Atmosphere
public double[][] getTabDensity()
The density table is an array such as:
The altitude must be increasing without limitation in range.
The returned density table is a copy of the current one.
public double getMinAlt()
No computation is possible below this altitude.
public double getMaxAlt()
Above this altitude, density is assumed to be zero.
public double getDensity(org.hipparchus.geometry.euclidean.threed.Vector3D sunInEarth, org.hipparchus.geometry.euclidean.threed.Vector3D posInEarth)
sunInEarth
- position of the Sun in Earth frame (m)posInEarth
- target position in Earth frame (m)public <T extends org.hipparchus.RealFieldElement<T>> T getDensity(org.hipparchus.geometry.euclidean.threed.Vector3D sunInEarth, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> posInEarth)
T
- instance of RealFieldElementsunInEarth
- position of the Sun in Earth frame (m)posInEarth
- target position in Earth frame (m)public double getDensity(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, Frame frame)
getDensity
in interface Atmosphere
date
- current dateposition
- current positionframe
- the frame in which is defined the positionpublic <T extends org.hipparchus.RealFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, Frame frame)
getDensity
in interface Atmosphere
T
- implements a RealFieldElementdate
- current dateposition
- current positionframe
- the frame in which is defined the positionCopyright © 2002-2019 CS Systèmes d'information. All rights reserved.