Opened 16 years ago

Closed 16 years ago

Last modified 15 years ago

#2487 closed defect (fixed)

A WCS 1.0.0 server in which a layer support the time dimension does not advertize it in response to a GetCapabilities request

Reported by: nsavard Owned by: tomkralidis
Priority: normal Milestone: 5.2 release
Component: WCS Server Version: 5.0
Severity: normal Keywords: OGC, Cite, TEAM, WCS 1.0.0
Cc: sdlime, warmerdam, dmorissette, assefa, jmckenna

Description

When a coverage supports a time dimension, a WCS 1.0.0 server does not advertize it in response to a GetCapabilities document. This makes the time tests of the OGC CITE tests suite to not be triggered.

The capabilities request is: http://dev1.lan.mapgears.com/manwe/cgi-bin/mswcs100_ogc_cite?ReQuEsT=GetCapabilities&VeRsIoN=1.0.0&SeRvIcE=WCS

Attachments (1)

mapwcs.c.patch (1.1 KB ) - added by armin 15 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 by tomkralidis, 16 years ago

Cc: sdlime added; tomkralidis removed
Owner: changed from sdlime to tomkralidis
Status: newassigned

Will work on this. FYI http://schemas.opengis.net/wcs/1.0.0/wcsCapabilities.xsd does not validate in XMLSpy 2008. We need this fixed so we can further validate against the temporal Capabilities support.

Norm: can you ask CITE about this?

in reply to:  1 comment:2 by nsavard, 16 years ago

Replying to tomkralidis:

Will work on this. FYI http://schemas.opengis.net/wcs/1.0.0/wcsCapabilities.xsd does not validate in XMLSpy 2008. We need this fixed so we can further validate against the temporal Capabilities support.

Norm: can you ask CITE about this?

Tom: You and I already asked to the list about the capabilities schema not validating with no success. I'll ask again this morning.

comment:3 by nsavard, 16 years ago

Tom: I read the specification and there is no such thing as advertizing the "time" dimension. I think it is just a problem with the CITE tests that are not triggered when the time parameters are present in the first coverage.

This is what they said in the executive summary: "If the server support time position, the first coverage offering should define time feature."

comment:4 by tomkralidis, 16 years ago

FYI in http://schemas.opengis.net/wcs/1.0.0/wcsCapabilities.xsd, I think wcs:lonLatEnvelope allows for advertising of gml:timePosition.

So, if the coverage we publish has a time property, we should advertise it?

comment:5 by tomkralidis, 16 years ago

Cc: warmerdam added

Steve: can you elaborate on how we support time in WCS 1.0.0? From http://mapserver.gis.umn.edu/docs/howto/wcs_server, it looks like we support timeposition and timeperiod, but these are only placeholders in the doc for now.

Do we support single periods in time, ranges, etc.? I skimmed through mapwcs.c but thought you'd be able to articulate further.

Knowing this would help us figure out how/what we output in Capabilities XML w.r.t. time-enabled WCS Coverages.

comment:6 by sdlime, 16 years ago

We only support single time periods. A coverage can have many dates in the data, but each date represents a single point in time.

Is that what you were looking for?

The use case in my mind was a multiband dataset where each band represented a particular acquisition date. That was a common occurance with University data at the time.

Steve

comment:7 by tomkralidis, 16 years ago

So I will update the code to look for LAYER/wcs_timeperiod and use that to advertise in caps XML. Should get this done tonight.

comment:8 by tomkralidis, 16 years ago

Cc: dmorissette assefa added

Looking further into this, time is to be advertised as:

    <lonLatEnvelope srsName="urn:ogc:def:crs:OGC:1.3:CRS84">
      <gml:pos>-73.2370317663353 45.9742882841881</gml:pos>
      <gml:pos>-72.5987921127483 46.3359170807464</gml:pos>
      <gml:timePosition>START_TIME</gml:timePosition>
      <gml:timePosition>END_TIME</gml:timePosition>
    </lonLatEnvelope>

http://mapserver.gis.umn.edu/docs/howto/wcs_server shows that we support wcs_timeposition, but doesn't give details. When looking in the code, wcs_timeposition is not used for advertising in GetCapabilities output.

Seeing that two times (start time and end time) are needed, what about setting wcs_timeposition as a range, i.e.:

"wcs_timeposition" "2000-11-11T11:11:11Z/2001-11-11T11:11:11Z"

Then the code will split on the "/" and print out two gml:timePosition elements as per the schema. If wcs_timeposition is _not_ specified as a range (i.e. can't find "/") then a warning XML comment will be printed out only.

Comments?

comment:9 by tomkralidis, 16 years ago

I've implemented this fix, but now I'm wondering whether using wcs_timeposition in the abovementioned manner is the best directive to use and confused about mapwcs.c

mapwcs.c's msWCSDescribeCoverage_CoverageOffering() uses wcs_timeposition to output a list of timepositions (which may be > 2). Both GetCapabilities and DescribeCoverage response schemas expect 2 (and only 2) gml:timePosition elements.

So what's the best approach here in the format of wcs_timeposition? Have it def'd as a list of two items (seperated by spaces)? Go with my suggestion of specifying it as a range (i.e. start_time/end_time).

mapwcs.c also uses wcs_timeperiod, but only once to check for its existence.

Comments here? I wouldn't mind committing this before tomorrow's code freeze.

comment:10 by tomkralidis, 16 years ago

Cc: jmckenna added

Fixed. Decided to use timeposition as a list and leverage msOWSPrintEncodeMetadataList().

Norm: can you test and verify?

comment:11 by nsavard, 16 years ago

Tom: Yes I'll check that.

comment:12 by tomkralidis, 16 years ago

Norm: any update on this one?

comment:13 by nsavard, 16 years ago

This is fixed.

comment:14 by tomkralidis, 16 years ago

Resolution: fixed
Status: assignedclosed

by armin, 15 years ago

Attachment: mapwcs.c.patch added

in reply to:  14 comment:15 by armin, 15 years ago

Replying to tomkralidis: I added a patch that solved for me 2 problems:

1) Usage of msValidateTimeValue() for validation of requested time allows to specify the time as range like

"wcs_timeposition" "2006-05-01/2006-06-01"

2) Fix for problem with PostGIS tileindex/TIME filter, see Ticket #1856

Note: See TracTickets for help on using tickets.