From 57247f33dda304d4f368d95f9cc69a1d670f571b Mon Sep 17 00:00:00 2001 From: Luc Maisonobe <luc@orekit.org> Date: Tue, 25 Nov 2014 12:41:27 +0100 Subject: [PATCH] Sorted Rugged construction parameters for better consistency. tStep is really related to minData, maxDate, so it ought to be alongside with them. --- .../java/org/orekit/rugged/api/Rugged.java | 76 +++---- .../utils/SpacecraftToObservedBody.java | 14 +- .../org/orekit/rugged/api/RuggedTest.java | 196 +++++++++--------- .../api/SensorMeanPlaneCrossingTest.java | 12 +- 4 files changed, 151 insertions(+), 147 deletions(-) diff --git a/core/src/main/java/org/orekit/rugged/api/Rugged.java b/core/src/main/java/org/orekit/rugged/api/Rugged.java index d8cb0cfc..214aa1d3 100644 --- a/core/src/main/java/org/orekit/rugged/api/Rugged.java +++ b/core/src/main/java/org/orekit/rugged/api/Rugged.java @@ -114,6 +114,7 @@ public class Rugged { * @param bodyRotatingFrameID identifier of body rotating frame for observed ground points * @param minDate start of search time span * @param maxDate end of search time span + * @param tStep step to use for inertial frame to body frame transforms cache computations * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting * @param positionsVelocities satellite position and velocity (m and m/s in inertial frame) * @param pvInterpolationNumber number of points to use for position/velocity interpolation @@ -121,24 +122,25 @@ public class Rugged { * @param quaternions satellite quaternions with respect to inertial frame * @param aInterpolationNumber number of points to use for attitude interpolation * @param aFilter filter for derivatives from the sample to use in attitude interpolation - * @param tStep step to use for inertial frame to body frame transforms cache computations * @exception RuggedException if data needed for some frame cannot be loaded or if position * or attitude samples do not fully cover the [{@code minDate}, {@code maxDate}] search time span */ public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final EllipsoidId ellipsoidID, final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID, - final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance, + final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep, + final double overshootTolerance, final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationNumber, final CartesianDerivativesFilter pvFilter, final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationNumber, - final AngularDerivativesFilter aFilter, final double tStep) + final AngularDerivativesFilter aFilter) throws RuggedException { this(updater, maxCachedTiles, algorithmID, selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)), - selectInertialFrame(inertialFrameID), minDate, maxDate, overshootTolerance, + selectInertialFrame(inertialFrameID), + minDate, maxDate, tStep, overshootTolerance, positionsVelocities, pvInterpolationNumber, pvFilter, - quaternions, aInterpolationNumber, aFilter, tStep); + quaternions, aInterpolationNumber, aFilter); } /** Build a configured instance. @@ -157,6 +159,7 @@ public class Rugged { * @param inertialFrame inertial frame used for spacecraft positions/velocities/quaternions * @param minDate start of search time span * @param maxDate end of search time span + * @param tStep step to use for inertial frame to body frame transforms cache computations * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting * @param positionsVelocities satellite position and velocity (m and m/s in inertial frame) * @param pvInterpolationNumber number of points to use for position/velocity interpolation @@ -164,24 +167,23 @@ public class Rugged { * @param quaternions satellite quaternions with respect to inertial frame * @param aInterpolationNumber number of points to use for attitude interpolation * @param aFilter filter for derivatives from the sample to use in attitude interpolation - * @param tStep step to use for inertial frame to body frame transforms cache computations * @exception RuggedException if data needed for some frame cannot be loaded or if position * or attitude samples do not fully cover the [{@code minDate}, {@code maxDate}] search time span */ public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame, - final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance, + final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep, + final double overshootTolerance, final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationNumber, final CartesianDerivativesFilter pvFilter, final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationNumber, - final AngularDerivativesFilter aFilter, final double tStep) + final AngularDerivativesFilter aFilter) throws RuggedException { this(updater, maxCachedTiles, algorithmID, ellipsoid, createInterpolator(inertialFrame, ellipsoid.getBodyFrame(), - minDate, maxDate, overshootTolerance, + minDate, maxDate, tStep, overshootTolerance, positionsVelocities, pvInterpolationNumber, pvFilter, - quaternions, aInterpolationNumber, aFilter, - tStep)); + quaternions, aInterpolationNumber, aFilter)); } /** Build a configured instance. @@ -201,27 +203,29 @@ public class Rugged { * @param bodyRotatingFrameID identifier of body rotating frame for observed ground points * @param minDate start of search time span * @param maxDate end of search time span + * @param tStep step to use for inertial frame to body frame transforms cache computations * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting * @param interpolationStep step to use for inertial/Earth/spacraft transforms interpolations * @param interpolationNumber number of points to use for inertial/Earth/spacraft transforms interpolations * @param pvFilter filter for derivatives from the sample to use in position/velocity interpolation * @param aFilter filter for derivatives from the sample to use in attitude interpolation - * @param tStep step to use for inertial frame to body frame transforms cache computations * @param propagator global propagator * @exception RuggedException if data needed for some frame cannot be loaded */ public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final EllipsoidId ellipsoidID, final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID, - final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance, + final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep, + final double overshootTolerance, final double interpolationStep, final int interpolationNumber, final CartesianDerivativesFilter pvFilter, final AngularDerivativesFilter aFilter, - final double tStep, final Propagator propagator) + final Propagator propagator) throws RuggedException { this(updater, maxCachedTiles, algorithmID, selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)), - selectInertialFrame(inertialFrameID), minDate, maxDate, overshootTolerance, - interpolationStep, interpolationNumber, pvFilter, aFilter, tStep, propagator); + selectInertialFrame(inertialFrameID), + minDate, maxDate, tStep, overshootTolerance, + interpolationStep, interpolationNumber, pvFilter, aFilter, propagator); } /** Build a configured instance. @@ -240,27 +244,27 @@ public class Rugged { * @param inertialFrame inertial frame for spacecraft positions/velocities/quaternions * @param minDate start of search time span * @param maxDate end of search time span + * @param tStep step to use for inertial frame to body frame transforms cache computations * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting * @param interpolationStep step to use for inertial/Earth/spacraft transforms interpolations * @param interpolationNumber number of points of to use for inertial/Earth/spacraft transforms interpolations * @param pvFilter filter for derivatives from the sample to use in position/velocity interpolation * @param aFilter filter for derivatives from the sample to use in attitude interpolation - * @param tStep step to use for inertial frame to body frame transforms cache computations * @param propagator global propagator * @exception RuggedException if data needed for some frame cannot be loaded */ public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame, - final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance, + final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep, + final double overshootTolerance, final double interpolationStep, final int interpolationNumber, final CartesianDerivativesFilter pvFilter, final AngularDerivativesFilter aFilter, - final double tStep, final Propagator propagator) + final Propagator propagator) throws RuggedException { this(updater, maxCachedTiles, algorithmID, ellipsoid, createInterpolator(inertialFrame, ellipsoid.getBodyFrame(), - minDate, maxDate, overshootTolerance, - interpolationStep, interpolationNumber, - pvFilter, aFilter, tStep, propagator)); + minDate, maxDate, tStep, overshootTolerance, + interpolationStep, interpolationNumber, pvFilter, aFilter, propagator)); } /** Build a configured instance, reusing the interpolator dumped from a previous instance. @@ -363,6 +367,7 @@ public class Rugged { * @param bodyFrame observed body frame * @param minDate start of search time span * @param maxDate end of search time span + * @param tStep step to use for inertial frame to body frame transforms cache computations * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting * @param positionsVelocities satellite position and velocity * @param pvInterpolationNumber number of points to use for position/velocity interpolation @@ -370,26 +375,25 @@ public class Rugged { * @param quaternions satellite quaternions * @param aInterpolationNumber number of points to use for attitude interpolation * @param aFilter filter for derivatives from the sample to use in attitude interpolation - * @param tStep step to use for inertial frame to body frame transforms cache computations * @return transforms interpolator * @exception RuggedException if data needed for some frame cannot be loaded or if position * or attitude samples do not fully cover the [{@code minDate}, {@code maxDate}] search time span */ private static SpacecraftToObservedBody createInterpolator(final Frame inertialFrame, final Frame bodyFrame, final AbsoluteDate minDate, final AbsoluteDate maxDate, - final double overshootTolerance, + final double tStep, final double overshootTolerance, final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationNumber, final CartesianDerivativesFilter pvFilter, final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationNumber, - final AngularDerivativesFilter aFilter, final double tStep) + final AngularDerivativesFilter aFilter) throws RuggedException { return new SpacecraftToObservedBody(inertialFrame, bodyFrame, - minDate, maxDate, overshootTolerance, - positionsVelocities, pvInterpolationNumber, pvFilter, - quaternions, aInterpolationNumber, aFilter, - tStep); + minDate, maxDate, tStep, + overshootTolerance, positionsVelocities, pvInterpolationNumber, + pvFilter, quaternions, aInterpolationNumber, + aFilter); } /** Create a transform interpolator from a propagator. @@ -397,23 +401,23 @@ public class Rugged { * @param bodyFrame observed body frame * @param minDate start of search time span * @param maxDate end of search time span + * @param tStep step to use for inertial frame to body frame transforms cache computations * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting * @param interpolationStep step to use for inertial/Earth/spacraft transforms interpolations * @param interpolationNumber number of points of to use for inertial/Earth/spacraft transforms interpolations * @param pvFilter filter for derivatives from the sample to use in position/velocity interpolation * @param aFilter filter for derivatives from the sample to use in attitude interpolation - * @param tStep step to use for inertial frame to body frame transforms cache computations * @param propagator global propagator * @return transforms interpolator * @exception RuggedException if data needed for some frame cannot be loaded */ private static SpacecraftToObservedBody createInterpolator(final Frame inertialFrame, final Frame bodyFrame, final AbsoluteDate minDate, final AbsoluteDate maxDate, - final double overshootTolerance, + final double tStep, final double overshootTolerance, final double interpolationStep, final int interpolationNumber, final CartesianDerivativesFilter pvFilter, final AngularDerivativesFilter aFilter, - final double tStep, final Propagator propagator) + final Propagator propagator) throws RuggedException { try { @@ -449,10 +453,10 @@ public class Rugged { // orbit/attitude to body converter return createInterpolator(inertialFrame, bodyFrame, - minDate, maxDate, overshootTolerance, - positionsVelocities, interpolationNumber, pvFilter, - quaternions, interpolationNumber, aFilter, - tStep); + minDate, maxDate, tStep, + overshootTolerance, positionsVelocities, interpolationNumber, + pvFilter, quaternions, interpolationNumber, + aFilter); } catch (PropagationException pe) { throw new RuggedException(pe, pe.getSpecifier(), pe.getParts()); diff --git a/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java b/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java index 895623cf..c0c2db58 100644 --- a/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java +++ b/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java @@ -54,12 +54,12 @@ public class SpacecraftToObservedBody implements Serializable { /** End of search time span. */ private final AbsoluteDate maxDate; - /** Tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting. */ - private final double overshootTolerance; - /** Step to use for inertial frame to body frame transforms cache computations. */ private final double tStep; + /** Tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting. */ + private final double overshootTolerance; + /** Transforms sample from observed body frame to inertial frame. */ private final List<Transform> bodyToInertial; @@ -74,6 +74,7 @@ public class SpacecraftToObservedBody implements Serializable { * @param bodyFrame observed body frame * @param minDate start of search time span * @param maxDate end of search time span + * @param tStep step to use for inertial frame to body frame transforms cache computations * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting * slightly the position, velocity and quaternions ephemerides * @param positionsVelocities satellite position and velocity @@ -82,18 +83,17 @@ public class SpacecraftToObservedBody implements Serializable { * @param quaternions satellite quaternions * @param aInterpolationNumber number of points to use for attitude interpolation * @param aFilter filter for derivatives from the sample to use in attitude interpolation - * @param tStep step to use for inertial frame to body frame transforms cache computations * @exception RuggedException if [{@code minDate}, {@code maxDate}] search time span overshoots * position or attitude samples by more than {@code overshootTolerance} * , */ public SpacecraftToObservedBody(final Frame inertialFrame, final Frame bodyFrame, - final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance, + final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep, + final double overshootTolerance, final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationNumber, final CartesianDerivativesFilter pvFilter, final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationNumber, - final AngularDerivativesFilter aFilter, - final double tStep) + final AngularDerivativesFilter aFilter) throws RuggedException { try { diff --git a/core/src/test/java/org/orekit/rugged/api/RuggedTest.java b/core/src/test/java/org/orekit/rugged/api/RuggedTest.java index b820d9e9..5a61f439 100644 --- a/core/src/test/java/org/orekit/rugged/api/RuggedTest.java +++ b/core/src/test/java/org/orekit/rugged/api/RuggedTest.java @@ -151,8 +151,8 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.GRS80, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - pv.get(0).getDate(), pv.get(pv.size() - 1).getDate(), 5.0, - pv, 8, CartesianDerivativesFilter.USE_PV, q, 8, AngularDerivativesFilter.USE_R, 0.001); + pv.get(0).getDate(), pv.get(pv.size() - 1).getDate(), 0.001, + 5.0, pv, 8, CartesianDerivativesFilter.USE_PV, q, 8, AngularDerivativesFilter.USE_R); Assert.assertTrue(rugged.isLightTimeCorrected()); rugged.setLightTimeCorrection(false); @@ -181,8 +181,8 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.IERS96, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - orbit.getDate().shiftedBy(-10.0), orbit.getDate().shiftedBy(+10.0), 5.0, - 1.0, 8, CartesianDerivativesFilter.USE_PV, AngularDerivativesFilter.USE_R, 0.001, propagator); + orbit.getDate().shiftedBy(-10.0), orbit.getDate().shiftedBy(+10.0), 0.001, + 5.0, 1.0, 8, CartesianDerivativesFilter.USE_PV, AngularDerivativesFilter.USE_R, propagator); Assert.assertTrue(rugged.isLightTimeCorrected()); rugged.setLightTimeCorrection(false); @@ -231,13 +231,13 @@ public class RuggedTest { Assert.assertNotNull(new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - t0.shiftedBy(4), t0.shiftedBy(6), 5.0, - pv, 2,CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001)); + t0.shiftedBy(4), t0.shiftedBy(6), 0.001, + 5.0, pv,2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R)); try { new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - t0.shiftedBy(-1), t0.shiftedBy(6), 0.0001, - pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001); + t0.shiftedBy(-1), t0.shiftedBy(6), 0.001, + 0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R); } catch (RuggedException re) { Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(t0.shiftedBy(-1), re.getParts()[0]); @@ -246,8 +246,8 @@ public class RuggedTest { try { new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - t0.shiftedBy(2), t0.shiftedBy(6), 0.0001, - pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001); + t0.shiftedBy(2), t0.shiftedBy(6), 0.001, + 0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R); } catch (RuggedException re) { Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(t0.shiftedBy(2), re.getParts()[0]); @@ -256,8 +256,8 @@ public class RuggedTest { try { new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - t0.shiftedBy(4), t0.shiftedBy(9), 0.0001, - pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001); + t0.shiftedBy(4), t0.shiftedBy(9), 0.001, + 0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R); } catch (RuggedException re) { Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(t0.shiftedBy(9), re.getParts()[0]); @@ -266,8 +266,8 @@ public class RuggedTest { try { new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - t0.shiftedBy(4), t0.shiftedBy(12), 0.0001, - pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001); + t0.shiftedBy(4), t0.shiftedBy(12), 0.001, + 0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R); } catch (RuggedException re) { Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(t0.shiftedBy(12), re.getParts()[0]); @@ -321,10 +321,10 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - lineDatation.getDate(firstLine), lineDatation.getDate(lastLine), 5.0, - 1.0 / lineDatation.getRate(0.0), 8, - CartesianDerivativesFilter.USE_PV, AngularDerivativesFilter.USE_R, - 0.001, ephemeris); + lineDatation.getDate(firstLine), lineDatation.getDate(lastLine), 0.001, + 5.0, 1.0 / lineDatation.getRate(0.0), + 8, CartesianDerivativesFilter.USE_PV, + AngularDerivativesFilter.USE_R, ephemeris); rugged.setLightTimeCorrection(true); rugged.setAberrationOfLightCorrection(true); @@ -398,11 +398,11 @@ public class RuggedTest { Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.IERS2003, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.addLineSensor(lineSensor); Assert.assertEquals(1, rugged.getLineSensors().size()); @@ -465,11 +465,11 @@ public class RuggedTest { Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.addLineSensor(lineSensor); @@ -524,21 +524,21 @@ public class RuggedTest { Rugged ruggedFull = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); ruggedFull.addLineSensor(lineSensor); GeodeticPoint[] gpWithFlatBodyCorrection = ruggedFull.directLocation("line", 100); Rugged ruggedFlat = new Rugged(updater, 8, AlgorithmId.DUVENHAGE_FLAT_BODY, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); ruggedFlat.addLineSensor(lineSensor); GeodeticPoint[] gpWithoutFlatBodyCorrection = ruggedFlat.directLocation("line", 100); @@ -588,11 +588,11 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.addLineSensor(lineSensor); GeodeticPoint[] gpLine = rugged.directLocation("line", 100); @@ -641,11 +641,11 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.setAberrationOfLightCorrection(false); rugged.setLightTimeCorrection(false); rugged.addLineSensor(lineSensor); @@ -696,21 +696,21 @@ public class RuggedTest { Rugged ruggedDuvenhage = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); ruggedDuvenhage.addLineSensor(lineSensor); GeodeticPoint[] gpDuvenhage = ruggedDuvenhage.directLocation("line", 100); Rugged ruggedBasicScan = new Rugged(updater, 8, AlgorithmId.BASIC_SLOW_EXHAUSTIVE_SCAN_FOR_TESTS_ONLY, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); ruggedBasicScan.addLineSensor(lineSensor); GeodeticPoint[] gpBasicScan = ruggedBasicScan.directLocation("line", 100); @@ -758,11 +758,11 @@ public class RuggedTest { Rugged ruggedOriginal = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); ruggedOriginal.addLineSensor(lineSensor); GeodeticPoint[] gpOriginal = ruggedOriginal.directLocation("line", 100); @@ -815,11 +815,11 @@ public class RuggedTest { Rugged ruggedOriginal = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); FileOutputStream fos = new FileOutputStream(tempFolder.newFile()); fos.close(); @@ -861,11 +861,11 @@ public class RuggedTest { Rugged ruggedOriginal = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ruggedOriginal.dumpInterpolator(bos); @@ -1018,11 +1018,11 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.setLightTimeCorrection(true); rugged.setAberrationOfLightCorrection(true); for (LineSensor lineSensor : sensors) { @@ -1138,9 +1138,9 @@ public class RuggedTest { TileUpdater updater = new RandomLandscapeUpdater(0.0, 9000.0, 0.5, 0xf0a401650191f9f6l, FastMath.toRadians(1.0), 257); Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 5.0, - satellitePVList, 8, CartesianDerivativesFilter.USE_PV, - satelliteQList, 8, AngularDerivativesFilter.USE_R, 0.001); + satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 0.001, + 5.0, satellitePVList, 8, + CartesianDerivativesFilter.USE_PV, satelliteQList, 8, AngularDerivativesFilter.USE_R); List<TimeDependentLOS> lineOfSight = new ArrayList<TimeDependentLOS>(); lineOfSight.add(new FixedLOS(new Vector3D(-0.011204, 0.181530, 1d).normalize())); @@ -1291,8 +1291,8 @@ public class RuggedTest { TileUpdater updater = null; Rugged rugged = new Rugged(updater, 8, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 10.0, satellitePVList, 6, - CartesianDerivativesFilter.USE_P, satelliteQList, 8, AngularDerivativesFilter.USE_R, 0.1); + satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 0.1, 10.0, satellitePVList, + 6, CartesianDerivativesFilter.USE_P, satelliteQList, 8, AngularDerivativesFilter.USE_R); List<TimeDependentLOS> lineOfSight = new ArrayList<TimeDependentLOS>(); lineOfSight.add(new FixedLOS(new Vector3D(0.0046536264d, -0.1851800945d, 1d))); @@ -1355,11 +1355,11 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.addLineSensor(lineSensor); int lineNumber = 97; @@ -1428,11 +1428,11 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.setLightTimeCorrection(lightTimeCorrection); rugged.setAberrationOfLightCorrection(aberrationOfLightCorrection); rugged.addLineSensor(lineSensor); @@ -1514,11 +1514,11 @@ public class RuggedTest { Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, - CartesianDerivativesFilter.USE_PV, - orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2, - AngularDerivativesFilter.USE_R, 0.001); + minDate, maxDate, 0.001, + 5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 8, + CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), + 2, AngularDerivativesFilter.USE_R); rugged.setLightTimeCorrection(lightTimeCorrection); rugged.setAberrationOfLightCorrection(aberrationOfLightCorrection); rugged.addLineSensor(lineSensor); diff --git a/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java b/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java index 26560fe4..fb9d5c2b 100644 --- a/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java +++ b/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java @@ -136,12 +136,12 @@ public class SensorMeanPlaneCrossingTest { AbsoluteDate minDate = sensor.getDate(0); AbsoluteDate maxDate = sensor.getDate(2000); return new SpacecraftToObservedBody(orbit.getFrame(), earth.getBodyFrame(), - minDate, maxDate, 5.0, - orbitToPV(orbit, earth, minDate, maxDate, 0.25), - 2, CartesianDerivativesFilter.USE_P, - orbitToQ(orbit, earth, minDate, maxDate, 0.25), - 2, AngularDerivativesFilter.USE_R, - 0.01); + minDate, maxDate, 0.01, + 5.0, + orbitToPV(orbit, earth, minDate, maxDate, 0.25), 2, + CartesianDerivativesFilter.USE_P, + orbitToQ(orbit, earth, minDate, maxDate, 0.25), 2, + AngularDerivativesFilter.USE_R); } private List<TimeStampedPVCoordinates> orbitToPV(Orbit orbit, BodyShape earth, -- GitLab