Giter VIP home page Giter VIP logo

Comments (7)

grantboxer avatar grantboxer commented on August 22, 2024 1

I have just tried it again and it seems to work. The append all worked and the skip duplicates worked. I will try another data set and let you know if I have any problems.
Thanks and cheers Grant

from appendfeaturestolayer.

gacarrillor avatar gacarrillor commented on August 22, 2024

Thanks for the report @grantboxer.

Could you please share sample data to replicate the issue?

from appendfeaturestolayer.

grantboxer avatar grantboxer commented on August 22, 2024

This is the crash report below, link to files here "https://www.dropbox.com/scl/fo/kbklx26tu4tu5yk5mrt76/h?rlkey=yjvhxb8al1apyeepd70tjg6lg&dl=0".

Essentially what I am trying to do is update a QField project with new data collected in the field. So, I am trying to add the new points file to the existing points file in the original geopackage.

Hope that makes sense.

Cheers Grant

Report Details

Python Stack Trace

Windows fatal exception: access violation

Thread 0x00003418 (most recent call first):
  File "C:\OSGeo4W/apps/qgis/./python\qgis\core\additions\edit.py", line 43 in __exit__
    if not self.layer.commitChanges():
  File "C:\Users/Grant/AppData/Roaming/QGIS/QGIS3\profiles\Grant/python/plugins\AppendFeaturesToLayer\processing\algs\AppendFeaturesToLayer.py", line 344 in processAlgorithm
    target.endEditCommand()

Thread 0x0000348c (most recent call first):
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\connection.py", line 310 in _recv_bytes
    waitres = _winapi.WaitForMultipleObjects(
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\connection.py", line 255 in recv
    buf = self._recv_bytes()
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\pool.py", line 576 in _handle_results
    task = get()
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 892 in run
    self._target(*self._args, **self._kwargs)
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 954 in _bootstrap_inner
    self.run()
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 912 in _bootstrap
    self._bootstrap_inner()

Thread 0x000009d0 (most recent call first):
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\pool.py", line 528 in _handle_tasks
    for taskseq, set_length in iter(taskqueue.get, None):
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 892 in run
    self._target(*self._args, **self._kwargs)
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 954 in _bootstrap_inner
    self.run()
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 912 in _bootstrap
    self._bootstrap_inner()

Thread 0x00003e74 (most recent call first):
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\connection.py", line 816 in _exhaustive_wait
    res = _winapi.WaitForMultipleObjects(L, False, timeout)
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\connection.py", line 884 in wait
    ready_handles = _exhaustive_wait(waithandle_to_obj.keys(), timeout)
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\pool.py", line 499 in _wait_for_updates
    wait(sentinels, timeout=timeout)
  File "C:\OSGeo4W\apps\Python39\lib\multiprocessing\pool.py", line 519 in _handle_workers
    cls._wait_for_updates(current_sentinels, change_notifier)
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 892 in run
    self._target(*self._args, **self._kwargs)
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 954 in _bootstrap_inner
    self.run()
  File "C:\OSGeo4W\apps\Python39\lib\threading.py", line 912 in _bootstrap
    self._bootstrap_inner()

Current thread 0x000058b4 (most recent call first):
  File "C:\OSGeo4W/apps/qgis/./python/plugins\processing\ProcessingPlugin.py", line 432 in executeAlgorithm
    dlg.exec_()
  File "C:\OSGeo4W/apps/qgis/./python/plugins\processing\gui\ProcessingToolbox.py", line 232 in executeAlgorithm
    self.executeWithGui.emit(alg.id(), self, self.in_place_mode, False)

Stack Trace


QMimeType::staticMetaObject :
QgsVectorLayer::isModified :
QgisApp::updateLayerModifiedActions :
QgisApp::activateDeactivateLayerRelatedActions :
QgisApp::layerEditStateChanged :
QMetaCallEvent::placeMetaCall :
QObject::event :
QWidget::event :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify :
QCoreApplication::notifyInternal2 :
QCoreApplicationPrivate::sendPostedEvents :
qt_plugin_query_metadata :
QEventDispatcherWin32::processEvents :
qt_plugin_query_metadata :
QEventLoop::exec :
QDialog::exec :
PyInit_QtWidgets :
PyArg_ParseTuple_SizeT :
PyEval_EvalFrameDefault :
PyObject_GC_Del :
PyFunction_Vectorcall :
PyFloat_FromDouble :
PyVectorcall_Call :
PyObject_Call :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
QObject::qt_static_metacall :
QMetaObject::activate :
PyInit_QtCore :
PyInit_QtCore :
PyType_GenericNew :
PyEval_EvalFrameDefault :
PyFunction_Vectorcall :
PyFloat_FromDouble :
PyVectorcall_Call :
PyObject_Call :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
QObject::qt_static_metacall :
QAbstractItemView::doubleClicked :
QTreeView::mouseDoubleClickEvent :
PyInit__gui :
QWidget::event :
QFrame::event :
QAbstractItemView::viewportEvent :
PyInit__gui :
QCoreApplicationPrivate::sendThroughObjectEventFilters :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify :
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QSizePolicy::QSizePolicy :
QSizePolicy::QSizePolicy :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify :
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
qt_plugin_query_metadata :
QEventLoop::exec :
QCoreApplication::exec :
main :
BaseThreadInitThunk :
RtlUserThreadStart :

QGIS Info
QGIS Version: 3.34.2-Prizren
QGIS code revision: 7d199797fc
Compiled against Qt: 5.15.3
Running against Qt: 5.15.3
Compiled against GDAL: 3.8.2
Running against GDAL: 3.8.2

System Info
CPU Type: x86_64
Kernel Type: winnt
Kernel Version: 10.0.19045

from appendfeaturestolayer.

gacarrillor avatar gacarrillor commented on August 22, 2024

Thanks for the sample data and the report.

It's working on QGIS master. So let's get more details.

I've tried with these 2 configurations:

image

image

However, so far I haven't tested on Windows.

What configuration are you using in the Processing algorithm dialog?

from appendfeaturestolayer.

grantboxer avatar grantboxer commented on August 22, 2024

I was using append with no duplicates and using the Pt_name field to avoid overwriting existing points.

Should I install the dev master to see if it works with that version?

from appendfeaturestolayer.

gacarrillor avatar gacarrillor commented on August 22, 2024

Note that Just APPEND all features, no matter of duplicates actually means: All features in source layer will be appended to target layer. So, you cannot choose a field for that specific option (the algorithm won't run unless you leave the field parameters empty).

By the way, Pt_name does not exist as a field name in your sample data. Did you mean Point_id? If so, I wouldn't do it, because there are already duplicate values in Point_id.

I'll attempt to test on a Windows machine during the weekend. If you discover something (e.g., the algorithm works with certain parameters but not with others, or, on an empty project everything works as expected) please let me know.

from appendfeaturestolayer.

gacarrillor avatar gacarrillor commented on August 22, 2024

I finally had access to a Windows machine. I tested 2 modes on QGIS 3.34.3:

  • Just APPEND all features, no matter of duplicates: 🟢
  • If duplicate is found, SKIP feature: 🟢 (fid fields in both layers as fields to compare)

Everything run smoothly.

I'll close this issue because I couldn't replicate it, and in your last comment you stated that it actually works.
Feel free to reopen if you replicate the issue.

from appendfeaturestolayer.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.