[gdal-dev] help for comparing two WKT

Etienne Tourigny etourigny.dev at gmail.com
Sat Oct 8 00:39:30 EDT 2011


Thanks Frank,

I think I found a bug in OGRSpatialReference::IsSameGeogCS(), which is
called by IsSame().  The code looks for identical "DATUM" values, but
doesn't check for DATUM="unknown".
In my test, even thought the spheroid values are identical the test fails.

Filed a bug report and one-liner fix http://trac.osgeo.org/gdal/ticket/4281

I'm not confident in commiting myself before confirmation that it's ok.

    if( pszThisValue != NULL && pszOtherValue != NULL
+        && !EQUAL(pszThisValue,"unknown") && !EQUAL(pszOtherValue,"unknown")
        && !EQUAL(pszThisValue,pszOtherValue) )
        return FALSE;

regards, Etienne
On Fri, Oct 7, 2011 at 9:49 PM, Frank Warmerdam <warmerdam at pobox.com> wrote:
> Etienne,
>
> You should in theory just use OGRSpatialReference::IsSame() method to
> see if two coordinate systems are essentially equivelent, but it is not
> really all that perfect.
>
> Best regards,
>
>
> On Fri, Oct 7, 2011 at 4:36 PM, Etienne Tourigny
> <etourigny.dev at gmail.com> wrote:
>> Hi all,
>>
>> I would appreciate any hints as to how I can compare 2
>> WKT/OGRSpatialReference objects.
>>
>> My goal is to make sure that a more detailed WKT (with authority codes
>> and explicit datum) corresponds (numerically) to a simpler one, such
>> as in the following examples.
>>
>> I understand that the oSRSGDAL.exportToPrettyWkt() function can remove
>> AXIS, AUTHORITY and EXTENSION nodes, but how can I guarantee that the
>> PARAMETER nodes are in the same order? Does FixupOrdering() solve that
>> problem?
>>
>> Furthermore, How could I compare the datums?
>>
>>
>>
>>
>> CF=[PROJCS["unnamed",
>>    GEOGCS["unknown",
>>        DATUM["unknown",
>>            SPHEROID["Spheroid",6378137,298.2572221010002]],
>>        PRIMEM["Greenwich",0],
>>        UNIT["degree",0.0174532925199433]],
>>    PROJECTION["Lambert_Conformal_Conic_2SP"],
>>    PARAMETER["standard_parallel_1",-18],
>>    PARAMETER["standard_parallel_2",-36],
>>    PARAMETER["latitude_of_origin",0],
>>    PARAMETER["central_meridian",134],
>>    PARAMETER["false_easting",0],
>>    PARAMETER["false_northing",0]]]
>>
>> GDAL=[PROJCS["GDA94 / Geoscience Australia Lambert",
>>    GEOGCS["GDA94",
>>        DATUM["Geocentric_Datum_of_Australia_1994",
>>            SPHEROID["GRS 1980",6378137,298.2572221010002,
>>                AUTHORITY["EPSG","7019"]],
>>            TOWGS84[0,0,0,0,0,0,0],
>>            AUTHORITY["EPSG","6283"]],
>>        PRIMEM["Greenwich",0],
>>        UNIT["degree",0.0174532925199433],
>>        AUTHORITY["EPSG","4283"]],
>>    PROJECTION["Lambert_Conformal_Conic_2SP"],
>>    PARAMETER["standard_parallel_1",-18],
>>    PARAMETER["standard_parallel_2",-36],
>>    PARAMETER["latitude_of_origin",0],
>>    PARAMETER["central_meridian",134],
>>    PARAMETER["false_easting",0],
>>    PARAMETER["false_northing",0],
>>    UNIT["metre",1,
>>        AUTHORITY["EPSG","9001"]],
>>    AUTHORITY["EPSG","3112"]]]
>>
>>
>>
>> Another option is exporting to PROJ.4 strings, but there are the
>> +towgs84 that shows up , plus some differences in +datum vs. +ellps.
>>
>> e.g.
>>
>> CF=[+proj=utm +zone=55 +ellps=WGS84 +units=m +no_defs ]
>> GDAL=[+proj=utm +zone=55 +datum=WGS84 +units=m +no_defs ]
>>  or
>> CF=[+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0 +y_0=0
>> +ellps=GRS80 +units=m +no_defs ]
>> GDAL=[+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0
>> +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs ]
>>
>>
>>
>> many thanks,
>> Etienne
>> _______________________________________________
>> gdal-dev mailing list
>> gdal-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>
>
>
> --
> ---------------------------------------+--------------------------------------
> I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
> light and sound - activate the windows | http://pobox.com/~warmerdam
> and watch the world go round - Rush    | Geospatial Software Developer
>


More information about the gdal-dev mailing list