Comments (7)
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.
Thanks for the report @grantboxer.
Could you please share sample data to replicate the issue?
from appendfeaturestolayer.
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.
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:
However, so far I haven't tested on Windows.
What configuration are you using in the Processing algorithm dialog?
from appendfeaturestolayer.
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.
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.
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)
- Check for conflicts / duplications [Feature request] HOT 11
- Changes saved toward a Postgis table? HOT 7
- Cannot call CreateFeature() with a set FID when a dataset is opened more than once HOT 10
- Points no longer show up after updating existing feature HOT 5
- Adding location proximity with fuzzy match. HOT 2
- QGIS Crash HOT 4
- Batch mode leads to crash
- Add "If duplicate is found, only UPDATE existing feature's geometry" option HOT 1
- Conversion between a String attribute of a Geopackage and a JSON field of PostgreSQL HOT 3
- option to select fields to update HOT 1
- Loading "Run as batch.."
- Add command line instructions (qgis_process) to README HOT 1
- Please add option to clear the target before insert HOT 2
- Need more ways to find duplicates HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from appendfeaturestolayer.