Switching SonarWiz geodesy to PROJ

Chesapeake Times, Vol 10 | July 2022

For many years now, the geodesy system in SonarWiz and related utilities has been based on an open source library called CS-Map. Associated with the Open Source Geospatial Foundation (osgeo.org), CS-Map provides functionality that allows for coordinate transformations between combinations of geodetic and grid positions. SonarWiz depends on this functionality to import data recorded with latitude/longitude positioning, among other things.

A number of upgrades and alternatives have been explored/tried in the past, and rejected (or in one case, rolled back) for one reason or another. Meanwhile, we’ve had increasing requests for support for newer datums and transformation methods, some of which we can’t yet provide.

In an upcoming release, though, we’ve managed to make the switch, to a more modern library known as PROJ (proj.org, also from the OSGeo project). PROJ has been the standard geodesy choice for many new projects for a while now; it offers the latest data and algorithms, has a vibrant development community, and is powering enough high-profile projects that flaws are noticed and rooted out quickly.

In addition to the above, PROJ is used as the default georeferencing system in GDAL (the Generic Data Access Library, at gdal.org, also an OSGeo project). While current SonarWiz uses GDAL, it does so mostly transitively through the Global Mapper library; a more direct dependence on GDAL is in the works to take care of some difficulties we’ve had with user- and CTI-created coordinate systems, translations between geodesy systems, and georeferenced exports and related WKTs/PRJ files.

For a first release, we’re targeting a modest, near-invisible transition. While a switch to PROJ allows for many new possibilities in specifying and selecting transformations and the systems they work with – like grid- and time- dependent transformations, proj-strings, and newer WKT formats than SonarWiz currently supports – we’re opting to leave the user interface and existing capabilities alone and instead focus on getting just a clean translation from
the current geodesy system and PROJ.

We’re planning future upgrades to take better advantages of PROJ and GDAL integration, allow for newer datums that have been frequent requests, and update the CRS choosing and specifying interfaces. Example CRS specification windows from QGIS (qgis.org, also associated with OSGeo, using PROJ for geodesy), SonarWiz, and the CTI geodesy tool:

Additionally, this geodesy update allows for an upcoming CSF revision to remove an internal reliance on WGS84 as a pivot datum. This change will improve coordinate accuracy in some circumstances, and allow us to store as-recorded navigation data, rather than a transformed version.

Transitioning the SonarWiz ecosystem to PROJ is a big upgrade that paves the way for many other improvements. New and updated datum and transformation methods, improved CRS-specifying user interface, and georeferencing accuracy and performance are all on the horizon.