[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
