From e143be989d2c21c97f4dafc4b0252d0ad7d32afe Mon Sep 17 00:00:00 2001 From: sesteves <sroesteves@gmail.com> Date: Tue, 9 Aug 2016 20:19:23 +0100 Subject: [PATCH] minor --- .../MultiLayerModel.java | 23 ++++++++++++++----- .../MultiLayerModelTest.java | 5 ++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java b/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java index 50dcb737..5d535ee0 100644 --- a/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java +++ b/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java @@ -95,30 +95,41 @@ public class MultiLayerModel implements AtmosphericRefraction { if (previousRefractionIndex > 0) { theta2 = FastMath.asin(previousRefractionIndex * FastMath.sin(theta1) / entry.getValue()); - // get los + // get new los double a = FastMath.sqrt((1 - FastMath.pow(FastMath.cos(theta2), 2)) / (1 - FastMath.pow(FastMath.cos(theta1), 2))); double b = a * FastMath.cos(theta1) - FastMath.cos(theta2); los = new Vector3D(a, los, b, zenith); + System.out.println("LOS: " + los); theta1 = theta2; } + if (altitude > entry.getKey()) { + break; + } + // get intersection point ExtendedEllipsoid ellipsoid = atmosphericEllipsoids.get(entry.getKey()); gp = ellipsoid.pointOnGround(pos, los, 0.0); + gp = new NormalizedGeodeticPoint(gp.getLatitude(), gp.getLongitude(), entry.getKey(), 0.0); + + System.out.println("GP: " + gp); + pos = ellipsoid.transform(gp); zenith = gp.getZenith(); - if (altitude > entry.getKey()) { - break; - } previousRefractionIndex = entry.getValue(); } - System.out.println("GP: " + gp + ", LOS: " + los); - NormalizedGeodeticPoint newGeodeticPoint = tile.cellIntersection(gp, los, 0, 0); + gp = new NormalizedGeodeticPoint(gp.getLatitude(), gp.getLongitude(), 17, 0.0); + NormalizedGeodeticPoint newGeodeticPoint = tile.cellIntersection(gp, los, + tile.getFloorLatitudeIndex(gp.getLatitude()), tile.getFloorLongitudeIndex(gp.getLongitude())); + + System.out.println("latitude and longitude indexes: " + tile.getFloorLatitudeIndex(gp.getLatitude()) + ", " + + tile.getFloorLongitudeIndex(gp.getLongitude())); + return newGeodeticPoint; } } diff --git a/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java b/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java index cde2b8ae..9d723028 100644 --- a/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java +++ b/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java @@ -60,6 +60,11 @@ public class MultiLayerModelTest extends AbstractAlgorithmTest { System.out.println("TILE: minlat: " + tile.getMinimumLatitude() + ", maxlat: " + tile.getMaximumLatitude() + ", minlon: " + tile.getMinimumLongitude() + ", maxlon: " + tile.getMaximumLongitude()); + + System.out.println("IS IT NULL? " + + (tile.cellIntersection(intersection, los, tile.getFloorLatitudeIndex(intersection.getLatitude()), + tile.getFloorLongitudeIndex(intersection.getLongitude())) == null)); + MultiLayerModel model = new MultiLayerModel(); GeodeticPoint gp = model.getPointOnGround(position, los, intersection.getZenith(), intersection.getAltitude(), tile); -- GitLab