File GeneralPerturbations.hpp¶
File List > astrea > astro > astro > state > orbital_data_formats > instances > GeneralPerturbations.hpp
Go to the documentation of this file
#pragma once
#include <iosfwd>
#include <optional>
#include <string>
#include <nlohmann/json.hpp>
namespace astrea {
namespace astro {
struct GeneralPerturbations { // TODO: Right now, units are implied, but they should be used if possible. At least look into
GeneralPerturbations() = default;
GeneralPerturbations(const nlohmann::json& data);
~GeneralPerturbations() = default;
int DB_ID;
std::optional<double> APOAPSIS;
std::optional<long double> ARG_OF_PERICENTER;
std::optional<long double> BSTAR;
std::string CCSDS_OMM_VERS;
std::string CENTER_NAME;
std::optional<char> CLASSIFICATION_TYPE;
std::string COMMENT;
std::optional<std::string> COUNTRY_CODE;
std::optional<std::string> CREATION_DATE;
std::optional<std::string> DECAY_DATE;
std::optional<long double> ECCENTRICITY;
std::optional<short> ELEMENT_SET_NO;
std::optional<short unsigned> EPHEMERIS_TYPE;
std::optional<std::string> EPOCH;
std::optional<long unsigned> FILE;
unsigned GP_ID;
std::optional<long double> INCLINATION;
std::optional<std::string> LAUNCH_DATE;
std::optional<double> MEAN_ANOMALY;
std::string MEAN_ELEMENT_THEORY;
std::optional<long double> MEAN_MOTION;
std::optional<long double> MEAN_MOTION_DDOT;
std::optional<long double> MEAN_MOTION_DOT;
unsigned NORAD_CAT_ID;
std::optional<std::string> OBJECT_ID;
std::optional<std::string> OBJECT_NAME;
std::optional<std::string> OBJECT_TYPE;
std::string ORIGINATOR;
std::optional<double> PERIAPSIS;
std::optional<double> PERIOD;
std::optional<long double> RA_OF_ASC_NODE;
std::optional<std::string> RCS_SIZE;
std::string REF_FRAME;
std::optional<unsigned> REV_AT_EPOCH;
std::optional<double> SEMIMAJOR_AXIS;
std::optional<std::string> SITE;
std::string TIME_SYSTEM;
std::optional<std::string> TLE_LINE0;
std::optional<std::string> TLE_LINE1;
std::optional<std::string> TLE_LINE2;
};
std::ostream& operator<<(std::ostream& os, const GeneralPerturbations& gp);
} // namespace astro
} // namespace astrea