I've run into a problem with the memory footprint using the netcdf-output
plugin with n-dimensional datasets.  Consider a WCS 2.0.1 request that
wants multiple times and elevations in netcdf format.  The WCS GetCoverage
operation slices this request into 2D slices, and loads these slices into a
GranuleStack, which allows the netcdf output module (and presumably other
n-dimensional output formats in the future) to stitch them back together in
the desired format.

The problem arises when the number of 2D slices are large, as they are
completely held in memory.  I'm trying to find a solution to this, to
substantially increase the size of datasets that can be requested in netcdf
format.

My initial stab was setting up a deferred read by implementing a quick
GridCoverage2D wrapper, that basically encapsulated all of the GetCoverage
work and only performs the read when the image data is accessed, while
modifying netcdf-out to work with only one slice at a time.  This isn't
working so well, because it is hard to separate the image from the rest of
the non-pixel data related calls in the GridCoverage2D.

I was curious before I went further down this route if there is a more
obvious solution then basically extending and heavily modifying
GridCoverage2D in addition to changing the netcdf output encoder itself, or
utilizing some type of file buffered Image implementation.

Thanks.

-- 
Clifford M. Harms
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to