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 fromThreadand 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 classBasicElevationModelBulkDownloader.BulkDownloadPostProcessor
-
Field Summary
Fields Modifier and Type Field Description protected static longDEFAULT_AVERAGE_FILE_SIZEprotected BasicElevationModelelevationModelprotected intlevelprotected static intMAX_TILE_COUNT_PER_REGIONprotected 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 voidcallRetrievalListeners(Retriever retriever, Tile tile)protected static longcomputeAverageTileSize(java.io.File dir)protected intcomputeLevelForResolution(Sector sector, double resolution)protected Sector[]computeRandomRegions(Sector sector, int div, int numRegions)protected intcomputeRegionDivisions(Sector sector, int levelNumber, int maxCount)protected longcountTilesInSector(Sector sector, int levelNumber)protected longestimateAverageTileSize()protected longestimateMissingTilesCount(int numSamples)protected longgetEstimatedMissingDataSize()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 booleanisTileLocalOrAbsent(Tile tile)protected voidnormalizeProgress()protected voidremoveAbsentTile(Tile tile)protected voidremoveRetrievedTile(Tile tile)voidrun()protected voidsubmitMissingTilesRequests()-
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:
runin interfacejava.lang.Runnable- Specified by:
runin 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)
-
-