Opened 20 years ago
Closed 20 years ago
#803 closed defect (fixed)
Multiple WCS Issues
Reported by: | sdlime | Owned by: | sdlime |
---|---|---|---|
Priority: | high | Milestone: | |
Component: | WCS Server | Version: | 4.3 |
Severity: | normal | Keywords: | |
Cc: |
Description
I suppose I should file a bug for each one, but since Martin sent one big message I'll create one big bug. Martin's original message is below. To date only the temporal extent without bbox issue is fixed. Others soon. Steve Original message: Steve, We have had some success with the MapServer WCS implementation, but have come unstuck with the result of GetCoverage. I have attached a ZIP file of a WCS-generated TIFF file that we cannot read. We cannot read this because libtiff cannot read it. Libtiff cannot read it because the "SamplesPerPixel" values are not identical for each band in the TIFF. We get the same error from gdalinfo (1.1.9). I've copied this to Frank. Also, there are some other smaller issues that we have noticed. 1. Image Format MapServer can't supply images in GEOTIFF_16BIT format even though the format is advertised in the DescribeCoverage document as follows: http://maps.dnr.state.mn.us:80/cgi-bin/mapserv43?map=/usr/local/www/docs/mapserver_demos/wcs/demo.map&REQUEST=DescribeCoverage&SERVICE=WCS&VERSION=1.0.0&COVERAGE=modis This GetCoverage request for GEOTIFF_16BIT format fails: http://maps.dnr.state.mn.us:80/cgi-bin/mapserv43?map=/usr/local/www/docs/mapserver_demos/wcs/demo.map&SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=modis&CRS=EPSG:26915&BBOX=159707,4597900,1400210,5501400&bands=1&WIDTH=2480&HEIGHT=1806&FORMAT=GEOTIFF_16BIT&EXCEPTIONS=application/vnd.ogc.se_xml 2. WCS Specification Conformance 2.1 VERSION NUMBER NEGOTIATION From the spec: "b) If a version unknown to the server is requested, the server must send the highest version it knows that is less than the requested version." Requesting version 500 from MapServer causes it to return a capabilities document for version 500. 2.2. TEMPORAL QUERIES: Doesn't support querying by Time attribute without a BBOX. From the spec again: "A GetCoverage request must include a valid BBOX(above), or TIME, or both" Error message generated: msWCSGetCoverage(): WCS server error. Required parameter BBOX missing or specifies an empty region. Query by Time and BBOX works OK: http://maps.dnr.state.mn.us/cgi-bin/mapserv43?map=/usr/local/www/docs/mapserver_demos/wcs/demo.map&SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=modis&CRS=EPSG:26915&BBOX=159707,4597900,1400210,5501400&TIME=2002-001&bands=1&WIDTH=2480&HEIGHT=1806&FORMAT=GEOTIFF_RGB&EXCEPTIONS=application/vnd.ogc.se_xml The same query using specifying only the Time parameter generates a ServiceExceptionReport: http://maps.dnr.state.mn.us/cgi-bin/mapserv43?map=/usr/local/www/docs/mapserver_demos/wcs/demo.map&SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=modis&CRS=EPSG:26915&TIME=2002-001&bands=1&WIDTH=2480&HEIGHT=1806&FORMAT=GEOTIFF_RGB&EXCEPTIONS=application/vnd.ogc.se_xml 2.3. 'NOW' keyword MapServer doesn't recognise the use of the keyword 'now' to request the most recent data (9.2.2.8 last sentence): http://maps.dnr.state.mn.us/cgi-bin/mapserv43?map=/usr/local/www/docs/mapserver_demos/wcs/demo.map&SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=modis&CRS=EPSG:26915&BBOX=159707,4597900,1400210,5501400&TIME=now&bands=1&WIDTH=2480&HEIGHT=1806&FORMAT=GEOTIFF_RGB&EXCEPTIONS=application/vnd.ogc.se_xml 3. XML Validation (We use Xerces for XML parsing, which appears to be the strictest parser on the planet. We can work around these by switching off validation.) 3.1. GetCapabilities document does not validate against the wcsCapabilities schema. Error: Element 'VendorSpecificCapabilities' is not valid for content model: '(,)' Problem: empty <VendorSpecificCapabilities/> element. Solution: Should either have content from any known namespace, or the VendorSpecificCapabilites element is optional so can be omitted. The DescribeCoverage request: http://maps.dnr.state.mn.us/cgi-bin/mapserv43?map=/usr/local/www/docs/mapserver_demos/wcs/demo.map&REQUEST=DescribeCoverage&SERVICE=WCS&VERSION=1.0.0&COVERAGE=modis Generates the following Xerces validation errors: XML error at line 75, column 18: Element 'AxisDescription' is not valid for content model: '((metadataLink,description),name,label,,axisDescription,nullValues)' XML error at line 39, column 53: Datatype error: Type:InvalidDatatypeFacetException, Message: Invalid chars encountered.. XML error at line 40, column 54: Datatype error: Type:InvalidDatatypeFacetException, Message: Invalid chars encountered.. XML error at line 75, column 18: Element 'AxisDescription' is not valid for content model: '((metadataLink,description),name,label,,axisDescription,nullValues)' We haven't looked further into these, but guess that the first and last are to do with the difference in case between "AxisDescription" and "axisDescription", XML elements being case-sensitive. Regards, Martin
Change History (8)
comment:2 by , 20 years ago
Cc: | added |
---|
comment:3 by , 20 years ago
I have confirmed that the WCS service was reporting it had GEOTIFF_16BIT, but internally (via the OUTPUTFORMAT directive) it should be GEOTIFF_INT16. The basic problem seems to be that there is no validation that the formats listed in wcs_formats metadata match a format declared in an OUTPUTFORMAT directive or an internally available one. Steve, would you mind if I threw an error in DescribeCoverage if the wcs_formats listed format don't exist? Or should I just emit a warning comment into the DescribeCoverage results? Or what?
comment:4 by , 20 years ago
Changed <AxisDescription> to <axisDescription> to match schema (apparently). Change committed to 4.3 CVS tree.
comment:5 by , 20 years ago
I created a skeletal function to validate input against a list but didn't flesh it out. There are several other instances where is could be used: format and discrete times are examples. Were you thinking of a general solution or did you have something specific in mind? Steve
comment:6 by , 20 years ago
I read this closer, the problem is that the metadata is bad. Yikes, I think that should throw an error so that a developer can fix it before publishing the service. Steve
comment:7 by , 20 years ago
I believe the axisDescription problem is fixed. I read that is should be: <axisDescription> <AxisDescription ...> ...and so on... Tom K. pointed that out. Not sure why the redundancy. Steve
comment:8 by , 20 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I'm going to close this. Everything but the 'NOW' time query has been fixed. I'll open a new bug for just that one. Steve
Note:
See TracTickets
for help on using tickets.