Module: msisAtmosphere

Atmosphere class used to calculate temperature / density above a body using multiple models. This class is used to hold relevant atmospheric properties and to compute the density for a given set of spacecraft relative to a specified planet. Planetary parameters, including position and input message, are settable by the user. Internal support is provided for Venus, Earth, and Mars. In a given simulation, each planet of interest should have only one MsisAtmosphere model associated with it linked to the spacecraft in orbit about that body. For more information see the PDF Description.


class MsisAtmosphere : public AtmosphereBase

Public Functions

MsisAtmosphere()

This method initializes some basic parameters for the module.

Return

void

~MsisAtmosphere()

Destructor.

Return

void

Public Members

int epochDoy

[day] Day-of-Year at epoch

std::string epochInMsgName
BSKLogger bskLogger

BSK Logging

Private Functions

void customCrossInit()

This method is used to connect the input position message from the spacecraft. Additonal model-specific cross inits are also conducted.

Return

void

void customWriteMessages(uint64_t CurrentClock)

This method is used to write the output densities whose names are established in AddSpacecraftToModel.

Return

void

Parameters
  • CurrentClock: The current time used for time-stamping the message

bool customReadMessages()

This method is used to read the incoming command message and set the associated spacecraft positions for computing the atmosphere.

Return

void

bool ReadInputs()
void updateInputParams()
void updateSwIndices()
void evaluateAtmosphereModel(AtmoPropsSimMsg *msg, double currentTime)
void customSetEpochFromVariable()

Custom customSetEpochFromVariable() method. This allows specifying epochDoy directly from Python. If an epoch message is set then this variable is not used.

Return

void

Private Members

Eigen::Vector3d currentLLA

[-] Container for local Latitude, Longitude, Altitude geodetic position; units are rad and km respectively.

std::vector<SwDataSimMsg> swDataList

Vector of space weather messages.

std::vector<std::string> swDataInMsgNames

Vector of space weather message names.

int64_t swDataInMsgIds[23]
nrlmsise_input msisInput

Struct containing NRLMSISE-00 input values; see their doc for details.

nrlmsise_output msisOutput

Struct containing NRLMSISE-00 output values; see their doc for details.

nrlmsise_flags msisFlags
ap_array aph
double ap
double f107
double f107A