Class HarrisPriester
- java.lang.Object
-
- org.orekit.forces.drag.atmosphere.HarrisPriester
-
- All Implemented Interfaces:
Serializable
,Atmosphere
public class HarrisPriester extends Object implements Atmosphere
This atmosphere model is the realization of the Modified Harris-Priester model.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- Author:
- Pascal Parraud
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends org.hipparchus.RealFieldElement<T>>
TgetDensity(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>>
TgetDensity(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.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.forces.drag.atmosphere.Atmosphere
getVelocity, getVelocity
-
-
-
-
Constructor Detail
-
HarrisPriester
public HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth)
Simple constructor for Modified Harris-Priester atmosphere model.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.
- Parameters:
sun
- the sun positionearth
- the earth body shape
-
HarrisPriester
public HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth, double n)
Constructor for Modified Harris-Priester atmosphere model.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.
- Parameters:
sun
- the sun positionearth
- the earth body shapen
- the cosine exponent
-
HarrisPriester
public HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth, double[][] tabAltRho)
Constructor for Modified Harris-Priester atmosphere model.The provided density table must be an array such as:
- tabAltRho[][0] = altitude (m)
- tabAltRho[][1] = min density (kg/m³)
- tabAltRho[][2] = max density (kg/m³)
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.
- Parameters:
sun
- the sun positionearth
- the earth body shapetabAltRho
- the density table
-
HarrisPriester
public HarrisPriester(PVCoordinatesProvider sun, OneAxisEllipsoid earth, double[][] tabAltRho, double n)
Constructor for Modified Harris-Priester atmosphere model.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:
- tabAltRho[][0] = altitude (m)
- tabAltRho[][1] = min density (kg/m³)
- tabAltRho[][2] = max density (kg/m³)
The altitude must be increasing without limitation in range. The internal density table is a copy of the provided one.
- Parameters:
sun
- the sun positionearth
- the earth body shapetabAltRho
- the density tablen
- the cosine exponent
-
-
Method Detail
-
getFrame
public Frame getFrame()
Get the frame of the central body.- Specified by:
getFrame
in interfaceAtmosphere
- Returns:
- frame of the central body.
-
getTabDensity
public double[][] getTabDensity()
Get the current density table.The density table is an array such as:
- tabAltRho[][0] = altitude (m)
- tabAltRho[][1] = min density (kg/m³)
- tabAltRho[][2] = max density (kg/m³)
The altitude must be increasing without limitation in range.
The returned density table is a copy of the current one.
- Returns:
- density vs. altitude table
-
getMinAlt
public double getMinAlt()
Get the minimal altitude for the model.No computation is possible below this altitude.
- Returns:
- the minimal altitude (m)
-
getMaxAlt
public double getMaxAlt()
Get the maximal altitude for the model.Above this altitude, density is assumed to be zero.
- Returns:
- the maximal altitude (m)
-
getDensity
public double getDensity(org.hipparchus.geometry.euclidean.threed.Vector3D sunInEarth, org.hipparchus.geometry.euclidean.threed.Vector3D posInEarth)
Get the local density.- Parameters:
sunInEarth
- position of the Sun in Earth frame (m)posInEarth
- target position in Earth frame (m)- Returns:
- the local density (kg/m³)
-
getDensity
public <T extends org.hipparchus.RealFieldElement<T>> T getDensity(org.hipparchus.geometry.euclidean.threed.Vector3D sunInEarth, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> posInEarth)
Get the local density.- Type Parameters:
T
- instance of RealFieldElement- Parameters:
sunInEarth
- position of the Sun in Earth frame (m)posInEarth
- target position in Earth frame (m)- Returns:
- the local density (kg/m³)
-
getDensity
public double getDensity(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, Frame frame)
Get the local density at some position.- Specified by:
getDensity
in interfaceAtmosphere
- Parameters:
date
- current dateposition
- current positionframe
- the frame in which is defined the position- Returns:
- local density (kg/m³) or if altitude is below the model minimal altitude
-
getDensity
public <T extends org.hipparchus.RealFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, Frame frame)
Get the local density at some position.- Specified by:
getDensity
in interfaceAtmosphere
- Type Parameters:
T
- implements a RealFieldElement- Parameters:
date
- current dateposition
- current positionframe
- the frame in which is defined the position- Returns:
- local density (kg/m³) or if altitude is below the model minimal altitude
-
-