sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject [sis] 05/09: fix (referencing satellite-tracking projections) : fix the Jacobian matrix in both satellite-tracking projections by inverting m01 and m10 in order to have the partial derivative of x on the matrix's first line and of y on the second line.
Date Tue, 01 Oct 2019 17:25:16 GMT
This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 47873d482b06c88e11d5d9d48266f84cec48a0f2
Author: Matthieu_Bastianelli <matthieu.bastianelli@geomatys.com>
AuthorDate: Thu Jul 25 10:25:35 2019 +0200

    fix (referencing satellite-tracking projections) : fix the Jacobian matrix in both satellite-tracking
projections by inverting m01 and m10 in order to have the partial derivative of x on the matrix's
first line and of y on the second line.
---
 .../sis/referencing/operation/projection/ConicSatelliteTracking.java  | 4 ++--
 .../operation/projection/CylindricalSatelliteTracking.java            | 4 ++--
 .../referencing/operation/projection/ConicSatelliteTrackingTest.java  | 4 ++--
 .../operation/projection/CylindricalSatelliteTrackingTest.java        | 3 ++-
 4 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTracking.java
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTracking.java
index 9b173f1..9b0b0b0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTracking.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTracking.java
@@ -331,8 +331,8 @@ public class ConicSatelliteTracking extends NormalizedProjection{
         final double dy_dφ = -cosλ * dρ_dφ;
         //======================================================================
 
-        return new Matrix2(dx_dλ, dy_dλ,
-                           dx_dφ, dy_dφ);
+        return new Matrix2(dx_dλ, dx_dφ,
+                           dy_dλ, dy_dφ);
 //        throw new UnsupportedOperationException("Not supported yet."); //To change body
of generated methods, choose Tools | Templates.
 
         /* =====================================================================
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTracking.java
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTracking.java
index d68ec87..9348834 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTracking.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTracking.java
@@ -166,8 +166,8 @@ public class CylindricalSatelliteTracking extends ConicSatelliteTracking
{
                 * ( p2_on_p1 - ((1+tan_dλ*tan_dλ)*cos_i/(1+λt*λt) ) );
         //======================================================================
 
-        return new Matrix2(dx_dλ, dy_dλ,
-                           dx_dφ, dy_dφ);
+        return new Matrix2(dx_dλ, dx_dφ,
+                           dy_dλ, dy_dφ);
 
 //        throw new UnsupportedOperationException("Not supported yet."); //To change body
of generated methods, choose Tools | Templates.
     }
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTrackingTest.java
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTrackingTest.java
index 242e024..10ace56 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTrackingTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConicSatelliteTrackingTest.java
@@ -267,8 +267,8 @@ public class ConicSatelliteTrackingTest extends MapProjectionTestCase
{
         );
         final double delta = (1.0 / 60) / 1852;                 // Approximately 1 metre.
         derivativeDeltas = new double[] {delta, delta};
-        tolerance = Formulas.LINEAR_TOLERANCE / 10;
-        verifyDerivative(   0, -10);
+        tolerance = Formulas.LINEAR_TOLERANCE/100 ;
+        verifyDerivative( -75, 40);
         verifyDerivative(-100,  3);
         verifyDerivative( -56, 50);
         verifyDerivative( -20, 47);
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTrackingTest.java
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTrackingTest.java
index 844ba7f..95b6832 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTrackingTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/CylindricalSatelliteTrackingTest.java
@@ -226,7 +226,8 @@ public class CylindricalSatelliteTrackingTest extends ConicSatelliteTrackingTest
         );
         final double delta = (1.0 / 60) / 1852;                 // Approximately 1 metre.
         derivativeDeltas = new double[] {delta, delta};
-        tolerance = Formulas.LINEAR_TOLERANCE / 10;
+        tolerance = Formulas.LINEAR_TOLERANCE / 100;
+        verifyDerivative(-75, 40);
         verifyDerivative(-100,  3);
         verifyDerivative( -56, 50);
         verifyDerivative( -20, 47);


Mime
View raw message