Class ALcdImage

java.lang.Object
com.luciad.imaging.ALcdImage
All Implemented Interfaces:
ILcdBounded
Direct Known Subclasses:
ALcdBasicImage, ALcdImageMosaic, ALcdMultilevelImage, ALcdMultilevelImageMosaic

public abstract class ALcdImage extends Object implements ILcdBounded
Represents a geographically bounded pixel-oriented data source. Each image contains a ALcdImage.Configuration object which describes the properties and structure of the image's data.

This class cannot be implemented by the user. Instead, TLcdImageBuilder provides builder methods to create images. Note that this is typically only required when implementing a custom ILcdModelDecoder for an image data format. The existing decoders in the LuciadLightspeed API already produce models of which the elements extend from ALcdImage.

The subclasses of ALcdImage introduce additional semantics and structure. ALcdBasicImage describes a uniform two-dimensional pixel grid and is used as the basic building block for modeling pixel data. A number of concepts are layered on top of ALcdBasicImage:

  • ALcdMultilevelImage defines a stack of ALcdBasicImage objects which can represent, for instance, multiple levels of detail of the same data.
  • ALcdImageMosaic defines a mosaic in which each tile is an ALcdBasicImage.
  • ALcdMultilevelImageMosaic defines a stack of mosaics, in which each level can represent, for instance, a different level of detail of the same data.

You can get access to the underlying image data via ALcdImagingEngine for ALcdBasicImage.

You can perform image processing operations on an image by constructing an ALcdImageOperator and applying it to the image.

ALcdImage's are immutable. To model changing data you must use a has-an-image approach (see fromDomainObject(java.lang.Object)). As a result one should never check if an Object is an ALcdImage using instanceof, but use the fromDomainObject method instead and perform a null-check on the result.

Since:
2014.0
  • Field Details

  • Constructor Details

    • ALcdImage

      protected ALcdImage()
      This class is not intended to be implemented by users.
  • Method Details

    • fromDomainObject

      public static ALcdImage fromDomainObject(Object aObject)

      Returns an image for the given object. The given object is usually a domain object, i.e. an object retrieved from the model. It returns an image in the following cases:

      • The given Object is an ALcdImage.
      • The Object is an ILcdDataObject whose type contains a TLcdHasGeometryAnnotation with an ALcdImage property.

      In other cases, this method returns null.

      One should never check if an Object is an image using instanceof, but use this method instead and perform a null-check on the result.

      Note that this method does not adapt or convert the given object to an ALcdImage. It only tries to retrieve an image from it for the above cases.

      Parameters:
      aObject - an object, usually the domain object in a model.
      Returns:
      the image associated with the given object or null.
    • getConfiguration

      public abstract ALcdImage.Configuration getConfiguration()
      Returns an image configuration object describing the properties of this image's data.
      Returns:
      the configuration
    • getBounds

      public ILcdBounds getBounds()
      Returns the bounds of the image. This method returns the same bounds that are also available in the image's configuration.
      Specified by:
      getBounds in interface ILcdBounded
      Returns:
      the image's bounds
    • asMultilevelMosaic

      public final ALcdMultilevelImageMosaic asMultilevelMosaic()
      Converts this image to an ALcdMultilevelImageMosaic, which is the most general image representation. This can be useful for applications which prefer not to deal with the different possible image representations.
      Returns:
      a multilevel image mosaic equivalent to this image