<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hi all,</p>
<p>introducing (outing) myself as the coverage standard / WCS
editor. <br>
</p>
To avoid the problems that other standards have with axis order,
coverages contain the axis order explicitly, in the axisLabels
attribute. Here an example:<br>
<br>
<gml:Envelope
srsName=<a class="moz-txt-link-rfc2396E" href="http://www.opengis.net/def/crs/EPSG/0/4326">"http://www.opengis.net/def/crs/EPSG/0/4326"</a> <b>axisLabels="Lat
Long"</b> uomLabels="deg deg" srsDimension="2"><br>
<gml:lowerCorner>1 1</gml:lowerCorner><br>
<gml:upperCorner>3 10</gml:upperCorner><br>
</gml:Envelope><br>
<br>
The sequence in axisLabels is indicative. So it is not necessary to
use GridFunctions for this purpose. My personal opinion is that such
mechanisms are not optimal for fiddling with coordinate positions as
they make it unnecessarily difficult to determine the final pixel
position. This seems to be the case here as well. <br>
<br>
On a side note, GMLCOV (aka CIS) 1.0 carries along some burden from
GML, the price for backwards compatibility. CIS 1.1 (just adopted)
introduces a more orthogonal coverage model in addition [1]. Among
others, it allows a very explicit modelling of the coordinate axes -
see the examples.<br>
<br>
You may want to take notice of the public Coverages.DWG OGC Wiki
[2], we try to provide useful information, and feedback / questions
are possible, too.<br>
<br>
HTH,<br>
Peter<br>
<br>
PS: I wonder why nobody just asked earlier by contacting me, or some
list like the (open) coverages.dwg list [3].<br>
<br>
[1]
<a class="moz-txt-link-freetext" href="http://external.opengeospatial.org/twiki_public/pub/CoveragesDWG/CoveragesBigPicture/cis_1-1.zip">http://external.opengeospatial.org/twiki_public/pub/CoveragesDWG/CoveragesBigPicture/cis_1-1.zip</a><br>
[2]
<a class="moz-txt-link-freetext" href="http://external.opengeospatial.org/twiki_public/CoveragesDWG/WebHome">http://external.opengeospatial.org/twiki_public/CoveragesDWG/WebHome</a><br>
[3] <a class="moz-txt-link-freetext" href="https://lists.opengeospatial.org/mailman/listinfo/coverages.wg">https://lists.opengeospatial.org/mailman/listinfo/coverages.wg</a><br>
<br>
<br>
<br>
<div class="moz-cite-prefix">On 04/03/2017 02:32 PM, Rahkonen Jukka
(MML) wrote:<br>
</div>
<blockquote
cite="mid:5c7f1db772a34b96aeb11c26c21e7878@C119S212VM022.msvyvi.vaha.local"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
span.Shkpostityyli17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 2.0cm 70.85pt 2.0cm;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:749354362;
mso-list-type:hybrid;
mso-list-template-ids:-1754501476 572559726 67829763 67829765 67829761 67829763 67829765 67829761 67829763 67829765;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:Calibri;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Cross posting intentionally. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">TL;DR<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Long story:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Not surprisingly my pain
started from latitude-longitude or Northing-Easting axis
order of some coordinate systems. The GDAL source code in
<a moz-do-not-send="true"
href="https://trac.osgeo.org/gdal/browser/trunk/gdal/gcore/gdaljp2metadata.cpp">https://trac.osgeo.org/gdal/browser/trunk/gdal/gcore/gdaljp2metadata.cpp</a>
is prepared to handle georeferencign by looking at<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
lang="EN-US"><span style="mso-list:Ignore">-<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US">grid
origin<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
lang="EN-US"><span style="mso-list:Ignore">-<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US">offset
vectors<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
lang="EN-US"><span style="mso-list:Ignore">-<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span lang="EN-US">EPSG
database for handling the coordinate axis order in GML<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">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"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><gml:coverageFunction><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><gml:GridFunction><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><gml:sequenceRule
axisOrder="+2 +1">Linear</gml:sequenceRule><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><gml:startPoint>0
0</gml:startPoint><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"></gml:GridFunction><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"></gml:coverageFunction><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a></pre>
</blockquote>
<br>
<pre class="moz-signature" cols="80">--
Dr. Peter Baumann
- Professor of Computer Science, Jacobs University Bremen
<a class="moz-txt-link-abbreviated" href="http://www.faculty.jacobs-university.de/pbaumann">www.faculty.jacobs-university.de/pbaumann</a>
mail: <a class="moz-txt-link-abbreviated" href="mailto:p.baumann@jacobs-university.de">p.baumann@jacobs-university.de</a>
tel: +49-421-200-3178, fax: +49-421-200-493178
- Executive Director, rasdaman GmbH Bremen (HRB 26793)
<a class="moz-txt-link-abbreviated" href="http://www.rasdaman.com">www.rasdaman.com</a>, mail: <a class="moz-txt-link-abbreviated" href="mailto:baumann@rasdaman.com">baumann@rasdaman.com</a>
tel: 0800-rasdaman, fax: 0800-rasdafax, mobile: +49-173-5837882
"Si forte in alienas manus oberraverit hec peregrina epistola incertis ventis dimissa, sed Deo commendata, precamur ut ei reddatur cui soli destinata, nec preripiat quisquam non sibi parata." (mail disclaimer, AD 1083)
</pre>
</body>
</html>