NASA World Wind WMS

gov.nasa.worldwind.servers.wms.generators
Class BlueMarbleNG500MGenerator

java.lang.Object
  extended by gov.nasa.worldwind.servers.wms.generators.BlueMarbleNG500MGenerator
All Implemented Interfaces:
MapGenerator

public class BlueMarbleNG500MGenerator
extends Object
implements MapGenerator

A MapGenerator implementation for serving high-resolution images from NASA's Blue Marble, Next-Generation image series.

It is assumed that the source PNG files for this dataseries, as distributed by NASA, have been converted to geotiffs, with georeferencing explicitly injected into the files. It is also highly recommended, but not required, that the geotiffs have a subtiling organization. All of these steps can be conveniently performed with the GDAL utility gdal_translate.

This generator also uses the GDAL utility gdalwarp to extract subregions from the source images.

The NASA source files have a regular naming scheme that encodes the date and georeferencing information. The files are thus otherwise named with a prefix that indicates the features depicted in the image (topography, bathyrmetry, etc.). The naming scheme looks like:

      name_prefix.yyyymm.3x21600x21600.A1.suffix
      name_prefix.yyyymm.3x21600x21600.A2.suffix
      name_prefix.yyyymm.3x21600x21600.B1.suffix
      name_prefix.yyyymm.3x21600x21600.B2.suffix
      ...
      name_prefix.yyyymm.3x21600x21600.D2.suffix
 

The substring "yyyymm" indicates the date of the imagery. The codes A1, A2, ..., D1, D2 reflect an implicit goereferencing. The high-resolution images are distributed as a set of 8 90x90 degree tiles. The "1" indicates northern hemisphere (i.e., the latitude for that image ranges from 0N -- 90N), whereas "2" indicates southern hemisphere (0-90S). The letter codes indicate bounds in longitude:

     A = 180W --  90W
     B =  90W --   0
     C =   0  --  90E
     D =  90E -- 180E
 

There are several required properties needed in the configuration of the MapSource element that reflect the italicized substrings in the above naming scheme, for the actual filenames of the geotiffs to be served:

   <!-- name_prefix -->
   <property name="BlueMarble500M.namingscheme.prefix" value="..." />
 

<!-- suffix --> <property name="BlueMarble500M.namingscheme.suffix" value="..." />

<!-- yyyymm --> <property name="BlueMarble500M.defaultTime" value="..." />


Nested Class Summary
 
Nested classes/interfaces inherited from interface gov.nasa.worldwind.servers.wms.MapGenerator
MapGenerator.ServiceInstance
 
Constructor Summary
BlueMarbleNG500MGenerator()
           
 
Method Summary
 gov.nasa.worldwind.geom.Sector getBBox()
          Returns the bounding-box for the geospatial dataset managed by the MapGenerator instance.
 String[] getCRS()
          Returns the coordinate-reference systems (CRS) that the MapGenerator is capable of using to generate map requests.
 MapGenerator.ServiceInstance getServiceInstance()
          Called by the WMS to return an instance of ServiceInstance to field a GetMap request.
 boolean initialize(MapSource mapSource)
          Gives the MapGenerator implementation an opportunity to perform any needed initialization, prior to fielding GetMap requests.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlueMarbleNG500MGenerator

public BlueMarbleNG500MGenerator()
Method Detail

getBBox

public gov.nasa.worldwind.geom.Sector getBBox()
Description copied from interface: MapGenerator
Returns the bounding-box for the geospatial dataset managed by the MapGenerator instance.

Specified by:
getBBox in interface MapGenerator
Returns:

getCRS

public String[] getCRS()
Description copied from interface: MapGenerator
Returns the coordinate-reference systems (CRS) that the MapGenerator is capable of using to generate map requests.

Specified by:
getCRS in interface MapGenerator
Returns:

getServiceInstance

public MapGenerator.ServiceInstance getServiceInstance()
Description copied from interface: MapGenerator
Called by the WMS to return an instance of ServiceInstance to field a GetMap request.

Specified by:
getServiceInstance in interface MapGenerator
Returns:

initialize

public boolean initialize(MapSource mapSource)
                   throws IOException,
                          WMSServiceException
Description copied from interface: MapGenerator
Gives the MapGenerator implementation an opportunity to perform any needed initialization, prior to fielding GetMap requests. This typically includes extraction of any MapGenerator-specific properties that were given in the MapSource configuration. Called once at WMS start-up time.

Specified by:
initialize in interface MapGenerator
Returns:
Throws:
IOException
WMSServiceException

NASA World Wind WMS