[Proj] EPSG:3994 problem
Mikael Rittri
Mikael.Rittri at carmenta.com
Mon Apr 16 02:27:38 PDT 2012
Hello Brent,
I don't know why gdalinfo misinterprets the ESRI binary grid, or why spatialreference.org doesn't help.
But EPSG:3994 uses Mercator variant B (see http://www.epsg.org/guides/docs/G7-2.pdf), which is a
somewhat unusual variant.
On the other hand, the epsg file of Proj version 4.8.0 has the same definition that you tried:
# WGS 84 / Mercator 41
<3994> +proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs <>
which I believe is correct (lat_ts means latitude of true scale). Based on that, I can compute:
>proj +init=epsg:3994
100 0
0.00 0.00
101 41
84135.19 3767131.99
101 41.000009
84135.19 3767132.99
The first test point shows that the grid origin (zero easting, zero northing) is at
the equator at longitude 100 d E, which is what I would expect.
The other two test points shows that a difference of 0.000009 degrees in latitude,
near the latitude 41 N, gives a difference of about 1 meter in northing. This is also
what I would expect, since 41 N (and 41 S) are standard parallels, where the scale
should be true. (Because 0.000009 degrees of latitude is about 1 meter.)
For your test point, I reproduce your results:
>proj -I +init=epsg:3994 -f "%.5f"
6200000.000 -3710000.000
173.69093 -40.48353
You say you didn't expect these results:
> I expected values around 174.66 -41.41
but I don't know if what you expected is correct or not. I have used Proj 4.8.0 that came with OSGeo4W.
On the other hand, in Proj 4.7.0 the epsg file had the entry
# WGS 84 / Mercator 41
<3994> +proj=merc +lon_0=100 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <>
which I think is very wrong.
The EPSG definition of WGS 84 / Mercator 41 used to have the code 3752, but
this was deprecated in 2008 and replaced with 3994 (EPSG change request 2008.088).
I am not sure if the bad definition in Proj 4.7.0 had anything to do with that, though.
Best regards,
Mikael Rittri
Carmenta
Sweden
http://www.carmenta.com
________________________________
From: proj-bounces at lists.maptools.org [mailto:proj-bounces at lists.maptools.org] On Behalf Of pcreso at pcreso.com
Sent: den 15 april 2012 22:19
To: proj at lists.maptools.org
Subject: [Proj] EPSG:3994 problem
Hi,
I'm unable to get Proj to correctly return lat/long coordinates from Mercator41 data.
http://www.spatialreference.org/ref/epsg/3994/ does not list any proj4 string, Postgis proj4text or Mapserver values for this projection.
I have an ESRI binary grid with a projection definition (prj.adf) of:
Projection MERCATOR
Datum WGS84
Spheroid WGS84
Units METERS
Zunits NO
Xshift 0.0
Yshift 0.0
Parameters
100 0 0.0 /* longitude of central meridian
-41 0 0.0 /* latitude of true scale
0.0 /* false easting (meters)
0.0 /* false northing (meters)
gdalinfo fails to interpret this correctly, giving:
gdalinfo w001001.adf
Driver: AIG/Arc/Info Binary Grid
Files: .
./#m41_to_ll#
./sta.adf
./w001001x.adf
./hdr.adf
./w001001.adf
./m41_to_ll
./whbr
./prj.adf
./dblbnd.adf
Size is 8817, 7901
Coordinate System is:
PROJCS["unnamed",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9108"]],
AUTHORITY["EPSG","4326"]],
PROJECTION["Mercator_1SP"],
PARAMETER["latitude_of_origin",100],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",-41],
PARAMETER["false_northing",0],
UNIT["METERS",1]]
Origin = (6199987.499999998137355,-3709987.500002769753337)
Pixel Size = (25.000000000000000,-25.000000000000000)
Corner Coordinates:
Upper Left ( 6199987.500,-3709987.500)
Lower Left ( 6199987.500,-3907512.500)
Upper Right ( 6420412.500,-3709987.500)
Lower Right ( 6420412.500,-3907512.500)
Center ( 6310200.000,-3808750.000)
Band 1 Block=256x4 Type=Float32, ColorInterp=Undefined
Min=-2570.453 Max=2917.197
NoData Value=-3.4028234663852886e+38
With some obvious errors, like latitude of origin = 100... so just extracting the xyz values & trying to reproject with proj, I'm having problems.
I tried: g dal2xyz.py w001001.adf | head
which returns:
6200000.000 -3710000.000 76.1574
6200025.000 -3710000.000 76.1842
...
which seems to work fine, but when I pass these Mercator41 coordinates into proj I'm unable to get a parameter list which gives the lat/long values for where I know these data sit. There is an offset of many miles. This suggests either my source data has an error in the coordinates (unlikely) or I don't understand enough about proj parameters (more likely)
Based on the contents of the above prj.adf file I have tried the following command:
echo "6200000.000 -3710000.000" | proj -If "%.5f" +proj=merc +lon_0=100 +lat_ts=-41 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs +to +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
173.69093 -40.48353
I expected values around 174.66 -41.41 (the data is a 25m multibeam bathymetry grid around Cook Strait, between the North & South Islands of New Zealand)
Any advice appreciated.
Brent Wood
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20120416/04946fd8/attachment.html>
More information about the Proj
mailing list