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.31k stars 2.97k forks source link

Rewrite QGIS Georeferencer tool with ability of interactive georeferencing of rasters directly in map canvas #35051

Open iFitch opened 4 years ago

iFitch commented 4 years ago

Feature description. The raster georeferencing method implemented in such software like ArcGIS looks more convenient for raster georeferencing.

It would be nice to implement a similar functionality in QGIS, when the links\bonds lines could be drawn directly in the map canvas with interactive raster transformation on the fly.

saberraz commented 4 years ago

This is something we are planning to do for QGIS 3.14/3.16. See QGIS Enhancement Proposals repo for the details to be published soon.

In addition, we plan to enhance the algorithm to support more GDAL parameters (https://gdal.org/development/rfc/rfc22_rpc.html) and port it to the Processing toolbox.

Feel free to DM me if you have any specific requirements or would like to see other features.

nyalldawson commented 4 years ago

@saberraz which QEP? I can't see a related one...

saberraz commented 4 years ago

@wonder-sk is working on one in his head at the moment :)

saberraz commented 4 years ago

OK, here is the email: https://lists.osgeo.org/pipermail/qgis-developer/2020-March/060507.html

iFitch commented 4 years ago

In response to the attached email. In my humble opinion, for the convenience of georeferencing, it is most important to see vector (or raster) data in the same window with the georeferencing raster. Whether this is a separate window or the map canvas window is less important. A live preview of the transformation results is also important. Georeferencing multiple rasters at the same time seems too specific. As I said above. The geo-referencing method implemented in ArсGIS looks extremely close to ideal implementation. I would be glad to see just such a georeferencing panel in QGIS 3.XX :-)

ntrip6 commented 3 years ago

It is wonderful to hear that there are plans to work on the UI of Georeferencer. I did a lot of georeferencing work in Arcmap 10.x years ago and have recently been doing quite a bit in QGIS3 so I thought I would type up some of the aspects of QGIS Georeferencer I that think could be modified for easier flow. Some of these are pretty basic (more basic than what is proposed above) but still fall under the Feature Request category. 1) Allow rotating the original 90 deg in the Preview window (arcmap allows this). I have to flip original and GCPs around in my mind every time i move my eyes between the windows.I saw discussion of a preview mode in Georeferencer. I think this would be a great. At the very least allowing 90deg rotation would allow us to get the original closer to the realworld orientation.I've tried rotating the originals in image editor and this sometimes works. Better to support rotating inside Georeferencer if possible georef_arcmap10

2) Auto-Filenaming of GCP.points file: In Georeferencer > Transform Settings dialog the "Save GCP points" checkbox currently results in a GCP file called output_filename.tif.points. However because the .points GCP file works with the original scan file not the output_filename.tif. perhaps it is more intuitive to have the checkbox "Save GCP points" auto-create a points file called input_filename.tif.points. I guess the one good thing to the current approach is the output points are linked to the step in georeferencing by the filename. But the problem is one assumes they should be loaded along with that file when in fact they were used to produce it.

3) File> Reset Georeferencer removes all the GCP points and the raster as well. If I reload the raster the GCPs come back. How do i just remove all the GCPs and start fresh with the same raster? (this may be a bug) Thank you for this excellent tool. I've found that the QGIS Georeferencer produces often cleaner GeoTIFF files than Arcmap -- kudos team.

4) large crosshairs pointer on the Raster so that one can sight easily on the edge coordinates in the margins of a map scan https://issues.qgis.org/issues/20254

ntrip6 commented 3 years ago

I went through and took a few more screenshots to include here I hope no one minds. This isn't meant to suggest copying them but just to foster discussion of pros/cons of different UI approaches because many people don't have access to esri licensed software for comparison. Good aspects of Arcmap process (visible in screencap I include below)

On additional thing: In Arcmap the georeferencer is doing realtime collinearity and distribution tests whenever a new GCP is placed (as soon as 3 or more GCPs have been placed). This warning pops up if all the GCPs are clustered or along one edge collinearity

The result is that Arcmap encourages an quick, iterative process. First place 4 GCPs roughly around the perimeter to get the thing preview-positioned in the main map window. Keep working carefully placing GCPs # 4-8 or more, then investigate residuals and remove / relocate the GCPs with a high residual. Related to this I recently typed up a QGIS Georeferencer + JOSM workflow on the OSM wiki to help historical mappers to geolocate the excellent Sanborn maps for OHM contributions. Thanks Sanborn_Map_geoferencing for OpenHistoricalMap.org

uclaros commented 3 years ago
1. Allow rotating the original 90 deg in the Preview window (arcmap allows this). I have to flip original and GCPs around in my mind every time i move my eyes between the windows.I saw discussion of a preview mode in Georeferencer. I think this would be a great. At the very least allowing 90deg rotation would allow us to get the original closer to the realworld orientation.I've tried rotating the originals in image editor and this sometimes works. Better to support rotating inside Georeferencer if possible

Check #38884 , it will probably be a feature in 3.18!

2. Auto-Filenaming of GCP.points file: In Georeferencer > Transform Settings dialog the "Save GCP points" checkbox currently results in a GCP file called output_filename.tif.points. However because the .points GCP file works with the original scan file not the output_filename.tif. perhaps it is more intuitive to have the checkbox "Save GCP points" auto-create a points file called input_filename.tif.points. I guess the one good thing to the current approach is the output points are linked to the step in georeferencing by the filename. But the problem is one assumes they should be loaded along with that file when in fact they were used to produce it.

This is a bug in my book, I've stumbled upon it a couple of times but did not report it. input.tif.points should be the norm.

3. File> Reset Georeferencer removes all the GCP points and the raster as well. If I reload the raster the GCPs come back. How do i just remove all the GCPs and start fresh with the same raster? (this may be a bug)

This is probably because there is a input.tif.points and GCPs are re-loaded.

  • In Arcmap the GCP number is visible (consistently colored green and thin font no label buffer like in Q), while the target GCP crosshair and label are consistently red color.

This is nice and easy to read on white background. Trying to read a label without a buffer over an orthophoto can be no fun though.

  • snapping result hover label showing what layer it is snapping to

This is not a georeferencer feature, you can try Settings > Options > Digitizing > Show snapping tooltips

  • GCP Link table (docked) shows residual with X and Y separate as well as transform type

In the georeferencer it's dX - dY . The transformation type is also there, at the status bar, below the default gcp table location!

ntrip6 commented 2 years ago

Terrific to see vector georeferencing (spatial adjustment) added to 3.26.

Added this feature request for a crossahairs mouse cursor to the thread https://issues.qgis.org/issues/20254

robbitt commented 1 year ago

I agree this would greatly facilitate the georeferencing process. In ESRI's ArcMap, you can see what individual control points do to the transform in real-time on the map canvas - allowing a better overall placement of control points. I'd also suggest allowing the user to change the the Transformation type interactively to see the effect in real-time.

blacktesta commented 6 months ago

A very important thread that will greatly improve QGIS. I sign with my hands and feet.