[gdal-dev] GeoTIFF in South Africa
Javier Jimenez Shaw
j1 at jimenezshaw.com
Fri Sep 26 02:01:14 PDT 2025
$ listgeo sa.tif
Geotiff_Information:
Version: 1
Key_Revision: 1.0
Tagged_Information:
ModelTiepointTag (2,3):
0 0 0
-43632.85501 -3629566.02205 0
ModelPixelScaleTag (1,3):
0.27582675862069 0.275760660066007 0
End_Of_Tags.
Keyed_Information:
GTModelTypeGeoKey (Short,1): ModelTypeProjected
GTRasterTypeGeoKey (Short,1): RasterPixelIsArea
GTCitationGeoKey (Ascii,24): "Hartebeesthoek94 / Lo21"
GeogCitationGeoKey (Ascii,17): "Hartebeesthoek94"
GeogAngularUnitsGeoKey (Short,1): Angular_Degree
ProjectedCSTypeGeoKey (Short,1): Code-2049 (Hartebeesthoek94 / Lo21)
ProjLinearUnitsGeoKey (Short,1): Linear_Meter
End_Of_Keys.
End_Of_Geotiff.
PCS = 2049 (Hartebeesthoek94 / Lo21)
Projection = 17521 (South African Survey Grid zone 21)
Projection Method: CT_TransvMercator_SouthOrientated
ProjNatOriginLatGeoKey: 0.000000 ( 0d 0' 0.00"N)
ProjNatOriginLongGeoKey: 21.000000 ( 21d 0' 0.00"E)
ProjScaleAtNatOriginGeoKey: 1.000000
ProjFalseEastingGeoKey: 0.000000 m
ProjFalseNorthingGeoKey: 0.000000 m
GCS: 4148/Hartebeesthoek94
Datum: 6148/Hartebeesthoek94
Ellipsoid: 7030/WGS 84 (6378137.00,6356752.31)
Prime Meridian: 8901/Greenwich (0.000000/ 0d 0' 0.00"E)
Projection Linear Units: 9001/metre (1.000000m)
Corner Coordinates:
proj_create: unrecognized format / unknown name
Upper Left ( -43632.855,-3629566.022)
proj_create: unrecognized format / unknown name
Lower Left ( -43632.855,-3629816.688)
proj_create: unrecognized format / unknown name
Upper Right ( -43272.901,-3629566.022)
proj_create: unrecognized format / unknown name
Lower Right ( -43272.901,-3629816.688)
proj_create: unrecognized format / unknown name
Center ( -43452.878,-3629691.355)
(the pixel sizes are not exactly equal because this is a downscaled version
(10%). The original file had same pixel sizes.
Both use CT_TransvMercator_SouthOrientated)
The actual original file, in case it helps listed this
Geotiff_Information:
Version: 1
Key_Revision: 1.0
Tagged_Information:
ModelTiepointTag (2,3):
0 0 0
-43632.85501 -3629566.02205 0
ModelPixelScaleTag (1,3):
0.02757 0.02757 0
End_Of_Tags.
Keyed_Information:
GTModelTypeGeoKey (Short,1): ModelTypeProjected
GTRasterTypeGeoKey (Short,1): RasterPixelIsArea
GTCitationGeoKey (Ascii,24): "Hartebeesthoek94 / Lo21"
GeogCitationGeoKey (Ascii,17): "Hartebeesthoek94"
GeogAngularUnitsGeoKey (Short,1): Angular_Degree
ProjectedCSTypeGeoKey (Short,1): Code-2049 (Hartebeesthoek94 / Lo21)
ProjLinearUnitsGeoKey (Short,1): Linear_Meter
End_Of_Keys.
End_Of_Geotiff.
PCS = 2049 (Hartebeesthoek94 / Lo21)
Projection = 17521 (South African Survey Grid zone 21)
Projection Method: CT_TransvMercator_SouthOrientated
ProjNatOriginLatGeoKey: 0.000000 ( 0d 0' 0.00"N)
ProjNatOriginLongGeoKey: 21.000000 ( 21d 0' 0.00"E)
ProjScaleAtNatOriginGeoKey: 1.000000
ProjFalseEastingGeoKey: 0.000000 m
ProjFalseNorthingGeoKey: 0.000000 m
GCS: 4148/Hartebeesthoek94
Datum: 6148/Hartebeesthoek94
Ellipsoid: 7030/WGS 84 (6378137.00,6356752.31)
Prime Meridian: 8901/Greenwich (0.000000/ 0d 0' 0.00"E)
Projection Linear Units: 9001/metre (1.000000m)
Corner Coordinates:
proj_create: unrecognized format / unknown name
Upper Left ( -43632.855,-3629566.022)
proj_create: unrecognized format / unknown name
Lower Left ( -43632.855,-3629816.688)
proj_create: unrecognized format / unknown name
Upper Right ( -43272.901,-3629566.022)
proj_create: unrecognized format / unknown name
Lower Right ( -43272.901,-3629816.688)
proj_create: unrecognized format / unknown name
Center ( -43452.878,-3629691.355)
On Thu, 25 Sept 2025 at 17:50, Even Rouault <even.rouault at spatialys.com>
wrote:
> Javier,
>
> can you post the output of "listgeo sa.tif" (on the original GeoTIFF) ?
> It would be interesting to see if they correctly use the
> CT_TransvMercator_SouthOrientated ProjCoordTransGeoKey
>
> I don't remember a change that would explicily try to respect the negative
> sign of the x-pixelsize parameter in gdalwarp as those are rather
> untypical, but it might be a side effect of other changes. For those
> untypical geotransforms, QGIS will use GDAL's AutoWarpVRT functionality,
> which indeed has a runtime cost.
>
> You may generate a "correctly" oriented file by specifying explicit -te to
> gdalwarp
>
> Even
> Le 25/09/2025 à 17:24, Javier Jimenez Shaw via gdal-dev a écrit :
>
> Hi
>
> I got a GeoTIFF from South Africa that is displayed in the Mediterranean
> sea in QGIS.
>
> $ gdalinfo sa.tif
> Driver: GTiff/GeoTIFF
> Files: sa.tif
> Size is 1305, 909
> Coordinate System is:
> PROJCRS["Hartebeesthoek94 / Lo21",
> BASEGEOGCRS["Hartebeesthoek94",
> ...
> ID["EPSG",2049]]
> Data axis to CRS axis mapping: 1,2
> Origin = (-43632.855010000006587,-3629566.022050000261515)
> Pixel Size = (0.275826758620690,-0.275760660066007)
> Metadata:
> AREA_OR_POINT=Area
> TIFFTAG_SOFTWARE=pix4dmapper
> Image Structure Metadata:
> COMPRESSION=LZW
> INTERLEAVE=PIXEL
> PREDICTOR=2
>
> As you can see, the Origin is very negative, and in Lo21 it should be
> positive.
> Ok, lets change the geotransform parameters:
>
> $ gdal_translate -a_gt 43632.8550100000 -0.275760660 0 3629566.0220500 0
> 0.27576066 -co COMPRESS=LZW -co PREDICTOR=2 sa.tif sa.located.tif
> $ gdalinfo sa.located.tif
> Driver: GTiff/GeoTIFF
> Files: sa.located.tif
> Size is 1305, 909
> Coordinate System is:
> PROJCRS["Hartebeesthoek94 / Lo21",
> BASEGEOGCRS["Hartebeesthoek94",
> DATUM["Hartebeesthoek94",
> ...
> ID["EPSG",2049]]
> Data axis to CRS axis mapping: 1,2
> Origin = (43632.855009999999311,3629566.022049999795854)
> Pixel Size = (-0.275760660000000,0.275760660000000)
>
> That appears properly located in QGIS. But I think that due to the signs
> in the pixel size, it is performing really bad (it is not doing some
> optimizations)
>
> I run gdalwarp hoping that it changes it. And it does in GDAL 3.8.4
> $ gdalinfo --version
> GDAL 3.8.4, released 2024/02/08
> $ gdalwarp sa.located.tif sa.cog.3.8.4.tif -of COG
> $ gdalinfo sa.cog.3.8.4.tif
> Driver: GTiff/GeoTIFF
> Files: sa.cog.3.8.4.tif
> Size is 1305, 909
> Coordinate System is:
> PROJCRS["Hartebeesthoek94 / Lo21",
> BASEGEOGCRS["Hartebeesthoek94",
> ID["EPSG",2049]]
> Data axis to CRS axis mapping: 1,2
> Origin = (43272.987348700000439,3629816.688489940017462)
> Pixel Size = (0.275760660000079,-0.275760660000079)
>
> See how it changes the origin and the signs of the pixel size
>
> However in 3.11.4 it is different
>
> $ gdalinfo sa.cog.3.11.4.tif
> Driver: GTiff/GeoTIFF
> Files: sa.cog.3.11.4.tif
> Size is 1305, 909
> Coordinate System is:
> PROJCRS["Hartebeesthoek94 / Lo21",
> BASEGEOGCRS["Hartebeesthoek94",
> ...
> ID["EPSG",2049]]
> Data axis to CRS axis mapping: 1,2
> Origin = (43632.855009999999311,3629816.688489940017462)
> Pixel Size = (-0.275760660000000,-0.275760660000000)
>
> Having the negative pixel size for the first coordinate is affecting the
> performance in QGIS?
>
> Is there a better way to do all this?
>
> Thank you,
> Javier
>
> _______________________________________________
> gdal-dev mailing listgdal-dev at lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/gdal-dev
>
> -- http://www.spatialys.com
> My software is free, but my time generally not.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20250926/43bf5ac7/attachment.htm>
More information about the gdal-dev
mailing list