[MetaCRS] joseangel@digi21.eu: Error in spatialreference.org]

Christopher Schmidt crschmidt at crschmidt.net
Thu Apr 26 16:45:30 EDT 2012


I *think* that this is just a case of whatever tool generated this
WKT (gdal/proj) failing to understand that this projection should be
Y, X instead of X,Y. Does anyone know if this is fixed now, or if I 
need to do more work to get this working right?

-- Chris

----- Forwarded message from José Ángel Martínez <joseangel at digi21.eu> -----

Date: Thu, 23 Feb 2012 19:32:06 +0100
From: José Ángel Martínez <joseangel at digi21.eu>
To: crschmidt at crschmidt.net
Subject: Error in spatialreference.org

Hello Mr Christopher Schmidt,


My name is Jose Angel. I don't know if you are the correct person for this
email, and I hope not to be boring.

I'm finishing my implementation of coordinate transformations following the
rules of OpenGIS and I think that I've found an error in the implementation
you have in your site spatialreference.org in relation of the coordinate
axis.

The EPSG:3035 coordinate system has the axis changed (first Y and then X).
You can see it in the EPSG database and also in the test 5110 (Lambert
Azimuthal Equal Area.) with the next SQL query against the EPSG database:


SELECT * FROM [Coordinate Axis] WHERE COORD_SYS_CODE=4532 ORDER BY [ORDER]


In this link http://spatialreference.org/ref/epsg/3035/ogcwkt/ your site
shows the next WKT string:

PROJCS["ETRS89 /
ETRS-LAEA",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS
1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],AUTHORITY["EPSG","3035"],AXIS
["X",EAST],AXIS["Y",NORTH]]

and I think (maybe I'm wrong) that the correct string is this one
(generated by my implementation):


PROJCS["ETRS89 / LAEA Europe",GEOGCS["ETRS89",DATUM["European Terrestrial
Reference System 1989",SPHEROID["GRS
1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AXIS["Lat",
NORTH],AXIS["Long",
EAST],AUTHORITY["EPSG","4258"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",51.99999999999995],PARAMETER["longitude_of_center",9.999999999999989],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],PARAMETER["semi_major",6378137],PARAMETER["semi_minor",6356752.314140356],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Y",
NORTH],AXIS["X", EAST],AUTHORITY["EPSG","3035"]]

This is really important because if the implementation is following the
standard, it have to concatenate an affine transformation to transformate
from X,Y to Y,X after transforming from geographics to projected
coordinates.

This is the transformation WKT that generates my implementation for that
coordinate system, I've marked the affine that switches the axis:

CONCAT_MT[PARAM_MT["Affine", PARAMETER["num_row",3], PARAMETER["num_col",
3],PARAMETER["elt_0_0", 0],PARAMETER["elt_0_1", 1],PARAMETER["elt_0_2",
0],PARAMETER["elt_1_0", 1],PARAMETER["elt_1_1", 0],PARAMETER["elt_1_2",
0],PARAMETER["elt_2_0", 0],PARAMETER["elt_2_1", 0],PARAMETER["elt_2_2",
1]],PARAM_MT["Affine", PARAMETER["num_row",3], PARAMETER["num_col",
3],PARAMETER["elt_0_0", 0.01745329251994328],PARAMETER["elt_0_1",
0],PARAMETER["elt_0_2", 0],PARAMETER["elt_1_0", 0],PARAMETER["elt_1_1",
0.01745329251994328],PARAMETER["elt_1_2", 0],PARAMETER["elt_2_0",
0],PARAMETER["elt_2_1", 0],PARAMETER["elt_2_2",
0.01745329251994328]],PROJECTION["Lambert_Azimuthal_Equal_Area",
AUTHORITY["EPSG","9820"]],PARAMETER["latitude_of_center",51.99999999999995],PARAMETER["longitude_of_center",9.999999999999989],PARAMETER["false_easting",247575063.2760287],PARAMETER["false_northing",183919452.2369943],PARAMETER["semi_major",6378137],PARAMETER["semi_minor",6356752.314140356],PARAM_MT["Affine",
PARAMETER["num_row",3], PARAMETER["num_col", 3],PARAMETER["elt_0_0",
1],PARAMETER["elt_0_1", 0],PARAMETER["elt_0_2", 0],PARAMETER["elt_1_0",
0],PARAMETER["elt_1_1", 1],PARAMETER["elt_1_2", 0],PARAMETER["elt_2_0",
0],PARAMETER["elt_2_1", 0],PARAMETER["elt_2_2", 1]],PARAM_MT["Affine",
PARAMETER["num_row",3], PARAMETER["num_col", 3],PARAMETER["elt_0_0",
0],PARAMETER["elt_0_1", 1],PARAMETER["elt_0_2", 0],PARAMETER["elt_1_0",
1],PARAMETER["elt_1_1", 0],PARAMETER["elt_1_2", 0],PARAMETER["elt_2_0",
0],PARAMETER["elt_2_1", 0],PARAMETER["elt_2_2", 1]]]

And also in your implementation AUTHORITY appears before AXIS and must be
after it.

Thanks.

----- End forwarded message -----

-- 
Christopher Schmidt
Web Developer


More information about the MetaCRS mailing list