diff --git a/pom.xml b/pom.xml index 43a00d58763177a359d7132a02f1267131848ffe..6f9517726f27314621c183eae45d36f2d7e85b81 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.orekit</groupId> <artifactId>rugged</artifactId> - <version>2.3-SNAPSHOT</version> + <version>3.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Rugged</name> <url>https://www.orekit.org/rugged</url> @@ -19,7 +19,7 @@ <!-- COTS version --> - <rugged.orekit.version>10.2</rugged.orekit.version> + <rugged.orekit.version>11.0.1</rugged.orekit.version> <rugged.junit.version>4.13.2</rugged.junit.version> <!-- Compilers and Tools version --> diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 8510a3b315e5730d9c19926fdc7662c50f4d6b38..fbc9ab788a6f931f00f3d17f5dc6395280b05883 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -20,7 +20,10 @@ <title>Rugged Changes</title> </properties> <body> - <release version="2.3" date="TBD" description="TBD"> + <release version="3.0" date="TBD" description="TBD"> + <action dev="luc" type="update" issue="387"> + Updated dependencies to Orekit 11.0.1 (and Hipparchus 2.0). + </action> </release> <release version="2.2" date="2020-07-31" description="This is a minor release. It adds access to algorithm identifier, diff --git a/src/main/java/org/orekit/rugged/api/RuggedBuilder.java b/src/main/java/org/orekit/rugged/api/RuggedBuilder.java index b1ffd05dc0a186e715f96dd846da65abc90c0728..7c4f9c7dfab5966954e62188080c070262b6eafb 100644 --- a/src/main/java/org/orekit/rugged/api/RuggedBuilder.java +++ b/src/main/java/org/orekit/rugged/api/RuggedBuilder.java @@ -32,8 +32,6 @@ import org.orekit.bodies.OneAxisEllipsoid; import org.orekit.frames.Frame; import org.orekit.frames.FramesFactory; import org.orekit.propagation.Propagator; -import org.orekit.propagation.SpacecraftState; -import org.orekit.propagation.sampling.OrekitFixedStepHandler; import org.orekit.rugged.errors.RuggedException; import org.orekit.rugged.errors.RuggedInternalError; import org.orekit.rugged.errors.RuggedMessages; @@ -733,19 +731,14 @@ public class RuggedBuilder { new ArrayList<TimeStampedPVCoordinates>(); final List<TimeStampedAngularCoordinates> quaternions = new ArrayList<TimeStampedAngularCoordinates>(); - propagator.setMasterMode(interpolationStep, new OrekitFixedStepHandler() { - - /** {@inheritDoc} */ - @Override - public void handleStep(final SpacecraftState currentState, final boolean isLast) { - final AbsoluteDate date = currentState.getDate(); - final PVCoordinates pv = currentState.getPVCoordinates(inertialFrame); - final Rotation q = currentState.getAttitude().getRotation(); - positionsVelocities.add(new TimeStampedPVCoordinates(date, pv.getPosition(), pv.getVelocity(), Vector3D.ZERO)); - quaternions.add(new TimeStampedAngularCoordinates(date, q, Vector3D.ZERO, Vector3D.ZERO)); - } - - }); + propagator.getMultiplexer().add(interpolationStep, + currentState -> { + final AbsoluteDate date = currentState.getDate(); + final PVCoordinates pv = currentState.getPVCoordinates(inertialFrame); + final Rotation q = currentState.getAttitude().getRotation(); + positionsVelocities.add(new TimeStampedPVCoordinates(date, pv.getPosition(), pv.getVelocity(), Vector3D.ZERO)); + quaternions.add(new TimeStampedAngularCoordinates(date, q, Vector3D.ZERO, Vector3D.ZERO)); + }); propagator.propagate(minDate.shiftedBy(-interpolationStep), maxDate.shiftedBy(interpolationStep)); // orbit/attitude to body converter diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md index da4f937de519388509304be8c0573628a82769ae..01ee8f9b7ab8c535aeb9528b93b2017f8f727e07 100644 --- a/src/site/markdown/index.md +++ b/src/site/markdown/index.md @@ -98,7 +98,7 @@ interoperability in space systems. ## Maintained library -Rugged has been in development since 2014 inside [CS GROUP](http://www.c-s.fr/ "CS GROUP homepage") +Rugged has been in development since 2014 inside [CS GROUP](https://www.csgroup.eu/ "CS GROUP homepage") and is still used and maintained by its dual teams of space dynamics and image processing experts. diff --git a/src/test/java/org/orekit/rugged/TestUtils.java b/src/test/java/org/orekit/rugged/TestUtils.java index 418a9a1b3b9288e447ebadca51284889d6c1f9ce..baaea0d93dcd5ac572c0f8882e66076af14ebcbe 100644 --- a/src/test/java/org/orekit/rugged/TestUtils.java +++ b/src/test/java/org/orekit/rugged/TestUtils.java @@ -58,7 +58,6 @@ import org.orekit.propagation.Propagator; import org.orekit.propagation.SpacecraftState; import org.orekit.propagation.analytical.KeplerianPropagator; import org.orekit.propagation.numerical.NumericalPropagator; -import org.orekit.propagation.sampling.OrekitFixedStepHandler; import org.orekit.propagation.semianalytical.dsst.utilities.JacobiPolynomials; import org.orekit.propagation.semianalytical.dsst.utilities.NewcombOperators; import org.orekit.rugged.linesensor.SensorPixel; @@ -302,14 +301,10 @@ public class TestUtils { propagator.setAttitudeProvider(new YawCompensation(orbit.getFrame(), new NadirPointing(orbit.getFrame(), earth))); propagator.propagate(minDate); final List<TimeStampedPVCoordinates> list = new ArrayList<TimeStampedPVCoordinates>(); - propagator.setMasterMode(step, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - list.add(new TimeStampedPVCoordinates(currentState.getDate(), - currentState.getPVCoordinates().getPosition(), - currentState.getPVCoordinates().getVelocity(), - Vector3D.ZERO)); - } - }); + propagator.getMultiplexer().add(step, currentState -> list.add(new TimeStampedPVCoordinates(currentState.getDate(), + currentState.getPVCoordinates().getPosition(), + currentState.getPVCoordinates().getVelocity(), + Vector3D.ZERO))); propagator.propagate(maxDate); return list; } @@ -325,13 +320,9 @@ public class TestUtils { propagator.setAttitudeProvider(new YawCompensation(orbit.getFrame(), new NadirPointing(orbit.getFrame(), earth))); propagator.propagate(minDate); final List<TimeStampedAngularCoordinates> list = new ArrayList<TimeStampedAngularCoordinates>(); - propagator.setMasterMode(step, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - list.add(new TimeStampedAngularCoordinates(currentState.getDate(), - currentState.getAttitude().getRotation(), - Vector3D.ZERO, Vector3D.ZERO)); - } - }); + propagator.getMultiplexer().add(step, currentState -> list.add(new TimeStampedAngularCoordinates(currentState.getDate(), + currentState.getAttitude().getRotation(), + Vector3D.ZERO, Vector3D.ZERO))); propagator.propagate(maxDate); return list; } diff --git a/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java b/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java index 5f76ebb808a0f108adb6a8eea66650655959c8e3..cca8dbc4d0a7e557a8f0ca387aeeab0826b79243 100644 --- a/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java +++ b/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java @@ -166,12 +166,11 @@ public class PleiadesOrbitModel { propagator.propagate(minDate); final List<TimeStampedPVCoordinates> list = new ArrayList<TimeStampedPVCoordinates>(); - propagator.setMasterMode(step, - (currentState, isLast) -> - list.add(new TimeStampedPVCoordinates(currentState.getDate(), - currentState.getPVCoordinates().getPosition(), - currentState.getPVCoordinates().getVelocity(), - Vector3D.ZERO))); + propagator.getMultiplexer().add(step, + currentState -> list.add(new TimeStampedPVCoordinates(currentState.getDate(), + currentState.getPVCoordinates().getPosition(), + currentState.getPVCoordinates().getVelocity(), + Vector3D.ZERO))); propagator.propagate(maxDate); return list; @@ -187,12 +186,11 @@ public class PleiadesOrbitModel { propagator.setAttitudeProvider(createAttitudeProvider(earth, orbit)); propagator.propagate(minDate); final List<TimeStampedAngularCoordinates> list = new ArrayList<>(); - propagator.setMasterMode(step, - (currentState, isLast) -> - list.add(new TimeStampedAngularCoordinates(currentState.getDate(), - currentState.getAttitude().getRotation(), - Vector3D.ZERO, - Vector3D.ZERO))); + propagator.getMultiplexer().add(step, + currentState -> list.add(new TimeStampedAngularCoordinates(currentState.getDate(), + currentState.getAttitude().getRotation(), + Vector3D.ZERO, + Vector3D.ZERO))); propagator.propagate(maxDate); return list; diff --git a/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java b/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java index f24730bda5eee803bbd53af9ca1afa73f77473f8..825e85ae17108c2672ea285f8151452f1e17a8a7 100644 --- a/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java +++ b/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java @@ -63,7 +63,6 @@ import org.orekit.propagation.Propagator; import org.orekit.propagation.SpacecraftState; import org.orekit.propagation.analytical.KeplerianPropagator; import org.orekit.propagation.numerical.NumericalPropagator; -import org.orekit.propagation.sampling.OrekitFixedStepHandler; import org.orekit.rugged.errors.RuggedException; import org.orekit.rugged.errors.RuggedMessages; import org.orekit.rugged.linesensor.LineDatation; @@ -825,14 +824,10 @@ public class RuggedBuilderTest { propagator.setAttitudeProvider(new YawCompensation(orbit.getFrame(), new NadirPointing(orbit.getFrame(), earth))); propagator.propagate(minDate); final List<TimeStampedPVCoordinates> list = new ArrayList<TimeStampedPVCoordinates>(); - propagator.setMasterMode(step, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - list.add(new TimeStampedPVCoordinates(currentState.getDate(), - currentState.getPVCoordinates().getPosition(), - currentState.getPVCoordinates().getVelocity(), - Vector3D.ZERO)); - } - }); + propagator.getMultiplexer().add(step, currentState -> list.add(new TimeStampedPVCoordinates(currentState.getDate(), + currentState.getPVCoordinates().getPosition(), + currentState.getPVCoordinates().getVelocity(), + Vector3D.ZERO))); propagator.propagate(maxDate); return list; } @@ -845,13 +840,9 @@ public class RuggedBuilderTest { propagator.setAttitudeProvider(new YawCompensation(orbit.getFrame(), new NadirPointing(orbit.getFrame(), earth))); propagator.propagate(minDate); final List<TimeStampedAngularCoordinates> list = new ArrayList<TimeStampedAngularCoordinates>(); - propagator.setMasterMode(step, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - list.add(new TimeStampedAngularCoordinates(currentState.getDate(), - currentState.getAttitude().getRotation(), - Vector3D.ZERO, Vector3D.ZERO)); - } - }); + propagator.getMultiplexer().add(step, currentState -> list.add(new TimeStampedAngularCoordinates(currentState.getDate(), + currentState.getAttitude().getRotation(), + Vector3D.ZERO, Vector3D.ZERO))); propagator.propagate(maxDate); return list; } diff --git a/src/test/java/org/orekit/rugged/api/RuggedTest.java b/src/test/java/org/orekit/rugged/api/RuggedTest.java index cd8aae3f4f3f95bc64e7b56894fc2eb6032b2c78..29ea82e5da514c9ab0bb7c3a861ca7e0e61d8791 100644 --- a/src/test/java/org/orekit/rugged/api/RuggedTest.java +++ b/src/test/java/org/orekit/rugged/api/RuggedTest.java @@ -59,6 +59,7 @@ import org.orekit.forces.gravity.potential.NormalizedSphericalHarmonicsProvider; import org.orekit.frames.Frame; import org.orekit.frames.FramesFactory; import org.orekit.orbits.Orbit; +import org.orekit.propagation.EphemerisGenerator; import org.orekit.propagation.Propagator; import org.orekit.rugged.TestUtils; import org.orekit.rugged.adjustment.GroundOptimizationProblemBuilder; @@ -136,9 +137,9 @@ public class RuggedTest { Propagator propagator = TestUtils.createPropagator(earth, gravityField, orbit); propagator.propagate(lineDatation.getDate(firstLine).shiftedBy(-1.0)); - propagator.setEphemerisMode(); + final EphemerisGenerator generator = propagator.getEphemerisGenerator(); propagator.propagate(lineDatation.getDate(lastLine).shiftedBy(+1.0)); - Propagator ephemeris = propagator.getGeneratedEphemeris(); + Propagator ephemeris = generator.getGeneratedEphemeris(); Rugged rugged = new RuggedBuilder(). setDigitalElevationModel(updater, 8). diff --git a/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java b/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java index 9107078602bfd311812dc4fd407ff33d9d07f6c9..3b051ac62423b75f0738c812ba32bbe9451ac403 100644 --- a/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java +++ b/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java @@ -44,9 +44,7 @@ import org.orekit.orbits.CircularOrbit; import org.orekit.orbits.Orbit; import org.orekit.orbits.PositionAngle; import org.orekit.propagation.Propagator; -import org.orekit.propagation.SpacecraftState; import org.orekit.propagation.analytical.KeplerianPropagator; -import org.orekit.propagation.sampling.OrekitFixedStepHandler; import org.orekit.rugged.TestUtils; import org.orekit.rugged.linesensor.SensorMeanPlaneCrossing.CrossingResult; import org.orekit.rugged.los.LOSBuilder; @@ -316,14 +314,10 @@ public class SensorMeanPlaneCrossingTest { propagator.setAttitudeProvider(new YawCompensation(orbit.getFrame(), new NadirPointing(orbit.getFrame(), earth))); propagator.propagate(minDate); final List<TimeStampedPVCoordinates> list = new ArrayList<TimeStampedPVCoordinates>(); - propagator.setMasterMode(step, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - list.add(new TimeStampedPVCoordinates(currentState.getDate(), - currentState.getPVCoordinates().getPosition(), - currentState.getPVCoordinates().getVelocity(), - Vector3D.ZERO)); - } - }); + propagator.getMultiplexer().add(step, currentState -> list.add(new TimeStampedPVCoordinates(currentState.getDate(), + currentState.getPVCoordinates().getPosition(), + currentState.getPVCoordinates().getVelocity(), + Vector3D.ZERO))); propagator.propagate(maxDate); return list; } @@ -336,13 +330,9 @@ public class SensorMeanPlaneCrossingTest { propagator.setAttitudeProvider(new YawCompensation(orbit.getFrame(), new NadirPointing(orbit.getFrame(), earth))); propagator.propagate(minDate); final List<TimeStampedAngularCoordinates> list = new ArrayList<TimeStampedAngularCoordinates>(); - propagator.setMasterMode(step, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - list.add(new TimeStampedAngularCoordinates(currentState.getDate(), - currentState.getAttitude().getRotation(), - Vector3D.ZERO, Vector3D.ZERO)); - } - }); + propagator.getMultiplexer().add(step, currentState -> list.add(new TimeStampedAngularCoordinates(currentState.getDate(), + currentState.getAttitude().getRotation(), + Vector3D.ZERO, Vector3D.ZERO))); propagator.propagate(maxDate); return list; } diff --git a/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java b/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java index e26b8eaf21381954906f9a64544905e0116e9b14..ccca03bc6e44494026ad98ffb1b425378c00e5f0 100644 --- a/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java +++ b/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java @@ -50,7 +50,6 @@ import org.orekit.orbits.PositionAngle; import org.orekit.propagation.Propagator; import org.orekit.propagation.SpacecraftState; import org.orekit.propagation.numerical.NumericalPropagator; -import org.orekit.propagation.sampling.OrekitFixedStepHandler; import org.orekit.time.AbsoluteDate; import org.orekit.time.TimeScalesFactory; import org.orekit.utils.Constants; @@ -69,18 +68,17 @@ public class RoughVisibilityEstimatorTest { Orbit orbit = createOrbit(gravityField.getMu()); Propagator propagator = createPropagator(earth, gravityField, orbit); final List<TimeStampedPVCoordinates> pv = new ArrayList<TimeStampedPVCoordinates>(); - propagator.setMasterMode(1.0, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - pv.add(currentState.getPVCoordinates()); - } - }); + propagator.getMultiplexer().add(1.0, currentState -> pv.add(currentState.getPVCoordinates())); propagator.propagate(orbit.getDate().shiftedBy(3 * orbit.getKeplerianPeriod())); RoughVisibilityEstimator estimator = new RoughVisibilityEstimator(ellipsoid, orbit.getFrame(), pv); AbsoluteDate d = estimator.estimateVisibility(new GeodeticPoint(FastMath.toRadians(-81.5), FastMath.toRadians(-2.0), 0.0)); - Assert.assertEquals("2012-01-01T03:47:08.814", d.toString(TimeScalesFactory.getUTC())); + Assert.assertEquals(0.0, + new AbsoluteDate("2012-01-01T03:47:08.814121623", + TimeScalesFactory.getUTC()).durationFrom(d), + 1.0e-9); } @@ -94,18 +92,17 @@ public class RoughVisibilityEstimatorTest { Orbit orbit = createOrbit(gravityField.getMu()); Propagator propagator = createPropagator(earth, gravityField, orbit); final List<TimeStampedPVCoordinates> pv = new ArrayList<TimeStampedPVCoordinates>(); - propagator.setMasterMode(1.0, new OrekitFixedStepHandler() { - public void handleStep(SpacecraftState currentState, boolean isLast) { - pv.add(currentState.getPVCoordinates()); - } - }); + propagator.getMultiplexer().add(1.0, currentState -> pv.add(currentState.getPVCoordinates())); propagator.propagate(orbit.getDate().shiftedBy(orbit.getKeplerianPeriod())); RoughVisibilityEstimator estimator = new RoughVisibilityEstimator(ellipsoid, orbit.getFrame(), pv); AbsoluteDate d = estimator.estimateVisibility(new GeodeticPoint(FastMath.toRadians(43.303), FastMath.toRadians(-46.126), 0.0)); - Assert.assertEquals("2012-01-01T01:02:39.123", d.toString(TimeScalesFactory.getUTC())); + Assert.assertEquals(0.0, + new AbsoluteDate("2012-01-01T01:02:39.122526662", + TimeScalesFactory.getUTC()).durationFrom(d), + 1.0e-9); }