[QGIS-Developer] QGIS Georeferencer improvements
wonder.sk at gmail.com
Fri Mar 13 08:12:42 PDT 2020
There has been some interest from a client to improve the
georeferencer in QGIS to better suit their needs, mainly to support
their workflow where they commonly georeference multiple raster images
at the same time. So for example you pick a single ground control
point (GCP) with XY(Z) map coordinates and in multiple images you
would visually pick where that point is located in image coordinates.
Ideally you want to see side-by-side the main map canvas and images
you are georeferencing.
With this kind of change, it is maybe a good time to have a look at
what are the other issues with the georeferencer and address them as
well. The budget is limited (as usual), so I cannot promise that
anything mentioned in this thread would get implemented, but I am sure
there are people around who have some ideas what could be improved. At
some point later I would like to prepare a QEP that will be hopefully
in line with the discussion here.
Let me start with a list of current issues I see with georeferencer in
addition to the lack of georeferencing of multiple images at once. The
following is a mixture of UI/UX and technical bits:
1. Georeferencer opens in a new window. In order to see the main map
canvas and the georeferenced layer side by side, it is necessary to do
some resizing of windows which is inconvenient. It would be maybe more
practical to have the georeferenced image in a dock widget in the main
window - and all georeferencer related map tools included in the main
QGIS window as well. (Or maybe the other way around - to keep
georeferencer as a separate window, but allow the main map canvas to
be embedded in it?)
2. Georeferencer is a plugin. Its core/gui functionality cannot be
reused elsewhere. It would be useful to have some Processing
algorithms to load/save GCPs, to extract GCPs to raster images, to
save GCPs to raster images and to warp imagery according to GCPs (and
chosen transformation method).
3. Georeferencer does not allow live preview of how the georeferenced
raster image would end up looking on the map - user is required to
write warped image to disk as a new file and only then see the
results. It should be possible to use the estimated transformation
based on GCPs and show the layer in the main map canvas any time (if
4. It uses a combination of GDAL-based transformation methods
(Polynomial of 1st/2nd/3rd order, thin plate spline) and some of its
own (Helmert, Projective), for which it also requires GSL library as a
dependency. In my opinion, QGIS georeferencer should leave all the
math to GDAL which does a great job there. Moreover, I have some
doubts about the methods that do not come from GDAL: the “Helmert”
method is simply 2D affine transform (offset+scale+angle), while true
Helmert transformation is 3D transformation with 7 parameters. Do we
need it if GDAL’s 1st order polynomial transformation should do just
that? And the “Projective” method which is a bit of a mystery to me.
First of all, I am not sure in what situation it is useful and the
documentation only says it is “a linear rotation and translation of
coordinates” - which is a bit vague. It looks like a subset of RPC
method supported by GDAL (although GDAL does not have estimation of
RPC coefficients). Overall I would be for removal of these methods and
stick to what GDAL offers.
I would be keen to hear what you think, if you agree/disagree with the
above or have some ideas how to improve things here.
More information about the QGIS-Developer