diff --git a/core/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java b/core/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java index 401450c9e89320235126f9d9c4162a85c45e9418..68313b438722f96fa73457db82d34531f65285c8 100644 --- a/core/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java +++ b/core/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java @@ -124,15 +124,15 @@ public class BasicScanAlgorithm implements IntersectionAlgorithm { for (final SimpleTile tile : scannedTiles) { for (int i = latitudeIndex(tile, minLatitude); i <= latitudeIndex(tile, maxLatitude); ++i) { for (int j = longitudeIndex(tile, minLongitude); j <= longitudeIndex(tile, maxLongitude); ++j) { - final NormalizedGeodeticPoint gp = tile.pixelIntersection(entryPoint, ellipsoid.convertLos(entryPoint, los), i, j); + final NormalizedGeodeticPoint gp = tile.cellIntersection(entryPoint, ellipsoid.convertLos(entryPoint, los), i, j); if (gp != null) { - // improve the point, by projecting it back on the 3D line, fixing the small body curvature at pixel level + // improve the point, by projecting it back on the 3D line, fixing the small body curvature at cell level final Vector3D delta = ellipsoid.transform(gp).subtract(position); final double s = Vector3D.dotProduct(delta, los) / los.getNormSq(); final GeodeticPoint projected = ellipsoid.transform(new Vector3D(1, position, s, los), ellipsoid.getBodyFrame(), null); - final NormalizedGeodeticPoint gpImproved = tile.pixelIntersection(projected, ellipsoid.convertLos(projected, los), i, j); + final NormalizedGeodeticPoint gpImproved = tile.cellIntersection(projected, ellipsoid.convertLos(projected, los), i, j); if (gpImproved != null) { final Vector3D point = ellipsoid.transform(gpImproved); @@ -168,7 +168,7 @@ public class BasicScanAlgorithm implements IntersectionAlgorithm { final GeodeticPoint projected = ellipsoid.transform(new Vector3D(1, position, s, los), ellipsoid.getBodyFrame(), null); final Tile tile = cache.getTile(projected.getLatitude(), projected.getLongitude()); - return tile.pixelIntersection(projected, ellipsoid.convertLos(projected, los), + return tile.cellIntersection(projected, ellipsoid.convertLos(projected, los), tile.getFloorLatitudeIndex(projected.getLatitude()), tile.getFloorLongitudeIndex(projected.getLongitude())); } catch (OrekitException oe) { diff --git a/core/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java b/core/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java index 9bda9c048a7100794c7ec4309d01bed61dc55227..43795c8898b806275337da04fde7987b83c3d4ab 100644 --- a/core/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java +++ b/core/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java @@ -40,8 +40,8 @@ public interface IntersectionAlgorithm { * <p> * This method is used to refine an intersection when a close guess is * already known. The intersection is typically looked for by a direct - * {@link org.orekit.rugged.raster.Tile#pixelIntersection(GeodeticPoint, - * Vector3D, int, int) pixel intersection} in the tile which already + * {@link org.orekit.rugged.raster.Tile#cellIntersection(GeodeticPoint, + * Vector3D, int, int) cell intersection} in the tile which already * contains the close guess, or any similar very fast algorithm. * </p> * @param ellipsoid reference ellipsoid diff --git a/core/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java b/core/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java index ec96a6ffef71f7fe1bd44715c42176c2701dbad7..7a7a39d168f438be9d347259e25b745b5b7460cb 100644 --- a/core/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java +++ b/core/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java @@ -170,7 +170,7 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm { final Vector3D entryP = ellipsoid.pointAtAltitude(position, los, tile.getMaxElevation()); final NormalizedGeodeticPoint entry = ellipsoid.transform(entryP, ellipsoid.getBodyFrame(), null, tile.getMinimumLongitude()); - return tile.pixelIntersection(entry, ellipsoid.convertLos(entryP, exitP), + return tile.cellIntersection(entry, ellipsoid.convertLos(entryP, exitP), tile.getFloorLatitudeIndex(closeGuess.getLatitude()), tile.getFloorLongitudeIndex(closeGuess.getLongitude())); } else { @@ -179,7 +179,7 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm { final GeodeticPoint projected = ellipsoid.transform(new Vector3D(1, position, s, los), ellipsoid.getBodyFrame(), null); final Tile tile = cache.getTile(projected.getLatitude(), projected.getLongitude()); - return tile.pixelIntersection(projected, ellipsoid.convertLos(projected, los), + return tile.cellIntersection(projected, ellipsoid.convertLos(projected, los), tile.getFloorLatitudeIndex(projected.getLatitude()), tile.getFloorLongitudeIndex(projected.getLongitude())); } @@ -226,8 +226,8 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm { } if (entryLat == exitLat && entryLon == exitLon) { - // we have narrowed the search down to a single Digital Elevation Model pixel - return tile.pixelIntersection(entry, ellipsoid.convertLos(entry, los), exitLat, exitLon); + // we have narrowed the search down to a single Digital Elevation Model cell + return tile.cellIntersection(entry, ellipsoid.convertLos(entry, los), exitLat, exitLon); } // find the deepest level in the min/max kd-tree at which entry and exit share a sub-tile diff --git a/core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java b/core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java index 273bb4d06c5e07d0a91522bdc3e4675b55dbee65..fc0267be622476586f89eb166083fdf67f81568f 100644 --- a/core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java +++ b/core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java @@ -25,17 +25,17 @@ import org.orekit.rugged.raster.SimpleTile; /** Simple implementation of a {@link org.orekit.rugged.raster.Tile} * with a min/max kd tree. * <p> - * A n level min/max kd-tree contains sub-tiles merging individual pixels + * A n level min/max kd-tree contains sub-tiles merging individual cells * together from coarse-grained (at level 0) to fine-grained (at level n-1). - * Level n-1, which is the deepest one, is computed from the raw pixels by - * merging adjacent pixels pairs columns (i.e. pixels at indices (i, 2j) + * Level n-1, which is the deepest one, is computed from the raw cells by + * merging adjacent cells pairs columns (i.e. cells at indices (i, 2j) * and (i, 2j+1) are merged together by computing and storing the minimum * and maximum in a sub-tile. Level n-1 therefore has the same number of rows * but half the number of columns of the raw tile, and its sub-tiles are - * 1 pixel high and 2 pixels wide. Level n-2 is computed from level n-1 by + * 1 cell high and 2 cells wide. Level n-2 is computed from level n-1 by * merging sub-tiles rows. Level n-2 therefore has half the number of rows * and half the number of columns of the raw tile, and its sub-tiles are - * 2 pixels high and 2 pixels wide. Level n-3 is again computed by merging + * 2 cells high and 2 cells wide. Level n-3 is again computed by merging * columns, level n-4 merging rows and so on. As depth decreases, the number * of sub-tiles decreases and their size increase. Level 0 is reached when * there is only either one row or one column of large sub-tiles. @@ -129,8 +129,8 @@ public class MinMaxTreeTile extends SimpleTile { } /** Get the minimum elevation at some level tree. - * @param i row index of the pixel - * @param j column index of the pixel + * @param i row index of the cell + * @param j column index of the cell * @param level tree level * @return minimum elevation * @see #getLevels() @@ -152,8 +152,8 @@ public class MinMaxTreeTile extends SimpleTile { } /** Get the maximum elevation at some level tree. - * @param i row index of the pixel - * @param j column index of the pixel + * @param i row index of the cell + * @param j column index of the cell * @param level tree level * @return maximum elevation * @see #getLevels() @@ -174,12 +174,12 @@ public class MinMaxTreeTile extends SimpleTile { } - /** Get the deepest level at which two pixels are merged in the same min/max sub-tile. - * @param i1 row index of first pixel - * @param j1 column index of first pixel - * @param i2 row index of second pixel - * @param j2 column index of second pixel - * @return deepest level at which two pixels are merged in the same min/max sub-tile, + /** Get the deepest level at which two cells are merged in the same min/max sub-tile. + * @param i1 row index of first cell + * @param j1 column index of first cell + * @param i2 row index of second cell + * @param j2 column index of second cell + * @return deepest level at which two cells are merged in the same min/max sub-tile, * or -1 if they are never merged in the same sub-tile * @see #getLevels() * @see #getMinElevation(int, int, int) @@ -362,7 +362,7 @@ public class MinMaxTreeTile extends SimpleTile { /** Preprocess recursive application of a function. * <p> - * At start, the min/max should be computed for each pixel using the four corners values. + * At start, the min/max should be computed for each cell using the four corners values. * </p> * @param preprocessed preprocessed array to fill up * @param elevations raw elevations te preprocess diff --git a/core/src/main/java/org/orekit/rugged/raster/SimpleTile.java b/core/src/main/java/org/orekit/rugged/raster/SimpleTile.java index 2219f3a011552810d828c58289acf4307018300a..d1a08daaa3028b3c485c25bcba664dfc04a55e29 100644 --- a/core/src/main/java/org/orekit/rugged/raster/SimpleTile.java +++ b/core/src/main/java/org/orekit/rugged/raster/SimpleTile.java @@ -31,7 +31,7 @@ import org.orekit.rugged.utils.NormalizedGeodeticPoint; */ public class SimpleTile implements Tile { - /** Tolerance used to interpolate points slightly out of tile (in pixels). */ + /** Tolerance used to interpolate points slightly out of tile (in cells). */ private static final double TOLERANCE = 1.0 / 8.0; /** Minimum latitude. */ @@ -204,7 +204,7 @@ public class SimpleTile implements Tile { /** {@inheritDoc} * <p> - * This classes uses an arbitrary 1/8 pixel tolerance for interpolating + * This classes uses an arbitrary 1/8 cell tolerance for interpolating * slightly out of tile points. * </p> */ @@ -246,15 +246,15 @@ public class SimpleTile implements Tile { /** {@inheritDoc} */ @Override - public NormalizedGeodeticPoint pixelIntersection(final GeodeticPoint p, final Vector3D los, - final int latitudeIndex, final int longitudeIndex) + public NormalizedGeodeticPoint cellIntersection(final GeodeticPoint p, final Vector3D los, + final int latitudeIndex, final int longitudeIndex) throws RuggedException { - // ensure neighboring pixels to not fall out of tile + // ensure neighboring cells to not fall out of tile final int iLat = FastMath.max(0, FastMath.min(latitudeRows - 2, latitudeIndex)); final int jLong = FastMath.max(0, FastMath.min(longitudeColumns - 2, longitudeIndex)); - // Digital Elevation Mode coordinates at pixel vertices + // Digital Elevation Mode coordinates at cell vertices final double x00 = getLongitudeAtIndex(jLong); final double y00 = getLatitudeAtIndex(iLat); final double z00 = getElevationAtIndices(iLat, jLong); @@ -330,8 +330,8 @@ public class SimpleTile implements Tile { /** Interpolate point along a line. * @param t abscissa along the line * @param p start point - * @param dxP relative coordinate of the start point with respect to current pixel - * @param dyP relative coordinate of the start point with respect to current pixel + * @param dxP relative coordinate of the start point with respect to current cell + * @param dyP relative coordinate of the start point with respect to current cell * @param los direction of the line-of-sight, in geodetic space * @param centralLongitude reference longitude lc such that the point longitude will * be normalized between lc-Ï€ and lc+Ï€ diff --git a/core/src/main/java/org/orekit/rugged/raster/Tile.java b/core/src/main/java/org/orekit/rugged/raster/Tile.java index b42825e507a7c538ab625d6caae78068a671af67..b0ce5bbf75171e4e9c4575ae7532bed1d72e9998 100644 --- a/core/src/main/java/org/orekit/rugged/raster/Tile.java +++ b/core/src/main/java/org/orekit/rugged/raster/Tile.java @@ -23,10 +23,10 @@ import org.orekit.rugged.utils.NormalizedGeodeticPoint; /** Interface representing a raster tile. * <p> - * The elevations are considered to be at the <em>center</em> of each pixels. + * The elevations are considered to be at the <em>center</em> of each cells. * The minimum latitude and longitude hence correspond to the <em>center</em> - * of the most South-West pixel, and the maximum latitude and longitude - * correspond to the <em>center</em> of the most North-East pixel. + * of the most South-West cell, and the maximum latitude and longitude + * correspond to the <em>center</em> of the most North-East cell. * </p> * @author Luc Maisonobe */ @@ -120,14 +120,14 @@ public interface Tile extends UpdatableTile { /** Get minimum latitude of grid interpolation points. * @return minimum latitude of grid interpolation points - * (latitude of the center of the pixels of South row) + * (latitude of the center of the cells of South row) */ double getMinimumLatitude(); /** Get the latitude at some index. * @param latitudeIndex latitude index * @return latitude at the specified index - * (latitude of the center of the pixels of specified row) + * (latitude of the center of the cells of specified row) */ double getLatitudeAtIndex(int latitudeIndex); @@ -141,20 +141,20 @@ public interface Tile extends UpdatableTile { * <em>never</em> return {@link Location#HAS_INTERPOLATION_NEIGHBORS}! * </p> * @return maximum latitude - * (latitude of the center of the pixels of North row) + * (latitude of the center of the cells of North row) */ double getMaximumLatitude(); /** Get minimum longitude. * @return minimum longitude - * (longitude of the center of the pixels of West column) + * (longitude of the center of the cells of West column) */ double getMinimumLongitude(); /** Get the longitude at some index. * @param longitudeIndex longitude index * @return longitude at the specified index - * (longitude of the center of the pixels of specified column) + * (longitude of the center of the cells of specified column) */ double getLongitudeAtIndex(int longitudeIndex); @@ -168,7 +168,7 @@ public interface Tile extends UpdatableTile { * <em>never</em> return {@link Location#HAS_INTERPOLATION_NEIGHBORS}! * </p> * @return maximum longitude - * (longitude of the center of the pixels of East column) + * (longitude of the center of the cells of East column) */ double getMaximumLongitude(); @@ -232,10 +232,10 @@ public interface Tile extends UpdatableTile { /** Interpolate elevation. * <p> * In order to cope with numerical accuracy issues when computing - * points at tile boundary, a slight tolerance (typically 1/8 pixel) + * points at tile boundary, a slight tolerance (typically 1/8 cell) * around the tile is allowed. Elevation can therefore be interpolated * (really extrapolated in this case) even for points slightly overshooting - * tile boundaries, using the closest tile pixel. Attempting to interpolate + * tile boundaries, using the closest tile cell. Attempting to interpolate * too far from the tile will trigger an exception. * </p> * @param latitude ground point latitude @@ -246,17 +246,17 @@ public interface Tile extends UpdatableTile { double interpolateElevation(double latitude, double longitude) throws RuggedException; - /** Find the intersection of a line-of-sight and a Digital Elevation Model pixel. + /** Find the intersection of a line-of-sight and a Digital Elevation Model cell. * @param p point on the line * @param los line-of-sight, in the topocentric frame (East, North, Zenith) of the point, * scaled to match radians in the horizontal plane and meters along the vertical axis - * @param latitudeIndex latitude index of the Digital Elevation Model pixel - * @param longitudeIndex longitude index of the Digital Elevation Model pixel + * @param latitudeIndex latitude index of the Digital Elevation Model cell + * @param longitudeIndex longitude index of the Digital Elevation Model cell * @return point corresponding to line-of-sight crossing the Digital Elevation Model surface - * if it lies within the pixel, null otherwise + * if it lies within the cell, null otherwise * @exception RuggedException if intersection point cannot be computed */ - NormalizedGeodeticPoint pixelIntersection(GeodeticPoint p, Vector3D los, + NormalizedGeodeticPoint cellIntersection(GeodeticPoint p, Vector3D los, int latitudeIndex, int longitudeIndex) throws RuggedException; diff --git a/core/src/main/java/org/orekit/rugged/raster/TileUpdater.java b/core/src/main/java/org/orekit/rugged/raster/TileUpdater.java index ea81174e8d2bdd774fd60fac6040f4480eaf4f05..45fc62daf186416c5d3435da843a5cd834444d05 100644 --- a/core/src/main/java/org/orekit/rugged/raster/TileUpdater.java +++ b/core/src/main/java/org/orekit/rugged/raster/TileUpdater.java @@ -37,23 +37,23 @@ public interface TileUpdater { * UpdatableTile#setGeometry(double, double, double, double, int, int) * tile.setGeometry} once at the start of the method to set up the tile * geometry, and then calling {@link UpdatableTile#setElevation(int, int, - * double) tile.setElevation} once for each pixel in the tile to set the - * pixel elevation. + * double) tile.setElevation} once for each cell in the tile to set the + * cell elevation. * </p> * <p> * The implementation must fulfill the requirements: * </p> * <ul> * <li> - * The tiles must overlap each other by one pixel (i.e. pixels + * The tiles must overlap each other by one cell (i.e. cells * that belong to the northernmost row of one tile must also belong - * to the sourthernmost row of another tile and pixels that + * to the sourthernmost row of another tile and cells that * belong to the easternmost column of one tile must also belong * to the westernmost column of another tile). * </li> * <li> * As elevations are interpolated within Digital Elevation Model - * pixels using four pixels at indices (kLat, kLon), (kLat+1, kLon), + * cells using four cells at indices (kLat, kLon), (kLat+1, kLon), * (kLat, kLon+1), (kLat+1, kLon+1). A point in the northernmost row * (resp. easternmost column) miss neighboring points at row kLat+1 * (resp. neighboring points at column kLon+1) and therefore cannot @@ -65,7 +65,7 @@ public interface TileUpdater { * required neighbors. * </li> * <li> - * The elevation at grid point as set when calling {@link + * The elevation at cells as set when calling {@link * UpdatableTile#setElevation(int, int, double) tile.setElevation(kLat, kLon, * elevation)} must be the elevation corresponding to the latitude * {@code minLatitude + kLat * latitudeStep} and longitude {@code diff --git a/core/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java b/core/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java index 909fd51f3287e33722367e6944f7b2cb0a00e71b..0e624b38e2b6ad55abca1c11fd14c975e8fa3a9a 100644 --- a/core/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java +++ b/core/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java @@ -58,7 +58,7 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid { } /** Get point at some latitude along a pixel line of sight. - * @param position pixel position (in body frame) + * @param position cell position (in body frame) * @param los pixel line-of-sight, not necessarily normalized (in body frame) * @param latitude latitude with respect to ellipsoid * @param closeReference reference point used to select the closest solution @@ -130,7 +130,7 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid { } /** Get point at some longitude along a pixel line of sight. - * @param position pixel position (in body frame) + * @param position cell position (in body frame) * @param los pixel line-of-sight, not necessarily normalized (in body frame) * @param longitude longitude with respect to ellipsoid * @return point at longitude @@ -153,7 +153,7 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid { } /** Get point on ground along a pixel line of sight. - * @param position pixel position (in body frame) + * @param position cell position (in body frame) * @param los pixel line-of-sight, not necessarily normalized (in body frame) * @param centralLongitude reference longitude lc such that the point longitude will * be normalized between lc-Ï€ and lc+Ï€ @@ -178,7 +178,7 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid { } /** Get point at some altitude along a pixel line of sight. - * @param position pixel position (in body frame) + * @param position cell position (in body frame) * @param los pixel line-of-sight, not necessarily normalized (in body frame) * @param altitude altitude with respect to ellipsoid * @return point at altitude diff --git a/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java b/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java index d906f179ea5c01d4d82dfca37c6b15fd7236e56b..820931acaf663d8db07ca625118be0ff9e52f6bb 100644 --- a/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java +++ b/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java @@ -62,7 +62,7 @@ public abstract class AbstractAlgorithmTest { setUpMayonVolcanoContext(); // test point approximately 1.6km North-North-West and 800 meters below volcano summit - // note that this test point is EXACTLY at a pixel corner, and even at corners of + // note that this test point is EXACTLY at a cell corner, and even at corners of // middle level (12 and above) sub-tiles final double latitude = FastMath.toRadians(13.27); final double longitude = FastMath.toRadians(123.68); @@ -227,7 +227,7 @@ public abstract class AbstractAlgorithmTest { FastMath.toRadians(-9.4369), 120.0); - // pixels are about 10m x 10m here and a tile covers 1km x 1km + // cells are about 10m x 10m here and a tile covers 1km x 1km updater = new CliffsElevationUpdater(north, south, 120.0, 0.0, FastMath.toRadians(0.015), 101); diff --git a/core/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java b/core/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java index 7a6c4883b469c9065514ccd17f2c2cbc6d8e316e..e5f87e03c417a5baecab5558487a28bf542cacbe 100644 --- a/core/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java +++ b/core/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java @@ -117,9 +117,9 @@ public class MinMaxTreeTileTest { double max = Double.NEGATIVE_INFINITY; for (int i = neighbors[0]; i < FastMath.min(neighbors[1] + 1, nbRows); ++i) { for (int j = neighbors[2]; j < FastMath.min(neighbors[3] + 1, nbColumns); ++j) { - double pixelValue = tile.getElevationAtIndices(i, j); - min = FastMath.min(min, pixelValue); - max = FastMath.max(max, pixelValue); + double cellValue = tile.getElevationAtIndices(i, j); + min = FastMath.min(min, cellValue); + max = FastMath.max(max, cellValue); } } diff --git a/core/src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java b/core/src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java index 63aab37410ad9831735b3ec26f83bcf5b5371af6..09b71b0472d8561b4f54d94356bc4ac839384ff9 100644 --- a/core/src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java +++ b/core/src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java @@ -49,11 +49,11 @@ public class CliffsElevationUpdater implements TileUpdater { double y2My1 = point2.getLatitude() - point1.getLatitude(); tile.setGeometry(minLatitude, minLongitude, step, step, n, n); for (int i = 0; i < n; ++i) { - double pixelLatitude = minLatitude + i * step; + double cellLatitude = minLatitude + i * step; for (int j = 0; j < n; ++j) { - double pixelLongitude = minLongitude + j * step; - double xMx1 = pixelLongitude - point1.getLongitude(); - double yMy1 = pixelLatitude - point1.getLatitude(); + double cellLongitude = minLongitude + j * step; + double xMx1 = cellLongitude - point1.getLongitude(); + double yMy1 = cellLatitude - point1.getLatitude(); if (yMy1 * x2Mx1 > xMx1 * y2My1) { // left side of the point1 to point2 track tile.setElevation(i, j, top); diff --git a/core/src/test/java/org/orekit/rugged/raster/SimpleTileTest.java b/core/src/test/java/org/orekit/rugged/raster/SimpleTileTest.java index f270489413321efd435983343a4573ab8e19e178..66950871682ef547a2d38d9ba2e2fecf5f7e2682 100644 --- a/core/src/test/java/org/orekit/rugged/raster/SimpleTileTest.java +++ b/core/src/test/java/org/orekit/rugged/raster/SimpleTileTest.java @@ -123,13 +123,13 @@ public class SimpleTileTest { tile.setElevation(50, 100, 1000.0); tile.tileUpdateCompleted(); - // indices correspond to pixels centers + // indices correspond to cells centers double latCenterColumn50 = tile.getLatitudeAtIndex(50); double latCenterColumn51 = tile.getLatitudeAtIndex(51); double lonCenterRow23 = tile.getLongitudeAtIndex(23); double lonCenterRow24 = tile.getLongitudeAtIndex(24); - // getLatitudeIndex shift indices 1/2 pixel, so that + // getLatitudeIndex shift indices 1/2 cell, so that // the specified latitude is always between index and index+1 // so despite latWestColumn51 is very close to column 51 center, // getLatitudeIndex should return 50 @@ -139,7 +139,7 @@ public class SimpleTileTest { Assert.assertTrue(tile.getLatitudeAtIndex(retrievedLatIndex) < latWestColumn51); Assert.assertTrue(latWestColumn51 < tile.getLatitudeAtIndex(retrievedLatIndex + 1)); - // getLongitudeIndex shift indices 1/2 pixel, so that + // getLongitudeIndex shift indices 1/2 cell, so that // the specified longitude is always between index and index+1 // so despite lonSouthRow24 is very close to row 24 center, // getLongitudeIndex should return 23 @@ -186,7 +186,7 @@ public class SimpleTileTest { tile.setElevation(1, 0, 162.0); tile.setElevation(1, 1, 95.0); tile.tileUpdateCompleted(); - // the following points are 1/16 pixel out of tile + // the following points are 1/16 cell out of tile Assert.assertEquals(151.875, tile.interpolateElevation(-0.0625, 0.5), 1.0e-10); Assert.assertEquals(127.125, tile.interpolateElevation( 1.0625, 0.5), 1.0e-10); Assert.assertEquals(124.875, tile.interpolateElevation( 0.5, -0.0625), 1.0e-10); @@ -202,7 +202,7 @@ public class SimpleTileTest { tile.setElevation(1, 0, 162.0); tile.setElevation(1, 1, 95.0); tile.tileUpdateCompleted(); - // the following points are 3/16 pixel out of tile + // the following points are 3/16 cell out of tile checkOutOfBound(-0.1875, 0.5, tile); checkOutOfBound( 1.1875, 0.5, tile); checkOutOfBound( 0.5, -0.1875, tile); @@ -210,7 +210,7 @@ public class SimpleTileTest { } @Test - public void testPixelIntersection() throws RuggedException { + public void testCellIntersection() throws RuggedException { SimpleTile tile = new SimpleTileFactory().createTile(); tile.setGeometry(0.0, 0.0, 0.025, 0.025, 50, 50); tile.setElevation(20, 14, 91.0); @@ -224,10 +224,10 @@ public class SimpleTileTest { GeodeticPoint gpB = new GeodeticPoint(tile.getLatitudeAtIndex(20) + 0.7 * tile.getLatitudeStep(), tile.getLongitudeAtIndex(14) + 0.9 * tile.getLongitudeStep(), 10.0); - GeodeticPoint gpIAB = tile.pixelIntersection(gpA, los(gpA, gpB), 20, 14); + GeodeticPoint gpIAB = tile.cellIntersection(gpA, los(gpA, gpB), 20, 14); checkInLine(gpA, gpB, gpIAB); checkOnTile(tile, gpIAB); - GeodeticPoint gpIBA = tile.pixelIntersection(gpB, los(gpB, gpA), 20, 14); + GeodeticPoint gpIBA = tile.cellIntersection(gpB, los(gpB, gpA), 20, 14); checkInLine(gpA, gpB, gpIBA); checkOnTile(tile, gpIBA); @@ -238,7 +238,7 @@ public class SimpleTileTest { } @Test - public void testPixelIntersection2Solutions() throws RuggedException { + public void testCellIntersection2Solutions() throws RuggedException { SimpleTile tile = new SimpleTileFactory().createTile(); tile.setGeometry(0.0, 0.0, 0.025, 0.025, 50, 50); tile.setElevation(20, 14, 91.0); @@ -255,10 +255,10 @@ public class SimpleTileTest { // the line from gpA to gpB should traverse the DEM twice within the tile // we use the points in the two different orders to retrieve both solutions - GeodeticPoint gpIAB = tile.pixelIntersection(gpA, los(gpA, gpB), 20, 14); + GeodeticPoint gpIAB = tile.cellIntersection(gpA, los(gpA, gpB), 20, 14); checkInLine(gpA, gpB, gpIAB); checkOnTile(tile, gpIAB); - GeodeticPoint gpIBA = tile.pixelIntersection(gpB, los(gpB, gpA), 20, 14); + GeodeticPoint gpIBA = tile.cellIntersection(gpB, los(gpB, gpA), 20, 14); checkInLine(gpA, gpB, gpIBA); checkOnTile(tile, gpIBA); @@ -269,7 +269,7 @@ public class SimpleTileTest { } @Test - public void testPixelIntersectionNoSolutions() throws RuggedException { + public void testCellIntersectionNoSolutions() throws RuggedException { SimpleTile tile = new SimpleTileFactory().createTile(); tile.setGeometry(0.0, 0.0, 0.025, 0.025, 50, 50); tile.setElevation(20, 14, 91.0); @@ -284,12 +284,12 @@ public class SimpleTileTest { tile.getLongitudeAtIndex(14) + 0.9 * tile.getLongitudeStep(), 190.0); - Assert.assertNull(tile.pixelIntersection(gpA, los(gpA, gpB), 20, 14)); + Assert.assertNull(tile.cellIntersection(gpA, los(gpA, gpB), 20, 14)); } @Test - public void testPixelIntersectionLinearOnly() throws RuggedException { + public void testCellIntersectionLinearOnly() throws RuggedException { SimpleTile tile = new SimpleTileFactory().createTile(); tile.setGeometry(0.0, 0.0, 0.025, 0.025, 50, 50); tile.setElevation(0, 0, 30.0); @@ -304,10 +304,10 @@ public class SimpleTileTest { tile.getLongitudeAtIndex(0) + 0.50 * tile.getLongitudeStep(), 20.0); - GeodeticPoint gpIAB = tile.pixelIntersection(gpA, los(gpA, gpB), 0, 0); + GeodeticPoint gpIAB = tile.cellIntersection(gpA, los(gpA, gpB), 0, 0); checkInLine(gpA, gpB, gpIAB); checkOnTile(tile, gpIAB); - GeodeticPoint gpIBA = tile.pixelIntersection(gpB, los(gpB, gpA), 0, 0); + GeodeticPoint gpIBA = tile.cellIntersection(gpB, los(gpB, gpA), 0, 0); checkInLine(gpA, gpB, gpIBA); checkOnTile(tile, gpIBA); @@ -318,7 +318,7 @@ public class SimpleTileTest { } @Test - public void testPixelIntersectionLinearIntersectionOutside() throws RuggedException { + public void testCellIntersectionLinearIntersectionOutside() throws RuggedException { SimpleTile tile = new SimpleTileFactory().createTile(); tile.setGeometry(0.0, 0.0, 0.025, 0.025, 50, 50); tile.setElevation(0, 0, 30.0); @@ -333,12 +333,12 @@ public class SimpleTileTest { tile.getLongitudeAtIndex(0) + 0.50 * tile.getLongitudeStep(), 55.0); - Assert.assertNull(tile.pixelIntersection(gpA, los(gpA, gpB), 0, 0)); + Assert.assertNull(tile.cellIntersection(gpA, los(gpA, gpB), 0, 0)); } @Test - public void testPixelIntersectionLinearNoIntersection() throws RuggedException { + public void testCellIntersectionLinearNoIntersection() throws RuggedException { SimpleTile tile = new SimpleTileFactory().createTile(); tile.setGeometry(0.0, 0.0, 0.025, 0.025, 50, 50); tile.setElevation(0, 0, 30.0); @@ -353,12 +353,12 @@ public class SimpleTileTest { tile.getLongitudeAtIndex(0) + 0.50 * tile.getLongitudeStep(), 50.0); - Assert.assertNull(tile.pixelIntersection(gpA, los(gpA, gpB), 0, 0)); + Assert.assertNull(tile.cellIntersection(gpA, los(gpA, gpB), 0, 0)); } @Test - public void testPixelIntersectionConstant0() throws RuggedException { + public void testCellIntersectionConstant0() throws RuggedException { SimpleTile tile = new SimpleTileFactory().createTile(); tile.setGeometry(0.0, 0.0, 0.025, 0.025, 50, 50); tile.setElevation(0, 0, 30.0); @@ -373,10 +373,10 @@ public class SimpleTileTest { tile.getLongitudeAtIndex(0) + 0.50 * tile.getLongitudeStep(), 37.5); - GeodeticPoint gpIAB = tile.pixelIntersection(gpA, los(gpA, gpB), 0, 0); + GeodeticPoint gpIAB = tile.cellIntersection(gpA, los(gpA, gpB), 0, 0); checkInLine(gpA, gpB, gpIAB); checkOnTile(tile, gpIAB); - GeodeticPoint gpIBA = tile.pixelIntersection(gpB, los(gpB, gpA), 0, 0); + GeodeticPoint gpIBA = tile.cellIntersection(gpB, los(gpB, gpA), 0, 0); checkInLine(gpA, gpB, gpIBA); checkOnTile(tile, gpIBA); diff --git a/core/src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java b/core/src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java index 70be7682f011a1c1997c0693eec81897f61af057..fae00fd3946d38b05d50f0e0b991d32ba08e5315 100644 --- a/core/src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java +++ b/core/src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java @@ -46,12 +46,12 @@ public class VolcanicConeElevationUpdater implements TileUpdater { double sinSlope = FastMath.sin(slope); tile.setGeometry(minLatitude, minLongitude, step, step, n, n); for (int i = 0; i < n; ++i) { - double pixelLatitude = minLatitude + i * step; + double cellLatitude = minLatitude + i * step; for (int j = 0; j < n; ++j) { - double pixelLongitude = minLongitude + j * step; + double cellLongitude = minLongitude + j * step; double distance = Constants.WGS84_EARTH_EQUATORIAL_RADIUS * - FastMath.hypot(pixelLatitude - summit.getLatitude(), - pixelLongitude - summit.getLongitude()); + FastMath.hypot(cellLatitude - summit.getLatitude(), + cellLongitude - summit.getLongitude()); double altitude = FastMath.max(summit.getAltitude() - distance * sinSlope, base); tile.setElevation(i, j, altitude);