Rob Atkinson <[EMAIL PROTECTED]> wrote on 11/15/2006 04:55:51 AM:
> Bryce L Nordgren wrote: > > Short version: if I was pressed to describe what an WFS is, I'd have to say > > it is a discrete coverage implementation using Web Services technology. A > > WCS would then be an implementation of DiscreteGridPointCoverage > > implementation. Messy, because this implies a parent-child relationship > > between WFS & WCS. > > > WCS could also be seen as implementing a > ContinuousQuadrilateralGridCoverage, but not exposing the interpolation > function ? My first statement was uninformed, as my assumption was that WCS didn't support resampling. Delving into it, WCS allows specification of 5 interpolation functions, the default being nearest neighbor. WCS also allows for a server or client to specify "no interpolation". I think it would be unfair to say that it doesn't expose the interpolation function. Let me modify my previous statement to: + WCS implements ContinuousQGC for requests which resample + WCS also implements DiscreteGPC for requests which subset with no resampling. These are only "approximate" implementations: Neither implementation supports evaluation at a single point unless you fudge by making a grid with one point in it, and the coverage spec doesn't include an evaluate(GM_PointGrid) signature. Sorry for being so pedantic. In order for me to understand, I need a single vocabulary to describe everything from standards to implementation. > > Goal 4: > > Not sure I understand what is the main point. Why limit ourselves to POJO > > databases? Conversely, if we can create featuretypes from inspection of an > > arbitrary JDBC data source now, why does this not carry over to POJO > > databases? Why do POJO databases require an extra abstraction layer > > instead of just a driver? I'm not sure I "get it" enough to ask anything > > intelligent. > > > OK - there are two kinda non-obvious reasons for this - one is that its > a separate set of business goals that shares the need for operations > etc, but also because we I hope can make POJOs to implement coverage > operations and inject them using this mechanism, allowing us to extend > the types of coverages supported. All right. I think I see. Reading the proposal again, it looks like you want to write an adapter between the new feature model and the Hibernate introspection mechanism? I had an idea like this long ago, only the adapters I had in mind were between the new feature model and... + EMF + standard Java Beans Introspection I think everyone can coexist happily. My question is where does this fit in the big picture? Are these really separate adapters or data source plugins? > > Goal 5: > > Unsure as to the proposal. Is this an addition to a WFS which basically > > allows the server to "cascade" to a WCS? Are we trying to wrap the bare > > bones raster data with GML representative of a Feature possessing the > > characteristics of a 19123 Coverage? > yes How far does this extend? For instance, do you intend to generate GML which indicates the presence of Coverage operations, or are these operations assumed to be present since you're describing a coverage. Also, do you intend to advertise the operations which are specified in 19123, or the operations which are actually implemented in a WCS, and therefore available? > > Should we also consider repackaging > > the whole shootin' match into GML: each returned pixel/grid cell gets its > > own record in the returned GML (or shapefile)? In ISO speak, someone might > > want to treat DiscreteGridPointCoverage data as if it were a plain > > DiscreteCoverage. > > > we might want to, but at the moment I have seen no strong drivers for > this. But we do want to shift the rest of the metadata about coverages > through processing chains. The coverage schema itself is pretty light on metadata and heavy on operations. Are you talking mainly about exposing the Domain and Range associations (WCS: domainSet; rangeSet from describeCoverage)? Also, what counts as coverage (as opposed to server) metadata? In terms of CRS, do you count only the native CRS of the coverage, or all the CRSes that the server will reproject to? The last one almost seems like server metadata to me. But of course, how you look at it depends on what you're using the metadata for. > > Goal 6: > > This is the Holy Grail! I know exactly whazzup with this one! For some > > thoughts on how vertical/temporal subsetting may be handled, see the > > analysis of WMS 1.3.0 on the Multidimensional WCS page. They've provided > > for this functionality. ( > > http://docs.codehaus.org/display/GEOS/Multidimensional+WCS) Perhaps future > > versions of WMS/WFS will adopt the same strategy? I'm not sure you're > > going to be able to use a WFS to query a WCS based on the grid cell values > > unless you adopt a cascading mentality. The WFS is going to have to hide > > the WCS entirely, and can't just include a link so the user can get the > > data directly. > > > I think I agree - WCS 1.0 can be used only for subsetting a small > subclass of coverage types we might enable. Maybe a WCS 2.0+ will be > more flexible one day. 19123 allows queries by values in the range, but does not allow anything so flexible as the Filter deal. You can provide one tuple of range values and it'll return all the "matches", where the coverage decides what is meant by a "match". No expressions allowed. Although I can certainly see that it would be useful to provide an implementation where you could set a filter on a coverage, then from that point on, "evaluateInverse" obeyed the filter. Let me see...I just looked up what you can do with WCS 1.0 and the spec confuses me. Can anyone explain the optional _PARAMETER_ argument to GetCoverage to me? My issue is that the examples in Table 9 on Page 32 seem contradictory. "band=1,3,5" means return only the data in bands 1, 3, and 5; but "age=0/18" means return only those points where the value of the "age" field is between 0 and 18? Which is it, an index into a "range vector" or limits on the values in one particular element of that vector? I think this makes a difference as to whether you can just provide a URL for the user to go get the data themselves or not. > > One minor point: if it's served by a WCS, it's a discrete grid point > > coverage. No continuous coverages are served over the net. > > > But we want to free ourselves of this very arbitrary limitation. Without > having to redefine WCS, by using WFS which is perfectly capable, if we > can invoke operations. When I said this, I think my mindset was that continuous coverages must be discreteized before they can be served. Once this happens, they're no longer continuous. Perhaps it would be better to say that all WCS-served data are the result of an evaluate() operation applied to each point on a regular grid in the domain. This is a sampling of the coverage and not the coverage itself. :) In terms of coverage IO, I think all coverages on disk are going to be initially represented with DiscreteGridPointCoverages. If someone wants to interpolate, I think it logical to provide a constructor to ContinuousQGC which takes a DiscreteGPC as an initializer. Coffee. Need. Coffee. 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 Geotools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel