Basically it seems to be an issue with interpreting "center"
directives when doing the gdal_translate. Consider:
ncols 2
nrows 2
xllcenter 0.0
yllcenter 0.0
cellsize 1.0
nodata_value -999
2 2
2 2
gdalinfo on this file, will give the expected GeoTransform:
In [2]: ds = gdal.Open("center.asc")
In [3]: ds.GetGeoTransform()
Out[3]: (-0.5, 1.0, 0.0, 1.5, 0.0, -1.0)
Seems OK to me.
If I then do a gdal_translate: gdal_translate center.asc center.tif, I
get another interpretation:
In [4]: ds = gdal.Open("center.tif")
In [5]: ds.GetGeoTransform()
Out[5]: (0.0, 1.0, 0.0, 1.0, 0.0, -1.0)
And, if I do a roundtrip: gdal_translate -of AAIGRID center.tif
center_back.asc, I get:
ncols 2
nrows 2
xllcorner 0.000000000000
yllcorner -1.000000000000
cellsize 1.000000000000
NODATA_value -999
2 2
2 2
Which is definitely not the same GeoTransform as my input center.asc,
but shifted half a cellsize from what I would expect...
In [6]: ds = gdal.Open("center_back.asc")
In [7]: ds.GetGeoTransform()
Out[7]: (0.0, 1.0, 0.0, 1.0, 0.0, -1.0)
GDAL version:
GDAL 1.11.2, released 2015/02/10
Cheers,
Simon
On Wed, Nov 18, 2015 at 9:38 PM, Simon Lyngby Kokkendorff
<sil...@gmail.com <mailto:sil...@gmail.com>> wrote:
Hi List,
I have a geoid in AAIGRID-format, with the following header:
ncols 1001
nrows 731
xllcenter 400000.0
yllcenter 6045000.0
cellsize 500.0
NODATA_value 9999
GDAL will read this just fine, and report:
Driver: AAIGrid/Arc/Info ASCII Grid
Files: dkgeoid13b.utm32
Size is 1001, 731
Coordinate System is `'
Origin = (399750.000000000000000,6410250.000000000000000)
Pixel Size = (500.000000000000000,-500.000000000000000)
Metadata:
AREA_OR_POINT=Point
Corner Coordinates:
Upper Left ( 399750.000, 6410250.000)
Lower Left ( 399750.000, 6044750.000)
Upper Right ( 900250.000, 6410250.000)
Lower Right ( 900250.000, 6044750.000)
Center ( 650000.000, 6227500.000)
Band 1 Block=1001x1 Type=Float32, ColorInterp=Undefined
NoData Value=9999
As expected, the upper left corner is shifted half a pixel. It is
my understanding, that GDAL (GetGeoTransform) always uses the
xulcorner, yulcorner (pixel) interpretation. However, I was
suprised to see that after a
gdal_translate dkgeoid13b.utm32 hello.tif, I get:
>gdalinfo hello.tif
Driver: GTiff/GeoTIFF
Files: hej.tif
Size is 1001, 731
Coordinate System is `'
Origin = (400000.000000000000000,6410000.000000000000000)
Pixel Size = (500.000000000000000,-500.000000000000000)
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 400000.000, 6410000.000)
Lower Left ( 400000.000, 6044500.000)
Upper Right ( 900500.000, 6410000.000)
Lower Right ( 900500.000, 6044500.000)
Center ( 650250.000, 6227250.000)
Band 1 Block=1001x2 Type=Float32, ColorInterp=Gray
NoData Value=99
The GeoTransform is not shifted half a pixel, and is not the same
as the AAIGRID i ran gdal_translate on?? So, I would have to
interpret now the GeoTransform as xulcenter and yulcenter. This
came as a suprise, and led to some bugs in our processing software.
Is this to be expected??
Cheers,
Simon Kokkendorff
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev