Skip navigation links

Package org.orekit.bodies

该包提供了表示空间对象(如恒星、行星或小行星)位置和几何形状的接口。

See: Description

Package org.orekit.bodies Description

该包提供了表示空间对象(如恒星、行星或小行星)位置和几何形状的接口。

天体的位置由CelestialBody接口表示。该接口提供了所需的方法,可以将天体视为对航天器的重力或光照影响的外部天体(通常在扰动力计算中)或作为具有自己坐标系的内部天体。

CelestialBodyFactory类是一个工厂,提供了几个预定义的实现CelestialBody接口的实例,用于主要的太阳系天体。支持太阳、月球、八大行星和冥王星矮行星。除了这些真实的天体外,还支持两个点,以方便起见,就像它们是真实的天体一样:太阳系重心和地月重心。CelestialBodyFactory工厂依赖于JPL DE 405、406或类似的二进制星历文件来计算所有位置和速度。请注意,无论处理器的字节顺序如何,都使用二进制文件,而不是ASCII文件。

例如,计算太阳和月球在EME2000坐标系中的位置,可以如下所示:

  CelestialBody sun      = CelestialBodyFactory.getSun();
  CelestialBody moon     = CelestialBodyFactory.getMoon();
  Vector3D sunInEME2000  = sun.getPosition(date, Frame.getEME2000());
  Vector3D moonInEME2000 = moon.getPosition(date, Frame.getEME2000());

由于支持的天体实现了CelestialBody接口,它们都提供自己的以天体为中心的惯性坐标系,因此在org.orekit.frames包提供的坐标系中添加了一些额外的坐标系。由于坐标系树以以地球为中心的坐标系为根,太阳系天体的坐标系树看起来并不是规范形状。当然,这只是将GCRF作为根坐标系的任意选择的副作用,并且对计算没有任何影响。

天体的形状由BodyShape接口表示。

目前OREKIT仅提供了一个实现:代表大型旋转天体(如行星或太阳)的自然扁平形状的OneAxisEllipsoid类。

对于小行星,预计用户提供自己的形状模型,例如基于三角剖分。他们应该实现BodyShape接口,以便被Orekit使用。

在使用OneAxisEllipsoid天体表示时,点通常用相关天体坐标系中的所谓大地坐标(经度、纬度、高度)描述。GeodeticPoint类允许处理此类坐标。它是一个简单的容器,不提供处理方法。

Author:
L. Maisonobe
Skip navigation links

Copyright © 2002-2023 CS GROUP. All rights reserved.