#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)
Change History (16)
follow-up: 2 comment:1 by , 16 years ago
Cc: | added; removed |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 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 , 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 , 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 , 16 years ago
Cc: | 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 , 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 , 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 , 16 years ago
Cc: | 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 , 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 , 16 years ago
Cc: | added |
---|
Fixed. Decided to use timeposition as a list and leverage msOWSPrintEncodeMetadataList().
- in trunk/mapserver (r7635)
- in trunk/docs (r7636) (manually, but this should be synced with the Plone docs)
- in http://mapserver.gis.umn.edu/docs/howto/wcs_server (manually, but this should be synched with svn trunk/docs/
Norm: can you test and verify?
follow-up: 15 comment:14 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
by , 15 years ago
Attachment: | mapwcs.c.patch added |
---|
comment:15 by , 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
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?