Class DuvenhageAlgorithm

    • Constructor Detail

      • DuvenhageAlgorithm

        public DuvenhageAlgorithm​(TileUpdater updater,
                                  int maxCachedTiles,
                                  boolean flatBody,
                                  boolean isOverlappingTiles)
        Simple constructor.
        Parameters:
        updater - updater used to load Digital Elevation Model tiles
        maxCachedTiles - maximum number of tiles stored in the cache
        flatBody - if true, the body is considered flat, i.e. lines computed from entry/exit points in the DEM are considered to be straight lines also in geodetic coordinates. The sagitta resulting from real ellipsoid curvature is therefore not corrected in this case. As this computation is not costly (a few percents overhead), it is highly recommended to set this parameter to false. This flag is mainly intended for comparison purposes with other systems
        isOverlappingTiles - flag to tell if the DEM tiles are overlapping: true if overlapping; false otherwise.
    • Method Detail

      • refineIntersection

        public NormalizedGeodeticPoint refineIntersection​(ExtendedEllipsoid ellipsoid,
                                                          Vector3D position,
                                                          Vector3D los,
                                                          NormalizedGeodeticPoint closeGuess)
        Refine intersection of line with Digital Elevation Model.

        This method is used to refine an intersection when a close guess is already known. The intersection is typically looked for by a direct cell intersection in the tile which already contains the close guess, or any similar very fast algorithm.

        Specified by:
        refineIntersection in interface IntersectionAlgorithm
        Parameters:
        ellipsoid - reference ellipsoid
        position - pixel position in ellipsoid frame
        los - pixel line-of-sight in ellipsoid frame
        closeGuess - guess close to the real intersection
        Returns:
        point at which the line first enters ground
      • getElevation

        public double getElevation​(double latitude,
                                   double longitude)
        Get elevation at a given ground point.
        Specified by:
        getElevation in interface IntersectionAlgorithm
        Parameters:
        latitude - ground point latitude
        longitude - ground point longitude
        Returns:
        elevation at specified point