[gdal-dev] GTiff format does not preserve WKT EXTENSION nodes?

Etienne Tourigny etourigny.dev at gmail.com
Fri Dec 2 08:31:13 EST 2011


Hi all,

I have been trying to override the MODIS WKT definition (derived from
the source HDF4 files using gdal_translate), which apparently is not
sufficient for correct transformations.
The correct srs is  '+proj=sinu +R=6371007.181 +nadgrids=@null
+wktext', whereas the one stored in GTiff files is '+proj=sinu
+lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs
'

I tried to override the projection ref with gdal_translate, but the
resulting file (in GTiff format) does not keep the EXTENSION nodes.

Examples below.

Is this a limitation of GTiff format that cannot be fixed?  Is there
another format (except VRT) that can keep EXTENSION nodes?
The workaround is to override the SRS with -s_srs='...' when a
transformation is needed, but it would be better if the file itself
could store that information.

thanks,
Etienne

$ gdal_translate  -a_srs '+proj=sinu +R=6371007.181 +nadgrids=@null
+wktext' MCD12Q1.IGBP.h11v07.2002.tif tmp2.tif

$ gdalsrsinfo tmp2.tif

PROJ.4 : '+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181
+b=6371007.181 +units=m +no_defs '

OGC WKT :
PROJCS["unnamed",
    GEOGCS["unnamed ellipse",
        DATUM["unknown",
            SPHEROID["unnamed",6371007.181,0]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Sinusoidal"],
    PARAMETER["longitude_of_center",0],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]]]

which is the same(almost) as the input file:

$ gdalsrsinfo MCD12Q1.IGBP.h11v07.2002.tif

PROJ.4 : '+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181
+b=6371007.181 +units=m +no_defs '

OGC WKT :
PROJCS["unnamed",
    GEOGCS["Unknown datum based upon the custom spheroid",
        DATUM["Not_specified_based_on_custom_spheroid",
            SPHEROID["Custom spheroid",6371007.181,0]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Sinusoidal"],
    PARAMETER["longitude_of_center",0],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]]]



However, using vrt format shows that gdal_translate does set the
output srs correctly:

$ gdal_translate -of vrt -co COMPRESS=DEFLATE -a_nodata 255 -a_srs
'+proj=sinu +R=6371007.181 +nadgrids=@null +wktext'
MCD12Q1.IGBP.h11v07.2002.tif tmp2.vrt
$ gdalsrsinfo tmp2.vrt

PROJ.4 : '+proj=sinu +R=6371007.181 +nadgrids=@null +wktext'

OGC WKT :
PROJCS["unnamed",
    GEOGCS["unnamed ellipse",
        DATUM["unknown",
            SPHEROID["unnamed",6371007.181,0],
            EXTENSION["PROJ4_GRIDS","@null"]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Sinusoidal"],
    PARAMETER["longitude_of_center",0],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    EXTENSION["PROJ4","+proj=sinu +R=6371007.181 +nadgrids=@null +wktext"]]


For reference here is how I generate the GTiff from HDF4 files (similar to


More information about the gdal-dev mailing list