[Qgis-developer] QGIS georeferencer / vector georeferencer

Mark Johnson mj10777 at googlemail.com
Thu Nov 26 06:06:18 PST 2015


Making changes to the present georeferencer would be a great improvement.

I have used this georeferencer for many years, but it has a major drawback
- when loading a *.points file > 200-300 points
-- it becomes very slow

A *.points file of 1000 points can take up to an hour to load
- to add/move/delete a point 20-60 seconds
-- often after 2-3 attempts

---

When Spatialite offered the GrassGis based GCP_* functions
- I attempted to adapt the georeferencer code to use a Spatialite Database
instead of the *.points file
-- importing an existing *.points file when found

In QgsGeorefPluginGui::loadGCPs, if a Database was found this would be
loaded as a QgsVectorLayer for both QgsMapCanvasLayers
- otherwise use the *.points file

Loading and moving with > 1000 points poses no problems at all.

Using the GrassGis based GCP_* functions has the advantage that:
- after defining about 10-20 points (both pixel and position)
-- the GCP_Compute function can be called to calculate an average
(Polynomial coefficients)

At the moment I then manual attach a Database and load a set (300-500) well
known points
- and the pixel values are calculated and stored

Reloading this in QGIS-georeferencer, the estimated points can then be
corrected
- using QgsVectorLayer which deals with the updating of the changed values

--
What is missing is adding, deleting of points
- when a position is added, GCP_Compute could be called to create the pixel
point on the Raster
-- after witch that point only needs to be corrected

Not being firm on the gui portions
- all needed interactions, that is not delt with by QgsMapCanvasLayers, are
needed

A existing QgsGeorefPluginGui::createGCPDb function
- creates the Spatialite-Database with everything that is needed
-- including views to create a .point file or a GDAL GCP list
- checks if Spatialite has been compiled with GCP support [HasGCP()]
-- due to the different licence of GrassGis where the GCP_* logic comes from

All of this speeds up the development of a new Map greatly
- since most of the needed (well known) point are added automaticly

The created final gdal GCP list is then placed into a script configuration
file
- that then calls gdal to create the final image

---

I would be glad to offer this existing QGIS code to any one interested in
implementing this
- I am not that firm on the QT-gui logic

My problem is that I use a QGIS version base on the commit of 2014_02_22
- the last version that, when refreshing, does not blank the screen before
repainting
-- which is too hard on my eyes to work with
--- 2.8.x Wien also has this effect

Also I have not been able to compile that last master version for some while
- due to new dependencies that have been added

Otherwise I would be willing to cooperate with anybody that could get this
working as a part of QGIS.

Mark Johnson, Berlin Germany
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20151126/a3108ab2/attachment.html>


More information about the Qgis-developer mailing list