[QGIS-Developer] QGIS and Proj 6

Nyall Dawson nyall.dawson at gmail.com
Mon Jun 3 15:40:30 PDT 2019


On Mon, 3 Jun 2019 at 23:53, Régis Haubourg <regis.haubourg at gmail.com> wrote:
>
> Let me strongly second Calvin here.
> I followed your work on the PROJ mailing lists and it's a big hat off for you Nyall. Understanding the geodesic issues and making it available into QGIS so soon is brilliant.
> I'd also like to thank your funder whoever it is, because he allowed a huge step forward. Not so many funders are able to invest into such low level stuff.

This was thanks to sponsorship from ICSM (https://www.icsm.gov.au/),
an Australian committee responsible for introducing a new system of
projections to Australia (GDA2020). They are also behind the
(scary/exciting) new world of 4d coordinate transformations, where a
future Australian reference system will be dynamic and have a temporal
component modelling the tectonic movements of the Australian
continent. When this lands it'll be time for a lot of us to hit the
textbooks again ;) We (Australians, that is) are extremely fortunate
to have such a forward thinking team behind this -- not only are they
tackling some fundamental changes in how projections are handled, they
also had the foresight to recognise the need for strong support for
this in open source software and invest their funds into seeing it
happen.

> And I don't forget the PROJ team, we all rely on the shoulders of giants, truly.

Totally. This team is amazing!

Nyall

> Big up, you rock!
> Régis
>
> Le lun. 3 juin 2019 à 15:02, C Hamilton <adenaculture at gmail.com> a écrit :
>>
>> Nyall,
>>
>> I just wanted to thank you for doing this. QGIS is already awesome, but this makes it even more awesome.
>>
>> Calvin
>>
>> On Mon, Jun 3, 2019 at 3:28 AM Nyall Dawson <nyall.dawson at gmail.com> wrote:
>>>
>>> Hi all,
>>>
>>> Following the merge of https://github.com/qgis/QGIS/pull/30040 , I now
>>> consider QGIS' port to the Proj 6 API complete. Here's a bit of a
>>> summary of what's been done here (on builds based on proj 6.1 and
>>> later only, more on that later[1])
>>>
>>> - The Proj CRS database is now used to populate QGIS' internal CRS
>>> database. We no longer use the combination of GDAL CSV files and
>>> manual QGIS overrides we've used till now. This means that ALL
>>> responsibility for CRS definitions and updating these sit were they
>>> belong, upstream in the proj library. It also means we'll be an exact
>>> match wrt projections as other tools which have completed the port,
>>> such as GDAL 3.0. (All this goodness is thanks to the GDAL barn
>>> raising effort). We still HAVE an internal projection database, in
>>> order not to break existing 3.x API, so we'll need to revisit that at
>>> 4.0 and see if it can be safely removed then.
>>>
>>> - We rely entirely on Proj 6's wonderful logic for generating the best
>>> coordinate operation to transform between CRS pairs now. This means
>>> (amongst other stuff), we correctly support complex things like
>>> operations which require a "pivot datum", e.g. transformation to and
>>> from GDA2020 coordinate systems. Again, this is thanks to the GDAL
>>> barn raising effort... if it wasn't for that, we'd be... YEARS away
>>> from even dreaming about supporting these correctly. Seriously, hats
>>> off to the proj/GDAL teams here, they've done a brilliant effort, and
>>> have been tirelessly answering tons of questions on their mailing
>>> lists.
>>>
>>> - Instead of the older approach QGIS used for datum transformations
>>> (carrying around our own table of when grid shift files can be used),
>>> we now use proj to determine these. This considerably changes the user
>>> interface shown when a user has opted into selecting manually a
>>> transform to use when multiple transforms exist, and we now show a
>>> simplified list of available (and non-available) pathways.
>>>
>>> - We also use proj's database to populate lists of available
>>> ellipsoids for use in distance and area calculations. This has cleaned
>>> up the ellipsoid choices considerably, and added many additional
>>> ellipsoid definitions as a result. (woohoo... no more duplicate
>>> "WGS84"/"WGS 84" entries!)
>>>
>>> - The UX for notifying users about issues in coordinate transforms is
>>> greatly improved, e.g. users are now alerted when a more accurate
>>> transform is possible, but not usable on their system (e.g. due to
>>> missing .gsb grid shift files). Wherever possible, we present users
>>> with direct download links to obtain these required/desired grid shift
>>> files. The intention here is to ensure users are informed when
>>> transforms can be improved, instead of silently falling back to less
>>> accurate options.
>>>
>>> - Users also now have the option of placing grid shift files in "proj"
>>> folder off their user profile. This means users can install grid shift
>>> files and make them available in QGIS without requiring administrative
>>> rights (possibly in future we could make QGIS fire up a background
>>> task which automatically downloads and installs grids on demand...)
>>>
>>> - We've also completed a project which began back in the lead-up to
>>> 3.0, which ensures that project-specific transformation pathway
>>> settings are correctly respected EVERYWHERE a coordinate transform is
>>> performed. This also means we're ready for the next stage in handling
>>> 4d coordinate transforms (when these start to land in 2020 and beyond)
>>>
>>> As noted above, a lot of this is only possible thanks to improvements
>>> in the proj and gdal libraries, which landed as a result of the GDAL
>>> barn raising effort. On the QGIS side, it was ONLY possible thanks to
>>> funding from the Australian ICSM. It's been a HUGE undertaking, so I'm
>>> extremely grateful that the ICSM has had the foresight to invest into
>>> QGIS and open source software development in this way.
>>>
>>> Nyall
>>>
>>> [1] Note that building 3.8 using the Proj 6 library requires a minimum
>>> of Proj 6.1 -- it's not possible to build using Proj 6.0. There was an
>>> API call added in 6.1 which we require, and I couldn't work around.
>>> Sorry for any inconveniences this causes!
>>> _______________________________________________
>>> QGIS-Developer mailing list
>>> QGIS-Developer at lists.osgeo.org
>>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer


More information about the QGIS-Developer mailing list