public abstract class PotentialCoefficientsReader extends Object implements DataLoader
由于存在许多不同的系数模型和容器,这个接口表示所有应该由读取器实现的方法。使用这个接口的正确方法是调用GravityFieldFactory
,它将确定要使用哪个读取器来处理所选的重力势系数文件。
GravityFields
Modifier | Constructor and Description |
---|---|
protected |
PotentialCoefficientsReader(String supportedNames, boolean missingCoefficientsAllowed)
简单构造函数。
|
protected |
PotentialCoefficientsReader(String supportedNames, boolean missingCoefficientsAllowed, TimeScale timeScale)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
protected static double[] |
buildFlatArray(org.orekit.forces.gravity.potential.Flattener flattener, double value)
构建一个扁平形式的系数数组。
|
protected static double[] |
buildRow(int degree, int order, double value)
构建一个系数行。
|
protected double |
getAe()
获取中心天体参考半径。
|
protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics |
getBaseProvider(boolean wantNormalized, int degree, int order)
获取一个包含基本谐波系数的与时间无关的提供者。
|
int |
getMaxAvailableDegree()
获取最后一个解析文件中可用的最大次数。
|
int |
getMaxAvailableOrder()
获取最后一个解析文件中可用的最大阶数。
|
int |
getMaxParseDegree()
获取下一个文件解析的次数限制。
|
int |
getMaxParseOrder()
获取下一个文件解析的阶数限制。
|
protected double |
getMu()
获取中心天体引力系数。
|
abstract RawSphericalHarmonicsProvider |
getProvider(boolean wantNormalized, int degree, int order)
获取用于读取球谐系数的提供者。
|
String |
getSupportedNames()
获取支持的文件名的正则表达式。
|
protected TideSystem |
getTideSystem()
获取重力场中使用的 TideSystem 。
|
abstract void |
loadData(InputStream input, String name)
从流中加载数据。
|
boolean |
missingCoefficientsAllowed()
检查输入数据中是否允许缺少系数。
|
protected void |
parseCoefficient(String field, org.orekit.forces.gravity.potential.Flattener f, double[] array, int i, int j, String cName, String name)
解析一个系数。
|
protected static double |
parseDouble(String string)
从字符串中解析一个双精度数。
|
protected org.orekit.forces.gravity.potential.TimeDependentHarmonic[] |
rescale(boolean wantNormalized, org.orekit.forces.gravity.potential.Flattener rescaledFlattener, org.orekit.forces.gravity.potential.Flattener originalFlattener, org.orekit.forces.gravity.potential.TimeDependentHarmonic[] original)
重新调整系数数组。
|
protected double[] |
rescale(double scale, boolean wantNormalized, org.orekit.forces.gravity.potential.Flattener rescaledFlattener, org.orekit.forces.gravity.potential.Flattener originalFlattener, double[] original)
重新调整系数数组。
|
protected void |
setAe(double ae)
设置中心天体参考半径。
|
void |
setMaxParseDegree(int maxParseDegree)
设置下一个文件解析的次数限制。
|
void |
setMaxParseOrder(int maxParseOrder)
设置下一个文件解析的阶数限制。
|
protected void |
setMu(double mu)
设置中心天体引力系数。
|
protected void |
setRawCoefficients(boolean rawNormalized, org.orekit.forces.gravity.potential.Flattener f, double[] c, double[] s, String name)
设置三轴-扇形系数矩阵。
|
protected void |
setReadComplete(boolean readComplete)
设置读取完成的指示器。
|
protected void |
setTideSystem(TideSystem tideSystem)
设置重力场中使用的 TideSystem 。
|
boolean |
stillAcceptsData()
检查加载器是否仍然接受新数据。
|
protected AbsoluteDate |
toDate(DateComponents components)
从组件创建日期。
|
protected AbsoluteDate |
toDate(DateComponents dc, TimeComponents tc)
从组件创建日期。
|
@DefaultDataContext protected PotentialCoefficientsReader(String supportedNames, boolean missingCoefficientsAllowed)
构建一个未初始化的读取器。
此构造函数使用默认数据上下文
。
supportedNames
- 支持的文件名的正则表达式
missingCoefficientsAllowed
- 允许输入数据中缺少系数
PotentialCoefficientsReader(String, boolean, TimeScale)
public String getSupportedNames()
public boolean missingCoefficientsAllowed()
public void setMaxParseDegree(int maxParseDegree)
maxParseDegree
- 要解析的最大次数(可以安全地设置为Integer.MAX_VALUE
以解析所有可用系数)
public int getMaxParseDegree()
public void setMaxParseOrder(int maxParseOrder)
maxParseOrder
- 要解析的最大阶数(可以安全地设置为Integer.MAX_VALUE
以解析所有可用系数)
public int getMaxParseOrder()
public boolean stillAcceptsData()
此方法用于通过尽快中断数据集的爬行来加快数据加载速度,一旦加载器找到了它正在等待的数据。对于可以从任意数量的来源合并数据的加载器(例如JPL星历或分布在多个文件中的地球定位参数),此方法应始终返回true,以确保没有数据被遗漏。
stillAcceptsData
在接口 DataLoader
protected void setReadComplete(boolean readComplete)
readComplete
- 如果为true,则已完全读取重力场
protected void setAe(double ae)
ae
- 中心天体参考半径
protected double getAe()
protected void setMu(double mu)
mu
- 中心天体引力系数
protected double getMu()
protected void setTideSystem(TideSystem tideSystem)
TideSystem
。
tideSystem
- 重力场中使用的潮汐系统
protected TideSystem getTideSystem()
TideSystem
。
protected void setRawCoefficients(boolean rawNormalized, org.orekit.forces.gravity.potential.Flattener f, double[] c, double[] s, String name)
rawNormalized
- 如果为true,则原始系数已归一化
f
- 从三角形到扁平形式的转换器
c
- 原始三轴-扇形系数矩阵
s
- 原始三轴-扇形系数矩阵
name
- 文件(或zip条目)的名称
public int getMaxAvailableDegree()
public int getMaxAvailableOrder()
public abstract void loadData(InputStream input, String name) throws IOException, ParseException, OrekitException
loadData
在接口 DataLoader
input
- 数据输入流
name
- 文件(或zip条目)的名称
IOException
- 如果无法读取数据
ParseException
- 如果无法解析数据或发生某些特定于加载器的错误
OrekitException
public abstract RawSphericalHarmonicsProvider getProvider(boolean wantNormalized, int degree, int order)
wantNormalized
- 如果为true,则提供归一化系数,否则提供非归一化系数
degree
- 最大次数
order
- 最大阶数
protected org.orekit.forces.gravity.potential.ConstantSphericalHarmonics getBaseProvider(boolean wantNormalized, int degree, int order)
请注意,如果将它们作为时间相关的分段模型(如在ICGEM V2.0中)进行管理,则这里可能会缺少一些系数。
wantNormalized
- 如果为true,则原始提供者必须提供归一化系数,否则提供非归一化系数
degree
- 最大次数
order
- 最大阶数
getProvider(boolean, int, int)
protected static double[] buildFlatArray(org.orekit.forces.gravity.potential.Flattener flattener, double value)
flattener
- 从三角形式到平面形式的转换器
value
- 放入数组元素的初始值
protected static double parseDouble(String string)
string
- 要解析的字符串。
string
的双精度数值。
protected static double[] buildRow(int degree, int order, double value)
degree
- 行的次数
order
- 行的阶数
value
- 放入数组元素的初始值
protected void parseCoefficient(String field, org.orekit.forces.gravity.potential.Flattener f, double[] array, int i, int j, String cName, String name)
field
- 要解析的文本字段
f
- 从三角形式到平面形式的转换器
array
- 放置系数的数组
i
- 列表中的第一个索引
j
- 列表中的第二个索引
cName
- 系数的名称
name
- 文件的名称
protected double[] rescale(double scale, boolean wantNormalized, org.orekit.forces.gravity.potential.Flattener rescaledFlattener, org.orekit.forces.gravity.potential.Flattener originalFlattener, double[] original)
原始系数的归一化/非归一化性质继承自先前的解析。
scale
- 应用于所有元素的一般缩放因子
wantNormalized
- 如果为true,则重新调整后的系数必须是归一化的,否则必须是非归一化的
rescaledFlattener
- 从三角形式到平面形式的转换器
originalFlattener
- 从三角形式到平面形式的转换器
original
- 原始系数
protected org.orekit.forces.gravity.potential.TimeDependentHarmonic[] rescale(boolean wantNormalized, org.orekit.forces.gravity.potential.Flattener rescaledFlattener, org.orekit.forces.gravity.potential.Flattener originalFlattener, org.orekit.forces.gravity.potential.TimeDependentHarmonic[] original)
原始系数的归一化/非归一化性质继承自先前的解析。
wantNormalized
- 如果为true,则重新调整后的系数必须是归一化的,否则必须是非归一化的
rescaledFlattener
- 从三角形式到平面形式的转换器
originalFlattener
- 从三角形式到平面形式的转换器
original
- 原始系数
protected AbsoluteDate toDate(DateComponents components)
components
- 年、月、日
protected AbsoluteDate toDate(DateComponents dc, TimeComponents tc)
dc
- 日期组件
tc
- 时间组件
Copyright © 2002-2023 CS GROUP. All rights reserved.