1

I am using QGIS version 3.24.1-Tisler.

I'm trying to simplify contour lines in a very flat area in Canada. The contour lines in this example are 5 meter lines and they are complex to look at, and when I try for 1 meter or 50cm it just gets silly. Having those contour lines is important to my work. I have not changed any of the fields, mostly because I'm not sure what they all mean. I know that's not the best thing to do, but the help file doesn't explain things to this layman's mind. I've copied and pasted the entirety of the log. When I try to run generalize, this is the message I get:

QGIS version: 3.24.1-Tisler
QGIS code revision: 5709b82461
Qt version: 5.15.2
Python version: 3.9.5
GDAL version: 3.4.2
GEOS version: 3.10.2-CAPI-1.16.0
PROJ version: Rel. 9.0.0, March 1st, 2022
PDAL version: 2.3.0 (git-version: 1c17a7)
Algorithm started at: 2022-04-07T18:41:30
Algorithm 'v.generalize' starting…
Input parameters:
{ '-l' : True, '-t' : 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' : '', 'alpha' : 1, 'angle_thresh' : 3, 'beta' : 1, 'betweeness_thresh' : 0, 'cats' : '', 'closeness_thresh' : 0, 'degree_thresh' : 0, 'error' : 'C:/Users.../Contours_5m_generalize_errors.shp', 'input' : 'C:/Users.../Contours_5m.shp', 'iterations' : 1, 'look_ahead' : 7, 'method' : 0, 'output' : 'C:/Users.../Contours_5m_generalize.shp', 'reduction' : 50, 'slide' : 0.5, 'threshold' : 1, 'type' : [0,1,2], 'where' : '' }

>Attempting to use v.external for direct layer read
g.proj -c wkt="C:/Users/.../AppData/Local/Temp/processing_vSXlgy/7034879312db412685047b246606ba9c/crs.prj"
v.external input="C:\Users\...\Contours_5m.shp" output="vector_624f76aa3fac45" --overwrite -o
g.region n=5446459.000000002 s=5431186.056971806 e=726604.0 w=702864.0
v.generalize input=vector_624f76aa3fac45 type="line,boundary,area" method="douglas" threshold=1 look_ahead=7 reduction=50 slide=0.5 angle_thresh=3 degree_thresh=0 closeness_thresh=0 betweeness_thresh=0 alpha=1 beta=1 iterations=1 -l output=output363e42f3b18f483dab9749b31115ba88 error=error363e42f3b18f483dab9749b31115ba88 --overwrite
v.out.ogr type="auto" input="output363e42f3b18f483dab9749b31115ba88" output="C:\Users\...\Contours_5m_generalize.shp" format="ESRI_Shapefile" --overwrite
v.out.ogr type="auto" input="error363e42f3b18f483dab9749b31115ba88" output="C:\Users\...\Contours_5m_generalize_errors.shp" format="ESRI_Shapefile" --overwrite
Starting GRASS GIS...
WARNING: Concurrent mapset locking is not supported on Windows
Cleaning up temporary files...
Executing <C:\Users\...\AppData\Local\Temp\processing_vSXlgy\grassdata\grass_batch_job.cmd> ...
C:\Users\...\Documents>chcp 1252 1>NUL
C:\Users\...\Documents>g.proj -c wkt="C:/Users/.../AppData/Local/Temp/processing_vSXlgy/7034879312db412685047b246606ba9c/crs.prj"
Default region was updated to the new projection, but if you have multiple mapsets `g.region -d` should be run in each to update the region from the default
Projection information updated
C:\Users\...\Documents>v.external input="C:\Users\...\Contours_5m.shp" output="vector_624f76aa3fac45" --overwrite -o
Over-riding projection check
Building topology for vector map <vector_624f76aa3fac45@PERMANENT>...
Using external data format 'ESRI Shapefile' (feature type 'linestring')
Registering primitives...
10000..20000..30000..40000..50000..60000..70000..80000..90000..100000..110000..120000..130000..140000..150000..160000..170000..180000..190000..200000..210000..220000..230000..240000..250000..260000..270000..280000..290000..300000..310000..320000..330000..340000..
348135 primitives registered
5519384 vertices registered
v.external complete. Link to vector map <vector_624f76aa3fac45> created.
C:\Users\...\Documents>g.region n=5446459.000000002 s=5431186.056971806 e=726604.0 w=702864.0
C:\Users\...\Documents>v.generalize input=vector_624f76aa3fac45 type="line,boundary,area" method="douglas" threshold=1 look_ahead=7 reduction=50 slide=0.5 angle_thresh=3 degree_thresh=0 closeness_thresh=0 betweeness_thresh=0 alpha=1 beta=1 iterations=1 -l output=output363e42f3b18f483dab9749b31115ba88 error=error363e42f3b18f483dab9749b31115ba88 --overwrite
WARNING: Unable to create index
WARNING: Unable to copy table <Contours_5m> for layer 1 from <vector_624f76aa3fac45@PERMANENT> to <output363e42f3b18f483dab9749b31115ba88>
Copying features...
2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100
Building topology for vector map <output363e42f3b18f483dab9749b31115ba88@PERMANENT>...
Registering primitives...
10000..20000..30000..40000..50000..60000..70000..80000..90000..100000..110000..120000..130000..140000..150000..160000..170000..180000..190000..200000..210000..220000..230000..240000..250000..260000..270000..280000..290000..300000..310000..320000..330000..340000..
-----------------------------------------------------
>Generalization (douglas)...
Using threshold: 1 meters
1..3..5..7..9..11..13..15..17..19..21..23..25..27..29..31..33..35..37..39..41..43..45..47..49..51..53..55..57..59..61..63..65..67..69..71..73..75..77..79..81..83..85..87..89..91..93..95..97..99..100
WARNING: 132726 lines/boundaries were not modified due to over-simplification
-----------------------------------------------------
>Building topology for vector map <output363e42f3b18f483dab9749b31115ba88@PERMANENT>...
Registering primitives...
10000..20000..30000..40000..50000..60000..70000..80000..90000..100000..110000..120000..130000..140000..150000..160000..170000..180000..190000..200000..210000..220000..230000..240000..250000..260000..270000..280000..290000..300000..310000..320000..330000..340000..
Building topology for vector map <error363e42f3b18f483dab9749b31115ba88@PERMANENT>...
Registering primitives...
10000..20000..30000..40000..50000..60000..70000..80000..90000..100000..110000..120000..130000..
-----------------------------------------------------
>v.generalize complete. Number of vertices for selected features reduced from 5519384 to 1914248 (34% remaining)
C:\Users\...\Documents>v.out.ogr type="auto" input="output363e42f3b18f483dab9749b31115ba88" output="C:\Users\...\Contours_5m_generalize.shp" format="ESRI_Shapefile" --overwrite
ERROR: Key column <> not found
C:\Users\12045\Documents>v.out.ogr type="auto" input="error363e42f3b18f483dab9749b31115ba88" output="C:\Users\...\Contours_5m_generalize_errors.shp" format="ESRI_Shapefile" --overwrite
WARNING: No attribute table found -> using only category numbers as attributes
Exporting 132726 features...
5..11..17..23..29..35..41..47..53..59..65..71..77..83..89..95..100
v.out.ogr complete. 132726 features (Point type) written to <error363e42f3b18f483dab9749b31115ba88> (ESRI_Shapefile format).
C:\Users\...\Documents>exit
Execution of <C:\Users\...\AppData\Local\Temp\processing_vSXlgy\grassdata\grass_batch_job.cmd> finished.
Cleaning up default sqlite database ...
Cleaning up temporary files...
Execution completed in 82.26 seconds (1 minute 22 seconds)
Results:
{'error': 'C:\\Users\\...\\Contours_5m_generalize_errors.shp',
'output': 'C:\\Users\\...\\Contours_5m_generalize.shp'}

>Loading resulting layers
>Algorithm 'v.generalize' finished

The errors file is the only thing that actually displays on the map. There are thousands of points, and no contour lines display at all. I don't really understand what I'm doing wrong. I've tried several times, but the errors are a little beyond my knowledge.

For example, why does this show up:

Generalization (douglas)...
Using threshold: 1 meters
1..3..5..7..9..11..13..15..17..19..21..23..25..27..29..31..33..35..37..39..41..43..45..47..49..51..53..55..57..59..61..63..65..67..69..71..73..75..77..79..81..83..85..87..89..91..93..95..97..99..100
WARNING: 132726 lines/boundaries were not modified due to over-simplification 

Does over-simplification mean that the lines are already simple enough or does it mean that I've done something wrong?

I've removed identifying information after all C:\Users and replaced it with ... to keep this proprietary information private. I hope that's okay, I'm still learning about QGIS and frankly StackExchange kind of scares me a bit.

Screenshot of an example of the 5m contours

5
  • See here: gis.stackexchange.com/a/360683/88814
    – Babel
    Apr 8, 2022 at 7:36
  • Can you post a screenshot of your contours? Even better would be providing sample data for testing. If contours have an interval of 5 m you you set a simplification tolerance of 1 m, I can imagine that indeed the algorithm can't produce a reasonable output. Did you try reducing tolerance - like 0.1 m or even less? Maybe using smooth instead of generalize would be an option? docs.qgis.org/3.22/en/docs/user_manual/expressions/…
    – Babel
    Apr 8, 2022 at 7:39
  • I haven't tried setting a lower tolerance. I will try that and see if that works. I tried smooth but there were thousands of error points. I'm trying to figure out how to post a screenshot now and will put one up as soon as I can.
    – Mark
    Apr 8, 2022 at 15:04
  • Posted a screenshot.
    – Mark
    Apr 8, 2022 at 15:10
  • 1
    You should also check that your contour line don't have geometry error as a first steep
    – J.R
    Apr 8, 2022 at 15:31

0

Your Answer

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

Browse other questions tagged or ask your own question.