Skip to content
Snippets Groups Projects
Commit bbe32424 authored by Luc Maisonobe's avatar Luc Maisonobe
Browse files

Allowed slight overshooting of ephemeris range in inverse localization.

parent 27ce749b
No related branches found
No related tags found
No related merge requests found
...@@ -108,6 +108,7 @@ public class Rugged { ...@@ -108,6 +108,7 @@ public class Rugged {
* @param bodyRotatingFrameID identifier of body rotating frame * @param bodyRotatingFrameID identifier of body rotating frame
* @param minDate start of search time span * @param minDate start of search time span
* @param maxDate end of search time span * @param maxDate end of search time span
* @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
* @param positionsVelocities satellite position and velocity * @param positionsVelocities satellite position and velocity
* @param pvInterpolationOrder order to use for position/velocity interpolation * @param pvInterpolationOrder order to use for position/velocity interpolation
* @param quaternions satellite quaternions * @param quaternions satellite quaternions
...@@ -118,13 +119,13 @@ public class Rugged { ...@@ -118,13 +119,13 @@ public class Rugged {
public Rugged(final TileUpdater updater, final int maxCachedTiles, public Rugged(final TileUpdater updater, final int maxCachedTiles,
final AlgorithmId algorithmID, final EllipsoidId ellipsoidID, final AlgorithmId algorithmID, final EllipsoidId ellipsoidID,
final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID, final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID,
final AbsoluteDate minDate, final AbsoluteDate maxDate, final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationOrder, final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationOrder,
final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationOrder) final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationOrder)
throws RuggedException { throws RuggedException {
this(updater, maxCachedTiles, algorithmID, this(updater, maxCachedTiles, algorithmID,
selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)), selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)),
selectInertialFrame(inertialFrameID), minDate, maxDate, selectInertialFrame(inertialFrameID), minDate, maxDate, overshootTolerance,
positionsVelocities, pvInterpolationOrder, quaternions, aInterpolationOrder); positionsVelocities, pvInterpolationOrder, quaternions, aInterpolationOrder);
} }
...@@ -144,6 +145,7 @@ public class Rugged { ...@@ -144,6 +145,7 @@ public class Rugged {
* @param inertialFrame inertial frame * @param inertialFrame inertial frame
* @param minDate start of search time span * @param minDate start of search time span
* @param maxDate end of search time span * @param maxDate end of search time span
* @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
* @param positionsVelocities satellite position and velocity * @param positionsVelocities satellite position and velocity
* @param pvInterpolationOrder order to use for position/velocity interpolation * @param pvInterpolationOrder order to use for position/velocity interpolation
* @param quaternions satellite quaternions * @param quaternions satellite quaternions
...@@ -153,7 +155,7 @@ public class Rugged { ...@@ -153,7 +155,7 @@ public class Rugged {
*/ */
public Rugged(final TileUpdater updater, final int maxCachedTiles, public Rugged(final TileUpdater updater, final int maxCachedTiles,
final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame, final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame,
final AbsoluteDate minDate, final AbsoluteDate maxDate, final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationOrder, final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationOrder,
final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationOrder) final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationOrder)
throws RuggedException { throws RuggedException {
...@@ -163,7 +165,7 @@ public class Rugged { ...@@ -163,7 +165,7 @@ public class Rugged {
// orbit/attitude to body converter // orbit/attitude to body converter
this.scToBody = new SpacecraftToObservedBody(inertialFrame, ellipsoid.getBodyFrame(), this.scToBody = new SpacecraftToObservedBody(inertialFrame, ellipsoid.getBodyFrame(),
minDate, maxDate, minDate, maxDate, overshootTolerance,
positionsVelocities, pvInterpolationOrder, positionsVelocities, pvInterpolationOrder,
quaternions, aInterpolationOrder, quaternions, aInterpolationOrder,
FRAMES_TRANSFORMS_INTERPOLATION_STEP); FRAMES_TRANSFORMS_INTERPOLATION_STEP);
...@@ -196,6 +198,7 @@ public class Rugged { ...@@ -196,6 +198,7 @@ public class Rugged {
* @param bodyRotatingFrameID identifier of body rotating frame * @param bodyRotatingFrameID identifier of body rotating frame
* @param minDate start of search time span * @param minDate start of search time span
* @param maxDate end of search time span * @param maxDate end of search time span
* @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 interpolationStep step to use for inertial/Earth/spacraft transforms interpolations
* @param interpolationOrder order to use for inertial/Earth/spacraft transforms interpolations * @param interpolationOrder order to use for inertial/Earth/spacraft transforms interpolations
* @param propagator global propagator * @param propagator global propagator
...@@ -204,12 +207,12 @@ public class Rugged { ...@@ -204,12 +207,12 @@ public class Rugged {
public Rugged(final TileUpdater updater, final int maxCachedTiles, public Rugged(final TileUpdater updater, final int maxCachedTiles,
final AlgorithmId algorithmID, final EllipsoidId ellipsoidID, final AlgorithmId algorithmID, final EllipsoidId ellipsoidID,
final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID, final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID,
final AbsoluteDate minDate, final AbsoluteDate maxDate, final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
final double interpolationStep, final int interpolationOrder, final Propagator propagator) final double interpolationStep, final int interpolationOrder, final Propagator propagator)
throws RuggedException { throws RuggedException {
this(updater, maxCachedTiles, algorithmID, this(updater, maxCachedTiles, algorithmID,
selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)), selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)),
selectInertialFrame(inertialFrameID), minDate, maxDate, selectInertialFrame(inertialFrameID), minDate, maxDate, overshootTolerance,
interpolationStep, interpolationOrder, propagator); interpolationStep, interpolationOrder, propagator);
} }
...@@ -229,6 +232,7 @@ public class Rugged { ...@@ -229,6 +232,7 @@ public class Rugged {
* @param inertialFrame inertial frame * @param inertialFrame inertial frame
* @param minDate start of search time span * @param minDate start of search time span
* @param maxDate end of search time span * @param maxDate end of search time span
* @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 interpolationStep step to use for inertial/Earth/spacraft transforms interpolations
* @param interpolationOrder order to use for inertial/Earth/spacraft transforms interpolations * @param interpolationOrder order to use for inertial/Earth/spacraft transforms interpolations
* @param propagator global propagator * @param propagator global propagator
...@@ -236,7 +240,7 @@ public class Rugged { ...@@ -236,7 +240,7 @@ public class Rugged {
*/ */
public Rugged(final TileUpdater updater, final int maxCachedTiles, public Rugged(final TileUpdater updater, final int maxCachedTiles,
final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame, final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame,
final AbsoluteDate minDate, final AbsoluteDate maxDate, final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
final double interpolationStep, final int interpolationOrder, final Propagator propagator) final double interpolationStep, final int interpolationOrder, final Propagator propagator)
throws RuggedException { throws RuggedException {
try { try {
...@@ -276,7 +280,7 @@ public class Rugged { ...@@ -276,7 +280,7 @@ public class Rugged {
// orbit/attitude to body converter // orbit/attitude to body converter
this.scToBody = new SpacecraftToObservedBody(inertialFrame, ellipsoid.getBodyFrame(), this.scToBody = new SpacecraftToObservedBody(inertialFrame, ellipsoid.getBodyFrame(),
minDate, maxDate, minDate, maxDate, overshootTolerance,
positionsVelocities, interpolationOrder, positionsVelocities, interpolationOrder,
quaternions, interpolationOrder, quaternions, interpolationOrder,
FRAMES_TRANSFORMS_INTERPOLATION_STEP); FRAMES_TRANSFORMS_INTERPOLATION_STEP);
......
...@@ -61,16 +61,19 @@ public class SpacecraftToObservedBody { ...@@ -61,16 +61,19 @@ public class SpacecraftToObservedBody {
* @param bodyFrame observed body frame * @param bodyFrame observed body frame
* @param minDate start of search time span * @param minDate start of search time span
* @param maxDate end of search time span * @param maxDate end of search time span
* @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 * @param positionsVelocities satellite position and velocity
* @param pvInterpolationOrder order to use for position/velocity interpolation * @param pvInterpolationOrder order to use for position/velocity interpolation
* @param quaternions satellite quaternions * @param quaternions satellite quaternions
* @param aInterpolationOrder order to use for attitude interpolation * @param aInterpolationOrder order to use for attitude interpolation
* @param tStep step to use for inertial frame to body frame transforms cache computations * @param tStep step to use for inertial frame to body frame transforms cache computations
* @exception RuggedException if position or attitude samples do not fully cover the * @exception RuggedException if [{@code minDate}, {@code maxDate}] search time span overshoots
* [{@code minDate}, {@code maxDate}] search time span * position or attitude samples by more than {@code overshootTolerance}
* ,
*/ */
public SpacecraftToObservedBody(final Frame inertialFrame, final Frame bodyFrame, public SpacecraftToObservedBody(final Frame inertialFrame, final Frame bodyFrame,
final AbsoluteDate minDate, final AbsoluteDate maxDate, final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationOrder, final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationOrder,
final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationOrder, final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationOrder,
final double tStep) final double tStep)
...@@ -83,19 +86,19 @@ public class SpacecraftToObservedBody { ...@@ -83,19 +86,19 @@ public class SpacecraftToObservedBody {
// safety checks // safety checks
final AbsoluteDate minPVDate = positionsVelocities.get(0).getDate(); final AbsoluteDate minPVDate = positionsVelocities.get(0).getDate();
final AbsoluteDate maxPVDate = positionsVelocities.get(positionsVelocities.size() - 1).getDate(); final AbsoluteDate maxPVDate = positionsVelocities.get(positionsVelocities.size() - 1).getDate();
if (minDate.compareTo(minPVDate) < 0) { if (minPVDate.durationFrom(minDate) > overshootTolerance) {
throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, minDate, minPVDate, maxPVDate); throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, minDate, minPVDate, maxPVDate);
} }
if (maxDate.compareTo(maxPVDate) > 0) { if (maxDate.durationFrom(maxDate) > overshootTolerance) {
throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, maxDate, minPVDate, maxPVDate); throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, maxDate, minPVDate, maxPVDate);
} }
final AbsoluteDate minQDate = quaternions.get(0).getDate(); final AbsoluteDate minQDate = quaternions.get(0).getDate();
final AbsoluteDate maxQDate = quaternions.get(quaternions.size() - 1).getDate(); final AbsoluteDate maxQDate = quaternions.get(quaternions.size() - 1).getDate();
if (minDate.compareTo(minQDate) < 0) { if (minQDate.durationFrom(minDate) > overshootTolerance) {
throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, minDate, minQDate, maxQDate); throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, minDate, minQDate, maxQDate);
} }
if (maxDate.compareTo(maxQDate) > 0) { if (maxDate.durationFrom(maxQDate) > overshootTolerance) {
throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, maxDate, minQDate, maxQDate); throw new RuggedException(RuggedMessages.OUT_OF_TIME_RANGE, maxDate, minQDate, maxQDate);
} }
...@@ -114,13 +117,35 @@ public class SpacecraftToObservedBody { ...@@ -114,13 +117,35 @@ public class SpacecraftToObservedBody {
this.scToInertial = new ArrayList<Transform>(n); this.scToInertial = new ArrayList<Transform>(n);
for (AbsoluteDate date = minDate; bodyToInertial.size() < n; date = date.shiftedBy(tStep)) { for (AbsoluteDate date = minDate; bodyToInertial.size() < n; date = date.shiftedBy(tStep)) {
// interpolate position-velocity // interpolate position-velocity, allowing slight extrapolation near the boundaries
final TimeStampedPVCoordinates pv = final AbsoluteDate pvInterpolationDate;
TimeStampedPVCoordinates.interpolate(date, CartesianDerivativesFilter.USE_PV, pvCache.getNeighbors(date)); if (date.compareTo(pvCache.getEarliest().getDate()) < 0) {
pvInterpolationDate = pvCache.getEarliest().getDate();
// interpolate attitude } else if (date.compareTo(pvCache.getLatest().getDate()) > 0) {
final TimeStampedAngularCoordinates quaternion = pvInterpolationDate = pvCache.getLatest().getDate();
TimeStampedAngularCoordinates.interpolate(date, AngularDerivativesFilter.USE_R, aCache.getNeighbors(date)); } else {
pvInterpolationDate = date;
}
final TimeStampedPVCoordinates interpolatedPV =
TimeStampedPVCoordinates.interpolate(pvInterpolationDate,
CartesianDerivativesFilter.USE_PV,
pvCache.getNeighbors(pvInterpolationDate));
final TimeStampedPVCoordinates pv = interpolatedPV.shiftedBy(date.durationFrom(pvInterpolationDate));
// interpolate attitude, allowing slight extrapolation near the boundaries
final AbsoluteDate aInterpolationDate;
if (date.compareTo(aCache.getEarliest().getDate()) < 0) {
aInterpolationDate = aCache.getEarliest().getDate();
} else if (date.compareTo(aCache.getLatest().getDate()) > 0) {
aInterpolationDate = aCache.getLatest().getDate();
} else {
aInterpolationDate = date;
}
final TimeStampedAngularCoordinates interpolatedQuaternion =
TimeStampedAngularCoordinates.interpolate(aInterpolationDate,
AngularDerivativesFilter.USE_R,
aCache.getNeighbors(aInterpolationDate));
final TimeStampedAngularCoordinates quaternion = interpolatedQuaternion.shiftedBy(date.durationFrom(aInterpolationDate));
// store transform from spacecraft frame to inertial frame // store transform from spacecraft frame to inertial frame
scToInertial.add(new Transform(date, scToInertial.add(new Transform(date,
......
...@@ -143,7 +143,7 @@ public class RuggedTest { ...@@ -143,7 +143,7 @@ public class RuggedTest {
Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
pv.get(0).getDate(), pv.get(pv.size() - 1).getDate(), pv.get(0).getDate(), pv.get(pv.size() - 1).getDate(), 5.0,
pv, 8, q, 8); pv, 8, q, 8);
Assert.assertTrue(rugged.isLightTimeCorrected()); Assert.assertTrue(rugged.isLightTimeCorrected());
...@@ -173,7 +173,7 @@ public class RuggedTest { ...@@ -173,7 +173,7 @@ public class RuggedTest {
Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
orbit.getDate().shiftedBy(-10.0), orbit.getDate().shiftedBy(+10.0), orbit.getDate().shiftedBy(-10.0), orbit.getDate().shiftedBy(+10.0), 5.0,
1.0, 8, propagator); 1.0, 8, propagator);
Assert.assertTrue(rugged.isLightTimeCorrected()); Assert.assertTrue(rugged.isLightTimeCorrected());
...@@ -220,11 +220,11 @@ public class RuggedTest { ...@@ -220,11 +220,11 @@ public class RuggedTest {
Assert.assertNotNull(new Rugged(updater, 8, AlgorithmId.DUVENHAGE, Assert.assertNotNull(new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
t0.shiftedBy(4), t0.shiftedBy(6), pv, 2, q, 2)); t0.shiftedBy(4), t0.shiftedBy(6), 5.0, pv, 2, q, 2));
try { try {
new Rugged(updater, 8, AlgorithmId.DUVENHAGE, new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
t0.shiftedBy(-1), t0.shiftedBy(6), pv, 2, q, 2); t0.shiftedBy(-1), t0.shiftedBy(6), 0.0001, pv, 2, q, 2);
} catch (RuggedException re) { } catch (RuggedException re) {
Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
Assert.assertEquals(t0.shiftedBy(-1), re.getParts()[0]); Assert.assertEquals(t0.shiftedBy(-1), re.getParts()[0]);
...@@ -233,7 +233,7 @@ public class RuggedTest { ...@@ -233,7 +233,7 @@ public class RuggedTest {
try { try {
new Rugged(updater, 8, AlgorithmId.DUVENHAGE, new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
t0.shiftedBy(2), t0.shiftedBy(6), pv, 2, q, 2); t0.shiftedBy(2), t0.shiftedBy(6), 0.0001, pv, 2, q, 2);
} catch (RuggedException re) { } catch (RuggedException re) {
Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
Assert.assertEquals(t0.shiftedBy(2), re.getParts()[0]); Assert.assertEquals(t0.shiftedBy(2), re.getParts()[0]);
...@@ -242,7 +242,7 @@ public class RuggedTest { ...@@ -242,7 +242,7 @@ public class RuggedTest {
try { try {
new Rugged(updater, 8, AlgorithmId.DUVENHAGE, new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
t0.shiftedBy(4), t0.shiftedBy(9), pv, 2, q, 2); t0.shiftedBy(4), t0.shiftedBy(9), 0.0001, pv, 2, q, 2);
} catch (RuggedException re) { } catch (RuggedException re) {
Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
Assert.assertEquals(t0.shiftedBy(9), re.getParts()[0]); Assert.assertEquals(t0.shiftedBy(9), re.getParts()[0]);
...@@ -251,7 +251,7 @@ public class RuggedTest { ...@@ -251,7 +251,7 @@ public class RuggedTest {
try { try {
new Rugged(updater, 8, AlgorithmId.DUVENHAGE, new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
t0.shiftedBy(4), t0.shiftedBy(12), pv, 2, q, 2); t0.shiftedBy(4), t0.shiftedBy(12), 0.0001, pv, 2, q, 2);
} catch (RuggedException re) { } catch (RuggedException re) {
Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier()); Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
Assert.assertEquals(t0.shiftedBy(12), re.getParts()[0]); Assert.assertEquals(t0.shiftedBy(12), re.getParts()[0]);
...@@ -305,7 +305,7 @@ public class RuggedTest { ...@@ -305,7 +305,7 @@ public class RuggedTest {
Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
lineDatation.getDate(firstLine), lineDatation.getDate(lastLine), lineDatation.getDate(firstLine), lineDatation.getDate(lastLine), 5.0,
1.0 / lineDatation.getRate(0.0), 8, ephemeris); 1.0 / lineDatation.getRate(0.0), 8, ephemeris);
rugged.setLightTimeCorrection(true); rugged.setLightTimeCorrection(true);
rugged.setAberrationOfLightCorrection(true); rugged.setAberrationOfLightCorrection(true);
...@@ -380,7 +380,7 @@ public class RuggedTest { ...@@ -380,7 +380,7 @@ public class RuggedTest {
Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
minDate, maxDate, minDate, maxDate, 5.0,
orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2); orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2);
...@@ -433,7 +433,7 @@ public class RuggedTest { ...@@ -433,7 +433,7 @@ public class RuggedTest {
Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
minDate, maxDate, minDate, maxDate, 5.0,
orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2); orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2);
...@@ -491,7 +491,7 @@ public class RuggedTest { ...@@ -491,7 +491,7 @@ public class RuggedTest {
Rugged ruggedFull = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, Rugged ruggedFull = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
minDate, maxDate, minDate, maxDate, 5.0,
orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2); orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2);
ruggedFull.addLineSensor(lineSensor); ruggedFull.addLineSensor(lineSensor);
...@@ -499,7 +499,7 @@ public class RuggedTest { ...@@ -499,7 +499,7 @@ public class RuggedTest {
Rugged ruggedFlat = new Rugged(updater, 8, AlgorithmId.DUVENHAGE_FLAT_BODY, Rugged ruggedFlat = new Rugged(updater, 8, AlgorithmId.DUVENHAGE_FLAT_BODY,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
minDate, maxDate, minDate, maxDate, 5.0,
orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2); orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2);
ruggedFlat.addLineSensor(lineSensor); ruggedFlat.addLineSensor(lineSensor);
...@@ -562,7 +562,7 @@ public class RuggedTest { ...@@ -562,7 +562,7 @@ public class RuggedTest {
Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
minDate, maxDate, minDate, maxDate, 5.0,
orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2); orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2);
rugged.setLightTimeCorrection(true); rugged.setLightTimeCorrection(true);
...@@ -671,7 +671,7 @@ public class RuggedTest { ...@@ -671,7 +671,7 @@ public class RuggedTest {
TileUpdater updater = new RandomLandscapeUpdater(0.0, 9000.0, 0.5, 0xf0a401650191f9f6l, FastMath.toRadians(1.0), 257); TileUpdater updater = new RandomLandscapeUpdater(0.0, 9000.0, 0.5, 0xf0a401650191f9f6l, FastMath.toRadians(1.0), 257);
Rugged rugged = new Rugged(updater, 8, Rugged rugged = new Rugged(updater, 8,
AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 5.0,
satellitePVList, 8, satellitePVList, 8,
satelliteQList, 8); satelliteQList, 8);
...@@ -824,7 +824,7 @@ public class RuggedTest { ...@@ -824,7 +824,7 @@ public class RuggedTest {
Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
minDate, maxDate, minDate, maxDate, 5.0,
orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2); orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2);
rugged.setLightTimeCorrection(lightTimeCorrection); rugged.setLightTimeCorrection(lightTimeCorrection);
......
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