9

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.

enter image description here

5
  • 1
    You might mention what parameters you are using. I've only used the tool enough that when it fails for me, I go back and play with them. In your case I would limit the input and output to line, I would set a v.in.ogr snap and in the cleaning tools add snap and rmdangle with suitable tolerances and see if that works. You can play with the tolerances too.
    – John
    Commented Aug 4, 2020 at 14:22
  • The message "WARNUNG: Coor file of vector map <vector_5f29348b80e4e7@PERMANENT> is larger than it should be (18 bytes excess)" looks like "early garbage" - it should not be there. Trivial question: disc full?
    – markusN
    Commented Aug 5, 2020 at 17:17
  • @markusN No, the disk is not full.
    – wfgeo
    Commented Aug 12, 2020 at 8:10
  • If you save your source file as .shp, do you get the same error? I've had issues using GPKG with grass in the past...
    – Kantan
    Commented Aug 12, 2020 at 8:46
  • Why are you passing a value for GRASS_MIN_AREA_PARAMETER if you are building line topology? Have you tried removing that parameter? Have you tried different snap tolerances?
    – jgm_GIS
    Commented Aug 17, 2020 at 14:49

1 Answer 1

0

FEHLER: Kann Tabelle <output3402550f36254550a067cbc8b6b046c8> nicht beschreiben.

ERROR: Cannot write to table <output3402550f36254550a067cbc8b6b046c8>

Whilst it doesn't translate nicely, im thinking that your output locations aren't accessible, which you alluded to. The output location is

C:\Users\boates\AppData\Local\Temp\10\processing_0423af228d63414f9f28e1e4b50b5a17\dd988ebb9ae34dcf9aa438142e6a8682\output.gpkg" format="GPKG" --overwrite

(and .../error.gpkg).

Just check that this location is valid and you have write access. Then try setting an actual physical output file which you can write to, c:\temp\error.shp as a simple example.

I think you are right though, access might be the problem.

2
  • No, it seems that the problem still persists when I specify a specific location (which I am sure I have write access to).
    – wfgeo
    Commented Aug 17, 2020 at 14:02
  • 2
    Ok lets take a step back ... try running a different GRASS Algorithm (somethinglike V.info for example) - check the output. Now try running a different library algorithm eg: GDAL Vector Information..... or 'Reproject Layer'. ....This will at least ensure that your file is able to have at least some of the library algorithms run against it.
    – nr_aus
    Commented Aug 18, 2020 at 1:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.