[QGIS-trac] Re: [Quantum GIS] #2987: Auto GCP detection library

Quantum GIS qgis at qgis.org
Mon Oct 18 04:02:32 EDT 2010


#2987: Auto GCP detection library
--------------------------------+-------------------------------------------
   Reporter:  jamesm6162        |              Owner:  timlinux     
       Type:  patch             |             Status:  assigned     
   Priority:  minor: annoyance  |          Milestone:  Version 1.6.0
  Component:  C++ Plugins       |            Version:  Trunk        
   Keywords:                    |   Platform_version:               
   Platform:  Debian            |           Must_fix:  No           
Status_info:  0                 |  
--------------------------------+-------------------------------------------

Comment(by timlinux):

 Hi

 I upgraded both the lib parts and the plugin parts. A couple of new
 comments:

 - it would be nice to persist the last used dir for reference and raw
 images separately since these will often be in separate directories.

 - It would be nice to have an option to simply georeference the image (as
 opposed to orthorectify it) for those that dont have a dem handy.

 - I still get a crash when trying to gather GCP's between two images. The
 data is not publically shareable, so I will mail you a copy offlist.

 - It would still be nice to have a 'zoom to image' tool on the toolbars.

 - Thanks for updating to use the built in CRS selector from QGIS - much
 better usability.

 {{{
 Debug: qgsautogcpmanager.cpp: (QgsAutoGCPManager::extractControlPoints())
 Starting Control Point Extraction
 Debug: Analyzer Starting GCP extraction
 Debug: Levels: 5
 Debug: Chip Cache Size = 5 of 256 elements

 Debug: Wavelet Iterations: 296 x 352

 Debug: Dividing image into 7 X 7 grids
 Debug: Extracting GCP Chips
 Debug: GCP Extraction Complete
 Debug: ++++++++++++++++++++++++11
 Debug: Analyzer Starting GCP extraction
 Debug: Levels: 5
 Debug: Chip Cache Size = 5 of 256 elements

 Debug: Wavelet Iterations: 221 x 260

 Debug: Dividing image into 56 X 56 grids
 Debug: Extracting GCP Chips
 Debug: GCP Extraction Complete

 Program received signal SIGSEGV, Segmentation fault.
 0x00007fffd34c9254 in QList<QgsGcp*>::detach (this=0x86333e0) at
 /usr/include/qt4/QtCore/qlist.h:122
 122         inline void detach() { if (d->ref != 1) detach_helper(); }
 }}}

 backtrace:

 {{{
 #0  0x00007fffd34c9254 in QList<QgsGcp*>::detach (this=0x86333e0) at
 /usr/include/qt4/QtCore/qlist.h:122
 #1  0x00007fffd34c8d99 in QList<QgsGcp*>::append (this=0x86333e0,
 t=@0x69109b8) at /usr/include/qt4/QtCore/qlist.h:468
 #2  0x00007fffd327a9cf in QList<QgsGcp*>::push_back (this=0x86333e0,
 t=@0x69109b8) at /usr/include/qt4/QtCore/qlist.h:277
 #3  0x00007fffd3279e2e in QgsImageAnalyzer::QgsGrid::fillGrid
 (this=0x49121c0, gcpSet=0x61f9f30)
     at /home/timlinux/dev/cpp/qgis/src/autogcp/qgsimageanalyzer.cpp:521
 #4  0x00007fffd327821d in QgsImageAnalyzer::matchGcps (this=0x4091630,
 gcpSet=0x5f58180)
     at /home/timlinux/dev/cpp/qgis/src/autogcp/qgsimageanalyzer.cpp:127
 #5  0x00007fffd3270b9e in QgsAutoGCPManager::matchControlPoints
 (this=0x44fa290) at
 /home/timlinux/dev/cpp/qgis/src/autogcp/qgsautogcpmanager.cpp:138
 #6  0x00007fffd34ddd3f in meth_QgsAutoGCPManager_matchControlPoints
 (sipSelf=<QgsAutoGCPManager at remote 0x43ff7c0>, sipArgs=())
     at sipautogcppart3.cpp:1361
 #7  0x00007fffd67e1030 in call_function (f=
     Frame 0x408b230, for file
 /home/timlinux/.qgis/python/plugins/autogcp/guibase.py, line 1235, in
 matchGcps (self=<Ui_MainWindow(dockWidgetContents_2=<QWidget at remote
 0x43fb490>, dockWidgetContents_3=<QWidget at remote 0x43fbaf0>,
 rawMapCanvas=<QgsMapCanvas at remote 0x43fbd10>, actionTest1=<QAction at
 remote 0x43fe160>, menuSettings=<QMenu at remote 0x43f67c0>,
 actionTest2=<QAction at remote 0x43fe270>, actionAbout=<QAction at remote
 0x43fd7c0>, menubar=<QMenuBar at remote 0x43f65a0>, menuHelp=<QMenu at
 remote 0x43f6628>, actionZoomInAll=<QAction at remote 0x43fec88>,
 actionDetectGCP=<QAction at remote 0x43fd380>, actionZoomOutAll=<QAction
 at remote 0x43fed10>, bandCount=<QString at remote 0x43e68d8>,
 refLayer=<QgsRasterLayer at remote 0x43feaf0>, actionZoomOut2=<QAction at
 remote 0x43fe518>, rawScaleText=<QLineEdit at remote 0x43fd050>,
 actionShowRefImage=<QAction at remote 0x43fe958>, gcpItems=[],
 sqlitePath=<QString at remote 0x43e6460>,
 settings=<AutoGcpSettings(sqliteChoice=0, markerIconType=0,
 selected...(truncated),
     throwflag=<value optimized out>) at ../Python/ceval.c:3750
 #8  PyEval_EvalFrameEx (f=
     Frame 0x408b230, for file
 /home/timlinux/.qgis/python/plugins/autogcp/guibase.py, line 1235, in
 matchGcps (self=<Ui_MainWindow(dockWidgetContents_2=<QWidget at remote
 0x43fb490>, dockWidgetContents_3=<QWidget at remote 0x43fbaf0>,
 rawMapCanvas=<QgsMapCanvas at remote 0x43fbd10>, actionTest1=<QAction at
 remote 0x43fe160>, menuSettings=<QMenu at remote 0x43f67c0>,
 actionTest2=<QAction at remote 0x43fe270>, actionAbout=<QAction at remote
 0x43fd7c0>, menubar=<QMenuBar at remote 0x43f65a0>, menuHelp=<QMenu at
 remote 0x43f6628>, actionZoomInAll=<QAction at remote 0x43fec88>,
 actionDetectGCP=<QAction at remote 0x43fd380>, actionZoomOutAll=<QAction
 at remote 0x43fed10>, bandCount=<QString at remote 0x43e68d8>,
 refLayer=<QgsRasterLayer at remote 0x43feaf0>, actionZoomOut2=<QAction at
 remote 0x43fe518>, rawScaleText=<QLineEdit at remote 0x43fd050>,
 actionShowRefImage=<QAction at remote 0x43fe958>, gcpItems=[],
 sqlitePath=<QString at remote 0x43e6460>,
 settings=<AutoGcpSettings(sqliteChoice=0, markerIconType=0,
 selected...(truncated),
     throwflag=<value optimized out>) at ../Python/ceval.c:2412
 #9  0x00007fffd67e2d60 in PyEval_EvalCodeEx (co=0x247a558, globals=<value
 optimized out>, locals=<value optimized out>, args=0x1,
     argcount=<value optimized out>, kws=<value optimized out>, kwcount=0,
 defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:3000
 #10 0x00007fffd6768d60 in function_call (func=<function at remote
 0x252ccf8>, arg=
     (<Ui_MainWindow(dockWidgetContents_2=<QWidget at remote 0x43fb490>,
 dockWidgetContents_3=<QWidget at remote 0x43fbaf0>,
 rawMapCanvas=<QgsMapCanvas at remote 0x43fbd10>, actionTest1=<QAction at
 remote 0x43fe160>, menuSettings=<QMenu at remote 0x43f67c0>,
 actionTest2=<QAction at remote 0x43fe270>, actionAbout=<QAction at remote
 0x43fd7c0>, menubar=<QMenuBar at remote 0x43f65a0>, menuHelp=<QMenu at
 remote 0x43f6628>, actionZoomInAll=<QAction at remote 0x43fec88>,
 actionDetectGCP=<QAction at remote 0x43fd380>, actionZoomOutAll=<QAction
 at remote 0x43fed10>, bandCount=<QString at remote 0x43e68d8>,
 refLayer=<QgsRasterLayer at remote 0x43feaf0>, actionZoomOut2=<QAction at
 remote 0x43fe518>, rawScaleText=<QLineEdit at remote 0x43fd050>,
 actionShowRefImage=<QAction at remote 0x43fe958>, gcpItems=[],
 sqlitePath=<QString at remote 0x43e6460>,
 settings=<AutoGcpSettings(sqliteChoice=0, markerIconType=0,
 selectedIconColor=0, postgresHost=<QString at remote 0x44021f0>,
 chipHeight=32, databaseSelection=1, postgresName=<QStr...(truncated),
 kw=0x0) at ../Objects/funcobject.c:524
 #11 0x00007fffd673b2e3 in PyObject_Call (func=<function at remote
 0x252ccf8>, arg=Traceback (most recent call last):
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 1054, in
 to_string
     pyop = PyObjectPtr.from_pyobject_ptr(self.gdbval)
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 343, in
 from_pyobject_ptr
     cls = cls.subclass_from_type(p.type())
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 288, in
 subclass_from_type
     tp_name = t.field('tp_name').string()
   File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
     return codecs.utf_8_decode(input, errors, True)
 UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2:
 invalid data
 , kw=Traceback (most recent call last):
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 1054, in
 to_string
     pyop = PyObjectPtr.from_pyobject_ptr(self.gdbval)
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 343, in
 from_pyobject_ptr
     cls = cls.subclass_from_type(p.type())
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 288, in
 subclass_from_type
     tp_name = t.field('tp_name').string()
   File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
     return codecs.utf_8_decode(input, errors, True)
 UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2:
 invalid data
 ) at ../Objects/abstract.c:2492
 #12 0x00007fffd674ccef in instancemethod_call (func=<function at remote
 0x252ccf8>, arg=
     (<Ui_MainWindow(dockWidgetContents_2=<QWidget at remote 0x43fb490>,
 dockWidgetContents_3=<QWidget at remote 0x43fbaf0>,
 rawMapCanvas=<QgsMapCanvas at remote 0x43fbd10>, actionTest1=<QAction at
 remote 0x43fe160>, menuSettings=<QMenu at remote 0x43f67c0>,
 actionTest2=<QAction at remote 0x43fe270>, actionAbout=<QAction at remote
 0x43fd7c0>, menubar=<QMenuBar at remote 0x43f65a0>, menuHelp=<QMenu at
 remote 0x43f6628>, actionZoomInAll=<QAction at remote 0x43fec88>,
 actionDetectGCP=<QAction at remote 0x43fd380>, actionZoomOutAll=<QAction
 at remote 0x43fed10>, bandCount=<QString at remote 0x43e68d8>,
 refLayer=<QgsRasterLayer at remote 0x43feaf0>, actionZoomOut2=<QAction at
 remote 0x43fe518>, rawScaleText=<QLineEdit at remote 0x43fd050>,
 actionShowRefImage=<QAction at remote 0x43fe958>, gcpItems=[],
 sqlitePath=<QString at remote 0x43e6460>,
 settings=<AutoGcpSettings(sqliteChoice=0, markerIconType=0,
 selectedIconColor=0, postgresHost=<QString at remote 0x44021f0>,
 chipHeight=32, databaseSelection=1, postgresName=<QStr...(truncated), kw=
     0x0) at ../Objects/classobject.c:2579
 #13 0x00007fffd673b2e3 in PyObject_Call (func=<instancemethod at remote
 0x1d8cf50>, arg=Traceback (most recent call last):
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 1054, in
 to_string
     pyop = PyObjectPtr.from_pyobject_ptr(self.gdbval)
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 343, in
 from_pyobject_ptr
     cls = cls.subclass_from_type(p.type())
   File "/usr/lib/debug/usr/lib/libpython2.6.so.1.0-gdb.py", line 288, in
 subclass_from_type
     tp_name = t.field('tp_name').string()
   File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
     return codecs.utf_8_decode(input, errors, True)
 UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2:
 invalid data
 ) at ../Python/ceval.c:3619
 #15 0x00007fffd64e2a38 in sip_api_invoke_slot () from
 /usr/lib/pymodules/python2.6/sip.so
 #16 0x00007fffd621f016 in ?? () from
 /usr/lib/pymodules/python2.6/PyQt4/QtCore.so
 #17 0x00007fffd621f138 in ?? () from
 /usr/lib/pymodules/python2.6/PyQt4/QtCore.so
 #18 0x00007fffd621f1f2 in ?? () from
 /usr/lib/pymodules/python2.6/PyQt4/QtCore.so
 #19 0x00007ffff6554e3f in QMetaObject::activate(QObject*, QMetaObject
 const*, int, void**) () from /usr/lib/libQtCore.so.4
 #20 0x00007ffff58f5032 in QAction::triggered(bool) () from
 /usr/lib/libQtGui.so.4
 #21 0x00007ffff58f70ab in QAction::activate(QAction::ActionEvent) () from
 /usr/lib/libQtGui.so.4
 #22 0x00007ffff5cb16ca in ?? () from /usr/lib/libQtGui.so.4
 #23 0x00007ffff5cb197c in QAbstractButton::mouseReleaseEvent(QMouseEvent*)
 () from /usr/lib/libQtGui.so.4
 #24 0x00007ffff5d7d8ca in QToolButton::mouseReleaseEvent(QMouseEvent*) ()
 from /usr/lib/libQtGui.so.4
 #25 0x00007ffff5951582 in QWidget::event(QEvent*) () from
 /usr/lib/libQtGui.so.4
 #26 0x00007ffff58fb22c in QApplicationPrivate::notify_helper(QObject*,
 QEvent*) () from /usr/lib/libQtGui.so.4
 #27 0x00007ffff5901ecb in QApplication::notify(QObject*, QEvent*) () from
 /usr/lib/libQtGui.so.4
 #28 0x00007ffff759d8e5 in QgsApplication::notify (this=0x7fffffffded0,
 receiver=0x44b1f80, event=0x7fffffffd0a0)
     at /home/timlinux/dev/cpp/qgis/src/core/qgsapplication.cpp:88
 #29 0x00007ffff654206c in QCoreApplication::notifyInternal(QObject*,
 QEvent*) () from /usr/lib/libQtCore.so.4
 #30 0x00007ffff59010ae in QApplicationPrivate::sendMouseEvent(QWidget*,
 QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
    from /usr/lib/libQtGui.so.4
 #31 0x00007ffff5980f65 in ?? () from /usr/lib/libQtGui.so.4
 #32 0x00007ffff597f8ac in QApplication::x11ProcessEvent(_XEvent*) () from
 /usr/lib/libQtGui.so.4
 #33 0x00007ffff59ab882 in ?? () from /usr/lib/libQtGui.so.4
 #34 0x00007ffff19af8c2 in g_main_context_dispatch () from
 /lib/libglib-2.0.so.0
 #35 0x00007ffff19b3748 in ?? () from /lib/libglib-2.0.so.0
 #36 0x00007ffff19b38fc in g_main_context_iteration () from
 /lib/libglib-2.0.so.0
 #37 0x00007ffff656b513 in
 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
 () from /usr/lib/libQtCore.so.4
 #38 0x00007ffff59ab46e in ?? () from /usr/lib/libQtGui.so.4
 #39 0x00007ffff6540992 in
 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from
 /usr/lib/libQtCore.so.4
 #40 0x00007ffff6540d6c in
 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
 /usr/lib/libQtCore.so.4
 #41 0x00007ffff6544aab in QCoreApplication::exec() () from
 /usr/lib/libQtCore.so.4
 #42 0x0000000000523ff5 in main (argc=1, argv=0x7fffffffe5d8) at
 /home/timlinux/dev/cpp/qgis/src/app/main.cpp:802

 }}}


 Regards

 Tim

-- 
Ticket URL: <https://trac.osgeo.org/qgis/ticket/2987#comment:11>
Quantum GIS <http://qgis.org>
Quantum GIS is an Open Source GIS viewer/editor supporting OGR, PostGIS, and GRASS formats


More information about the QGIS-trac mailing list