qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.43k stars 2.98k forks source link

User-Defined Coordinate Transformations in QGIS #56753

Open phaarnes opened 7 months ago

phaarnes commented 7 months ago

Feature description

As far as I know, it is not possible to define your own datum/coordinate transformations in QGIS. I miss the functionality for defining custom transformations that QGIS offers for defining custom CRSs.

For example, a module could be added under CRS and Transforms in Options titled "User-Defined Coordinate Transforms", where the user could define a transformation using Well Known Text (WKT) or a Proj4 string. A setup quite similar to what is used for "User-Defined CRS" should work.

Additionally, it would be beneficial to have an option that allows the user to control whether duplicates are permitted and/or whether the custom transformation should override the current EPSG definition in case of they are sharing the same transformation code.

Alternatively, functionality similar to what ArcGIS provides could also be considered, where users can create custom transformations and save them as a file (like .gtf, .prj or .wkt), which contains the WKT for the particular transformation. These files could then be stored locally in a directory such as %AppData%\QGIS\QGIS3\CustomTransformations, to which QGIS could point in order to access all user-defined transformations and include these in the list of available transformations shown in the tool.

Additional context

No response

John-Grubb commented 4 months ago

You can add a custom CRS through Settings/Custom Projections.

However, it is not straightforward. You need to know a "language" called WKT (Well-Known Text). A little Googling suggests that this isn't a consistent "language" across applications.

I would like to see QGIS offer a simple "duffers" dialogue to define a CRS not on the list of built-in options, such as is offered in Global Mapper or Geographic Calculator or "industry" applications like Starfix or NaviEdit whereby, depending on selected options in drop-downs the fields to enter the given parameters are shown.

For example, I want to add the Norway-specific "North of 62°N" WGS84 to ED50 transformation to QGIS. I have the seven-parameter Bursa-Wolfe solution to hand. I've no idea how to enter it. What I want is a dialogue where I enter the name I want to call the custom CRS, select from a drop-down the datum, from another drop-down that I want 7-param Bursa-Wolfe (as opposed to Molodensky, etc), and so on, and then to put my dX/Y/Z, rX/Y/Z and dScale in the appropriate fields and then hit "Save" or "Okay" and there it is on the list of CRS's, all ready to be set as my project CRS.

Simples...

However, I find it quite surprising that North of 62°N isn't on the list alongside regular ED50 UTM31N or 32N options. Even it's EPSG code yields nothing.

In case a developer that can take a hint is passing here's the deltas and rotations for North of 62°N:-

EPSG:1612 Datum: ED50 Transformation WGS84 to ED50:- dX=116.641m dY=56.931m dZ=110.559m rX=-0.893sec rY=-0.921sec rZ=0.917sec dScale=3.520ppm

phaarnes commented 4 months ago

@John-Grubb Yes, I have tested adding a bound CRS using a PROJ4 string, and that works. However, this is not an ideal solution because the Proj4 format has limitations.

You should be able to find the EPSG:1612 in the list of available transformations between ED50 and WGS84. Note that you must use the CRS picker tool to select the source and target CRS in order to access the list. Using the drop-down menu will not provide you with a list of transformations.

image