public class FramesFactory extends Object
OREKIT中实现了几个预定义的参考frames
,它们在树中与地心天球参考系 (GCRF) 相连,GCRF是树的根。该工厂的设计目的是:
地球定向参数
历史加载。用户可以使用各种静态方法检索这些参考系,其中最重要的方法包括:getFrame(Predefined)
、getGCRF()
、getCIRF(IERSConventions, boolean)
、getTIRF(IERSConventions, boolean)
、getITRF(IERSConventions, boolean)
、getITRF(ITRFVersion, IERSConventions, boolean)
、getEME2000()
、getMOD(IERSConventions)
、getTOD(IERSConventions, boolean)
、getGTOD(IERSConventions, boolean)
、getITRFEquinox(IERSConventions, boolean)
、getTEME()
和getVeis1950()
。
该参考系是IERS制定的国际地球参考系统的当前(截至2013年)参考实现。它在IERS公约(2010)中有描述。它取代了作为GPS卫星参考系的地心地固参考系。
该参考系用于定义地球上的位置。它随着地球一起旋转,并包括由IERS提供的有关地球地壳相对于极轴运动的信息地球定向参数
。其极轴是IERS参考极(IRP)。
根据地球定向参数
的来源,getITRF(IERSConventions, boolean)
可能返回不同的ITRS实现,如果EOP混合,ITRF甚至可能从一个实现跳转到另一个实现。对于大多数用户来说,这不是问题,因为不同的ITRS实现非常接近(在地球表面几毫米)。然而,如果需要非常高精度的特定ITRF版本(即ITRS实现),Orekit提供了getITRF(ITRFVersion, IERSConventions, boolean)
方法来获取并处理EOP的跳变。
ITRF可以使用IAU 2000决议B1.8规定的新的非旋转原点范式构建,以及任何支持的IERS公约
(即使IERS 1996在公约发布时尚未采纳该决议,也可以使用非旋转原点范式)。ITRF也可以使用IAU 2000决议B1.8之前使用的经典黄道范式构建,以及任何支持的IERS公约
(即使IERS 2003和2010可以使用黄道范式,尽管该决议现在已生效)。用户可以独立选择范式(非旋转原点或黄道范式)和IERS公约(即选择岁差/章动模型),Orekit提供所有备选方案。
Orekit还提供了所有需要在GCRF和ITRF之间进行转换的中间参考系,沿着两条路径:非旋转原点范式的ITRF/TIRF/CIRF/GCRF和黄道范式的ITRF/GTOD/TOD/MOD/EME2000/GCRF。
该工厂还处理加载地球定向参数(EOP)的需求,以便在惯性参考系和地固参考系之间进行精确的转换,使用DataProvidersManager
功能。EOP依赖于IERS公约,因为它们对应于岁差/章动模型的修正。当应用EOP时,但EOP数据不可用时,将使用空(0.0)修正。这可能发生在未加载任何EOP数据或请求日期超出加载的EOP数据时间跨度时。使用空修正可能导致粗略的精度。要检查EOP数据覆盖的时间跨度,请使用getEOPHistory(IERSConventions, boolean)
、EOPHistory.getStartDate()
和EOPHistory.getEndDate()
。
有关配置Orekit使用的EOP数据的更多信息,请参阅https://gitlab.orekit.org/orekit/orekit/blob/master/src/site/markdown/configuration.md。
以下是预定义参考系树的示意图:
GCRF | |----------------------------------------------- | | 参考系偏差 | | | EME2000 | | | | |岁差效应| | | | 参考系偏差、岁差和章动效应 | MOD MOD (日期平均赤道) | | 无EOP校正 | | 章动效应 | (天球中间参考系) CIRF | TOD TOD (日期真赤道) | | 无EOP校正 地球自然旋转 | | | |------------- | 恒星时 | | | | | (地球中间参考系) TIRF TIRF GTOD GTOD (格林威治日期真赤道) | 无潮汐效应 无EOP校正 极运动 | | | | | |------------- | | | | (国际地球参考系) ITRF ITRF ITRF VEIS1950 | 无潮汐效应 基于黄道 | | 其他ITRF 其他ITRF 无潮汐效应
这是一个实用类,因此其构造函数是私有的。
Frames
Modifier and Type | Field and Description |
---|---|
static String |
BULLETINA_FILENAME
BulletinA文件(兼容IAU1980和IAU2000)的默认正则表达式。
|
static String |
BULLETINB_1980_FILENAME
BulletinB文件(兼容IAU1980)的默认正则表达式。
|
static String |
BULLETINB_2000_FILENAME
BulletinB文件(兼容IAU2000)的默认正则表达式。
|
static String |
CSV_FILENAME
csv文件(兼容IAU1980和IAU2000)的默认正则表达式。
|
static String |
EOPC04_1980_FILENAME
EOPC04文件(兼容IAU1980)的默认正则表达式。
|
static String |
EOPC04_2000_FILENAME
EOPC04文件(兼容IAU2000)的默认正则表达式。
|
static String |
RAPID_DATA_PREDICTION_COLUMNS_1980_FILENAME
快速数据和预测EOP列文件(兼容IAU1980)的默认正则表达式。
|
static String |
RAPID_DATA_PREDICTION_COLUMNS_2000_FILENAME
快速数据和预测EOP列文件(兼容IAU2000)的默认正则表达式。
|
static String |
XML_1980_FILENAME
EOP XML文件(兼容IAU1980)的默认正则表达式。
|
static String |
XML_2000_FILENAME
EOP XML文件(兼容IAU2000)的默认正则表达式。
|
Modifier and Type | Method and Description |
---|---|
static void |
addDefaultEOP1980HistoryLoaders(String rapidDataColumnsSupportedNames, String rapidDataXMLSupportedNames, String eopC04SupportedNames, String bulletinBSupportedNames, String bulletinASupportedNames, String csvSupportedNames)
添加默认加载器EOP历史(IAU 1980岁差/章动)。
|
static void |
addDefaultEOP2000HistoryLoaders(String rapidDataColumnsSupportedNames, String xmlSupportedNames, String eopC04SupportedNames, String bulletinBSupportedNames, String bulletinASupportedNames, String csvSupportedNames)
添加默认加载器EOP历史(IAU 2000/2006岁差/章动)。
|
static void |
addEOPHistoryLoader(IERSConventions conventions, EopHistoryLoader loader)
添加地球定向参数历史加载器。
|
static Frame |
buildUncachedITRF(EOPHistory eopHistory, UTCScale utc)
使用特定的 EOP历史 构建一个不带缓存的国际地球参考系。
|
static void |
clearEOPHistoryLoaders()
清除地球定向参数历史加载器。
|
static EOPHistory |
findEOP(Frame start)
从参考系层次结构中检索EOP。
|
static FactoryManagedFrame |
getCIRF(IERSConventions conventions, boolean simpleEOP)
获取CIRF2000参考系。
|
static Frame |
getEcliptic(IERSConventions conventions)
获取黄道参考系。
|
static FactoryManagedFrame |
getEME2000()
获取唯一的EME2000参考系。
|
static EOPHistory |
getEOPHistory(IERSConventions conventions, boolean simpleEOP)
获取地球定向参数历史。
|
static Frame |
getFrame(Predefined factoryKey)
获取预定义参考系之一。
|
static LazyLoadedFrames |
getFrames()
获取由此类中的静态方法调用的 Frames 实例。
|
static Frame |
getGCRF()
获取唯一的GCRF参考系。
|
static FactoryManagedFrame |
getGTOD(boolean applyEOPCorr)
获取GTOD参考系。
|
static FactoryManagedFrame |
getGTOD(IERSConventions conventions, boolean simpleEOP)
获取GTOD参考系。
|
static Frame |
getICRF()
获取唯一的ICRF参考系。
|
static FactoryManagedFrame |
getITRF(IERSConventions conventions, boolean simpleEOP)
获取未指定的国际地球参考系。
|
static VersionedITRF |
getITRF(ITRFVersion version, IERSConventions conventions, boolean simpleEOP)
获取特定的国际地球参考系。
|
static FactoryManagedFrame |
getITRFEquinox(IERSConventions conventions, boolean simpleEOP)
获取基于黄道的ITRF参考系。
|
static FactoryManagedFrame |
getMOD(boolean applyEOPCorr)
获取MOD参考系。
|
static FactoryManagedFrame |
getMOD(IERSConventions conventions)
获取MOD参考系。
|
static Transform |
getNonInterpolatingTransform(Frame from, Frame to, AbsoluteDate date)
获取两个参考系之间的变换,抑制所有插值。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
getNonInterpolatingTransform(Frame from, Frame to, FieldAbsoluteDate<T> date)
获取两个参考系之间的变换,抑制所有插值。
|
static FactoryManagedFrame |
getPZ9011(IERSConventions convention, boolean simpleEOP)
获取PZ-90.11(Parametry Zemly – 1990.11)参考系。
|
static FactoryManagedFrame |
getTEME()
获取TEME参考系。
|
static FactoryManagedFrame |
getTIRF(IERSConventions conventions)
获取TIRF参考系,忽略潮汐效应。
|
static FactoryManagedFrame |
getTIRF(IERSConventions conventions, boolean simpleEOP)
获取TIRF参考系。
|
static FactoryManagedFrame |
getTOD(boolean applyEOPCorr)
获取TOD参考系。
|
static FactoryManagedFrame |
getTOD(IERSConventions conventions, boolean simpleEOP)
获取TOD参考系。
|
static FactoryManagedFrame |
getVeis1950()
获取VEIS 1950参考系。
|
static void |
setEOPContinuityThreshold(double threshold)
设置检查EOP连续性的阈值。
|
public static final String RAPID_DATA_PREDICTION_COLUMNS_1980_FILENAME
public static final String XML_1980_FILENAME
public static final String EOPC04_1980_FILENAME
public static final String BULLETINB_1980_FILENAME
public static final String RAPID_DATA_PREDICTION_COLUMNS_2000_FILENAME
public static final String XML_2000_FILENAME
public static final String EOPC04_2000_FILENAME
public static final String BULLETINB_2000_FILENAME
public static final String BULLETINA_FILENAME
@DefaultDataContext public static LazyLoadedFrames getFrames()
Frames
实例。
@DefaultDataContext public static void addDefaultEOP1980HistoryLoaders(String rapidDataColumnsSupportedNames, String rapidDataXMLSupportedNames, String eopC04SupportedNames, String bulletinBSupportedNames, String bulletinASupportedNames, String csvSupportedNames)
默认加载器查找IERS EOP C04和公告B文件。它们对应于IERS 1996
约定。
rapidDataColumnsSupportedNames
- 支持的快速数据列EOP文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
rapidDataXMLSupportedNames
- 支持的XML EOP文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
eopC04SupportedNames
- 支持的EOP C04文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
bulletinBSupportedNames
- 支持的公告B文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
bulletinASupportedNames
- 支持的公告A文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
csvSupportedNames
- 支持的csv文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
addEOPHistoryLoader(IERSConventions, EopHistoryLoader)
, clearEOPHistoryLoaders()
, addDefaultEOP2000HistoryLoaders(String, String, String, String, String, String)
@DefaultDataContext public static void addDefaultEOP2000HistoryLoaders(String rapidDataColumnsSupportedNames, String xmlSupportedNames, String eopC04SupportedNames, String bulletinBSupportedNames, String bulletinASupportedNames, String csvSupportedNames)
rapidDataColumnsSupportedNames
- 支持的快速数据列EOP文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
xmlSupportedNames
- 支持的XML EOP文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
eopC04SupportedNames
- 支持的EOP C04文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
bulletinBSupportedNames
- 支持的公告B文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
bulletinASupportedNames
- 支持的公告A文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
csvSupportedNames
- 支持的csv文件名称的正则表达式(如果使用默认的IERS文件名称,则可以为null)
addEOPHistoryLoader(IERSConventions, EopHistoryLoader)
, clearEOPHistoryLoaders()
, addDefaultEOP1980HistoryLoaders(String, String, String, String, String, String)
@DefaultDataContext public static void addEOPHistoryLoader(IERSConventions conventions, EopHistoryLoader loader)
conventions
- 适用于EOP历史的IERS约定
loader
- 要添加到EOP历史的自定义加载器
addDefaultEOP1980HistoryLoaders(String, String, String, String, String, String)
, clearEOPHistoryLoaders()
@DefaultDataContext public static void clearEOPHistoryLoaders()
@DefaultDataContext public static void setEOPContinuityThreshold(double threshold)
默认阈值(如果从未调用此方法)为5个儒略日。如果加载EOP条目后,某些条目之间的间隙超过此阈值,将触发异常。
调用此方法真正有用的一种情况是对使用单个公告A的应用程序,因为这些公告每个月的第一个公告有一个大约一个月的间隙,其中包含旧的最终数据以及快速数据和预测数据。
threshold
- 用于检查EOP连续性的阈值(以秒为单位)
@DefaultDataContext public static EOPHistory getEOPHistory(IERSConventions conventions, boolean simpleEOP)
如果没有通过调用EopHistoryLoader
添加addEOPHistoryLoader
或者在此之后调用clearEOPHistoryLoaders
,则将自动调用addDefaultEOP1980HistoryLoaders(String, String, String, String, String, String)
和addDefaultEOP2000HistoryLoaders(String, String, String, String, String, String)
方法,其中所有支持的文件名参数都设置为null,以获取默认加载器配置。
conventions
- 请求EOP历史的约定
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
@DefaultDataContext public static Frame getFrame(Predefined factoryKey)
factoryKey
- 工厂内的参考系键
@DefaultDataContext public static Frame getGCRF()
GCRF参考系是参考系树中的根参考系。
@DefaultDataContext public static Frame getICRF()
ICRF参考系以太阳系质心为中心,并与GCRF对齐。
@DefaultDataContext public static Frame getEcliptic(IERSConventions conventions)
MOD
的+x轴对齐。
此实现与JPL 406天文历表一致,误差在0.5角秒以内。
conventions
- 应用的IERS约定
@DefaultDataContext public static FactoryManagedFrame getEME2000()
EME2000参考系也称为J2000参考系。Orekit更倾向于前一种命名。
@DefaultDataContext public static FactoryManagedFrame getITRF(IERSConventions conventions, boolean simpleEOP)
返回的参考系盲目使用Earth Orientation Parameters
。例如,如果仅加载EOP 14 C04文件以检索参数,则参考系将是ITRFVersion.ITRF_2014
。但是,如果从不同文件类型加载参数,甚至对于更改其参考的文件类型(例如,从ITRFVersion.ITRF_2008
切换到ITRFVersion.ITRF_2014
,从2018-03-29发布的第31卷第013号开始),则此方法返回的ITRF将从一个版本跳转到另一个版本。
如果需要特定版本的ITRF,则应改用getITRF(ITRFVersion, IERSConventions, boolean)
。
conventions
- 应用的IERS约定
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
getITRF(ITRFVersion, IERSConventions, boolean)
@DefaultDataContext public static FactoryManagedFrame getTIRF(IERSConventions conventions)
conventions
- 应用的IERS约定
@DefaultDataContext public static VersionedITRF getITRF(ITRFVersion version, IERSConventions conventions, boolean simpleEOP)
请注意,如果需要特定版本的ITRF,则simpleEOP
很可能应设置为false
,因为忽略潮汐效应的影响与各种ITRF版本
之间的差异具有相同数量级的影响。
version
- ITRF版本
conventions
- 应用的IERS约定
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
public static Frame buildUncachedITRF(EOPHistory eopHistory, UTCScale utc)
EOP history
构建一个未缓存的国际地球参考系。
此参考系及其父参考系(TIRF和CIRF)将每次调用此方法时都重新构建,不会被缓存。此工厂方法旨在在运行时更改EOP历史时使用。对于常规ITRF使用,更适合使用getITRF(IERSConventions, boolean)
和getITRF(ITRFVersion, IERSConventions, boolean)
。
eopHistory
- EOP历史
utc
- UTC时间标度
@DefaultDataContext public static FactoryManagedFrame getTIRF(IERSConventions conventions, boolean simpleEOP)
conventions
- 应用的IERS约定
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
@DefaultDataContext public static FactoryManagedFrame getCIRF(IERSConventions conventions, boolean simpleEOP)
conventions
- 应用的IERS约定
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
@DefaultDataContext public static FactoryManagedFrame getVeis1950()
其父参考系是具有IERS 1996约定且没有EOP校正的GTOD参考系。
@DefaultDataContext public static FactoryManagedFrame getITRFEquinox(IERSConventions conventions, boolean simpleEOP)
conventions
- 应用的IERS约定
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
@DefaultDataContext public static FactoryManagedFrame getGTOD(boolean applyEOPCorr)
applyEOPCorr参数主要用于测试目的或与不处理EOP校正参数的传统软件保持一致。请注意,将此参数设置为false
会导致粗略的精度(在LEO中,误差的数量级可能超过250m,在GEO中可能超过1400m)。因此,将此参数设置为false仅限于IERS 1996
约定,因此在此处无法自由选择IERS约定
。
applyEOPCorr
- 如果为true,则应用EOP校正(这里是dut1和lod)
@DefaultDataContext public static FactoryManagedFrame getGTOD(IERSConventions conventions, boolean simpleEOP)
conventions
- 应用的IERS约定
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
@DefaultDataContext public static FactoryManagedFrame getTOD(boolean applyEOPCorr)
applyEOPCorr参数主要用于测试目的或与不处理EOP校正参数的传统软件保持一致。请注意,将此参数设置为false
会导致粗略的精度(在LEO中错误的数量级可能超过1m,在GEO中可能超过10m)。因此,将此参数设置为false仅限于IERS 1996
公约,因此在这里不能自由选择IERS公约
。
applyEOPCorr
- 如果为true,则应用EOP校正(这里是章动)
@DefaultDataContext public static FactoryManagedFrame getTOD(IERSConventions conventions, boolean simpleEOP)
conventions
- 要应用的IERS公约
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
@DefaultDataContext public static FactoryManagedFrame getMOD(boolean applyEOPCorr)
applyEOPCorr参数主要用于测试目的或与不处理EOP校正参数的传统软件保持一致。请注意,将此参数设置为false
会导致粗略的精度(在LEO中错误的数量级可能超过1m,在GEO中可能超过10m)。因此,将此参数设置为false仅限于IERS 1996
公约,因此在这里不能自由选择IERS公约
。
applyEOPCorr
- 如果为true,则应用EOP校正(EME2000/GCRF偏差补偿)
@DefaultDataContext public static FactoryManagedFrame getMOD(IERSConventions conventions)
conventions
- 要应用的IERS公约
@DefaultDataContext public static FactoryManagedFrame getTEME()
TEME参考系用于TLE传播中的SGP4模型。该参考系没有官方定义,关于它是应该作为“日期”还是“时代”的一些模糊性。因此,此参考系仅应用于TLE传播,不应用于其他任何用途,正如CCSDS轨道数据消息蓝皮书所推荐的。
@DefaultDataContext public static FactoryManagedFrame getPZ9011(IERSConventions convention, boolean simpleEOP)
PZ-90.11参考系统从2013年12月31日下午3:00开始在所有运行的GLONASS卫星上更新。
父参考系(ITRF-2008)与PZ-90.11参考系之间的过渡使用七参数Helmert变换进行。
从 到 ΔX(m) ΔY(m) ΔZ(m) RX(mas) RY(mas) RZ(mas) 时代 ITRF-2008 PZ-90.11 +0.003 +0.001 -0.000 +0.019 -0.042 +0.002 2010
convention
- 要应用的IERS公约
simpleEOP
- 如果为true,则在插值EOP时忽略潮汐效应
public static Transform getNonInterpolatingTransform(Frame from, Frame to, AbsoluteDate date)
此方法类似于Frame.getTransformTo(Frame, AbsoluteDate)
,只是它删除了由factory
添加到某些参考系的性能增强插值功能,以便专注于精度。插值功能旨在通过避免在每个时间步长执行一些冗长的计算(如章动评估)和缓存一些结果来节省处理时间。当需要非常高的精度或用于测试目的时,可以使用此方法。但应谨慎使用,因为对某些参考系进行完整计算的成本是非常高昂的。
from
- 变换开始的参考系
to
- 变换结束的参考系
date
- 变换的日期
public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldTransform<T> getNonInterpolatingTransform(Frame from, Frame to, FieldAbsoluteDate<T> date)
此方法类似于Frame.getTransformTo(Frame, AbsoluteDate)
,只是它删除了由factory
添加到某些参考系的性能增强插值功能,以便专注于精度。插值功能旨在通过避免在每个时间步长执行一些冗长的计算(如章动评估)和缓存一些结果来节省处理时间。当需要非常高的精度或用于测试目的时,可以使用此方法。但应谨慎使用,因为对某些参考系进行完整计算的成本是非常高昂的。
T
- 字段元素的类型
from
- 变换开始的参考系
to
- 变换结束的参考系
date
- 变换的日期
public static EOPHistory findEOP(Frame start)
从指定的参考系开始向根遍历父参考系的参考系树,并检查提供程序以查看它们是否引用EOP历史。返回找到的第一个EOP历史。
start
- 开始搜索的参考系,通常将是一些与地球相关的参考系,如地心参考系或ITRF参考系
Copyright © 2002-2023 CS GROUP. All rights reserved.