Class SRTMTile

java.lang.Object
org.ka2ddo.yaac.srtm.SRTMTile

public class SRTMTile extends Object
This class defines the in-memory cache entry for one SRTM binary tile (1 arc-second or 3 arc-second variations).
Author:
Andrew Pavlin, KA2DDO
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String[]
    Mappings of NASADEM source code byte values to names of data sources as defined here.
    short
    The maximum change in elevation between any two adjacent cells, in meters.
    short
    The highest elevation in this tile, in meters.
    int
    The integer latitude (in whole degrees) of the southwest corner of the tile.
    int
    The integer longitude (in whole degrees) of the southwest corner of the tile.
    short
    The lowest elevation in this tile, in meters.
    static final short
    Reserved value indicating the elevation at the specified grid point is unknown.
    short
    The number of grid cells + 1 in this tile.
    byte[]
    If an associated .num file is provided with the .hgt file, this contains the code numbers identifying all unique sources of the elevation data in this tile.
    short[][]
    The two-dimensional grid of regularly spaced elevation values (separated by 1 degree / (numCellsPerAxis - 1)), The first index is along the latitude axis, with index 0 at the southernmost latitude, and the second index is along the longitude axis, with index 0 at the westernmost longitude.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Report the amount of memory consumed by this tile.
    void
    loadGzip(File srtmFile, int lat, int lon)
    Read a tile file into this in-memory data structure
    void
    loadZip(File srtmFile, int lat, int lon)
    Read a zipped tile file into this in-memory data structure
    void
    Set the lower-left corner coordinates of this tile.
    Returns a string representation of the object.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • minLat

      public int minLat
      The integer latitude (in whole degrees) of the southwest corner of the tile.
    • minLon

      public int minLon
      The integer longitude (in whole degrees) of the southwest corner of the tile.
    • numCellsPerAxis

      public short numCellsPerAxis
      The number of grid cells + 1 in this tile. For 3-arc-second tiles, this will be 1201.
    • maxGradient

      public short maxGradient
      The maximum change in elevation between any two adjacent cells, in meters.
    • minZ

      public short minZ
      The lowest elevation in this tile, in meters.
    • maxZ

      public short maxZ
      The highest elevation in this tile, in meters.
    • zCells

      public short[][] zCells
      The two-dimensional grid of regularly spaced elevation values (separated by 1 degree / (numCellsPerAxis - 1)), The first index is along the latitude axis, with index 0 at the southernmost latitude, and the second index is along the longitude axis, with index 0 at the westernmost longitude.
    • sources

      public byte[] sources
      If an associated .num file is provided with the .hgt file, this contains the code numbers identifying all unique sources of the elevation data in this tile.
    • DEM_SRC_CODES

      public static final String[] DEM_SRC_CODES
      Mappings of NASADEM source code byte values to names of data sources as defined here.
    • NO_CELL

      public static final short NO_CELL
      Reserved value indicating the elevation at the specified grid point is unknown.
      See Also:
  • Constructor Details

    • SRTMTile

      public SRTMTile()
  • Method Details

    • toString

      public String toString()
      Returns a string representation of the object.
      Overrides:
      toString in class Object
      Returns:
      a string representation of the object.
    • setCoord

      public void setCoord(SRTMTileId id)
      Set the lower-left corner coordinates of this tile.
      Parameters:
      id - SRTMTileId to obtain coordinates from
    • loadZip

      public void loadZip(File srtmFile, int lat, int lon) throws IOException
      Read a zipped tile file into this in-memory data structure
      Parameters:
      srtmFile - File object describing the file to read
      lat - latitude in whole degrees North for the tile
      lon - longitude in whole degrees East for the tile
      Throws:
      IOException - if the file could not be successfully read for any reason
    • loadGzip

      public void loadGzip(File srtmFile, int lat, int lon) throws IOException
      Read a tile file into this in-memory data structure
      Parameters:
      srtmFile - File object describing the file to read
      lat - latitude in whole degrees North for the tile
      lon - longitude in whole degrees East for the tile
      Throws:
      IOException - if the file could not be successfully read for any reason
    • getSize

      public int getSize()
      Report the amount of memory consumed by this tile. Can be used to dynamically size the cache of SRTMTiles to prevent heap overload. This estimate is based on the behavior of 32-bit JVM memory management.
      Returns:
      estimated heap consumption of this SRTMTile and its sub-objects in bytes