🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
数据读取

详细描述

提供地球指向参数(EOP)、闰秒、行星星历等数据的加载和查询功能。

class  ast::DataContext
 
class  ast::GlobalContext
 
struct  ast::PoleMotion
 
class  ast::EOP
 
class  ast::JplDe
 
class  ast::LeapSecond
 
class  ast::SpaceWeather
 
class  ast::SpiceApi
 

函数

errc_t ast::aInitialize ()
 
errc_t ast::aInitializeByConfig (StringView configfile)
 
errc_t ast::aUninitialize ()
 
std::string ast::aGetDefaultSPKDir ()
 
std::string ast::aDataDirGet ()
 
errc_t ast::aDataDirGet (std::string &datadir)
 
errc_t ast::aDataDirSet (StringView dirpath)
 
GlobalContextast::aGlobalContext_Get ()
 
IAUXYSast::aGlobalContext_GetIAUXYS ()
 
DataContextast::aDataContext_GetCurrent ()
 
DataContextast::aDataContext_GetDefault ()
 
DataContextast::aDataContext_EnsureDefault ()
 
DataContextast::aDataContext_EnsureCurrent ()
 
void ast::aDataContext_SetCurrent (DataContext *context)
 
EOPast::aDataContext_GetEOP ()
 
SolarSystemast::aDataContext_GetSolarSystem ()
 
IAUXYSPrecomputedast::aDataContext_GetIAUXYSPrecomputed ()
 
StartupConfigast::aDataContext_GetConfig ()
 
DataContextast::aDataContext_New ()
 
ValueView ast::aGetConfigValue (StringView key)
 
std::vector< std::string > ast::aGetConfigStringVector (StringView key)
 
std::vector< StringViewast::aGetConfigStringViewVector (StringView key)
 
double ast::aUT1MinusUTC_UTC (const JulianDate &jdUTC)
 
void ast::aPoleMotion (const TimePoint &tp, double &x, double &y)
 
void ast::aPoleMotionUTC (const JulianDate &jdUTC, double &x, double &y)
 
A_ALWAYS_INLINE void ast::aPoleMotion (const TimePoint &tp, PoleMotion &pm)
 
double ast::aLOD (const TimePoint &tp)
 
double ast::aTimePointToEpochSecond (const TimePoint &tp)
 
void ast::aEpochSecondToTimePoint (double epochSecond, TimePoint &tp)
 
void ast::aSetEpoch (const TimePoint &tp)
 
void ast::aGetEpoch (TimePoint &tp)
 
errc_t ast::aJplDeGetPosVelICRF (const TimePoint &time, int target, int referenceBody, Vector3d &pos, Vector3d &vel)
 
errc_t ast::aJplDeGetPosICRF (const TimePoint &time, int target, int referenceBody, Vector3d &pos)
 
errc_t ast::aJplDeGetNutation (const TimePoint &time, double &dpsi, double &deps)
 
errc_t ast::aJplDeGetLibration (const TimePoint &time, Vector3d &ang)
 
errc_t ast::aJplDeGetLibration (const TimePoint &time, Euler &ang)
 
errc_t ast::aJplDeGetInterval (TimeInterval &interval)
 
int ast::aJplDeNum ()
 
errc_t ast::aJplDeOpen (const char *filepath)
 
void ast::aJplDeClose ()
 
double ast::aLeapSecondUTC (double jdUTC)
 
double ast::aLeapSecondUTCMJD (double mjdUTC)
 
SolarSystemast::aGetSolarSystem ()
 
CelestialBodyast::aGetBody (StringView name)
 
CelestialBodyast::aGetDefaultBody ()
 
CelestialBodyast::aGetMercury ()
 
CelestialBodyast::aGetVenus ()
 
CelestialBodyast::aGetEarth ()
 
CelestialBodyast::aGetMars ()
 
CelestialBodyast::aGetJupiter ()
 
CelestialBodyast::aGetSaturn ()
 
CelestialBodyast::aGetUranus ()
 
CelestialBodyast::aGetNeptune ()
 
CelestialBodyast::aGetPluto ()
 
CelestialBodyast::aGetMoon ()
 
CelestialBodyast::aGetSun ()
 
CelestialBodyast::aGetSSBarycenter ()
 
CelestialBodyast::aGetEMBarycenter ()
 
errc_t ast::aSpiceGetPosICRF (const TimePoint &time, int target, int referenceBody, Vector3d &pos)
 
errc_t ast::aSpiceGetPosVelICRF (const TimePoint &time, int target, int referenceBody, Vector3d &pos, Vector3d &vel)
 
AST_CORE_CAPI errc_t ast::aSpiceGetInterval (StringView filepath, int target, TimeInterval &interval)
 
void ast::aTheoreticalXYS_IERS2010 (const TimePoint &tp, array3d &xys)
 
void ast::aTheoreticalXYS_IERS2010 (double t, array3d &xys)
 
void ast::aTheoreticalXYS_IERS2010_Cache (double t, array3d &xys)
 
void ast::aTheoreticalXYS_IERS2010_TT (const JulianDate &jdTT, array3d &xys)
 
errc_t ast::aTheoreticalXYS_IERS2010Precomputed (const TimePoint &tp, array3d &xys)
 
void ast::aTheoreticalXYS (const TimePoint &tp, array3d &xys)
 
void ast::aXYCorrection (const TimePoint &tp, array2d &xyCorrection)
 
void ast::aXYS_IERS2010 (const TimePoint &tp, array3d &xys)
 
void ast::aXYS (const TimePoint &tp, array3d &xys)
 

变量

constexpr size_t ast::kSizeOfDataContext = sizeof(DataContext)
 

函数说明

◆ aDataContext_EnsureCurrent()

AST_CORE_CAPI DataContext * ast::aDataContext_EnsureCurrent ( )

确保当前线程的数据上下文存在 如果当前线程的数据上下文不存在,则将默认数据上下文设置为当前线程的数据上下文。

返回

◆ aDataContext_EnsureDefault()

AST_CORE_CAPI DataContext * ast::aDataContext_EnsureDefault ( )

确保默认数据上下文存在 如果默认数据上下文不存在,则创建一个新的默认数据上下文。

返回

◆ aDataContext_GetConfig()

AST_CORE_CAPI StartupConfig * ast::aDataContext_GetConfig ( )

获取当前线程的数据上下文的配置

返回

◆ aDataContext_GetCurrent()

AST_CORE_CAPI DataContext * ast::aDataContext_GetCurrent ( )

获取当前线程的数据上下文

返回

◆ aDataDirGet() [1/2]

AST_CORE_API std::string ast::aDataDirGet ( )

获取数据文件夹

返回
数据文件夹路径

◆ aDataDirGet() [2/2]

AST_CORE_CAPI errc_t ast::aDataDirGet ( std::string & datadir)

获取数据文件夹

参数
[out]datadir数据文件夹路径
返回
错误码

◆ aDataDirSet()

AST_CORE_CAPI errc_t ast::aDataDirSet ( StringView dirpath)

设置数据文件夹

参数
dirpath

◆ aEpochSecondToTimePoint()

AST_CORE_CAPI void ast::aEpochSecondToTimePoint ( double epochSecond,
TimePoint & tp )

将相对参考历元的秒数转换为时间点

参数
epochSecond参考历元秒数
tp时间点

◆ aGetConfigStringVector()

AST_CORE_API std::vector< std::string > ast::aGetConfigStringVector ( StringView key)

获取当前线程的数据上下文的配置字符串向量

参数
key配置键
返回
配置字符串向量

◆ aGetConfigStringViewVector()

AST_CORE_API std::vector< StringView > ast::aGetConfigStringViewVector ( StringView key)

获取当前线程的数据上下文的配置字符串视图向量

参数
key配置键
返回
配置字符串视图向量

◆ aGetConfigValue()

AST_CORE_API ValueView ast::aGetConfigValue ( StringView key)

获取当前线程的数据上下文的配置值

参数
key配置键
返回
配置值

◆ aGetEpoch()

AST_CORE_CAPI void ast::aGetEpoch ( TimePoint & tp)

获取参考历元

返回
参考历元

◆ aJplDeGetInterval()

AST_CORE_CAPI errc_t ast::aJplDeGetInterval ( TimeInterval & interval)

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

参数
interval
返回

◆ aJplDeGetLibration() [1/2]

AST_CORE_API errc_t ast::aJplDeGetLibration ( const TimePoint & time,
Euler & ang )

获取JPL DE星历数据的月面天平动相关角度(Euler)

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

◆ aJplDeGetLibration() [2/2]

AST_CORE_API errc_t ast::aJplDeGetLibration ( const TimePoint & time,
Vector3d & ang )

获取JPL DE星历数据的月面天平动相关角度

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

◆ aJplDeGetNutation()

AST_CORE_CAPI errc_t ast::aJplDeGetNutation ( const TimePoint & time,
double & dpsi,
double & deps )

获取JPL DE星历数据的中章动角数据

参数
time
dpsi
deps
返回

◆ aJplDeGetPosICRF()

AST_CORE_CAPI errc_t ast::aJplDeGetPosICRF ( const TimePoint & time,
int target,
int referenceBody,
Vector3d & pos )

获取JPL DE星历数据的位置(ICRF)

参数
time
target
referenceBody
pos
返回

◆ aJplDeGetPosVelICRF()

AST_CORE_CAPI errc_t ast::aJplDeGetPosVelICRF ( const TimePoint & time,
int target,
int referenceBody,
Vector3d & pos,
Vector3d & vel )

获取JPL DE星历数据的位置和速度(ICRF)

参数
time
target
referenceBody
pos
vel
返回

◆ aJplDeNum()

AST_CORE_CAPI int ast::aJplDeNum ( )

获取JPL DE星历数据的版本号

返回
星历版本号

◆ aJplDeOpen()

AST_CORE_CAPI errc_t ast::aJplDeOpen ( const char * filepath)

打开JPL DE星历数据文件

参数
filepath
返回

◆ aLeapSecondUTC()

AST_CORE_CAPI double ast::aLeapSecondUTC ( double jdUTC)

获取UTC时间的闰秒数

参数
jdUTC
返回

◆ aLeapSecondUTCMJD()

AST_CORE_CAPI double ast::aLeapSecondUTCMJD ( double mjdUTC)

获取UTC时间的闰秒数(MJD)

参数
mjdUTC
返回

◆ aLOD()

AST_CORE_CAPI double ast::aLOD ( const TimePoint & tp)

获取给定时间点的LOD(秒)

参数
tp时间点
返回
LOD(秒)

◆ aPoleMotion() [1/2]

AST_CORE_CAPI void ast::aPoleMotion ( const TimePoint & tp,
double & x,
double & y )

获取给定时间点的极移

参数
tp时间点
x极移x
y极移y

◆ aPoleMotion() [2/2]

A_ALWAYS_INLINE void ast::aPoleMotion ( const TimePoint & tp,
PoleMotion & pm )

获取给定时间点的极移

参数
tp时间点
pm极移

◆ aPoleMotionUTC()

AST_CORE_CAPI void ast::aPoleMotionUTC ( const JulianDate & jdUTC,
double & x,
double & y )

获取给定UTC时间的极移

参数
jdUTC协调世界时(UTC)的儒略日数
x极移x
y极移y

◆ aSetEpoch()

AST_CORE_CAPI void ast::aSetEpoch ( const TimePoint & tp)

设置参考历元

参数
tp时间点

◆ aSpiceGetInterval()

errc_t ast::aSpiceGetInterval ( StringView filepath,
int target,
TimeInterval & interval )

获取目标体的时间间隔

参数
filepathSPK文件路径
target目标体ID
interval时间间隔
返回
errc_t 错误码
注解
该函数会解析SPK文件,因此在调用前请确保文件存在
注解
CSPICE 所提供的获取SPK段覆盖时间区间的方法涉及 SpiceCell 结构体,调用比较麻烦, 而且CSPICE提供的方法也需要重新打开文件 因此这里直接使用 SPKParser 类来获取SPK段描述符数组,然后从数组中提取目标体的时间间隔
待办事项
这里需要支持多个SPK段的时间间隔的合并
注解
CSPICE 所提供的获取SPK段覆盖时间区间的方法涉及 SpiceCell 结构体,调用比较麻烦, 而且CSPICE提供的方法也需要重新打开文件 因此这里直接使用 SPKParser 类来获取SPK段描述符数组,然后从数组中提取目标体的时间间隔
待办事项
这里需要支持多个SPK段的时间间隔的合并

◆ aTheoreticalXYS()

AST_CORE_CAPI void ast::aTheoreticalXYS ( const TimePoint & tp,
array3d & xys )

获取给定时间点的IAU 理论XYS值

参数
tp时间点
xysiau xys数据

◆ aTheoreticalXYS_IERS2010() [1/2]

AST_CORE_API void ast::aTheoreticalXYS_IERS2010 ( const TimePoint & tp,
array3d & xys )

获取给定时间点的IAU 理论XYS值(IERS 2010规范)

参数
tp时间点
xysiau xys数据

◆ aTheoreticalXYS_IERS2010() [2/2]

AST_CORE_API void ast::aTheoreticalXYS_IERS2010 ( double t,
array3d & xys )

获取给定时间点的IAU 理论XYS值(IERS 2010规范)

参数
t时间点(距离J2000.0 TT的儒略日世纪数)
xysiau xys数据

◆ aTheoreticalXYS_IERS2010_TT()

AST_CORE_CAPI void ast::aTheoreticalXYS_IERS2010_TT ( const JulianDate & jdTT,
array3d & xys )

获取给定时间点的IAU 理论XYS值(IERS 2010规范)

参数
jdTT时间点的儒略日数(TT)
xysiau xys数据

◆ aTimePointToEpochSecond()

AST_CORE_CAPI double ast::aTimePointToEpochSecond ( const TimePoint & tp)

将时间点转换为相对参考历元的秒数

参数
tp时间点
返回
参考历元秒数

◆ aUT1MinusUTC_UTC()

AST_CORE_CAPI double ast::aUT1MinusUTC_UTC ( const JulianDate & jdUTC)

获取UT1时间与UTC时间的差值(秒)

参数
jdUTC协调世界时(UTC)的儒略日数
返回
UT1时间与UTC时间的差值(秒)

◆ aXYCorrection()

AST_CORE_CAPI void ast::aXYCorrection ( const TimePoint & tp,
array2d & xyCorrection )

获取给定时间点的IAU 理论XYS值的修正项

参数
tp时间点
xyCorrectioniau xys修正项

◆ aXYS()

AST_CORE_CAPI void ast::aXYS ( const TimePoint & tp,
array3d & xys )

获取给定时间点的IAU XYS值(包含修正项)

参数
tp时间点
xysiau xys数据

◆ aXYS_IERS2010()

AST_CORE_CAPI void ast::aXYS_IERS2010 ( const TimePoint & tp,
array3d & xys )

获取给定时间点的IAU XYS值(IERS 2010规范,包含修正项)

参数
tp时间点
xysiau xys数据