3 Jan 19:55
Re: transform() does not do work for NGO1948 zone III-> WGS84 longlat (epsg:27393->epsg:4326)
Havard Tveite <havard.tveite <at> umb.no>
2006-01-03 18:55:36 GMT
2006-01-03 18:55:36 GMT
Just to close this... I have tested some more, and it seems as if transform() in PostGIS 1.0.x is working as expected. When I changed +lon_0 in proj4text of the NGO projections in the spatial_ref_sys to the correct values, the result is consistent with proj.4 cs2cs. I have also checked with an independent tranformation service (Norwegian Mapping Authority), and it gives about the same results. As soon as the epsg-file bug of proj.4 has been fixed, PostGIS users with NGO1948 data should be happy. Sorry about the noice... Havard Tveite wrote: > An important omission in my earlier emails (sorry...): > The proj.4 epsg +lon_0 parameters (longitude offset) for the NGO > projections have been strange for the last couple of proj.4 > releases. This has been reported as a bug in proj.4 bugzilla. > I have fixed the proj.4 epgs parameter file by hand to overcome > the problems. > > I guess that the PostGIS spatial_ref_sys table is not > generated from the local proj.4 epsg file... > The longitude offset probably stems from this. > > The epsg parameter file changes seems to have been made some > time after proj-4.4.7 (I think this version had correct values > for both latitude offset and towgs84). > Where the epsg "errors" come from, I don't know. It could be > an error introduced when generating the proj.4 epsg file, or > it could be an error in the EPSG sources. The fact that "NGO 1948" > and "NGO 1948 (Oslo)" use different prime meridians (Greenwich > and Oslo respectively) might be one of the sources of confusion. > > I can still not explain the datum shift problems (or what > ever problem it might be). > > Here are my local values for PostGIS 0.8 and 1.1: > > select * from spatial_ref_sys where srid = 27393; > > 741, postgis 0.8: > > 27393 | EPSG | 27393 | > PROJCS["NGO_1948_Oslo_Norway_Zone_3",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1]] > | +proj=tmerc +lat_0=58 +lon_0=10.72291666666667 +k=1.000000 +x_0=0 > +y_0=0 +a=6377492.018 +b=6356173.508712696 +pm=10.72291666666667 +units=m > > 82 cvs, postgis cvs: > > 27393 | EPSG | 27393 | PROJCS["NGO 1948 (Oslo) / NGO zone > III",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel > Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","27393"]] > | +proj=tmerc +lat_0=58 +lon_0=-10.72291666666667 +k=1.000000 +x_0=0 > +y_0=0 +a=6377492.018 +b=6356173.508712696 > +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs > > My share/proj/epsg (assuming that +lon_0 is supposed to give > the offset from +pm): > # NGO 1948 (Oslo) / NGO zone III > <27393> +proj=tmerc +lat_0=58 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 > +a=6377492.018 +b=6356173.508712696 > +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m > +no_defs <> > > Michael Fuhr suggested to run cs2cs. With the correct lon_0 > (0 for NGO 1984 zone 3), the results are: > echo 2836.394208896 185526.991186176 | > cs2cs +proj=tmerc +lat_0=58 +lon_0=0 \ > +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 \ > +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 \ > +pm=oslo \ > +units=m +no_defs \ > +to \ > +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs \ > -f "%.8f" > > 10.76845023 59.66650218 0.30776738 > > Which still seems to be quite far (a few hundred meters) off. > > Very strange that my UMN Mapserver (4.6.1) seems to perform a much > better transformation (within a couple of meteres)... (I have > checked visually how the NGO 1948 zone 3 dataset lines up with > datasets with other coordinate systems when transformed to WGS84 > longlat). > > Perhaps I will have to do some more homework before pursuing this > further... > > Thank you for your efforts! > > > Haavard > > Frank Warmerdam wrote: > >> On 12/22/05, Havard Tveite <havard.tveite <at> umb.no> wrote: >> >>> It is nice to provide warnings, but for epsg:27393 -> epsg:4326 >>> the following problems persist: >>> >>> 1) Longitude of origin (+lon_0=-10.72291666666667) is ignored >>> (as demonstrated by strk's query). >> >> >> >> Havard, >> >> Are you sure that the the +lon_0 is being ignored? It seems more >> likely that it is being undone by the +pm=oslo. There are a variety of >> problems with prime meridian handling in the EPSG->proj.4 translation >> process. I would suggest modifying the PROJ.4 definition to not >> include the +pm=oslo and see if that helps. >> >> >>> 2) No datum shift seems to be performed. >>> >>> Since the transformation runs smoothly using UMN Mapserver ( >>> with dynamically linked proj - so it should be 4.4.9), there >>> is probably a problem somewhere. >> >> >> >> You are likely right, I'm not sure what the story is. >> >> Best regards, >> -- >> ---------------------------------------+-------------------------------------- >> >> 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 Programmer for Rent >> _______________________________________________ >> postgis-users mailing list >> postgis-users <at> postgis.refractions.net >> http://postgis.refractions.net/mailman/listinfo/postgis-users >> > -- -- Håvard Tveite Department of Mathematical Sciences and Technology, UMB Drøbakveien 14, POBox 5003, N-1432 Ås, NORWAY Phone: +47 64965483 Fax: +47 64965401 http://www.umb.no/imt
RSS Feed