🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::JplDe类 参考

#include <JplDe.hpp>

Public 类型

enum  EDataCode {
  eNotAvailable = -1 , eMercury = 0 , eVenus = 1 , eEarth = 2 ,
  eMars = 3 , eJupiter = 4 , eSaturn = 5 , eUranus = 6 ,
  eNeptune = 7 , ePluto = 8 , eMoon = 9 , eSun = 10 ,
  eSSBarycenter = 11 , eEMBarycenter = 12
}
 

Public 成员函数

errc_t open (const char *filepath)
 
errc_t openDefault ()
 
bool isOpen () const
 
void close ()
 
errc_t getPosVelICRF (const TimePoint &time, EDataCode target, EDataCode referenceBody, Vector3d &pos, Vector3d &vel)
 
errc_t getPosVelICRF (const TimePoint &time, EDataCode target, EDataCode referenceBody, Vector3d &pos, Vector3d *vel)
 
errc_t getPosICRF (const TimePoint &time, EDataCode target, EDataCode referenceBody, Vector3d &pos)
 
errc_t getPosICRF_TT (const JulianDate jdTT, EDataCode target, EDataCode referenceBody, Vector3d &pos)
 
errc_t getNutation (const TimePoint &time, double &nutLong, double &nutObl)
 
errc_t getLibration (const TimePoint &time, Vector3d &ang, Vector3d &angRate)
 
errc_t getLibration (const TimePoint &time, Vector3d &ang)
 
errc_t getLibration (const TimePoint &time, Euler &ang)
 
uint32_t getEphemVersion () const
 
errc_t getInterval (TimeInterval &interval) const
 

Protected 属性

bool m_IsSameEndian
 
uint32_t m_EphemVerion { 0 }
 
uint32_t m_NumConstants
 
uint32_t m_NumDataBlock {0}
 
uint32_t m_NumCoeff
 
uint32_t m_ipt [15][3] {}
 
double m_EphemStart {0}
 
double m_EphemEnd {0}
 
double m_EphemStep {0}
 
double m_AU
 
double m_EMMassRatio
 
FILE * m_DeFile { NULL }
 
double ** m_DataBlocks {NULL}
 
std::mutex m_DataBlockMutex
 

详细描述

JPL DE文件接口类

成员枚举类型说明

◆ EDataCode

枚举值
eNotAvailable 

不可用

eMercury 

水星

eVenus 

金星

eEarth 

地球

eMars 

火星

eJupiter 

木星

eSaturn 

土星

eUranus 

天王星

eNeptune 

海王星

ePluto 

冥王星

eMoon 

月球

eSun 

太阳

eSSBarycenter 

太阳系质心

eEMBarycenter 

地月系质心

成员函数说明

◆ getEphemVersion()

uint32_t ast::JplDe::getEphemVersion ( ) const
inline

获取JPL DE文件的星历版本

返回值
-星历版本

◆ getInterval()

errc_t ast::JplDe::getInterval ( TimeInterval & interval) const

获取JPL DE星历数据的时间间隔

参数
interval- 时间间隔
返回值
-错误码

◆ getLibration() [1/3]

errc_t ast::JplDe::getLibration ( const TimePoint & time,
Euler & ang )

获取对应时间点的月面天平动相关角度(Euler)

参数
time- 时间点
ang- 从ICRF到月球惯性主轴坐标系的转角(rad)
  • [omega,i,u],[进动角,章动角,自转角],按照313顺序旋转
返回值
-错误码

◆ getLibration() [2/3]

errc_t ast::JplDe::getLibration ( const TimePoint & time,
Vector3d & ang )

获取对应时间点的月面天平动角相关角度

参数
time- 时间点
ang- 从ICRF到月球惯性主轴坐标系的转角(rad)
  • [omega,i,u],[进动角,章动角,自转角],按照313顺序旋转
返回值
-错误码

◆ getLibration() [3/3]

errc_t ast::JplDe::getLibration ( const TimePoint & time,
Vector3d & ang,
Vector3d & angRate )

获取对应时间点的月面天平动相关角度

参数
time- 时间点
ang- 从ICRF到月球惯性主轴坐标系的转角(rad)
  • [omega,i,u],[进动角,章动角,自转角],按照313顺序旋转
angRate- 转动角速率(rad/s)
返回值
-错误码

◆ getNutation()

errc_t ast::JplDe::getNutation ( const TimePoint & time,
double & nutLong,
double & nutObl )

获取对应时间点的章动角

参数
time- 时间点
nutLong- 章动经度(rad)
nutObl- 章动倾角(rad)
返回值
-错误码

◆ getPosICRF()

errc_t ast::JplDe::getPosICRF ( const TimePoint & time,
EDataCode target,
EDataCode referenceBody,
Vector3d & pos )

获取对应时间点的目标天体在参考天体下的位置

位置向量的参考系是参考天体为中心的ICRF系

参数
time- 时间点
target- 目标天体
referenceBody-参考天体
pos- 位置向量
返回值
-错误码

◆ getPosICRF_TT()

errc_t ast::JplDe::getPosICRF_TT ( const JulianDate jdTT,
EDataCode target,
EDataCode referenceBody,
Vector3d & pos )

获取对应时间点的目标天体在参考天体下的位置

位置向量的参考系是参考天体为中心的ICRF系

参数
jdTT- 儒略日(动力学时间)
target- 目标天体
referenceBody-参考天体
pos- 位置向量
返回值
-错误码

◆ getPosVelICRF()

errc_t ast::JplDe::getPosVelICRF ( const TimePoint & time,
EDataCode target,
EDataCode referenceBody,
Vector3d & pos,
Vector3d & vel )

获取对应时间点的目标天体在参考天体下的位置和速度

位置向量和速度向量的参考系是参考天体为中心的ICRF系

参数
time- 时间点
target- 目标天体
referenceBody-参考天体
pos- 位置向量
vel- 速度向量
返回值
-错误码

◆ isOpen()

bool ast::JplDe::isOpen ( ) const

检查JPL DE文件是否已打开

返回值
-是否已打开

◆ open()

errc_t ast::JplDe::open ( const char * filepath)

打开JPL DE文件

参数
filepath- JPL DE文件路径
返回值
-错误码

该类的文档由以下文件生成: