Skip to content
Snippets Groups Projects
Commit fcb304a5 authored by Guylaine Prat's avatar Guylaine Prat
Browse files

Merge branch 'develop' of https://gitlab.orekit.org/orekit/rugged into develop

parents 6cf2defd 38641114
No related branches found
No related tags found
No related merge requests found
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.orekit</groupId> <groupId>org.orekit</groupId>
<artifactId>rugged</artifactId> <artifactId>rugged</artifactId>
<version>2.1-SNAPSHOT</version> <version>2.2-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>Rugged</name> <name>Rugged</name>
<url>https://www.orekit.org/rugged</url> <url>https://www.orekit.org/rugged</url>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<!-- COTS version --> <!-- COTS version -->
<rugged.orekit.version>9.3</rugged.orekit.version> <rugged.orekit.version>9.3.1</rugged.orekit.version>
<rugged.hipparchus.version>1.4</rugged.hipparchus.version> <rugged.hipparchus.version>1.4</rugged.hipparchus.version>
<rugged.junit.version>4.12</rugged.junit.version> <rugged.junit.version>4.12</rugged.junit.version>
......
...@@ -20,11 +20,15 @@ ...@@ -20,11 +20,15 @@
<title>Rugged Changes</title> <title>Rugged Changes</title>
</properties> </properties>
<body> <body>
<release version="2.1-SNAPSHOT" date="TBD" description="TTBD"> <release version="2.2-SNAPSHOT" date="TBD" description="TBD">
</release>
<release version="2.1" date="2019-03-14" description="This is a minor release.
It adds refraction in inverse location and fixes a few bugs. This version depends
on Orekit 9.3 and Hipparchus 1.4.">
<action dev="guylaine" type="update"> <action dev="guylaine" type="update">
Updated dependencies to Orekit 9.3 and Hipparchus 1.4. Updated dependencies to Orekit 9.3 and Hipparchus 1.4.
</action> </action>
<action dev="guylaine" type="fix" issue="376"> <action dev="luc" type="fix" issue="376">
Direct location may result to a null result in some very rugged region. Direct location may result to a null result in some very rugged region.
In Duvenhage algorithm, in the refineIntersection method for the DEM, In Duvenhage algorithm, in the refineIntersection method for the DEM,
some rare cases led to no intersection (as a result from SimpleTile.cellIntersection) some rare cases led to no intersection (as a result from SimpleTile.cellIntersection)
......
...@@ -37,7 +37,7 @@ public abstract class AtmosphericRefraction { ...@@ -37,7 +37,7 @@ public abstract class AtmosphericRefraction {
* By default: computation is set up. * By default: computation is set up.
* @since 2.1 * @since 2.1
*/ */
private boolean mustBeComputed = true; private boolean mustBeComputed;
/** The current atmospheric parameters. /** The current atmospheric parameters.
* @since 2.1 * @since 2.1
...@@ -47,12 +47,12 @@ public abstract class AtmosphericRefraction { ...@@ -47,12 +47,12 @@ public abstract class AtmosphericRefraction {
/** Bilinear interpolating function for pixel (used by inverse location). /** Bilinear interpolating function for pixel (used by inverse location).
* @since 2.1 * @since 2.1
*/ */
private BilinearInterpolatingFunction bifPixel = null; private BilinearInterpolatingFunction bifPixel;
/** Bilinear interpolating function of line (used by inverse location). /** Bilinear interpolating function of line (used by inverse location).
* @since 2.1 * @since 2.1
*/ */
private BilinearInterpolatingFunction bifLine = null; private BilinearInterpolatingFunction bifLine;
/** /**
* Default constructor. * Default constructor.
...@@ -60,6 +60,9 @@ public abstract class AtmosphericRefraction { ...@@ -60,6 +60,9 @@ public abstract class AtmosphericRefraction {
protected AtmosphericRefraction() { protected AtmosphericRefraction() {
// Set up the atmospheric parameters ... with lazy evaluation of the grid (done only if necessary) // Set up the atmospheric parameters ... with lazy evaluation of the grid (done only if necessary)
this.atmosphericParams = new AtmosphericComputationParameters(); this.atmosphericParams = new AtmosphericComputationParameters();
this.mustBeComputed = true;
this.bifPixel = null;
this.bifLine = null;
} }
/** Apply correction to the intersected point with an atmospheric refraction model. /** Apply correction to the intersected point with an atmospheric refraction model.
...@@ -74,23 +77,6 @@ public abstract class AtmosphericRefraction { ...@@ -74,23 +77,6 @@ public abstract class AtmosphericRefraction {
public abstract NormalizedGeodeticPoint applyCorrection(Vector3D satPos, Vector3D satLos, NormalizedGeodeticPoint rawIntersection, public abstract NormalizedGeodeticPoint applyCorrection(Vector3D satPos, Vector3D satLos, NormalizedGeodeticPoint rawIntersection,
IntersectionAlgorithm algorithm); IntersectionAlgorithm algorithm);
/** Apply correction to the intersected point with an atmospheric refraction model,
* using a time optimized algorithm.
* @param lineSensor the line sensor
* @param sensorPixel the sensor pixel (must be defined)
* @param satPos satellite position, in <em>body frame</em>
* @param satLos sensor pixel line of sight, in <em>body frame</em>
* @param rawIntersection intersection point before refraction correction
* @param algorithm intersection algorithm
* @return corrected point with the effect of atmospheric refraction
* {@link org.orekit.rugged.utils.ExtendedEllipsoid#pointAtAltitude(Vector3D, Vector3D, double)} or see
* {@link org.orekit.rugged.intersection.IntersectionAlgorithm#refineIntersection(org.orekit.rugged.utils.ExtendedEllipsoid, Vector3D, Vector3D, NormalizedGeodeticPoint)}
* @since 2.1
*/
public abstract NormalizedGeodeticPoint applyCorrection(LineSensor lineSensor, SensorPixel sensorPixel,
Vector3D satPos, Vector3D satLos, NormalizedGeodeticPoint rawIntersection,
IntersectionAlgorithm algorithm);
/** Deactivate computation (needed for the inverse location computation). /** Deactivate computation (needed for the inverse location computation).
* @since 2.1 * @since 2.1
*/ */
......
...@@ -26,8 +26,6 @@ import org.orekit.bodies.GeodeticPoint; ...@@ -26,8 +26,6 @@ import org.orekit.bodies.GeodeticPoint;
import org.orekit.rugged.errors.RuggedException; import org.orekit.rugged.errors.RuggedException;
import org.orekit.rugged.errors.RuggedMessages; import org.orekit.rugged.errors.RuggedMessages;
import org.orekit.rugged.intersection.IntersectionAlgorithm; import org.orekit.rugged.intersection.IntersectionAlgorithm;
import org.orekit.rugged.linesensor.LineSensor;
import org.orekit.rugged.linesensor.SensorPixel;
import org.orekit.rugged.utils.ExtendedEllipsoid; import org.orekit.rugged.utils.ExtendedEllipsoid;
import org.orekit.rugged.utils.NormalizedGeodeticPoint; import org.orekit.rugged.utils.NormalizedGeodeticPoint;
...@@ -248,17 +246,6 @@ public class MultiLayerModel extends AtmosphericRefraction { ...@@ -248,17 +246,6 @@ public class MultiLayerModel extends AtmosphericRefraction {
return algorithm.refineIntersection(ellipsoid, pos, los, rawIntersection); return algorithm.refineIntersection(ellipsoid, pos, los, rawIntersection);
} }
/** {@inheritDoc} */
@Override
public NormalizedGeodeticPoint applyCorrection(final LineSensor lineSensor, final SensorPixel sensorPixel,
final Vector3D satPos, final Vector3D satLos,
final NormalizedGeodeticPoint rawIntersection,
final IntersectionAlgorithm algorithm) {
// TODO to be done
throw new RuggedException(RuggedMessages.UNINITIALIZED_CONTEXT, "Atmospheric optimization for direct loc");
}
} // end of class MultiLayerModel } // end of class MultiLayerModel
/** Container for the (position, LOS) of the intersection with the lowest atmospheric layer. /** Container for the (position, LOS) of the intersection with the lowest atmospheric layer.
......
...@@ -44,6 +44,12 @@ internal mechanism will download automatically all artifacts and dependencies ...@@ -44,6 +44,12 @@ internal mechanism will download automatically all artifacts and dependencies
as required. as required.
| package | link |
|----------|-----------------------------------------------------------------------------------------------------------|
| source | [`rugged-2.1-sources.zip`](https://gitlab.orekit.org/orekit/rugged/uploads/a8ed096b6e9b5d1088ad135ac29fce9d/rugged-2.1-sources.zip) |
| binary | [`rugged-2.1.jar`](https://gitlab.orekit.org/orekit/rugged/uploads/4b9041f962ed8cd3b55164873bb5c861/rugged-2.1.jar) |
version 2.1 downloads (release date: 2019-03-14)
| package | link | | package | link |
|----------|-----------------------------------------------------------------------------------------------------------| |----------|-----------------------------------------------------------------------------------------------------------|
| source | [`rugged-2.0-sources.zip`](https://gitlab.orekit.org/orekit/rugged/uploads/f7f30111d4d3cef19636cb7c504530dd/rugged-2.0-sources.zip) | | source | [`rugged-2.0-sources.zip`](https://gitlab.orekit.org/orekit/rugged/uploads/f7f30111d4d3cef19636cb7c504530dd/rugged-2.0-sources.zip) |
......
...@@ -130,6 +130,8 @@ public abstract class AbstractAlgorithmTest { ...@@ -130,6 +130,8 @@ public abstract class AbstractAlgorithmTest {
Vector3D groundP = earth.transform(groundGP); Vector3D groundP = earth.transform(groundGP);
final IntersectionAlgorithm algorithm = createAlgorithm(updater, 8); final IntersectionAlgorithm algorithm = createAlgorithm(updater, 8);
Assert.assertEquals( 0.0, algorithm.getElevation(latitude, longitude - 2.0e-5), 1.0e-6);
Assert.assertEquals(120.0, algorithm.getElevation(latitude, longitude + 2.0e-5), 1.0e-6);
// preliminary check: the point has been chosen in the spacecraft (YZ) plane // preliminary check: the point has been chosen in the spacecraft (YZ) plane
Transform earthToSpacecraft = new Transform(state.getDate(), Transform earthToSpacecraft = new Transform(state.getDate(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment