I am trying to run v.clean in QGIS 3.10.7. I have a 2D LineString dataset saved in GPKG format and I want to run v.clean to clean up some messy topology.
But whenever I run it, I get the same result - an empty "output" and "error" table. There do seem to be errors in the log but I don't fully understand the issue. I am thinking that maybe it is a file permission issue. The machine I am on is a Windows remote desktop machine where I have no administrator rights. I even needed an IT admin to install QGIS.
This is the full log (sorry that it's in German, it seems to be based on the system's locale:
QGIS version: 3.10.7-A Coruña
QGIS code revision: 7b4ca4c8d0
Qt version: 5.11.2
GDAL version: 3.0.4
GEOS version: 3.8.1-CAPI-1.13.3
PROJ version: Rel. 6.3.2, May 1st, 2020
Processing algorithm…
Algorithm 'v.clean' starting…
Input parameters:
{ '-b' : False, '-c' : False, 'GRASS_MIN_AREA_PARAMETER' : 0.0001, 'GRASS_OUTPUT_TYPE_PARAMETER' : 0, 'GRASS_REGION_PARAMETER' : None, 'GRASS_SNAP_TOLERANCE_PARAMETER' : -1, 'GRASS_VECTOR_DSCO' : '', 'GRASS_VECTOR_EXPORT_NOCAT' : False, 'GRASS_VECTOR_LCO' : '', 'error' : 'TEMPORARY_OUTPUT', 'input' : 'E:/FILES/boates/_sandbox/barge_linestring.gpkg', 'output' : 'TEMPORARY_OUTPUT', 'threshold' : '', 'tool' : [0], 'type' : [1] }
g.proj -c proj4="+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs"
v.in.ogr min_area=0.0001 snap=-1.0 input="E:\FILES\boates\_sandbox\barge_linestring.gpkg" output="vector_5f29348b80e4e7" --overwrite -o
g.region n=4955873.83738809 s=4952208.4649022 e=1369171.59001795 w=1363539.95020253
v.clean input=vector_5f29348b80e4e7 type="line" tool="break" output=output3402550f36254550a067cbc8b6b046c8 error=error3402550f36254550a067cbc8b6b046c8 --overwrite
v.out.ogr type="auto" input="output3402550f36254550a067cbc8b6b046c8" output="C:\Users\boates\AppData\Local\Temp\10\processing_0423af228d63414f9f28e1e4b50b5a17\dd988ebb9ae34dcf9aa438142e6a8682\output.gpkg" format="GPKG" --overwrite
v.out.ogr type="auto" input="error3402550f36254550a067cbc8b6b046c8" output="C:\Users\boates\AppData\Local\Temp\10\processing_0423af228d63414f9f28e1e4b50b5a17\402e5b3a2f2b48299f6b613022f186d7\error.gpkg" format="GPKG" --overwrite
Starting GRASS GIS...
WARNUNG: Sperren gleichzeitiger Zugriffe auf ein Mapset ist unter Windows nicht möglich.
Cleaning up temporary files...
Executing <C:\Users\boates\AppData\Local\Temp\10\processing_0423af228d63414f9f28e1e4b50b5a17\grassdata\grass_batch_job.cmd> ...
C:\PROGRA~1\QGIS3~1.10\bin>chcp 1252 1>NUL
C:\PROGRA~1\QGIS3~1.10\bin>g.proj -c proj4="+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs"
WARNUNG: Datum <Unknown_based_on_International_1909_Hayford_ellipsoid> von GRASS nicht erkannt und keine Parameter gefunden.
Die Standard Region wurde auf die neue Projektion aktualisiert. Wenn Sie aber mehrere Mapsets haben, sollten Sie `g.region -d` in jedem ausführen, um die Einstellungen von der Standardregion zu übernehmen.
Projektionsinformationen aktualisiert
C:\PROGRA~1\QGIS3~1.10\bin>v.in.ogr min_area=0.0001 snap=-1.0 input="E:\FILES\boates\_sandbox\barge_linestring.gpkg" output="vector_5f29348b80e4e7" --overwrite -o
Übersteuere die Überprüfung der Projektion.
Check if OGR layer <barge_linestring> contains polygons...
0..2..4..6..8..10..12..14..16..18..20..22..24..26..28..30..32..34..36..38..40..42..44..46..48..50..52..54..56..58..60..62..64..66..68..70..72..74..76..78..80..82..84..86..88..90..92..94..96..98..100
Creating attribute table for layer <barge_linestring>...
FEHLER: Kann Tabelle nicht erzeugen: 'create table vector_5f29348b80e4e7 (cat integer, source varchar ( 254 ), target varchar ( 254 ), exists integer)'
C:\PROGRA~1\QGIS3~1.10\bin>g.region n=4955873.83738809 s=4952208.4649022 e=1369171.59001795 w=1363539.95020253
C:\PROGRA~1\QGIS3~1.10\bin>v.clean input=vector_5f29348b80e4e7 type="line" tool="break" output=output3402550f36254550a067cbc8b6b046c8 error=error3402550f36254550a067cbc8b6b046c8 --overwrite
--------------------------------------------------
Werkzeug: Schwellwert
Teile: 0
--------------------------------------------------
WARNUNG: Coor file of vector map <vector_5f29348b80e4e7@PERMANENT> is larger than it should be (18 bytes excess)
WARNUNG: Kann den Select-Cursor 'select * from vector_5f29348b80e4e7 where 0 = 1' nicht öffnen.
WARNUNG: Kann die Tabelle <output3402550f36254550a067cbc8b6b046c8> nicht kopieren.
WARNUNG: Unable to copy table <vector_5f29348b80e4e7> for layer 1 from <vector_5f29348b80e4e7@PERMANENT> to <output3402550f36254550a067cbc8b6b046c8>
WARNUNG: Failed to copy attribute table to output vector map
Erstelle Teile der Topologie neu...
Erstelle Topologie für die Vektorkarte <output3402550f36254550a067cbc8b6b046c8@PERMANENT>...
Registriere Primitive...
--------------------------------------------------
Werkzeug: Teile Linien an Überschneidungen
100
--------------------------------------------------
Erstelle erneut Topologie für die Ausgabe-Vektorkarte...
Erstelle Topologie für die Vektorkarte <output3402550f36254550a067cbc8b6b046c8@PERMANENT>...
Registriere Primitive...
--------------------------------------------------
Erstelle Topologie für die Fehler-Vektorkarte...
Erstelle Topologie für die Vektorkarte <error3402550f36254550a067cbc8b6b046c8@PERMANENT>...
Registriere Primitive...
C:\PROGRA~1\QGIS3~1.10\bin>v.out.ogr type="auto" input="output3402550f36254550a067cbc8b6b046c8" output="C:\Users\boates\AppData\Local\Temp\10\processing_0423af228d63414f9f28e1e4b50b5a17\dd988ebb9ae34dcf9aa438142e6a8682\output.gpkg" format="GPKG" --overwrite
WARNUNG: Unable to determine input map's vector feature type(s).
FEHLER: Kann Tabelle <output3402550f36254550a067cbc8b6b046c8> nicht beschreiben.
C:\PROGRA~1\QGIS3~1.10\bin>v.out.ogr type="auto" input="error3402550f36254550a067cbc8b6b046c8" output="C:\Users\boates\AppData\Local\Temp\10\processing_0423af228d63414f9f28e1e4b50b5a17\402e5b3a2f2b48299f6b613022f186d7\error.gpkg" format="GPKG" --overwrite
WARNUNG: Unable to determine input map's vector feature type(s).
WARNUNG: Keine Attributtabelle gefunden -> benutze nur Kategorienummern als Attributes.
WARNUNG: Output layer is empty, no features written
v.out.ogr komplett. 0 features (Unknown (any) type) written to <error3402550f36254550a067cbc8b6b046c8> (GPKG format).
C:\PROGRA~1\QGIS3~1.10\bin>exit
Execution of <C:\Users\boates\AppData\Local\Temp\10\processing_0423af228d63414f9f28e1e4b50b5a17\grassdata\grass_batch_job.cmd> finished.
Cleaning up default sqlite database ...
Cleaning up temporary files...
Execution completed in 2.04 seconds
Results:
{'error': <QgsProcessingOutputLayerDefinition {'sink':TEMPORARY_OUTPUT, 'createOptions': {'fileEncoding': 'System'}}>,
'output': <QgsProcessingOutputLayerDefinition {'sink':TEMPORARY_OUTPUT, 'createOptions': {'fileEncoding': 'System'}}>}
Loading resulting layers
Algorithm 'v.clean' finished
The only thing that I thought I could try was to change a couple of environment variables, specifically "TMP" and "TEMP" at startup to somewhere that I know I have full read/write access to, but that didn't help:
Unforunately I think the only way to re-create my conditions would be do try to install QGIS and run it on a Windows computer which has limited rights on the C drive (or whatever is the default drive). For example, I cannot create a folder inside C:\Program Files without admin permission (normally we install software in a different location other C:\ drive where we do have permissions.