NOTE: The galeon
mailing list is no longer active. The list archives are made available for historical reasons.
Dear all, as I had threatened ;-) here comes an update of the WCS coverage result spec, based on our Bonn discussion:
- spatial subsetting: transformation of the request bbox to the native bbox may not be a bbox any more; - consequence: may need pixels "thrown away" during subsetting for proper resampling (need 2x subsetting in response description? personal note: hopefully not!)
Note: Honestly, this is confusing for a naive reader - we have a "native" CRS of the coverage which is not explicitly mentioned (that's fine); we have a request CRS; we have a target CRS. Maybe we should explain this CRS mechanism somewhere? To accommodate this issue (thanks Ionic and USGS!) I have put reprojection to the very beginning. Although this probably is the least efficient sequencing in practice, it conceptually eases understanding for the nonexpert: all subsequent operations are carried out in the target CRS. And it avoids introducing 2x subsetting. Further, as it stands there is considerable influence from the null values; in my draft I have assumed the null value semantics as outlined below in my proposal, to be explicit: the description actually relies on this semantics.
- null value available for use by GetCoverage evaluation? (-> look into GetCoverage request spec and GetCap response spec)
Results from looking into WCS 1.0 Corrigendum: - NullValues appear to be part of the CoverageOffering, so they are advertised & we can make use of them. - I don't like the NullValues section at all, here it is: --- snip --- NullValues An important part of a range set description is the representation of null value(s) in the coverage. The coverage encoding itself may specify a fixed value for null (e.g. "-99999" or "N/A"), but more often the choice is up to the provider and must be communicated to the client outside of the coverage itself. This is the purpose of the optional NullValues element, whose structure is depicted in Figure 15. NullValues is structured and interpreted exactly like the values element in AxisDescription (see Subclause 8.3.3.2.2). --- snip --- In WCS 1.1 this text has moved into a footnote of Table 19, so its normative character is unclear to me. Let me propose to reinstantiate the null values section, given its importance. Issues: - we need just one null value per coverage, as opposed to the intervals allowed by AxisDescription - otherwise I guess about every client will be in despair. Let me propose to have a definition separate from AxisDescription. - what is "N/A"? "not applicable", likely - but what is the consequence? Does this value have normative character = every implementation must support it? How is it XML-encoded when only numeric parameters are admissible? - what is the "interpretation" in the 2nd para? - for the coverage evaluation it may be nice to have a word on the interpretation of any null value during response calculation. admittedly this will be redundant if we add the response description under preparation by me, but it wouldn't be the only place to be so, and I feel it adds some clarity. TODO: UnNamedDomainType in owsCOmmon In particular I don't like this one: "[the null values] must be communicated to the client outside of the coverage itself". IMHO the null value is an important characteristics essential for proper data interpretation & further processing, and hence must be part of any coverage description, be it advertised as in GetCap or derived as in GetCov. enough whining - here my proposal for reintroducing the NullValue section: --- snip --- NullValues Each coverage has an optional NullValue associated. When present, the NullValue denotes a reserved value of the coverage's range which shall be assigned to grid cells bearing no meaningful value. If the NullValue is missing then all possible values of the coverage's range shall be considered meaningful. Null values can eventually be involved in some arithmetics during preparation of a GetCoverage response when any of scaling, resampling, reprojection, or interpolation take place. During evaluation of said operations, a WCS server must ignore null values in its computations as long as there is at least one non-null value available for determining ; if all ingredient values needed for deriving the new value are null, then the result value shall be null too. --- snip --- Further I propose to add a NullValue element also to the GetCoverage result.
- change in (spec + my doc) text: "scaling" -> "sampling"
hm, looking at it again I feel that "sampling" may be less intuitive to the reader. What about "scaling and resampling"? I have rephrased it like that so that you can cath the flavour & comment.
- change in (spec + my doc) text: "interpolation" -> "spatial interpolation"
done.
- time subsetting and interpolation: needs further discussion
- temporal subsetting: * we had the question: what is the resulting coverage like if, in the area selected spatiotemporally, the original coverage didn't have values / had null values? Meantime I think this is not a problem particular to the time axis, so I don't any longer feel the need for separate explanations. * for reasons of symmetry and functionality let me propose to add a grid selection mechanism for temporal subsetting, as it exists for spatial subsetting. I have added a change request. - temporal interpolation has been excluded, so nothing to do.
- add text about time axis propertiesActually we see from the above that (i) the CRS switching and (ii) time axis handling are central issue which need more attention.
So much for the current status. To better draw attention on the important issues I have split the Change Request Section into editorial and semantics. As always, I appreciate your comments / criticism / suggestions. regards, Peter -- Dr. Peter Baumann - Professor of Computer Science, International University Bremen www.faculty.iu-bremen.de/pbaumann, mail: p.baumann@xxxxxxxxxxxx tel: +49-421-200-3178, fax: +49-421-200-49-3178 - Executive Director, rasdaman GmbH www.rasdaman.com, mail: baumann@xxxxxxxxxxxx tel: +49-89-67000146, fax: -67000147, mobile: +49-173-5837882 "A brilliant idea is a job halfdone."
Attachment:
WCS-result-spec_v3.doc
Description: MS-Word document
galeon
archives: