<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span>Even,</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span><br>
</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
That confirms my suspicious. The NetCDF driver is fine and there is nothing to be added or changed.</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span style="display: inline !important; background-color: rgb(255, 255, 255); font-size: 11pt; font-size-adjust: none">> The products are not self consistent if you consider the crs:GeoTransform property,</span><br style="color: rgb(32, 31, 30); font-family: &quot; font-size: 14.66px">
<span style="display: inline !important; background-color: rgb(255, 255, 255); font-size: 11pt; font-size-adjust: none">> the documentation of the product and the actual values of the lon, lat arrays</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span style="display: inline !important; background-color: rgb(255, 255, 255); font-size: 11pt; font-size-adjust: none">> ...</span></div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<span style="display: inline !important; background-color: rgb(255, 255, 255); font-size: 11pt; font-size-adjust: none">> I think clarification should be sought after the data producer to find:</span><br style="color: rgb(32, 31, 30); font-family: &quot; font-size: 14.66px">
<span style="display: inline !important; background-color: rgb(255, 255, 255); font-size: 11pt; font-size-adjust: none">> - what is the intended registration of their product ?</span><br style="color: rgb(32, 31, 30); font-family: &quot; font-size: 14.66px">
<span style="display: inline !important; background-color: rgb(255, 255, 255); font-size: 11pt; font-size-adjust: none">> - and that they fix either their GeoTransform or their lon, lat arrays to be consistent.</span><br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
I completely agree with you. I will pass that information to the data provider costumer services.</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Thanks,</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
Ivan</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif; font-size: 12pt;">
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Even Rouault <even.rouault@spatialys.com><br>
<b>Sent:</b> Sunday, November 3, 2019 4:45 PM<br>
<b>To:</b> gdal-dev@lists.osgeo.org <gdal-dev@lists.osgeo.org><br>
<b>Cc:</b> Ivan Lucena <ivan.lucena@outlook.com>; Andrew C Aitchison <andrew@aitchison.me.uk>; Richard Duivenvoorde <rdmailings@duif.net><br>
<b>Subject:</b> Re: [gdal-dev] NetCDF and ESA Probav issue with corner coordimates</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">> Some formats have a pretty good easy way of telling which way to go about<br>
> upperleft or center pixel coordinate. But that is not the case with<br>
> "flexible" formats like the ones above. <br>
<br>
The CF conventions apply here. Also that<br>
<a href="http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/cf-conventions.html">http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/cf-conventions.html</a><br>
says is<br>
"If bounds are not provided, an application might reasonably assume the gridpoints<br>
to be at the centers of the cells, but we do not require that in this standard."<br>
And that's what GDAL does. It assumes that the values of the lat, lon variables<br>
are center of cells coordinates, hence the half pixel shift to go back to GDAL<br>
topleft corner convention<br>
 <br>
> What is interesting in that case is that one can say that according to the<br>
> documentation the driver is correct. The -180,80 coordinate is in the<br>
> center of the pixel. But when putting that date to real use, that seems to<br>
> be incorrect.<br>
<br>
The products are not self consistent if you consider the crs:GeoTransform property,<br>
the documentation of the product and the actual values of the lon, lat arrays<br>
<br>
ncdump shows:<br>
        lon = 120960 ;<br>
<br>
                crs:GeoTransform = "-180.0000000000 0.0029761905 0.0 80.0000000000 0.0 -0.0029761905" ;<br>
<br>
                 lon = -180, -179.997023809524, ... , 179.994047620685, 179.997023811161<br>
<br>
Normally in GDAL, the GeoTransform origin is the topleft corner, not the pixel center.<br>
<br>
I think clarificiation should be sought after the data producer to find:<br>
- what is the intended registration of their product ?<br>
- and that they fix either their GeoTransform or their lon, lat arrays to be consistent.<br>
<br>
> The half pixel shift grows as you go<br>
> east.<br>
<br>
I don't get this. The spacing of values in the lon array seems constant, so the shift<br>
if any should also be constant.<br>
 <br>
> If I have some time, I will try to run the NetCDF driver in step-by-step<br>
> debugging mode to see exactly how the crs:GeoTransform is (mis)handled.<br>
<br>
The logic of the driver is to use the GeoTransform if it can derive one from the lon, lat<br>
variables. See<br>
<a href="https://github.com/OSGeo/gdal/blob/master/gdal/frmts/netcdf/netcdfdataset.cpp#L3776">https://github.com/OSGeo/gdal/blob/master/gdal/frmts/netcdf/netcdfdataset.cpp#L3776</a><br>
<br>
Even<br>
<br>
-- <br>
Spatialys - Geospatial professional services<br>
<a href="http://www.spatialys.com">http://www.spatialys.com</a><br>
</div>
</span></font></div>
</body>
</html>