[Proj] Cassini coordinate reprojection problem

Gerald Evenden gerald.evenden at verizon.net
Tue Mar 15 20:30:09 EST 2005

```There is a bit of a problem so the details need to be isolated.  First
of all, I
agree with the proj numbers you have gotten.  The only confusing thing
is
that you should either use the +ellps option OR the +a=/+es= ---one does
not know which proj will use without digging into the code.  The
+a=/+es=
values do seem to match the +ellps=airy values however.

software gives and how that compares with the proj inverse.  If that
value
does not agree then there is no point in going further.

Try the SAME geographic coordinates for the forward
projection for Transverse Mercator on all systems and check for
differences.

If both the forward and inverse modes differ for the same set of input
then work on solving that problem first.  If you solve that then the
other
problem might indicate problems in transferring the data between the
forward and inverse operations.

Are you sure that the other systems are NOT doing a datum
transformation?

Also, your "proj +proj=list" is not a valid command.  If you want a
list of
projections then "proj -lp" (or lP) and for a list of ellipsoids "proj
-le"

This is the script I used to check your operations:

lproj -I +ellps=airy +proj=cass \
+lat_0=51.2695503 +lon_0=0.665434 <<EOF
-49630.956 21390.870
EOF
lproj +ellps=airy +proj=tmerc \
+lat_0=49 +lon_0=-2 +x_0=400000 +y_0=-100000 <<EOF
0d2'55.474"W    51d27'34.779"N
EOF
# preferred method which uses binary transfer between procedures
lproj -I +proj=cass +ellps=airy  \
+lat_0=51.2695503 +lon_0=0.665434 <<EOF -o | \
lproj -i +proj=tmerc +ellps=airy  \
+lat_0=49 +lon_0=-2 +x_0=400000 +y_0=-100000
-49630.956 21390.870
EOF

and its output

0d2'55.474"W    51d27'34.779"N
535596.86       175379.03
535596.87       175379.02

Note how the least significant digit vary because .001" is insufficient
to
define 1cm precision.  To avoid these problems use the -o | -i binary
pipe transfer between processes or use more precision on the first
function's output.

As a minor aside, I do not use "invproj" now; use -I instead.  It should
work on proj also.

On Mar 15, 2005, at 6:12 PM, Chris Faulkner wrote:

> Hello
>
> I have been sent some coordinates reprojected by another package that
> do
> not match what I am getting out of proj4.
>
> The projection is from Cassini to Transverse Mercator, details below.
>
> I think the other package is genamap. The TM coordinate reported by
> geotrans and it gives exactly the same result.
>
> Proj4 gives this - 535596.86       175379.03. I am on RedHat Linux 9.0,
> running 4.4.9
>
> Most likely, I am driving proj4 incorrectly. Here is what I do
>
> # Convert to lat /long (it doesn't matter if I remove the es and a
> parameters)
> chris at dinky /cygdrive/c/mapmarketing/software/tabrunner
> \$ invproj +ellps=airy +proj=cass +a=6377563.3959999 +es=0.0066705398
> +lat_0=51.2695503 +lon_0=0.665434
> -49630.956 21390.870
> 0d2'55.474"W    51d27'34.779"N
>
>
> # Convert the lat / long to Transverse Mercator
> chris at dinky /cygdrive/c/mapmarketing/software/tabrunner
> \$ proj +ellps=airy +proj=tmerc +lat_0=49 +lon_0=-2 +x_0=400000
> +y_0=-100000
> 0d2'55.474"W    51d27'34.779"N
> 535596.86       175379.03
>
> proj +proj=list gives an error message. Projection initialization
> failure
> Cause: unknown projection id
>
> Any help would be most welcome !
>
> Thanks
>
> Chris
_____________________________________
Jerry and the low riders: Daisy Mae and Joshua.
"The whole religious complexion of the modern world is due to the
absence from Jerusalem of a lunatic asylum." Havelock Ellis, 1914

```