public interface ILcdWCSModelEncoderFactory
ILcdRaster
elements to models containing
ALcdImage
elements.
ALcdMultilevelImage
or
ALcdMultilevelImageMosaic
based on output resolution, and fall back to less detailed
levels in case of missing tiles or no-data-values.
ALcdImage
elements into a single ALcdBasicImage
.
ILcdModelEncoder.export(ILcdModel, String)
with a model that has a single
ALcdBasicImage
.
Model encoders created by this factory should be able to export such a model.
They do not need to be able to export models that have ALcdMultilevelImage
,
ALcdImageMosaic
or ALcdMultilevelImageMosaic
, but they may.
ILcdModelEncoder.canSave(ILcdModel)
nor
ILcdModelEncoder.save(ILcdModel)
.
Model encoder implementations may safely throw UnsupportedOperationException
s for those methods.
ILcdModelEncoder.canExport(ILcdModel, String)
is an optimistic check that has the semantics of a 'maybe'.
It is a quick check to see if it's worthwhile to try and export a model.
Implementations should return false
if they cannot export a model, but they may return true
in
case of doubt.
The actual ILcdModelEncoder.export(ILcdModel, String)
may then still throw an
IllegalArgumentException
to indicate that the model could not be exported after all.
ALcdBasicImage
may have an arbitrary number of bands of a variety of data types,
see ALcdBandSemantics.DataType
.
Implementations may have limits to what is allowed here, and should throw IllegalArgumentException
when
they can't export a model.
TLcdGeoTIFFModelEncoder
.
The produced TIFFs are tiled by default, which is generally preferred for performance reasons.
To enhance the interoperability with clients that do not support tiled TIFFs, this can be changed
through the parameter wcs.outputFormat.geotiff.enableTiling
available in the the
deployment descriptor web.xml
file.
If your model encoder implements ILcdWCSModelEncoder
, the WCS framework will, for backwards compatibility,
not perform any of the aforementioned processing such as clipping, transforming and converting.
Instead, it will pass the input model directly to ILcdModelEncoder.export(ILcdModel, String)
.
The implementation is then entirely responsible for clipping, transforming and converting.
Modifier and Type | Method and Description |
---|---|
ILcdModelEncoder |
createModelEncoder(ILcdModel aModel,
ILcdOutputStreamFactory aOutputStreamFactory,
String aOutputFormat,
TLcdWCSRequestContext aRequestContext)
Returns a model encoder that can write the given model to an output stream
provided by the given factory, in the given format.
|
ILcdModelEncoder createModelEncoder(ILcdModel aModel, ILcdOutputStreamFactory aOutputStreamFactory, String aOutputFormat, TLcdWCSRequestContext aRequestContext)
aModel
- An ILcdModel
.aOutputStreamFactory
- An ILcdOutputStreamFactory
.aOutputFormat
- A string describing the requested output format, e.g. "GeoTIFF".aRequestContext
- Context information regarding the WCS request being handled.ILcdModelEncoder
.