<div dir="ltr"><div><div>Hi,<br><br>Thanks for the script. It works fine except for the actual data (elevation in my case, this is a DEM).<br></div>It does not write the correct values.<br><br></div>Merci<br><br>Denis<br><br>
<div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Nov 9, 2013 at 8:02 PM, Even Rouault <span dir="ltr"><<a href="mailto:even.rouault@mines-paris.org" target="_blank">even.rouault@mines-paris.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le samedi 09 novembre 2013 10:46:20, denis cohen a écrit :<br>
<div class="im">> Hello,<br>
><br>
> I am a new user of gdal.<br>
> I used gdal_translate to convert a netcdf file to xyz:<br>
> gdal_translate -of XYZ <a href="http://file.nc" target="_blank">file.nc</a> file.xyz<br>
><br>
> However, the xyz file starts with the upperleft coordinate.<br>
> Is it possible to have it write the xyz file starting with the lower left<br>
> coordinate?<br>
<br>
</div>Not directly although it wouldn't be complicated to add an option to do that.<br>
<br>
You can try the following GDAL Python script that will create an intermediary<br>
TIFF image that has both inverted georeferencing and imagery in a consistant<br>
way.<br>
<br>
python invert.py <a href="http://file.nc" target="_blank">file.nc</a> file_reserved.tif<br>
gdal_translate -of XYZ file_reversed.tif file.xyz<br>
<br>
<br>
----- Begin of script invert.py ------<br>
<br>
# -*- coding: utf-8 -*-<br>
import sys<br>
from osgeo import gdal<br>
<br>
src_ds = gdal.Open(sys.argv[1])<br>
xsize = src_ds.RasterXSize<br>
ysize = src_ds.RasterYSize<br>
bandcount = src_ds.RasterCount<br>
out_drv = gdal.GetDriverByName('GTiff')<br>
out_ds = out_drv.Create(sys.argv[2], xsize, ysize, bandcount)<br>
out_ds.SetProjection(src_ds.GetProjectionRef())<br>
src_gt = src_ds.GetGeoTransform()<br>
out_gt = [ src_gt[i] for i in range(6) ]<br>
out_gt[3] = src_gt[3] + ysize * src_gt[5]<br>
out_gt[5] = -src_gt[5]<br>
out_ds.SetGeoTransform(out_gt)<br>
for j in range(src_ds.RasterYSize):<br>
    data = src_ds.ReadRaster(0, ysize - 1 - j, xsize, 1)<br>
    out_ds.WriteRaster(0, j, xsize, 1, data)<br>
out_ds = None<br>
src_ds = None<br>
<br>
----- End of script ------<br>
<br>
Even<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Geospatial professional services<br>
<a href="http://even.rouault.free.fr/services.html" target="_blank">http://even.rouault.free.fr/services.html</a><br>
</font></span></blockquote></div><br></div></div></div></div></div>