[PROJ] Proj 6 API questions

Nyall Dawson nyall.dawson at gmail.com
Mon Mar 18 00:27:07 PDT 2019


On Mon, 18 Mar 2019 at 16:56, Kristian Evers <kreve at sdfe.dk> wrote:
>
> You use proj_get_authorities_from_database() for that. Generally there’s functions
> for retrieving all info like that, just search around in the function reference a bit and you’ll
> find it.

Ok, that part is working, and I'm seeing a LOT more! But now I'm a bit
confused... if I use this approach to iterate through the ellipsoids,
is there anyway to get the ellipsoid acronym from them? Using
proj_list_ellps I could get PJ_ELLPS->id.

Nyall



>
> /Kristian
>
> On 18 Mar 2019, at 07:52, Nyall Dawson <nyall.dawson at gmail.com> wrote:
>
> On Mon, 18 Mar 2019 at 16:42, Kristian Evers <kreve at sdfe.dk> wrote:
>
>
> Hi Nyall,
>
> I am very happy to see that you have started working on this!
>
> You will probably get less discrepancies between the QGIS list of ellipsoids
> and the PROJ equivalent if you instead use proj_get_codes_from_database
> using type PJ_TYPE_ELLIPSOID.
>
>
> What should I use as auth_name if I want to get ALL ellipsoids? The
> dox state it must not be null...
>
> Thanks for the detailed pointers, I'll let you know the result!
>
> Nyall
>
>
> You should then be able to get the
> parameters with proj_ellipsoid_get_parameters. This is untested on my part
> but I believe that is the general workflow you have to go through to get the
> ellipsoid out of proj.db.
>
> proj_list_ellps() simply shows you the same list as you would get from calling
> `proj -le`, i.e. ellipsoids that can be used with `+ellps=xxx` parameters. This
> is confusing and I shall think of a way to change the docs so it is less confusing :-)
>
> It would be interesting to see the difference between the ellipsoid tables from
> The QGIS and PROJ databases.
>
> /Kristian
>
> On 18 Mar 2019, at 04:39, Nyall Dawson <nyall.dawson at gmail.com> wrote:
>
> Hi list,
>
> So (thanks for sponsorship from the ICSM), I'm working on porting QGIS
> to the Proj 6 API. I suspect I'll have many more questions (especially
> as I attempt to drop QGIS' own custom projection database in favour of
> the upstream proj one). Let's get started...
>
> I thought I'd begin with a simple task of replacing QGIS' ellipsoid db
> with proj's, using proj_list_ellps(). QGIS has this table of
> "standard" ellipsoids, built up from... somewhere... in the vast
> history of the QGIS project. When comparing against proj's db, it
> includes many items which are missing in proj's:
>
> Adrastea2000: Adrastea2000 10000.0/7000.0
> Amalthea2000: Amalthea2000 125000.0/64000.0
> Ananke2000: Ananke2000 10000.0/10000.0
> Ariel2000: Ariel2000 581100.0/577700.0
> Atlas2000: Atlas2000 18500.0/13500.0
> Belinda2000: Belinda2000 33000.0/33000.0
> Bianca2000: Bianca2000 21000.0/21000.0
> Callisto2000: Callisto2000 2409400.0/2409300.0
> Calypso2000: Calypso2000 15000.0/8000.0
> Carme2000: Carme2000 15000.0/15000.0
> Charon2000: Charon2000 593000.0/593000.0
> IGNF:ELG004: Clarke 1866 6378206.4/6356583.799998981
> IGNF:ELG003: Clarke 1880 Anglais 6378249.1453/6356514.8698
> IGNF:ELG010: Clarke 1880 IGN 6378249.2/6356514.999978254
> cape: Clarke 1880 mod. 6378249.145/6356514.966398753
> Cordelia2000: Cordelia2000 13000.0/13000.0
> Cressida2000: Cressida2000 31000.0/31000.0
> Deimos2000: Deimos2000 7500.0/5200.0
> Desdemona2000: Desdemona2000 27000.0/27000.0
> Despina2000: Despina2000 74000.0/74000.0
> Dione2000: Dione2000 560000.0/560000.0
> Earth2000: Earth2000 6378140.0/6356750.0
> Elara2000: Elara2000 40000.0/40000.0
> Enceladus2000: Enceladus2000 256300.0/244600.0
> Epimetheus2000: Epimetheus2000 69000.0/55000.0
> Europa2000: Europa2000 1564130.0/1560930.0
> Galatea2000: Galatea2000 79000.0/79000.0
> Ganymede2000: Ganymede2000 2632400.0/2632350.0
> Helene2000: Helene2000 16000.0/16000.0
> Himalia2000: Himalia2000 85000.0/85000.0
> Hyperion2000: Hyperion2000 164000.0/107000.0
> IGNF:ELG108: IAG GRS 1967 6378160.0/6356774.5161
> IGNF:ELG037: IAG GRS 1980 6378137.0/6356752.314140356
> Iapetus2000: Iapetus2000 718000.0/718000.0
> IGNF:ELG001: International-Hayford 1909 6378388.0/6356911.9461279465
> Io2000: Io2000 1829400.0/1815700.0
> Janus2000: Janus2000 97000.0/77000.0
> Juliet2000: Juliet2000 42000.0/42000.0
> Jupiter2000: Jupiter2000 71492000.0/66854000.0
> Larissa2000: Larissa2000 96000.0/96000.0
> Leda2000: Leda2000 5000.0/5000.0
> Lysithea2000: Lysithea2000 12000.0/12000.0
> Mars2000: Mars2000 3396190.0/3376200.0
> Mercury2000: Mercury2000 2439700.0/2439700.0
> Metis2000: Metis2000 21500.0/21500.0
> Mimas2000: Mimas2000 209100.0/191400.0
> Miranda2000: Miranda2000 240400.0/232900.0
> Moon2000: Moon2000 1737400.0/1737400.0
> Naiad2000: Naiad2000 29000.0/29000.0
> Neptune2000: Neptune2000 24764000.0/24341000.0
> Nereid2000: Nereid2000 170000.0/170000.0
> Oberon2000: Oberon2000 761400.0/761400.0
> Ophelia2000: Ophelia2000 15000.0/15000.0
> IGNF:ELG017: PLESSIS 1817 6376523.0/6355862.933255573
> Pan2000: Pan2000 10000.0/10000.0
> Pandora2000: Pandora2000 55000.0/31000.0
> Pasiphae2000: Pasiphae2000 18000.0/18000.0
> Phobos2000: Phobos2000 13400.0/9200.0
> Phoebe2000: Phoebe2000 115000.0/105000.0
> Pluto2000: Pluto2000 1195000.0/1195000.0
> Portia2000: Portia2000 54000.0/54000.0
> Prometheus2000: Prometheus2000 74000.0/34000.0
> Proteus2000: Proteus2000 218000.0/201000.0
> Puck2000: Puck2000 77000.0/77000.0
> Rhea2000: Rhea2000 764000.0/764000.0
> Rosalind2000: Rosalind2000 27000.0/27000.0
> IGNF:ELG032: SPHERE PICARD 6371598.0/6371598.0
> Saturn2000: Saturn2000 60268000.0/54364000.0
> Sinope2000: Sinope2000 14000.0/14000.0
> Telesto2000: Telesto2000 15000.0/7500.0
> Tethys2000: Tethys2000 535600.0/525800.0
> Thalassa2000: Thalassa2000 40000.0/40000.0
> Thebe2000: Thebe2000 58000.0/42000.0
> Titan2000: Titan2000 2575000.0/2575000.0
> Titania2000: Titania2000 788900.0/788900.0
> Triton2000: Triton2000 1352600.0/1352600.0
> Umbriel2000: Umbriel2000 584700.0/584700.0
> Uranus2000: Uranus2000 25559000.0/24973000.0
> Venus2000: Venus2000 6051800.0/6051800.0
> IGNF:ELG052: WGS72 6378135.0/6356750.520016094
> IGNF:ELG102: WGS72 (NWL-10F) 6378135.0/6356750.520016094
> IGNF:ELG053: WGS84 6378137.0/6356752.314245179
>
> The vast majority of these are planetary ellipsoids/moons, but there's
> others which are less obvious (cape/IGNF*). So
>
> Question 1: should the non-Earth ellipsoids be included in the proj database?
>
> Question 2: What about cape/IGNF* ? Should they be included in proj,
> or are they mistakes and should not even be included in the current
> QGIS db?
>
> Nyall
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/proj
>
>
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/proj
>
>


More information about the PROJ mailing list