[EMAIL PROTECTED] wrote on 11/15/2006 02:44:15
PM:

> Bryce L Nordgren wrote:
> > Here's the big question: Do you intend for Filter/Expression to operate
on
> > individual range values of a coverage?  Or should Filter/Expression be
> > limited to operating on Coverages themselves (not the spatially varying
> > data).
> >
> And this is where we need somebody to look at RasterSymbolizer. I
> *strongly* suspect that they use expression to extract out different
> bands from a coverage, produce complicated expressions with sine and
> cosine etc on the way to mapping into a visible RGB color space.  We
> simply must look at RasterSymbolizer before going further (as it is part
> of the "landscape" we wish to integrate with).

I did a preliminary overview.  I think it works this way:

+ RasterSymbolizer really doesn't do anything other than hold data for the
properties defined by SLD.  It's just a data structure.
+ There's a renderer implemented specifically for Grid Coverage 2Ds which
interprets these settings (like any colormaps, etc.) and produces a
portrayed image.

I have to verify this (gotta run out the door soon), but I would bet that
it requires a GridCoverage2D because it knows it's backed by Java 2D
graphics objects.  (e.g., Raster, SampleModel, ColorModel, etc.)  No one
actually "extracts" data from a coverage to portray it, they just make a
ColorModel and blammo, Bob's your uncle.

If we make a different coverage implementation backed by Multiarray2, we're
going to have a different rendering process (or an adapter to
GridCoverage2D).

> So for my question; if not using Expression how do you extract values
> from a coverage?

According to 19123: Coverage.evaluate(DirectPosition) will return a tuple
of values valid at a specific location.  Coverage.list() returns a Set of
all of the Domain-Range associations in the coverage.
Coverage.select(GM_Object, TM_Period) subsets a coverage.
Coverage.find(DirectPosition) returns a list of Domain-Range associations
in order of increasing distance from the supplied point.
Coverage.evaluateInverse(Record) will return a Set of DomainObjects
(positions/geometries) which are associated with matching values in the
Range.

In the OGC model?  Dunno.

> Yes it does, you can use xpath to grab out values: ie VALUES[12] or
> VALUES[X] or [EMAIL PROTECTED] VALUES[X*43+Y].  Of course if a coverage is
> defined by an operation then raster symbolizer must have a way to let us
> get at that information ....

I think RasterSymbolizer just needs to hold information about how data
should be portrayed.  The renderer needs to get at the data (or use some
library which can.)

Gotta run.  Bye bye.

Bryce


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to