Example usage for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX

List of usage examples for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX

Introduction

In this page you can find the example usage for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX.

Prototype

public double getX() 

Source Link

Document

Get the abscissa of the vector.

Usage

From source file:org.orekit.forces.maneuvers.ImpulseManeuverTest.java

@Test
public void testInertialManeuver() throws OrekitException {
    final double mu = CelestialBodyFactory.getEarth().getGM();

    final double initialX = 7100e3;
    final double initialY = 0.0;
    final double initialZ = 1300e3;
    final double initialVx = 0;
    final double initialVy = 8000;
    final double initialVz = 1000;

    final Vector3D position = new Vector3D(initialX, initialY, initialZ);
    final Vector3D velocity = new Vector3D(initialVx, initialVy, initialVz);
    final AbsoluteDate epoch = new AbsoluteDate(2010, 1, 1, 0, 0, 0, TimeScalesFactory.getUTC());
    final TimeStampedPVCoordinates state = new TimeStampedPVCoordinates(epoch, position, velocity,
            Vector3D.ZERO);/*w  ww. j  a v  a 2 s.c o  m*/
    final Orbit initialOrbit = new CartesianOrbit(state, FramesFactory.getEME2000(), mu);

    final double totalPropagationTime = 0.00001;
    final double driftTimeInSec = totalPropagationTime / 2.0;
    final double deltaX = 0.01;
    final double deltaY = 0.02;
    final double deltaZ = 0.03;
    final double isp = 300;

    final Vector3D deltaV = new Vector3D(deltaX, deltaY, deltaZ);

    KeplerianPropagator propagator = new KeplerianPropagator(initialOrbit,
            new LofOffset(initialOrbit.getFrame(), LOFType.VNC));
    DateDetector dateDetector = new DateDetector(epoch.shiftedBy(driftTimeInSec));
    InertialProvider attitudeOverride = new InertialProvider(new Rotation(RotationOrder.XYX, 0, 0, 0));
    ImpulseManeuver<DateDetector> burnAtEpoch = new ImpulseManeuver<DateDetector>(dateDetector,
            attitudeOverride, deltaV, isp).withThreshold(driftTimeInSec / 4);
    propagator.addEventDetector(burnAtEpoch);

    SpacecraftState finalState = propagator.propagate(epoch.shiftedBy(totalPropagationTime));

    final double finalVxExpected = initialVx + deltaX;
    final double finalVyExpected = initialVy + deltaY;
    final double finalVzExpected = initialVz + deltaZ;
    final double maneuverTolerance = 1e-4;

    final Vector3D finalVelocity = finalState.getPVCoordinates().getVelocity();
    Assert.assertEquals(finalVxExpected, finalVelocity.getX(), maneuverTolerance);
    Assert.assertEquals(finalVyExpected, finalVelocity.getY(), maneuverTolerance);
    Assert.assertEquals(finalVzExpected, finalVelocity.getZ(), maneuverTolerance);

}

From source file:org.orekit.frames.HelmertTransformationTest.java

private Vector3D computeOffsetLinearly(final double t1, final double t2, final double t3, final double r1,
        final double r2, final double r3, final double t1Dot, final double t2Dot, final double t3Dot,
        final double r1Dot, final double r2Dot, final double r3Dot, final Vector3D p, final double dt) {
    double t1U = (t1 + dt * t1Dot) * 1.0e-3;
    double t2U = (t2 + dt * t2Dot) * 1.0e-3;
    double t3U = (t3 + dt * t3Dot) * 1.0e-3;
    double r1U = FastMath.toRadians((r1 + dt * r1Dot) / 3.6e6);
    double r2U = FastMath.toRadians((r2 + dt * r2Dot) / 3.6e6);
    double r3U = FastMath.toRadians((r3 + dt * r3Dot) / 3.6e6);
    return new Vector3D(t1U - r3U * p.getY() + r2U * p.getZ(), t2U + r3U * p.getX() - r1U * p.getZ(),
            t3U - r2U * p.getX() + r1U * p.getY());
}

From source file:org.orekit.frames.ITRFProviderWithoutTidalEffectsTest.java

@Test
public void testMSLIBTransformJ2000_TerVrai() throws OrekitException {

    AbsoluteDate date = new AbsoluteDate(new DateComponents(2003, 10, 14), new TimeComponents(02, 00, 00),
            TimeScalesFactory.getUTC());
    Transform trans = FramesFactory.getEME2000()
            .getTransformTo(FramesFactory.getTIRF(IERSConventions.IERS_2010), date);

    // Positions//ww  w.  j a  v  a  2s .  c o m
    Vector3D posTIRF = trans.transformPosition(new Vector3D(6500000.0, -1234567.0, 4000000.0));
    Assert.assertEquals(0, 3011109.361 - posTIRF.getX(), 0.38);
    Assert.assertEquals(0, -5889822.669 - posTIRF.getY(), 0.38);
    Assert.assertEquals(0, 4002170.039 - posTIRF.getZ(), 0.27);

}

From source file:org.orekit.frames.TopocentricFrame.java

/** Get the azimuth of a point with regards to the topocentric frame center point.
 * <p>The azimuth is the angle between the North direction at local point and
 * the projection in local horizontal plane of the direction from local point
 * to given point. Azimuth angles are counted clockwise, i.e positive towards the East.</p>
 * @param extPoint point for which elevation shall be computed
 * @param frame frame in which the point is defined
 * @param date computation date//from ww  w  .  ja  v a2  s  .c  o m
 * @return azimuth of the point
 * @exception OrekitException if frames transformations cannot be computed
 */
public double getAzimuth(final Vector3D extPoint, final Frame frame, final AbsoluteDate date)
        throws OrekitException {

    // Transform given point from given frame to topocentric frame
    final Transform t = getTransformTo(frame, date).getInverse();
    final Vector3D extPointTopo = t.transformPosition(extPoint);

    // Compute azimuth
    double azimuth = FastMath.atan2(extPointTopo.getX(), extPointTopo.getY());
    if (azimuth < 0.) {
        azimuth += MathUtils.TWO_PI;
    }
    return azimuth;

}

From source file:org.orekit.frames.Transform.java

/** Compute the Jacobian of the {@link #transformPVCoordinates(PVCoordinates)}
 * method of the transform./* w  ww .ja v  a 2 s  . c  om*/
 * <p>
 * Element {@code jacobian[i][j]} is the derivative of Cartesian coordinate i
 * of the transformed {@link PVCoordinates} with respect to Cartesian coordinate j
 * of the input {@link PVCoordinates} in method {@link #transformPVCoordinates(PVCoordinates)}.
 * </p>
 * <p>
 * This definition implies that if we define position-velocity coordinates
 * <pre>
 * PV? = transform.transformPVCoordinates(PV), then
 * </pre>
 * their differentials dPV? and dPV will obey the following relation
 * where J is the matrix computed by this method:<br/>
 * <pre>
 * dPV? = J &times; dPV
 * </pre>
 * </p>
 * @param selector selector specifying the size of the upper left corner that must be filled
 * (either 3x3 for positions only, 6x6 for positions and velocities, 9x9 for positions,
 * velocities and accelerations)
 * @param jacobian placeholder matrix whose upper-left corner is to be filled with
 * the Jacobian, the rest of the matrix remaining untouched
 */
public void getJacobian(final CartesianDerivativesFilter selector, final double[][] jacobian) {

    // elementary matrix for rotation
    final double[][] mData = angular.getRotation().getMatrix();

    // dP1/dP0
    System.arraycopy(mData[0], 0, jacobian[0], 0, 3);
    System.arraycopy(mData[1], 0, jacobian[1], 0, 3);
    System.arraycopy(mData[2], 0, jacobian[2], 0, 3);

    if (selector.getMaxOrder() >= 1) {

        // dP1/dV0
        Arrays.fill(jacobian[0], 3, 6, 0.0);
        Arrays.fill(jacobian[1], 3, 6, 0.0);
        Arrays.fill(jacobian[2], 3, 6, 0.0);

        // dV1/dP0
        final Vector3D o = angular.getRotationRate();
        final double ox = o.getX();
        final double oy = o.getY();
        final double oz = o.getZ();
        for (int i = 0; i < 3; ++i) {
            jacobian[3][i] = -(oy * mData[2][i] - oz * mData[1][i]);
            jacobian[4][i] = -(oz * mData[0][i] - ox * mData[2][i]);
            jacobian[5][i] = -(ox * mData[1][i] - oy * mData[0][i]);
        }

        // dV1/dV0
        System.arraycopy(mData[0], 0, jacobian[3], 3, 3);
        System.arraycopy(mData[1], 0, jacobian[4], 3, 3);
        System.arraycopy(mData[2], 0, jacobian[5], 3, 3);

        if (selector.getMaxOrder() >= 2) {

            // dP1/dA0
            Arrays.fill(jacobian[0], 6, 9, 0.0);
            Arrays.fill(jacobian[1], 6, 9, 0.0);
            Arrays.fill(jacobian[2], 6, 9, 0.0);

            // dV1/dA0
            Arrays.fill(jacobian[3], 6, 9, 0.0);
            Arrays.fill(jacobian[4], 6, 9, 0.0);
            Arrays.fill(jacobian[5], 6, 9, 0.0);

            // dA1/dP0
            final Vector3D oDot = angular.getRotationAcceleration();
            final double oDotx = oDot.getX();
            final double oDoty = oDot.getY();
            final double oDotz = oDot.getZ();
            for (int i = 0; i < 3; ++i) {
                jacobian[6][i] = -(oDoty * mData[2][i] - oDotz * mData[1][i])
                        - (oy * jacobian[5][i] - oz * jacobian[4][i]);
                jacobian[7][i] = -(oDotz * mData[0][i] - oDotx * mData[2][i])
                        - (oz * jacobian[3][i] - ox * jacobian[5][i]);
                jacobian[8][i] = -(oDotx * mData[1][i] - oDoty * mData[0][i])
                        - (ox * jacobian[4][i] - oy * jacobian[3][i]);
            }

            // dA1/dV0
            for (int i = 0; i < 3; ++i) {
                jacobian[6][i + 3] = -2 * (oy * mData[2][i] - oz * mData[1][i]);
                jacobian[7][i + 3] = -2 * (oz * mData[0][i] - ox * mData[2][i]);
                jacobian[8][i + 3] = -2 * (ox * mData[1][i] - oy * mData[0][i]);
            }

            // dA1/dA0
            System.arraycopy(mData[0], 0, jacobian[6], 6, 3);
            System.arraycopy(mData[1], 0, jacobian[7], 6, 3);
            System.arraycopy(mData[2], 0, jacobian[8], 6, 3);

        }

    }

}

From source file:org.orekit.frames.TransformTest.java

@Test
public void testLinear() {

    RandomGenerator random = new Well19937a(0x14f6411217b148d8l);
    for (int n = 0; n < 100; ++n) {
        Transform t = randomTransform(random);

        // build an equivalent linear transform by extracting raw translation/rotation
        RealMatrix linearA = MatrixUtils.createRealMatrix(3, 4);
        linearA.setSubMatrix(t.getRotation().getMatrix(), 0, 0);
        Vector3D rt = t.getRotation().applyTo(t.getTranslation());
        linearA.setEntry(0, 3, rt.getX());
        linearA.setEntry(1, 3, rt.getY());
        linearA.setEntry(2, 3, rt.getZ());

        // build an equivalent linear transform by observing transformed points
        RealMatrix linearB = MatrixUtils.createRealMatrix(3, 4);
        Vector3D p0 = t.transformPosition(Vector3D.ZERO);
        Vector3D pI = t.transformPosition(Vector3D.PLUS_I).subtract(p0);
        Vector3D pJ = t.transformPosition(Vector3D.PLUS_J).subtract(p0);
        Vector3D pK = t.transformPosition(Vector3D.PLUS_K).subtract(p0);
        linearB.setColumn(0, new double[] { pI.getX(), pI.getY(), pI.getZ() });
        linearB.setColumn(1, new double[] { pJ.getX(), pJ.getY(), pJ.getZ() });
        linearB.setColumn(2, new double[] { pK.getX(), pK.getY(), pK.getZ() });
        linearB.setColumn(3, new double[] { p0.getX(), p0.getY(), p0.getZ() });

        // both linear transforms should be equal
        Assert.assertEquals(0.0, linearB.subtract(linearA).getNorm(), 1.0e-15 * linearA.getNorm());

        for (int i = 0; i < 100; ++i) {
            Vector3D p = randomVector(1.0e3, random);
            Vector3D q = t.transformPosition(p);

            double[] qA = linearA.operate(new double[] { p.getX(), p.getY(), p.getZ(), 1.0 });
            Assert.assertEquals(q.getX(), qA[0], 1.0e-13 * p.getNorm());
            Assert.assertEquals(q.getY(), qA[1], 1.0e-13 * p.getNorm());
            Assert.assertEquals(q.getZ(), qA[2], 1.0e-13 * p.getNorm());

            double[] qB = linearB.operate(new double[] { p.getX(), p.getY(), p.getZ(), 1.0 });
            Assert.assertEquals(q.getX(), qB[0], 1.0e-10 * p.getNorm());
            Assert.assertEquals(q.getY(), qB[1], 1.0e-10 * p.getNorm());
            Assert.assertEquals(q.getZ(), qB[2], 1.0e-10 * p.getNorm());

        }/*w w w .  j a  va2s  . c om*/

    }

}

From source file:org.orekit.frames.TransformTest.java

@Test
public void testShiftDerivatives() {

    RandomGenerator random = new Well19937a(0x5acda4f605aadce7l);
    for (int i = 0; i < 10; ++i) {
        Transform t = randomTransform(random);

        for (double dt = -10.0; dt < 10.0; dt += 0.125) {

            Transform t0 = t.shiftedBy(dt);
            double v = t0.getVelocity().getNorm();
            double a = t0.getAcceleration().getNorm();
            double omega = t0.getRotationRate().getNorm();
            double omegaDot = t0.getRotationAcceleration().getNorm();

            // numerical derivatives
            double h = 0.01 / omega;
            Transform tm4h = t.shiftedBy(dt - 4 * h);
            Transform tm3h = t.shiftedBy(dt - 3 * h);
            Transform tm2h = t.shiftedBy(dt - 2 * h);
            Transform tm1h = t.shiftedBy(dt - 1 * h);
            Transform tp1h = t.shiftedBy(dt + 1 * h);
            Transform tp2h = t.shiftedBy(dt + 2 * h);
            Transform tp3h = t.shiftedBy(dt + 3 * h);
            Transform tp4h = t.shiftedBy(dt + 4 * h);
            double numXDot = derivative(h, tm4h.getTranslation().getX(), tm3h.getTranslation().getX(),
                    tm2h.getTranslation().getX(), tm1h.getTranslation().getX(), tp1h.getTranslation().getX(),
                    tp2h.getTranslation().getX(), tp3h.getTranslation().getX(), tp4h.getTranslation().getX());
            double numYDot = derivative(h, tm4h.getTranslation().getY(), tm3h.getTranslation().getY(),
                    tm2h.getTranslation().getY(), tm1h.getTranslation().getY(), tp1h.getTranslation().getY(),
                    tp2h.getTranslation().getY(), tp3h.getTranslation().getY(), tp4h.getTranslation().getY());
            double numZDot = derivative(h, tm4h.getTranslation().getZ(), tm3h.getTranslation().getZ(),
                    tm2h.getTranslation().getZ(), tm1h.getTranslation().getZ(), tp1h.getTranslation().getZ(),
                    tp2h.getTranslation().getZ(), tp3h.getTranslation().getZ(), tp4h.getTranslation().getZ());
            double numXDot2 = derivative(h, tm4h.getVelocity().getX(), tm3h.getVelocity().getX(),
                    tm2h.getVelocity().getX(), tm1h.getVelocity().getX(), tp1h.getVelocity().getX(),
                    tp2h.getVelocity().getX(), tp3h.getVelocity().getX(), tp4h.getVelocity().getX());
            double numYDot2 = derivative(h, tm4h.getVelocity().getY(), tm3h.getVelocity().getY(),
                    tm2h.getVelocity().getY(), tm1h.getVelocity().getY(), tp1h.getVelocity().getY(),
                    tp2h.getVelocity().getY(), tp3h.getVelocity().getY(), tp4h.getVelocity().getY());
            double numZDot2 = derivative(h, tm4h.getVelocity().getZ(), tm3h.getVelocity().getZ(),
                    tm2h.getVelocity().getZ(), tm1h.getVelocity().getZ(), tp1h.getVelocity().getZ(),
                    tp2h.getVelocity().getZ(), tp3h.getVelocity().getZ(), tp4h.getVelocity().getZ());
            double numQ0Dot = derivative(h, tm4h.getRotation().getQ0(), tm3h.getRotation().getQ0(),
                    tm2h.getRotation().getQ0(), tm1h.getRotation().getQ0(), tp1h.getRotation().getQ0(),
                    tp2h.getRotation().getQ0(), tp3h.getRotation().getQ0(), tp4h.getRotation().getQ0());
            double numQ1Dot = derivative(h, tm4h.getRotation().getQ1(), tm3h.getRotation().getQ1(),
                    tm2h.getRotation().getQ1(), tm1h.getRotation().getQ1(), tp1h.getRotation().getQ1(),
                    tp2h.getRotation().getQ1(), tp3h.getRotation().getQ1(), tp4h.getRotation().getQ1());
            double numQ2Dot = derivative(h, tm4h.getRotation().getQ2(), tm3h.getRotation().getQ2(),
                    tm2h.getRotation().getQ2(), tm1h.getRotation().getQ2(), tp1h.getRotation().getQ2(),
                    tp2h.getRotation().getQ2(), tp3h.getRotation().getQ2(), tp4h.getRotation().getQ2());
            double numQ3Dot = derivative(h, tm4h.getRotation().getQ3(), tm3h.getRotation().getQ3(),
                    tm2h.getRotation().getQ3(), tm1h.getRotation().getQ3(), tp1h.getRotation().getQ3(),
                    tp2h.getRotation().getQ3(), tp3h.getRotation().getQ3(), tp4h.getRotation().getQ3());
            double numOxDot = derivative(h, tm4h.getRotationRate().getX(), tm3h.getRotationRate().getX(),
                    tm2h.getRotationRate().getX(), tm1h.getRotationRate().getX(), tp1h.getRotationRate().getX(),
                    tp2h.getRotationRate().getX(), tp3h.getRotationRate().getX(),
                    tp4h.getRotationRate().getX());
            double numOyDot = derivative(h, tm4h.getRotationRate().getY(), tm3h.getRotationRate().getY(),
                    tm2h.getRotationRate().getY(), tm1h.getRotationRate().getY(), tp1h.getRotationRate().getY(),
                    tp2h.getRotationRate().getY(), tp3h.getRotationRate().getY(),
                    tp4h.getRotationRate().getY());
            double numOzDot = derivative(h, tm4h.getRotationRate().getZ(), tm3h.getRotationRate().getZ(),
                    tm2h.getRotationRate().getZ(), tm1h.getRotationRate().getZ(), tp1h.getRotationRate().getZ(),
                    tp2h.getRotationRate().getZ(), tp3h.getRotationRate().getZ(),
                    tp4h.getRotationRate().getZ());

            // theoretical derivatives
            double theXDot = t0.getVelocity().getX();
            double theYDot = t0.getVelocity().getY();
            double theZDot = t0.getVelocity().getZ();
            double theXDot2 = t0.getAcceleration().getX();
            double theYDot2 = t0.getAcceleration().getY();
            double theZDot2 = t0.getAcceleration().getZ();
            Rotation r0 = t0.getRotation();
            Vector3D w = t0.getRotationRate();
            Vector3D q = new Vector3D(r0.getQ1(), r0.getQ2(), r0.getQ3());
            Vector3D qw = Vector3D.crossProduct(q, w);
            double theQ0Dot = -0.5 * Vector3D.dotProduct(q, w);
            double theQ1Dot = 0.5 * (r0.getQ0() * w.getX() + qw.getX());
            double theQ2Dot = 0.5 * (r0.getQ0() * w.getY() + qw.getY());
            double theQ3Dot = 0.5 * (r0.getQ0() * w.getZ() + qw.getZ());
            double theOxDot2 = t0.getRotationAcceleration().getX();
            double theOyDot2 = t0.getRotationAcceleration().getY();
            double theOzDot2 = t0.getRotationAcceleration().getZ();

            // check consistency
            Assert.assertEquals(theXDot, numXDot, 1.0e-13 * v);
            Assert.assertEquals(theYDot, numYDot, 1.0e-13 * v);
            Assert.assertEquals(theZDot, numZDot, 1.0e-13 * v);

            Assert.assertEquals(theXDot2, numXDot2, 1.0e-13 * a);
            Assert.assertEquals(theYDot2, numYDot2, 1.0e-13 * a);
            Assert.assertEquals(theZDot2, numZDot2, 1.0e-13 * a);

            Assert.assertEquals(theQ0Dot, numQ0Dot, 1.0e-13 * omega);
            Assert.assertEquals(theQ1Dot, numQ1Dot, 1.0e-13 * omega);
            Assert.assertEquals(theQ2Dot, numQ2Dot, 1.0e-13 * omega);
            Assert.assertEquals(theQ3Dot, numQ3Dot, 1.0e-13 * omega);

            Assert.assertEquals(theOxDot2, numOxDot, 1.0e-12 * omegaDot);
            Assert.assertEquals(theOyDot2, numOyDot, 1.0e-12 * omegaDot);
            Assert.assertEquals(theOzDot2, numOzDot, 1.0e-12 * omegaDot);

        }//from   www .ja  va  2s.  co m
    }
}

From source file:org.orekit.models.earth.GeoMagneticElements.java

/** Construct a new element with the given field vector. The other elements
 * of the magnetic field are calculated from the field vector.
 * @param b the magnetic field vector//from   www.  jav  a2s . co  m
 */
public GeoMagneticElements(final Vector3D b) {
    this.b = b;

    horizontalIntensity = FastMath.hypot(b.getX(), b.getY());
    totalIntensity = b.getNorm();
    declination = FastMath.toDegrees(FastMath.atan2(b.getY(), b.getX()));
    inclination = FastMath.toDegrees(FastMath.atan2(b.getZ(), horizontalIntensity));
}

From source file:org.orekit.models.earth.GeoMagneticField.java

/** Rotate the magnetic vectors to geodetic coordinates.
 * @param sph the spherical coordinates//from  w  w  w . ja  va2  s.c o  m
 * @param gp the geodetic point
 * @param field the magnetic field in spherical coordinates
 * @return the magnetic field in geodetic coordinates
 */
private Vector3D rotateMagneticVector(final SphericalCoordinates sph, final GeodeticPoint gp,
        final Vector3D field) {

    // difference between the spherical and geodetic latitudes
    final double psi = sph.phi - gp.getLatitude();

    // rotate spherical field components to the geodetic system
    final double Bz = field.getX() * FastMath.sin(psi) + field.getZ() * FastMath.cos(psi);
    final double Bx = field.getX() * FastMath.cos(psi) - field.getZ() * FastMath.sin(psi);
    final double By = field.getY();

    return new Vector3D(Bx, By, Bz);
}

From source file:org.orekit.models.earth.GeoMagneticFieldTest.java

@Test
public void testIGRF() throws Exception {
    // test values from sample coordinate file
    // provided as part of the geomag 7.0 distribution available at
    // http://www.ngdc.noaa.gov/IAGA/vmod/igrf.html
    // modification: the julian day calculation of geomag is slightly different
    // to the one from the WMM code, we use the WMM convention thus the outputs
    // have been adapted.
    runSampleFile(FieldModel.IGRF, "sample_coords.txt", "sample_out_IGRF12.txt");

    final double eps = 1e-1;
    final double degreeEps = 1e-2;
    for (int i = 0; i < igrfTestValues.length; i++) {
        final GeoMagneticField model = GeoMagneticFieldFactory.getIGRF(igrfTestValues[i][0]);
        final GeoMagneticElements result = model.calculateField(igrfTestValues[i][2], igrfTestValues[i][3],
                igrfTestValues[i][1]);//from   w  ww.  ja  v a  2  s  . c  o  m

        final Vector3D b = result.getFieldVector();

        // X
        Assert.assertEquals(igrfTestValues[i][4], b.getX(), eps);
        // Y
        Assert.assertEquals(igrfTestValues[i][5], b.getY(), eps);
        // Z
        Assert.assertEquals(igrfTestValues[i][6], b.getZ(), eps);
        // H
        Assert.assertEquals(igrfTestValues[i][7], result.getHorizontalIntensity(), eps);
        // F
        Assert.assertEquals(igrfTestValues[i][8], result.getTotalIntensity(), eps);
        // inclination
        Assert.assertEquals(igrfTestValues[i][9], result.getInclination(), degreeEps);
        // declination
        Assert.assertEquals(igrfTestValues[i][10], result.getDeclination(), degreeEps);
    }
}