Package org.esa.snap.core.datamodel

Contains SNAP's central classes and interfaces used for an in-memory presentation of remote sensing data products.

The Product class plays a central role in SNAP this package and is used throughout the SNAP software in order represent data products of many different types.

Many of the classes in this package are superclasses of the ProductNode, which acts as a base class for all data and metadata items contained in a product. The inheritance hierarchy of the abstract ProductNode is as follows:

Product instances are composed as follows: MetadataElement instances are composed as follows:

Products and RasterDataNodes can have an associated GeoCoding allowing them to geo-locate raster pixel positions with geographic positions and vice versa. There are various possible GeoCoding implementations which all derive from AbstractGeoCoding:

  • TiePointGeoCoding - geo-coding based on latitude/longitude TiePointGrids
  • org.esa.snap.core.datamodel.PixelGeoCoding - geo-coding based on per-pixel latitude/longitude Bands
  • org.esa.snap.core.datamodel.PixelGeoCoding2 - alternative geo-coding based on per-pixel latitude/longitude Bands (current default)
  • CrsGeoCoding - geo-coding for reprojected products, i.e. products having raster data rectified w.r.t. geodetic coordinate reference system (CRS)
  • GcpGeoCoding - geo-coding based on ground control point Placemarks
  • FXYGeoCoding- geo-coding based on X,Y-functions

There are various places in the SNAP API that provide utility functions that deal the above mentioned classes and interfaces.

A strongly related packages are org.esa.snap.core.dataio which provides the data product I/O framework and org.esa.snap.core.gpf which is graph processing framework GPF used for developing and executing raster data operators and graphs of such operators.