WCS coverage contents discussion in Bonn: followup

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 properties

Actually 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

  • 2005 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the galeon archives: