Class TLcdGEEModelDecoder

java.lang.Object
com.luciad.format.gee.TLcdGEEModelDecoder
All Implemented Interfaces:
ILcdInputStreamFactoryCapable, ILcdModelDecoder

@LcdService(service=ILcdModelDecoder.class, priority=20000) public class TLcdGEEModelDecoder extends Object implements ILcdModelDecoder, ILcdInputStreamFactoryCapable
Decodes fused imagery from Google Earth Enterprise repositories.

Input Files Link icon

FileRequiredEntry pointDescription
*.kiassetXXA directory containing the Google Earth Enterprise image repository

Supported file transfer protocols Link icon

  • This model decoder decodes data from a file system.

Model structure Link icon

Model elements Link icon

  • Each decoded model contains a single ALcdImage element.

Image structure Link icon

  • the image is an ALcdMultilevelImageMosaic
  • bounds can differ at different levels. Typically they become smaller as you zoom in.
  • tile sizes can differ at different levels

Model descriptor Link icon

Model reference Link icon

The returned model has a reference which implements either ILcdGeodeticReference or ILcdGridReference.

Thread safety Link icon

  • The decoding of models is thread-safe, as long as no properties are changed during the decoding.
  • The decoded models are thread-safe for read access.
Sample code Link icon
   // decode the model
   TLcdGEEModelDecoder decoder = new TLcdGEEModelDecoder();
   ILcdModel model = decoder.decode(aSource);

   // retrieve the image data
   Object domainObject = model.elements().nextElement();
   ALcdImage image = ALcdImage.fromDomainObject(domainObject);
 
Known limitations Link icon
This decoder is currently in beta status.
The current version of the decoder will first make an attempt to decode PYR files found in a directory such as "product.kia/ver001/raster.kip". If these files are not available or decoding fails it will try to decode the imagery encoded in bundle files. These files can be found in a directory such as "CombinedRP.kia/packgen.kia/packlevel00.kia/ver001/packlevel00.kipacket". Only the first bundle file of a level will be decoded.
Since:
2016.0
  • Field Details Link icon

  • Constructor Details Link icon

    • TLcdGEEModelDecoder Link icon

      public TLcdGEEModelDecoder()
  • Method Details Link icon

    • getDisplayName Link icon

      public String getDisplayName()
      Description copied from interface: ILcdModelDecoder
      Returns a short, displayable name for the format that is decoded by this ILcdModelDecoder.
      Specified by:
      getDisplayName in interface ILcdModelDecoder
      Returns:
      the displayable name of this ILcdModelDecoder.
    • canDecodeSource Link icon

      public boolean canDecodeSource(String aSource)
      Checks whether this model decoder can decode the specified data source. Refer to the class javadoc for more information on the supported data sources.
      Specified by:
      canDecodeSource in interface ILcdModelDecoder
      Parameters:
      aSource - the directory containing the repository
      Returns:
      true if the given source name matches a directory that this decoder can decode, false otherwise.
      See Also:
    • decode Link icon

      public ILcdModel decode(String aSourceName) throws IOException
      Creates a new model from the given data source.
      Specified by:
      decode in interface ILcdModelDecoder
      Parameters:
      aSourceName - the directory containing the repository
      Returns:
      a model containing the decoded data.
      Throws:
      IOException - for any exceptions caused by IO problems or invalid data. Since decoding invalid data almost always results in RunTimeExceptions (NullPointerException, IndexOutOfBoundsException, IllegalArgumentException, ...) on unexpected places, implementations are advised to catch RuntimeExceptions in their decode() method, and wrap them into an IOException, as illustrated in the code snippet below.
      
         public ILcdModel decode( String aSourceName ) throws IOException {
            try (InputStream input = fInputStreamFactory.createInputStream(aSourceName)) {
               // Perform decoding ...
            } catch (RuntimeException e) {
               throw new IOException(e);
            }
         }
       
      See Also:
    • setInputStreamFactory Link icon

      public void setInputStreamFactory(ILcdInputStreamFactory aInputStreamFactory)
      Sets the input stream factory to be used.
      Specified by:
      setInputStreamFactory in interface ILcdInputStreamFactoryCapable
      Parameters:
      aInputStreamFactory - the input stream factory to be used.
    • getInputStreamFactory Link icon

      public ILcdInputStreamFactory getInputStreamFactory()
      Returns the input stream factory that is used.
      Specified by:
      getInputStreamFactory in interface ILcdInputStreamFactoryCapable
      Returns:
      the input stream factory that is used.