From 8377bf82dade7e18746e9f38d21661fd9dbc5e94 Mon Sep 17 00:00:00 2001
From: Guylaine Prat <guylaine.prat@c-s.fr>
Date: Fri, 19 Jan 2018 13:17:07 +0100
Subject: [PATCH] Changed "fulcrum points" to "Ground Control Points (GCP)" and
 "liaison points" to "tie points"

---
 ...ics.java => RefiningTiePointsMetrics.java} |  0
 .../refiningPleiades/GroundRefining.java      |  2 +-
 .../refiningPleiades/InterRefining.java       |  2 +-
 .../examples/refiningPleiades/Refining.java   | 14 +++++++-----
 .../generators/InterMeasurementGenerator.java |  9 ++++----
 .../metrics/LocalisationMetrics.java          | 22 +++++++++----------
 6 files changed, 26 insertions(+), 23 deletions(-)
 rename src/test/java/org/orekit/rugged/utils/{RefiningLiaisonMetrics.java => RefiningTiePointsMetrics.java} (100%)

diff --git a/src/test/java/org/orekit/rugged/utils/RefiningLiaisonMetrics.java b/src/test/java/org/orekit/rugged/utils/RefiningTiePointsMetrics.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/utils/RefiningLiaisonMetrics.java
rename to src/test/java/org/orekit/rugged/utils/RefiningTiePointsMetrics.java
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java
index ea7e36a0..c2e91d75 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java
@@ -52,7 +52,7 @@ import fr.cs.examples.refiningPleiades.models.OrbitModel;
 import fr.cs.examples.refiningPleiades.models.PleiadesViewingModel;
 
 /**
- * Class for testing refining (fulcrum points study)
+ * Class for testing refining (Ground Control Points GCP study)
  * with or without noisy measurements
  * @author Jonathan Guinet
  * @author Lucie Labat-Allee
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java
index 6028823f..11bb47b6 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java
@@ -54,7 +54,7 @@ import fr.cs.examples.refiningPleiades.models.OrbitModel;
 import fr.cs.examples.refiningPleiades.models.PleiadesViewingModel;
 
 /**
- * Class for testing refining (liaison points study)
+ * Class for testing refining (tie points study)
  * with or without noisy measurements
  * @author Jonathan Guinet
  * @author Lucie Labat-Allee
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java
index a0f7c025..b5dc3072 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java
@@ -217,7 +217,7 @@ public class Refining {
     }
 
     /** Compute metrics to evaluate geometric performances in location,
-     * for fulcrum points study.
+     * for Ground Control Points GCP study.
      * @param groundMapping sensor to ground mapping
      * @param rugged Rugged instance
      * @param unit flag to know if distance is computed in meters (false) or with angular (true)
@@ -238,7 +238,7 @@ public class Refining {
     }
 
     /** Compute metrics to evaluate geometric performances in location,
-     * for liaison points study.
+     * for tie points study.
      * @param interMapping sensor to sensor mapping
      * @param ruggedA Rugged instance A
      * @param ruggedB Rugged instance B
@@ -297,7 +297,7 @@ public class Refining {
         });
     }
 
-    /** Start optimization to  adjust parameters (fulcrum points study).
+    /** Start optimization to  adjust parameters (Ground Control Points GCP study).
      * @param maxIterations iterations max
      * @param convergenceThreshold threshold of convergence
      * @param measurements ground measurements
@@ -314,11 +314,12 @@ public class Refining {
 
         // Print statistics
         System.out.format("Max value: %3.6e %n", optimum.getResiduals().getMaxValue());
-        System.out.format("Optimization performed in %d iterations \n", optimum.getEvaluations());
+        System.out.format("Optimization performed in %d iterations \n", optimum.getIterations());
+        System.out.format("Optimization performed with %d evaluations of model (objective) function \n", optimum.getEvaluations());
         System.out.format("RMSE: %f \n", optimum.getRMS());
     }
 
-    /** Start optimization to  adjust parameters (liaison points study).
+    /** Start optimization to  adjust parameters (tie points study).
      * @param maxIterations iterations max
      * @param convergenceThreshold threshold of convergence
      * @param measurements measurements
@@ -346,7 +347,8 @@ public class Refining {
 
         // Print statistics
         System.out.format("Max value: %3.6e %n", optimum.getResiduals().getMaxValue());
-        System.out.format("Optimization performed in %d iterations \n", optimum.getEvaluations());
+        System.out.format("Optimization performed in %d iterations \n", optimum.getIterations());
+        System.out.format("Optimization performed with %d evaluations of model (objective) function \n", optimum.getEvaluations());
         System.out.format("RMSE: %f \n", optimum.getRMS());
     }
 
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/generators/InterMeasurementGenerator.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/generators/InterMeasurementGenerator.java
index 49c56cbd..e0938714 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/generators/InterMeasurementGenerator.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/generators/InterMeasurementGenerator.java
@@ -305,10 +305,11 @@ public class InterMeasurementGenerator implements Measurable {
 
                         // Increment the number of measurements
                         this.measurementCount++;
-                    }
-                }
-            }
-        }
+                        
+                    } // end test if geoDistance < outlier
+                } // end test if sensorPixelB != null
+            } // end loop on pixel of sensorA
+        } // end loop on line of sensorA
 
         this.observables.addInterMapping(interMapping);
     }
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/metrics/LocalisationMetrics.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/metrics/LocalisationMetrics.java
index 596c8203..3efbc3e4 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/metrics/LocalisationMetrics.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/metrics/LocalisationMetrics.java
@@ -34,7 +34,7 @@ import org.orekit.time.AbsoluteDate;
 
 /**
  * Class for testing geometric performances in absolute location.
- * Metrics are computed for two scenarios: ground points and liaison points.
+ * Metrics are computed for two scenarios: ground control points and tie points.
  * @see SensorToSensorMapping
  * @see SensorToGroundMapping
  * @author Jonathan Guinet
@@ -63,7 +63,7 @@ public class LocalisationMetrics {
     private double earthDistanceMean;
 
 
-    /** Compute metrics corresponding to the ground points study.
+    /** Compute metrics corresponding to the Ground Control Points (GCP) study.
      * @param measMapping Mapping of observations/measurements = the ground truth
      * @param rugged Rugged instance
      * @param computeAngular flag to know if distance is computed in meters (false) or with angular (true)
@@ -76,11 +76,11 @@ public class LocalisationMetrics {
         this.resMax = 0.0;
         this.resMean = 0.0;
 
-        // Compute metrics - Case of Sensor to Ground mapping (fulcrum points study)
-        computeMetrics(measMapping, rugged, computeAngular);
+        // Compute metrics - Case of Sensor to Ground mapping (Ground Control Points GCP study)
+        computeGCPmetrics(measMapping, rugged, computeAngular);
     }
 
-    /** Compute metrics corresponding to the liaison points study.
+    /** Compute metrics corresponding to the tie points study.
      * @param measMapping Mapping of observations/measurements = the ground truth
      * @param ruggedA Rugged instance corresponding to viewing model A
      * @param ruggedB Rugged instance corresponding to viewing model B
@@ -99,18 +99,18 @@ public class LocalisationMetrics {
         this.earthDistanceMax = 0.0;
         this.earthDistanceMean = 0.0;
 
-        // Compute metrics - Case of Sensor to Sensor mapping (liaison points study)
-        computeLiaisonMetrics(measMapping, ruggedA, ruggedB, computeAngular);
+        // Compute metrics - Case of Sensor to Sensor mapping (tie points study)
+        computeTiePointsMetrics(measMapping, ruggedA, ruggedB, computeAngular);
     }
 
     /**
-     * Compute metrics: case of ground control points.
+     * Compute metrics: case of ground control points (GCP).
      * @param measMapping Mapping of observations/measurements = the ground truth
      * @param rugged Rugged instance
      * @param computeAngular flag to know if distance is computed in meters (false) or with angular (true)
      * @exception RuggedException if direct location fails
      */
-    public void computeMetrics(final SensorToGroundMapping measMapping, final Rugged rugged, final boolean computeAngular)
+    public void computeGCPmetrics(final SensorToGroundMapping measMapping, final Rugged rugged, final boolean computeAngular)
         throws RuggedException {
 
         // Mapping of observations/measurements = the ground truth
@@ -154,14 +154,14 @@ public class LocalisationMetrics {
     }
 
     /**
-     * Compute metrics: case of liaison points.
+     * Compute metrics: case of tie points.
      * @param measMapping Mapping of observations/measurements = the ground truth
      * @param ruggedA Rugged instance corresponding to viewing model A
      * @param ruggedB Rugged instance corresponding to viewing model B
      * @param computeAngular Flag to know if distance is computed in meters (false) or with angular (true)
      * @exception RuggedException if direct location fails
      */
-    public void computeLiaisonMetrics(final SensorToSensorMapping measMapping, final Rugged ruggedA, final Rugged ruggedB,
+    public void computeTiePointsMetrics(final SensorToSensorMapping measMapping, final Rugged ruggedA, final Rugged ruggedB,
                                       final boolean computeAngular)
         throws RuggedException {
 
-- 
GitLab