Represents a Raster Layer that can give detailed information
about the Raster it represents, cache the raster, and get the
raster cropped to an extent or at a different resolution.
This represents a layer in a bound Context, not an abstract
representation of the Raster. In other words, if you are
holding one of these objects, then the code that uses it
should only execute on the machine that the RasterLayer is
from. If you pass around RasterLayers, you will be passing around
the cache as well, which is not ideal.
To implement a new RasterLayer, inherit from this class, implement
the cache(c: Cache) method for caching the raster layer, and implement
the getRaster() (for getting a Raster with it's native RasterExtent) and
getRaster(rasterExtent: RasterExtent) (for getting a Raster at a different
extent\resolution). Optionally you can override getRaster(extent: Extent),
which by default just creates a RasterExtent with that extent snapped to
the raster's native resolution.
(Since version Geotrellis Version 0.10) geotrellis-engine has been deprecated