Package gov.nasa.worldwind.terrain
Class BasicElevationModelBulkDownloader
- java.lang.Object
-
- java.lang.Thread
-
- gov.nasa.worldwind.retrieve.BulkRetrievalThread
-
- gov.nasa.worldwind.terrain.BasicElevationModelBulkDownloader
-
- All Implemented Interfaces:
java.lang.Runnable
public class BasicElevationModelBulkDownloader extends BulkRetrievalThread
Downloads elevation data not currently available in the WorldWind file cache or a specifiedFileStore
. The class derives fromThread
and is meant to operate in its own thread.The sector and resolution associated with the downloader are specified during construction and are final.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
BasicElevationModelBulkDownloader.BulkDownloadPostProcessor
-
Field Summary
Fields Modifier and Type Field Description protected static long
DEFAULT_AVERAGE_FILE_SIZE
protected BasicElevationModel
elevationModel
protected int
level
protected static int
MAX_TILE_COUNT_PER_REGION
protected java.util.ArrayList<Tile>
missingTiles
-
Fields inherited from class gov.nasa.worldwind.retrieve.BulkRetrievalThread
fileStore, progress, resolution, retrievable, RETRIEVAL_SERVICE_POLL_DELAY, retrievalListeners, sector
-
-
Constructor Summary
Constructors Constructor Description BasicElevationModelBulkDownloader(BasicElevationModel elevationModel, Sector sector, double resolution, FileStore fileStore, BulkRetrievalListener listener)
Constructs a downloader to retrieve elevations not currently available in a specified file store.BasicElevationModelBulkDownloader(BasicElevationModel elevationModel, Sector sector, double resolution, BulkRetrievalListener listener)
Constructs a downloader to retrieve elevations not currently available in the WorldWind file cache.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
callRetrievalListeners(Retriever retriever, Tile tile)
protected static long
computeAverageTileSize(java.io.File dir)
protected int
computeLevelForResolution(Sector sector, double resolution)
protected Sector[]
computeRandomRegions(Sector sector, int div, int numRegions)
protected int
computeRegionDivisions(Sector sector, int levelNumber, int maxCount)
protected long
countTilesInSector(Sector sector, int levelNumber)
protected long
estimateAverageTileSize()
protected long
estimateMissingTilesCount(int numSamples)
protected long
getEstimatedMissingDataSize()
protected java.util.ArrayList<Tile>
getMissingTilesInSector(Sector sector, int levelNumber)
protected java.util.Iterator<Sector>
getRegionIterator(Sector sector, int div)
protected Tile[][]
getTilesInSector(Sector sector, int levelNumber)
protected boolean
isTileLocalOrAbsent(Tile tile)
protected void
normalizeProgress()
protected void
removeAbsentTile(Tile tile)
protected void
removeRetrievedTile(Tile tile)
void
run()
protected void
submitMissingTilesRequests()
-
Methods inherited from class gov.nasa.worldwind.retrieve.BulkRetrievalThread
addRetrievalListener, callRetrievalListeners, getFileStore, getProgress, getResolution, getRetrievable, getSector, hasRetrievalListeners, removeRetrievalListener
-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, toString, yield
-
-
-
-
Field Detail
-
MAX_TILE_COUNT_PER_REGION
protected static final int MAX_TILE_COUNT_PER_REGION
- See Also:
- Constant Field Values
-
DEFAULT_AVERAGE_FILE_SIZE
protected static final long DEFAULT_AVERAGE_FILE_SIZE
- See Also:
- Constant Field Values
-
elevationModel
protected final BasicElevationModel elevationModel
-
level
protected final int level
-
missingTiles
protected java.util.ArrayList<Tile> missingTiles
-
-
Constructor Detail
-
BasicElevationModelBulkDownloader
public BasicElevationModelBulkDownloader(BasicElevationModel elevationModel, Sector sector, double resolution, BulkRetrievalListener listener)
Constructs a downloader to retrieve elevations not currently available in the WorldWind file cache.The thread returned is not started during construction, the caller must start the thread.
- Parameters:
elevationModel
- the elevation model for which to download elevations.sector
- the sector to download data for. This value is final.resolution
- the target resolution, provided in radians of latitude per texel. This value is final.listener
- an optional retrieval listener. May be null.- Throws:
java.lang.IllegalArgumentException
- if either the elevation model or sector are null, or the resolution is less than zero.
-
BasicElevationModelBulkDownloader
public BasicElevationModelBulkDownloader(BasicElevationModel elevationModel, Sector sector, double resolution, FileStore fileStore, BulkRetrievalListener listener)
Constructs a downloader to retrieve elevations not currently available in a specified file store.The thread returned is not started during construction, the caller must start the thread.
- Parameters:
elevationModel
- the elevation model for which to download elevations.sector
- the sector to download data for. This value is final.resolution
- the target resolution, provided in radians of latitude per texel. This value is final.fileStore
- the file store in which to place the downloaded elevations.listener
- an optional retrieval listener. May be null.- Throws:
java.lang.IllegalArgumentException
- if either the elevation model, the sector or file store are null, or the resolution is less than zero.
-
-
Method Detail
-
run
public void run()
- Specified by:
run
in interfacejava.lang.Runnable
- Specified by:
run
in classBulkRetrievalThread
-
submitMissingTilesRequests
protected void submitMissingTilesRequests() throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
removeRetrievedTile
protected void removeRetrievedTile(Tile tile)
-
removeAbsentTile
protected void removeAbsentTile(Tile tile)
-
normalizeProgress
protected void normalizeProgress()
-
getEstimatedMissingDataSize
protected long getEstimatedMissingDataSize()
-
estimateMissingTilesCount
protected long estimateMissingTilesCount(int numSamples)
-
estimateAverageTileSize
protected long estimateAverageTileSize()
-
computeAverageTileSize
protected static long computeAverageTileSize(java.io.File dir)
-
computeLevelForResolution
protected int computeLevelForResolution(Sector sector, double resolution)
-
countTilesInSector
protected long countTilesInSector(Sector sector, int levelNumber)
-
getMissingTilesInSector
protected java.util.ArrayList<Tile> getMissingTilesInSector(Sector sector, int levelNumber) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
computeRegionDivisions
protected int computeRegionDivisions(Sector sector, int levelNumber, int maxCount)
-
computeRandomRegions
protected Sector[] computeRandomRegions(Sector sector, int div, int numRegions)
-
isTileLocalOrAbsent
protected boolean isTileLocalOrAbsent(Tile tile)
-
-