still an issue Re: *cs out EPSG:3042 and *declination auto - weird interaction

Olly Betts olly at survex.com
Thu Oct 19 01:58:04 BST 2023


On Wed, Oct 18, 2023 at 11:04:36PM +0100, Warren Family wrote:
> Thanks for looking into this so promptly :-).
> I updated to survex 1.4.4 - thanks for indicating how :-).
> It's also clearer now you explain (thanks!) that :
>  - the *cs and *cs out should be defined before *declination auto;
>  - the *declination auto uses the co-ordinate system of the most recently
> encountered *cs command not the *cs out command.

More precisely, it uses that to interpret the coordinates specified in
the command.  It uses the *cs out co-ordinate system to compute the
grid convergence.

Pedantically it might not be the "most recently encountered *cs command"
as this is scoped by *begin/*end, e.g. here the declination auto
coordinates are in OSGB:SD:

*cs OSGB:SD
*begin
*cs EPSG:4326
*end
*cs out EPSG:3042
*declination auto 97480 72608 225
*include DowCave/DowCave
*include DowbergillPassage/Dowbergill1
*include DowbergillPassage/Dowbergill2
*include ProvidencePot/ProvidencePot
*equate DowCave.dow2.31 Dowbergill1.dgp1.1
*equate Dowbergill1.dgp5.16 Dowbergill2.dgp6.46
*equate Dowbergill2.dgp7.1 ProvidencePot.PPot6.15

> $ cat test_epsg3042_fail.svx
> [...]
> test_epsg3042_fail.svx:3: info: Declination: -7.1° @ 1982-02-07 / -1.8° @
> 2015-10-03, grid convergence: -90.8°

> $ cat test_epsg3042_succeed.log
> [...]
> test_epsg3042_succeed.svx:2: info: Declination: -7.1° @ 1982-02-07 / -1.8° @
> 2015-10-03, grid convergence: 0.0°

> $ cat test_utm3on.log
> [...]
> test_utm3on.svx:3: info: Declination: -7.1° @ 1982-02-07 / -1.8° @
> 2015-10-03, grid convergence: 0.8°

I think the first two are wrong and the last right.  You probably should
get the same value for all three, or at least a very similar value (not
sure if WGS84 vs ETRS89 has an effect, but I can't see it making much
difference if any).

> I'm prepared to believe that the version that is still failing for me is
> somehow working for you.
> Maybe there is a bug in the PROJ library?

I'm getting 0.8° for the "fail" case, so it does seem likely to be
due to the different PROJ versions.

Computing the convergence requires trickery for some older PROJ
versions, and the exact trickery varies with version.  However for
PROJ >= 8.2 there's a non-experimental and (as far as I know) non-buggy
API to get it, and you said you're using 8.2.1.

I'll try to test with older PROJ and see if I can work out what's going
wrong.  If I can't fix it, we could make the PPA builds use a backport
of a newer PROJ version.

Therion takes a different approach - it converts some dummy coordinates
then computes the convergence angle from them using arctan.  I like that
less than using a PROJ API call intended to give the convergence, but
I'm starting to see the appeal of this other approach.  Using that when
built with older PROJ might be an option.

Cheers,
    Olly



More information about the Survex mailing list