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