[GRASS-dev] Definition of Swiss Coordinate System issue
Markus Neteler
neteler at fbk.eu
Sun Dec 2 05:06:49 EST 2007
Hi developers,
I discovered two issues with the Swiss. Obl. Mercator definition:
When defining it from scratch:
D Other Projection
Please specify projection name
>somerc
Please specify datum name
>list
Number Details
---
1 Used in whole ch1903 region
(PROJ.4 Params towgs84=674.253,15.053,405.324)
Default 3-Parameter Transformation (May not be optimum for older datums; use this only if no more appropriate options are available.)
-> here the 7-param is missing which is listed (but commented) in
lib/gis/datumtransform.table. Any objections to activate that?
We continue in the dialog as usual... (I custom defined the 7-param).
Then:
g.proj -w
PROJCS["Swiss. Obl. Mercator",
GEOGCS["bessel",
DATUM["unknown",
SPHEROID["Bessel_1841",6377397.155,299.1528128],
TOWGS84[660.077,13.551,369.344,2.484,1.783,2.939,0.56]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433]],
PROJECTION["Hotine_Oblique_Mercator"],
PARAMETER["latitude_of_center",0],
PARAMETER["longitude_of_center",0],
PARAMETER["azimuth",90],
PARAMETER["rectified_grid_angle",90],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",600000],
PARAMETER["false_northing",200000],
UNIT["meter",1]]
-> we observe that latitude_of_center and longitude_of_center are WRONG.
Compare http://www.epsg-registry.org/
-> [retrieve by code]
Code: 21781
Latitude of projection centre:
46° 57' 8.66" N
Unit of Measure:
sexagesimal DMS
Sign Reversible:
No
Longitude of projection centre:
7° 26' 22.5" E
Unit of Measure:
sexagesimal DMS
Sign Reversible:
No
Azimuth of initial line:
90°
Unit of Measure:
sexagesimal DMS
Sign Reversible:
No
Angle from Rectified to Skew Grid:
90°
Unit of Measure:
sexagesimal DMS
Sign Reversible:
No
Scale factor on initial line:
1
Unit of Measure:
unity
Sign Reversible:
No
Easting at projection centre:
600000
Unit of Measure:
metre
Sign Reversible:
No
Northing at projection centre:
200000
Unit of Measure:
metre
Sign Reversible:
No
BUT if I look into:
cd general/g.setproj/
grep -i somer *
main.c: else if (G_strcasecmp(proj_out, "SOMERC") == 0) {
proj-parms.table:SOMERC:Swiss. Obl. Mercator:KFACT=noask,1.0;LAT0=noask,46.952405556;LON0=noask,7.4395833333;X0=noask,600000.0;Y0=noask,200000.0
It seems to be there. How come that this isn't used? I am not familiar enough
with the mechanism to fix that...
Markus
More information about the grass-dev
mailing list