Cross posting intentionally.

TL;DR

I wonder if all projects under the OSGeo umbrella, starting from GDAL and 
Geoserver, could make a common agreement on not to use GridFunctions in GML 
coverages if they are not strictly needed. The other alternative would be to 
make all projects to support GML gridFunctions, and do it right.

Long story:

I have been trying to understand how GML coverages are used in JPEG 2000 and in 
WCS services.  So far I have understood that coverages can be very complex and 
GMLCOV and next generation CIS specifications are complex so that even the most 
nasty coverage types can be modelled. What seems to be missing from the 
specifications is a simple and unified way to model simple coverages, like 
orthophotos.
Not surprisingly my pain started from latitude-longitude or Northing-Easting 
axis order of some coordinate systems. The GDAL source code in 
https://trac.osgeo.org/gdal/browser/trunk/gdal/gcore/gdaljp2metadata.cpp is 
prepared to handle georeferencign by looking at

-          grid origin

-          offset vectors

-          EPSG database for handling the coordinate axis order in GML

At least in this place GDAL does not seem to be prepared in seeing 
gridFunctions which are defined in GML 3.2.1. With GridFunction it is possible 
to slide the starting point of the coverage with "startPoint", change the order 
and direction of grid axes with "axisOrder" and define weird sequences for data 
points "Linear"/"Boustrophedonic"/"Cantor-diagonal"/"Spiral"/"Morton"/"Hilbert"

With orthophoto coverages I believe that all cases could be handled with the 
default gridFunctions: startPoint at gml:Low, axisOrder +1 +2, sequence rule 
"Linear". As far as I have understood GDAL trusts that this is also what the 
other partners do. However, it seems that GeoServer developers have decided to 
handle the latitude-longitude axis flip in WCS 2.0.1 by changing the order of 
grid axis with a function instead of writing the offsetVectors to suit with the 
default +1 +2 axis order.

<gml:coverageFunction>
<gml:GridFunction>
<gml:sequenceRule axisOrder="+2 +1">Linear</gml:sequenceRule>
<gml:startPoint>0 0</gml:startPoint>
</gml:GridFunction>
</gml:coverageFunction>

-Jukka Rahkonen-
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to