Rugged变更

发布历史

版本 日期 描述
3.0 2022-07-05 这是一个重大发布。修复了一些错误。此版本依赖于Orekit 11.2和Hipparchus 2.1。
2.2 2020-07-31 这是一个次要发布。增加了对算法标识符的访问,修正了模型IERS96的地球常数,改进了文档并修复了一些错误。使用Gitlab CI可以进行自动构建、发布和代码分析。此版本依赖于Orekit 10.2和Hipparchus 1.7。
2.1 2019-03-14 这是一个次要发布。增加了逆向定位中的折射,并修复了一些错误。此版本依赖于Orekit 9.3.1和Hipparchus 1.4。
2.0 2017-12-19 这是一个重大发布。主要提供了一个细化功能(即调整视图模型参数以匹配地面控制点)。
1.0 2016-02-10 这是Rugged的第一个正式发布版本。包括推扫传感器的直接和逆向定位。

发布3.0 – 2022-07-05

类型 变更 作者
更新 修复了瓦片的经度归一化问题。修复了388号问题。 luc
更新 修复了大气折射的逆向定位问题。修复了391号问题。 guylaine
更新 更新了依赖项至Orekit 11.2(和Hipparchus 2.1)。修复了387号问题。 luc
更新 更改了CS Group网站的URL。修复了390号问题。 guylaine
更新 在文档中更新了对Sergeï Tanygin关于姿态插值的论文的链接。 guylaine

发布2.2版 – 2020-07-31

类型 变更 作者
更新 更新依赖至Orekit 10.2(以及Hipparchus 1.7)。修复383。 guylaine
修复 添加与Gitlab CI的连接,以允许自动构建和发布,以及自动代码分析(https://sonar.orekit.org/dashboard?id=org.orekit%3Arugged)。修复384。 guylaine
修复 修复由于CI特殊性导致的单元测试问题。修复386。 luc
更新 通过新的getAlgorithmId()方法提供对算法标识符(DUVENHAGE,CONSTANT_ELEVATION_OVER_ELLIPSOID等)的访问。修复381。 guylaine
更新 使用Hipparchus的新Derivative<T>接口。修复385。 guylaine
修复 修正RuggedBuilder中IERS96模型的错误地球扁率。修复379。 guylaine
更新 用Orekit Earth常量替换RuggedBuilder中的硬编码常量。修复378。 guylaine
更新 在静态站点中更新构建说明并删除冗余的BUILDING.txt。 guylaine
添加 在静态站点中创建发布指南。 guylaine
更新 更新Orekit DataProvidersManager类的已弃用方法。 guylaine
更新 删除对Hipparchus库的显式依赖。修复382。 guylaine
添加 添加package-info文档。 guylaine

发布版本2.1 – 2019-03-14

类型 变更 作者
更新 更新依赖项至Orekit 9.3.1和Hipparchus 1.4。 guylaine
修复 在某些非常崎岖的区域,直接定位可能导致结果为空。在Duvenhage算法中,对于DEM的refineIntersection方法,在给定的closeGuess作为refineIntersection的输入时,一些罕见的情况会导致没有交点(作为SimpleTile.cellIntersection的结果)。通过沿着LOS方向迭代地移动解决方案,我们能够找到交点。修复了376。 luc
修复 添加暂停和恢复dump的可能性。在执行dump时,某些情况下会dump一些额外的信息,但这些信息并不相关。例如,在更新SRTM瓦片的时候,我们需要添加当前点的大地水准面值。在dump文件中,也会dump大地水准面瓦片,这会导致在执行DumpReplayer时出现错误,因为读取的是大地水准面高程而不是真实高程。修复了377。 guylaine
更新 允许在直接或反向定位结果的dump中使用null。如果直接或反向定位的结果为"null",则不会进行dump。 guylaine
更新 改进与dump相关的类(org.orekit.rugged.errors)的测试覆盖率。 guylaine
修复 将RuggedException从受检异常更改为非受检异常。大多数函数确实会抛出此类异常。由于它们是非受检异常,因此不会在函数签名的`throws`语句或javadoc中进行广告宣传。因此,用户必须考虑到只要使用任何Rugged功能,就可能抛出非受检的`RuggedException`。在大多数情况下,用户不会尝试恢复,而只会使用它们来显示或记录有意义的错误消息。修复了373。 guylaine
修复 为反向定位添加(可选的)大气折射。在Rugged 2.0中,只有直接定位可以考虑大气折射。修复了372。 guylaine
添加 修改了细化教程的术语。将“fulcrum points”一词改为“地面控制点(GCP)”,将“liaison points”一词改为“tie points”。感谢Issam Boukerch。 guylaine
修复 为了改进计算,修正了类adjustment.measurements.SensorToGroundMapping的构造函数,由于参数颠倒错误。修复371。 luc
修复 在utils.SpacecraftToObservedBody.SpacecraftToObservedBody方法中,对maxDate的有效性进行了错误检查。修复256。 guylaine
添加 更新了错误消息的丹麦翻译。感谢Lars Næsbye Christensen。 luc
添加 更新了错误消息的意大利翻译。感谢Roberto Alacevich。 luc
添加 更新了错误消息的挪威翻译。感谢Espen Bjørntvedt。 guylaine
添加 更新了错误消息的西班牙翻译。感谢Beatriz Salazar García。 luc

发布2.0版 - 2017年12月19日

类型 变更 作者
更新 更新依赖项至Orekit 9.1和Hipparchus 1.2。 guylaine
添加 添加了细化功能,用于调整视图模型参数。感谢Jonathan Guinet和Lucie Labat-Allée。 guylaine
添加 添加了丹麦语翻译。修复了343号问题。感谢Lars Næsbye Christensen。 luc
更新 更新依赖项至Hipparchus 1.1,发布于2017年3月16日。 luc
添加 添加了大气折射功能。该工作是在ESA SOCIS 2016计划的框架下完成的。实现了特性#185。感谢Sergio Esteves。 luc
更新 用Orekit ParameterDriver替换了Orekit轨道确定功能中的临时参数。 luc
更新 更新依赖项至Orekit 8.0和Hipparchus 1.0。 luc
更新 将Rugged转换为使用Hipparchus库。 guylaine

发布版本 1.0 – 2016-02-10

类型 变更 作者
添加 在Rugged级别添加了一个getAlgorithm方法。例如,这允许检索纬度/经度对应的DEM高程。 luc
添加 添加了一个辅助工具来帮助估计可见性并设置最小/最大搜索线。 luc
修复 改进了纬度交叉的鲁棒性。 luc
添加 在Duvenhage算法中添加了对无限循环的保护。 luc
添加 添加了一个CONSTANT_ELEVATION_OVER_ELLIPSOID算法,与IGNORE_DEM_USE_ELLIPSOID类似,但是可以使用用户指定的高程而不总是使用0.0高程。实现功能#187。 luc
添加 添加了错误消息的挪威语翻译。感谢Espen Bjørntvedt。 luc
更新 更新了Apache Commons版本,因为3.4版本已发布。 luc
添加 添加了关于变换参数的线视线的偏导数。这是进行线视线校准的第一步。 luc
添加 添加了线视线的变换序列。 luc
添加 为线视线列表添加了一个构建器。 luc
更新 重新组织了包。 luc
添加 为RuggedBuilder添加了getter方法。 luc
修复 当时间跨度改变时,强制重置构建插值器。 luc
添加 添加了错误消息的罗马尼亚翻译。感谢Lucian Barbulescu。 luc
更新 使用构建器模式和流畅接口创建顶层Rugged实例。 luc
修复 强制地理点保持与其所属的数字高程模型瓦片相同的经度范围。 luc
修复 在Duvenhage算法中添加了对一些极其罕见的数值问题的保护。 luc
添加 添加了错误消息的西班牙语和加利西亚语翻译。感谢Silvia Ríos Bergantiños和Beatriz Salazar。 luc
添加 添加了错误消息的德语翻译。感谢Marina Ludwig。 luc
添加 添加了错误消息的意大利语翻译。感谢Francesco Coccoluto。 luc
修复 添加了检测错误位置/视线未接触地面的功能。 luc
添加 通过将其状态转储到文件中,添加了一种重用变换插值器的方法,从而避免了昂贵的初始化。 luc
添加 内部变换缓存的时间步长现在可以由用户配置。 luc
更新 切换到多模块的maven配置。 luc
更新 更新了UML图。 luc
更新 将TileUpdate移动到光栅包。 luc
更新 完成了直接定位图。 luc
更新 将核心包重命名为交点。 luc
更新 创建了一个工具包。 luc
更新 将光栅包上移了一级。 luc
修复 修复了顶级包名。 luc
更新 更新了maven插件版本。 luc
更新 更新了Apache Commons版本,因为3.3版本已发布。 luc
更新 更新了Orekit版本。 luc
更新 改进了性能。 luc
更新 禁用了反向定位的计时测试。 luc
更新 再次提高了反向定位的速度! luc
更新 添加了仅使用纬度和经度的反向定位。当只指定纬度和经度时,高程将自动从数字高程模型中计算。 luc
更新 简化的直接定位。 luc
更新 改进的反向定位性能。 luc
更新 在LineDatation接口中添加速率。 luc
更新 默认禁用定时测试。 luc
更新 将setLineSensor重命名为addLineSensor。新名称更清楚地解释了可以一次设置多个传感器。 luc
修复 反向定位的第一个可工作版本。 luc
更新 简化线传感器模型。现在我们使用一个位置来表示所有像素(当然仍然有不同的视线向量),因为考虑不同的位置并没有太多意义,因为像素之间只相隔几微米。 luc
更新 确保传感器平均平面法线具有确定的方向。 luc
更新 稍微改变了平面体中的交点细化。 luc
更新 添加了一个平面体实现的refineIntersection。之前的实现忽略了平面体标志,并且实际上更正了平面体... luc
修复 修复了参考点位置的平均值。 luc
更新 改进了光程修正。在计算光程修正时必须考虑当前海拔高度。之前的计算略有错误,因为它只计算了从椭球体到地球的光程。这在计算反向修正时会引起问题。 luc
修复 修复了视线的纬度交叉计算。在某些情况下,视线与给定等纬度圆锥体有两个交点,并且选择最接近航天器的交点并不总是适当的选择。需要来自调用者的提示,作为接近所需交点的点。 luc
修复 修复了传感器线开始附近的非括号错误。 luc
更新 将参考日期从Rugged顶级类移动到LineDatation模型。 luc
更新 删除了对上下文的检查,因为在构造时已经确保了。 luc
更新 改进了反向定位测试的速度。 luc
修复 反向定位的第一个工作版本。它适用于简单的情况(没有光行时校正和光线偏差校正),但速度仍然非常慢。 luc
添加 开始实现反向定位(尚未工作)。 luc
更新 删除了不再需要的检查。索引现在在调用者级别进行检查。 luc
更新 添加了使用Duvenhage算法和平面地球假设的选项。此选项主要用于与现有系统进行比较。不应将其用于操作系统,而应改为使用具有大地坐标中视线弯曲的完整Duvenhage算法。 luc
修复 在精确插值到瓦片边缘时避免数组边界错误。 luc
更新 为线传感器添加了自动平均平面计算。这将允许实现反向定位。 luc
更新 允许直接使用Orekit惯性参考系和椭球体。 luc
更新 添加了可选的光差修正。 luc
更新 将光行时间补偿重命名为光时修正。这更符合物理命名约定。 luc
更新 将光行时间补偿设置移出构造函数。这个设置通常不经常使用(实际上只应该用于与其他系统进行验证),所以强制用户在所有情况下设置它是一个坏主意。现在默认配置是进行补偿,如果用户不想进行补偿,可以在构造后调用一个单独的方法来禁止补偿。 luc
更新 修复光行时间或不修复现在是用户设置。 luc
更新 在构造时配置瓦片更新器。 luc
更新 用构造函数替换setGeneralContext。 luc
更新 用一个类替换了Rugged接口。 luc
更新 将枚举移到Rugged顶层接口之外。 luc
更新 移除了SatellitePV和SatelliteQ类。我们现在直接使用Orekit的PVCoordinates和Apache Commons Math的Rotation类。 luc
更新 移除了GroundPoint类。我们现在直接使用Orekit的NormalizedGeodeticPoint。 luc
添加 添加了ITRF坐标系的黄道,用于依赖它的应用程序... luc
修复 修复了在瓦片边界出现虚拟“墙”的问题。 luc
修复 避免在瓦片边界附近出现无限循环。 luc
修复 修复了从Aster文件加载高程的错误。 luc
更新 通过考虑光速在变换中的影响,提高了精度。 luc
更新 通过专用的pointOnGround方法稍微加快了速度。 luc
更新 添加了将网格文件写入完整测试的功能。 luc
更新 在直接定位中不使用数值传播器。由于每行之间的时间非常短(毫秒级),最好先传播再使用星历。 luc
添加 新增全局测试(临时,计算量过大)。 luc
添加 添加了默认的线性模型用于线日期。 luc
更新 避免在其开始之前将视线分割。 luc
修复 修复了瓦片退出时的数值问题。在瓦片最小高程处计算的低点存在微小的正误差,意味着该点实际上在最小高程之上(在微米级别)。从入口到退出的线段在穿越数字高程模型之前就停止了,并触发了错误。解决方案是在计算入口和退出时的线段端点时留出一些余地:我们现在从最大高程以上开始,并在最小高程以下结束,以便交点确实在线上。 luc
更新 大大提高了直接定位的准确性。由于最终的线性视线模型在像素级别上使用,可能会导致一些小的误差(在厘米级别),结果点可能略微偏离视线。为了确保点确实在视线上,进行了迭代校正步骤。残差误差现在在纳米级别。 luc
添加 允许在接近像素边缘的交点处设置容差。 luc
更新 使用每个像素的四个角来初始化最小/最大kd树。 luc
更新 使用点和方向而不是两个点进行像素交点计算。 luc
更新 添加了笛卡尔坐标和大地坐标之间的视线转换。转换当然只在参考点附近准确,因为笛卡尔坐标中的直线在大地坐标中不是直线。转换的是初始方向,因此两条曲线在参考点处是切线的。在地球表面附近,两条曲线在大约100米行程后仍保持在一毫米范围内。 luc
修复 Duvenhage算法的第一个可工作版本! luc
修复 处理退化交点情况。处理的情况包括线性情况(数字高程模型具有零曲率时)和常数情况(没有曲率且视线平行于瓦片,无论是在瓦片内还是瓦片外)。 luc
修复 BasicScanAlgorithm的第一个可工作版本。尚未测试视线从一个瓦片顶部进入数字高程模型并从另一个瓦片底部退出的情况。 luc
添加 为BasicScanAlgorithm添加了测试。 luc
更新 在取消合并瓦片时不排除端点。 luc
更新 为了更容易理解,改变了私有方法的参数顺序。 luc
修复 修复了子瓦片交叉点的计算问题。 luc
更新 添加了带有和不带有Orekit的库设置测试。 luc
添加 为更完整的飞行动力学测试准备了框架。 luc
更新 实现了像素级的交点。 luc
更新 将最终像素交点委托给瓦片。 luc
修复 添加了一个基本的扫描算法,用于测试和验证目的。 luc
更新 在子瓦片边界处添加了视线分割。 luc
更新 添加了级别0合并行和高瓦片的测试。 luc
更新 在Tile中添加了getLatitudeAtIndex和getLongitudeAtIndex方法。 luc
更新 更改合并方法的语义,使其参考当前级别。 luc
更新 将dem包重命名为raster。 luc
更新 duvenhage算法正在进行中。 luc
更新 添加了getMergingRow和getMergingColumn方法。这些方法对于在Duvenhage算法中识别在最小/最大kd树的一级到下一级时在视线中分割的位置至关重要。 luc
更新 添加了isColumnMerging谓词。 luc
更新 在瓦片周围添加了一个高程插值的容差。高程将在瓦片的入口点和出口点进行插值,这些点是通过地理转换计算得到的。结果点可能在数值精度水平上略微超出瓦片。然而,这些点应该允许使用最接近的像素数据进行插值,因此需要一个容差。SimpleTile类使用一个固定的容差,任意设置为1/8像素。 luc
修复 修复了插值错误。 luc
添加 开始实现Duvenhage算法。 luc
更新 在Tile中添加了getLatitudeIndex和getLongitudeIndex方法。 luc
修复 正确处理瓦片边界。瓦片不应该有瓦片之间的间隙,即边界行/列在相邻瓦片中重复。 luc
更新 改进了点相对于瓦片的位置识别。 luc
更新 传感器直接使用点和向量,不再使用线。 luc
更新 交点算法可以使用新的ExtendedEllipsoid。这使得它们能够在DEM单元边界处截断视线。 luc
修复 修复了测试中的错误包。 luc
添加 添加了ExtendedEllipsoid以根据DEM截断视线。 luc
更新 从DEM交点算法中分离了顶层类。 luc
更新 行号是双倍的。 luc
添加 开始实现直接定位... luc
更新 添加了对未知传感器的保护。 luc
添加 为传感器视线添加了配置。 luc
更新 对所有计算使用参考日期的偏移量。 luc
更新 添加了一个getMergeLevel方法,用于识别像素是否共享最小/最大值。这是迈向duvenhage算法的第一步。 luc
修复 最小/最大kd树瓦片的工作版本。 luc
添加 开始实现最小/最大KD树瓦片。这是一个正在进行的工作,目前最小/最大计算似乎有问题。 luc
更新 像素是双倍的。 luc
更新 添加了对空瓦片的保护。 luc
更新 移除了AbastractTile。专门的瓦片应直接扩展SimpleTile。 luc
添加 为任何瓦片添加了全局最小/最大值处理。 luc
添加 为Duvenhage算法准备了第一个实现。目前,只设置了(不完整的)API和类层次结构。该瓦片仍然是一个简单的瓦片,尚未创建最小/最大kd树。该算法不执行任何操作。 luc
更新 Rugged接口实现的样板部分。 luc
更新 添加了全局上下文初始化的API。 luc
更新 添加了解析位置/速度和姿态的容器。 luc
更新 添加了在瓦片更新完成后调用的钩子。 luc
更新 强制使用工厂创建简单瓦片。 luc
更新 从SimpleTile中提取了一个AbstractTile luc
更新 添加了一个简单的容器来存储逆位置结果。 luc
更新 扩展了API。 luc
更新 使用新的专用异常。 luc
更新 添加了错误消息处理和翻译。 luc
更新 添加了设计文档和图表。 luc
更新 实现了TilesCache。 luc
更新 添加了瓦片的工厂。该工厂由DEM交叉算法在非常低的级别上实现(通常是基于Duvenhage算法的最小/最大kd树的瓦片)。另一方面,瓦片更新器是任务特定接口的责任。 luc
更新 添加了检查地面点覆盖范围的方法。 luc
更新 参考纬度/经度必须是最小值。这确保了给定地面点的瓦片的简单搜索。 luc