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 and 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 and Description |
---|---|
double |
getDensity(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the local density at some position.
|
<T extends CalculusFieldElement<T>> |
getDensity(FieldAbsoluteDate<T> date,
FieldVector3D<T> position,
Frame frame)
Get the local density at some position.
|
<T extends CalculusFieldElement<T>> |
getDensity(Vector3D sunInEarth,
FieldVector3D<T> posInEarth)
Get the local density.
|
double |
getDensity(Vector3D sunInEarth,
Vector3D posInEarth)
Get the local density.
|
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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(Vector3D sunInEarth, Vector3D posInEarth)
sunInEarth
- position of the Sun in Earth frame (m)posInEarth
- target position in Earth frame (m)public <T extends CalculusFieldElement<T>> T getDensity(Vector3D sunInEarth, FieldVector3D<T> posInEarth)
T
- instance of CalculusFieldElement<T>sunInEarth
- position of the Sun in Earth frame (m)posInEarth
- target position in Earth frame (m)public double getDensity(AbsoluteDate date, Vector3D position, Frame frame)
getDensity
in interface Atmosphere
date
- current dateposition
- current positionframe
- the frame in which is defined the positionpublic <T extends CalculusFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, FieldVector3D<T> position, Frame frame)
getDensity
in interface Atmosphere
T
- implements a CalculusFieldElementdate
- current dateposition
- current positionframe
- the frame in which is defined the positionCopyright © 2002-2022 CS GROUP. All rights reserved.