2

I am facing a couple of issues - I think they are related.

Firstly... I am attempting to add height values to my habitat survey map to produce a 3D map in QGIS 3.12.3. I have height values stored in the attribute table of my 'Habitats [EPSG:4326]' layer. I have attempted 'v.to.3d, v.extrude, v.drape'. I have Grass downloaded.

When I run my Habitat layer through 'v.to.3d' this is the response:

QGIS version: 3.12.3-București
QGIS code revision: 8234261527
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.to.3d' starting…
Input parameters:
{ '-r' : False, '-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' : '', 'column' : 'Height', 'height' : None, 'input' : 'C:/Users/user/Desktop/LakeProject/Habitats.shp', 'output' : 'TEMPORARY_OUTPUT', 'type' : [0,1,2,3] }

g.proj -c proj4="+proj=longlat +datum=WGS84 +no_defs"
v.in.ogr min_area=0.0001 snap=-1.0 input="C:\Users\user\Desktop\LakeProject\Habitats.shp" output="vector_6064c1b33c0b88" --overwrite -o
g.region n=37.78757493408765 s=37.786860653618696 e=-122.46628277404538 w=-122.46736208177902
v.to.3d input=vector_6064c1b33c0b88 type="point,line,boundary,centroid" column=Height output=output44f423749e334146bd0b61f2bd3c9837 --overwrite
v.out.ogr type="auto" input="output44f423749e334146bd0b61f2bd3c9837" output="C:\Users\user\AppData\Local\Temp\processing_avIvGR\036287ea21bc449d8ac1e2a6646b5a83\output.gpkg" format="GPKG" --overwrite
The system cannot find the file C:\rtools40\Version.txt.
Starting GRASS GIS...
WARNING: Concurrent mapset locking is not supported on Windows
Cleaning up temporary files...
Executing <C:\Users\user\AppData\Local\Temp\processing_avIvGR\grassdata\grass_batch_job.cmd> ...
C:\Users\user\Documents>chcp 1252 1>NUL
C:\Users\user\Documents>g.proj -c proj4="+proj=longlat +datum=WGS84 +no_defs"
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\user\Documents>v.in.ogr min_area=0.0001 snap=-1.0 input="C:\Users\user\Desktop\LakeProject\Habitats.shp" output="vector_6064c1b33c0b88" --overwrite -o
Over-riding projection check
Check if OGR layer <Habitats> contains polygons...
0..3..5..7..9..12..14..16..18..20..23..25..27..29..32..34..36..38..40..43..45..47..49..52..54..56..58..60..63..65..67..69..72..74..76..78..80..83..85..87..89..92..94..96..98..100
Creating attribute table for layer <Habitats>...
Column name <Common nam> renamed to <Common_nam>
Column name <Species na> renamed to <Species_na>
Column name <Native?> renamed to <Native_>
Importing 55 features (OGR layer <Habitats>)...
0..3..5..7..9..12..14..16..18..20..23..25..27..29..32..34..36..38..40..43..45..47..49..52..54..56..58..60..63..65..67..69..72..74..76..78..80..83..85..87..89..92..94..96..98..100
-----------------------------------------------------
Registering primitives...
-----------------------------------------------------
Cleaning polygons
-----------------------------------------------------
Breaking polygons...
Breaking polygons (pass 1: select break points)...
1..3..5..7..10..12..14..17..19..21..24..26..28..31..33..35..38..40..42..45..47..49..52..54..56..59..61..63..66..68..70..73..75..77..80..82..84..87..89..91..94..96..98..100
Breaking polygons (pass 2: break at selected points)...
1..3..5..7..10..12..14..17..19..21..24..26..28..31..33..35..38..40..42..45..47..49..52..54..56..59..61..63..66..68..70..73..75..77..80..82..84..87..89..91..94..96..98..100
-----------------------------------------------------
Removing duplicates...
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
-----------------------------------------------------
Breaking boundaries...
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
-----------------------------------------------------
Removing duplicates...
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
-----------------------------------------------------
Cleaning boundaries at nodes...
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
-----------------------------------------------------
Breaking boundaries...
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
-----------------------------------------------------
Removing duplicates...
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
-----------------------------------------------------
Cleaning boundaries at nodes...
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
-----------------------------------------------------
Merging boundaries...
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
-----------------------------------------------------
Removing dangles...
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
-----------------------------------------------------
Building areas...
0..2..4..6..8..10..12..14..16..18..20..22..24..26..28..30..32..34..36..-----------------------------------------------------
Removing bridges...
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
-----------------------------------------------------
Registering primitives...
Building areas...
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
Attaching islands...
0..25..50..75..100
-----------------------------------------------------
Finding centroids for OGR layer <Habitats>...
0..3..7..10..14..18..21..25..29..32..36..40..43..47..50..54..58..61..65..69..72..76..80..83..87..90..94..98..100
-----------------------------------------------------
Writing centroids...
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
-----------------------------------------------------
56 input polygons
Total area: 3101.68 (100 areas)
Overlapping area: 5.079 (28 areas)
Area without category: 0.487711 (15 areas)
-----------------------------------------------------
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 <vector_6064c1b33c0b88@PERMANENT>...
Registering primitives...
Building areas...
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
Attaching islands...
0..25..50..75..100
Attaching centroids...
0..2..4..7..9..11..14..16..18..20..22..24..27..29..31..34..36..38..40..42..44..47..49..51..54..56..58..60..62..64..67..69..71..74..76..78..80..82..84..87..89..91..94..96..98..100
-----------------------------------------------------
28 areas represent multiple (overlapping) features, because polygons overlap in input layer(s). Such areas are linked to more than 1 row in attribute table. The number of features for those areas is stored as category in layer 2
-----------------------------------------------------
If overlapping is not desired, the input data can be cleaned by snapping vertices to each other.
Estimated range of snapping threshold: [1e-013, 0.0001]
C:\Users\user\Documents>g.region n=37.78757493408765 s=37.786860653618696 e=-122.46628277404538 w=-122.46736208177902
C:\Users\user\Documents>v.to.3d input=vector_6064c1b33c0b88 type="point,line,boundary,centroid" column=Height output=output44f423749e334146bd0b61f2bd3c9837 --overwrite
Fetching height from <Height> column...
Transforming features...
Copying attributes...
Building topology for vector map <output44f423749e334146bd0b61f2bd3c9837@PERMANENT>...
Registering primitives...
WARNING: Number of centroids exceeds number of areas: 85 > 0
WARNING: Number of centroids outside area: 85
Vertical extent of vector map <output44f423749e334146bd0b61f2bd3c9837>: B: 1.000000 T: 200.000000
C:\Users\user\Documents>v.out.ogr type="auto" input="output44f423749e334146bd0b61f2bd3c9837" output="C:\Users\user\AppData\Local\Temp\processing_avIvGR\036287ea21bc449d8ac1e2a6646b5a83\output.gpkg" format="GPKG" --overwrite
WARNING: Unable to determine input map's vector feature type(s).
WARNING: 85 centroids found, but not requested to be exported. Verify 'type' parameter.
WARNING: Vector map <output44f423749e334146bd0b61f2bd3c9837> is 3D. Use format specific layer creation options (parameter 'lco') to export <in 3D rather than 2D (default).
WARNING: Output layer is empty, no features written
v.out.ogr complete. 0 features (Unknown (any) type) written to <output44f423749e334146bd0b61f2bd3c9837> (GPKG format).
C:\Users\user\Documents>exit
Execution of <C:\Users\user\AppData\Local\Temp\processing_avIvGR\grassdata\grass_batch_job.cmd> finished.
Cleaning up default sqlite database ...
Cleaning up temporary files...
ERROR: Variable 'LOCATION_NAME' not set
Execution completed in 7.55 seconds
Results:
{'output': <QgsProcessingOutputLayerDefinition {'sink':TEMPORARY_OUTPUT, 'createOptions': {'fileEncoding': 'System'}}>}

Loading resulting layers
Algorithm 'v.to.3d' finished

I then used 'setzvalue' and ran this through 'v.to.3d'. This is the response:

QGIS code revision: 8234261527
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.to.3d' starting…
Input parameters:
{ '-r' : False, '-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' : '', 'column' : 'Height', 'height' : None, 'input' : 'MultiPolygonZ?crs=EPSG:4326&field=Common%20nam:string(80,0)&field=Type:string(80,0)&field=Family:string(80,0)&field=Species%20na:string(80,0)&field=Native%3F:string(80,0)&field=Count:integer(9,0)&field=area:double(10,3)&field=Height:integer(9,0)&uid={b1fe6523-b273-4151-a591-eab708491441}', 'output' : 'TEMPORARY_OUTPUT', 'type' : [0,1,2,3] }

g.proj -c proj4="+proj=longlat +datum=WGS84 +no_defs"
v.in.ogr min_area=0.0001 snap=-1.0 input="C:\Users\user\AppData\Local\Temp\processing_avIvGR\9f7b0bb10dfa41caa5e1af9b3b58d710\input.shp" output="vector_6064c16a802c47" --overwrite -o
g.region n=37.78757493408765 s=37.786860653618696 e=-122.46628277404538 w=-122.46736208177902
v.to.3d input=vector_6064c16a802c47 type="point,line,boundary,centroid" column=Height output=outputb2265b6f9e1246a3a2a4af54327fd670 --overwrite
v.out.ogr type="auto" input="outputb2265b6f9e1246a3a2a4af54327fd670" output="C:\Users\user\AppData\Local\Temp\processing_avIvGR\35a2a43d3c87434ba77218f43b130b9c\output.gpkg" format="GPKG" --overwrite
The system cannot find the file C:\rtools40\Version.txt.
Starting GRASS GIS...
WARNING: Concurrent mapset locking is not supported on Windows
Cleaning up temporary files...
Executing <C:\Users\user\AppData\Local\Temp\processing_avIvGR\grassdata\grass_batch_job.cmd> ...
C:\Users\user\Documents>chcp 1252 1>NUL
C:\Users\user\Documents>g.proj -c proj4="+proj=longlat +datum=WGS84 +no_defs"
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\user\Documents>v.in.ogr min_area=0.0001 snap=-1.0 input="C:\Users\user\AppData\Local\Temp\processing_avIvGR\9f7b0bb10dfa41caa5e1af9b3b58d710\input.shp" output="vector_6064c16a802c47" --overwrite -o
Over-riding projection check
Check if OGR layer <input> contains polygons...
0..3..5..7..9..12..14..16..18..20..23..25..27..29..32..34..36..38..40..43..45..47..49..52..54..56..58..60..63..65..67..69..72..74..76..78..80..83..85..87..89..92..94..96..98..100
Creating attribute table for layer <input>...
Column name <Common nam> renamed to <Common_nam>
Column name <Species na> renamed to <Species_na>
Column name <Native?> renamed to <Native_>
Importing 55 features (OGR layer <input>)...
0..3..5..7..9..12..14..16..18..20..23..25..27..29..32..34..36..38..40..43..45..47..49..52..54..56..58..60..63..65..67..69..72..74..76..78..80..83..85..87..89..92..94..96..98..100
-----------------------------------------------------
Registering primitives...
-----------------------------------------------------
Cleaning polygons
-----------------------------------------------------
Breaking polygons...
Breaking polygons (pass 1: select break points)...
1..3..5..7..10..12..14..17..19..21..24..26..28..31..33..35..38..40..42..45..47..49..52..54..56..59..61..63..66..68..70..73..75..77..80..82..84..87..89..91..94..96..98..100
Breaking polygons (pass 2: break at selected points)...
1..3..5..7..10..12..14..17..19..21..24..26..28..31..33..35..38..40..42..45..47..49..52..54..56..59..61..63..66..68..70..73..75..77..80..82..84..87..89..91..94..96..98..100
-----------------------------------------------------
Removing duplicates...
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
-----------------------------------------------------
Breaking boundaries...
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
-----------------------------------------------------
Removing duplicates...
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
-----------------------------------------------------
Cleaning boundaries at nodes...
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
-----------------------------------------------------
Breaking boundaries...
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
-----------------------------------------------------
Removing duplicates...
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
-----------------------------------------------------
Cleaning boundaries at nodes...
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
-----------------------------------------------------
Breaking boundaries...
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
-----------------------------------------------------
Removing duplicates...
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
-----------------------------------------------------
Cleaning boundaries at nodes...
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
-----------------------------------------------------
Merging boundaries...
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
-----------------------------------------------------
Removing dangles...
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
-----------------------------------------------------
Building areas...
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..WARNING: Number of incorrect boundaries: 117
-----------------------------------------------------
Removing bridges...
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
-----------------------------------------------------
Registering primitives...
Building areas...
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
WARNING: Number of incorrect boundaries: 415
-----------------------------------------------------
Finding centroids for OGR layer <input>...
0..3..7..10..14..18..21..25..29..32..36..40..43..47..50..54..58..61..65..69..72..76..80..83..87..90..94..98..100
-----------------------------------------------------
Writing centroids...
33..66..100
-----------------------------------------------------
56 input polygons
Total area: 55.1933 (3 areas)
Area without category: 0.0278723 (1 areas)
-----------------------------------------------------
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 <vector_6064c16a802c47@PERMANENT>...
Registering primitives...
Building areas...
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
Attaching islands...
0..25..50..75..100
Attaching centroids...
0..50..100
WARNING: Number of incorrect boundaries: 117
-----------------------------------------------------
WARNING: The output contains topological errors:
Number of incorrect boundaries: 117
The input could be cleaned by snapping vertices to each other.
Estimated range of snapping threshold: [1e-013, 0.0001]
Try to import again, snapping with 1e-009: 'snap=1e-009'
C:\Users\user\Documents>g.region n=37.78757493408765 s=37.786860653618696 e=-122.46628277404538 w=-122.46736208177902
C:\Users\user\Documents>v.to.3d input=vector_6064c16a802c47 type="point,line,boundary,centroid" column=Height output=outputb2265b6f9e1246a3a2a4af54327fd670 --overwrite
ERROR: Vector map <vector_6064c16a802c47> is 3D
C:\Users\user\Documents>v.out.ogr type="auto" input="outputb2265b6f9e1246a3a2a4af54327fd670" output="C:\Users\user\AppData\Local\Temp\processing_avIvGR\35a2a43d3c87434ba77218f43b130b9c\output.gpkg" format="GPKG" --overwrite
ERROR: Vector map <outputb2265b6f9e1246a3a2a4af54327fd670> not found
C:\Users\user\Documents>exit
Execution of <C:\Users\user\AppData\Local\Temp\processing_avIvGR\grassdata\grass_batch_job.cmd> finished.
Cleaning up default sqlite database ...
Cleaning up temporary files...
Press any key to continue . . .
Execution completed in 7.08 seconds
Results:
{'output': <QgsProcessingOutputLayerDefinition {'sink':TEMPORARY_OUTPUT, 'createOptions': {'fileEncoding': 'System'}}>}

Loading resulting layers
The following layers were not correctly generated.<ul><li>C:/Users/user/AppData/Local/Temp/processing_avIvGR/35a2a43d3c87434ba77218f43b130b9c/output.gpkg</li></ul>You can check the 'Log Messages Panel' in QGIS main window to find more information about the execution of the algorithm.

They have very different responses.

Second... Most of my layers have a projection of: EPSG 4326/WGS 84. However, my Bing base map is EPSG 3857/ WGS 84. When I have tried to change my Bing base map to EPSG 4326/WGS 84, my layers disappear from the screen - which makes sense.

Is there an issue with my projection which is why I am unable to produce a 3D map?

2
  • "it does not work" is not very helpful. What happens when you run the tool? Which error do you get? Have you tried using data in a different CRS?
    – Erik
    Commented Mar 30, 2021 at 6:28
  • @Erik I have edited my post to contain the response and result. I have tried changing the CRS, I set all the layers and project to a different CRS and it could not be drawn onto QGIS. Do I need to transform the projection?
    – Jade
    Commented Mar 30, 2021 at 17:00

1 Answer 1

2

In response to your comment, "setting" the projection is almost always the wrong thing to do. If you need to use a different projection then in nearly all cases (I'd say 99.9% of the time :-) ) you must do a transform.

But before addressing the coordinate system, I think your problem is with the original habitats shapefile. In the output message that you posted (thanks for that) there is a warning and suggestion:

WARNING: The output contains topological errors:
Unable to calculate a centroid for 1 areas
The input could be cleaned by snapping vertices to each other.
Estimated range of snapping threshold: [1e-013, 0.0001]
Try to import again, snapping with 1e-009: 'snap=1e-009'

It seems that the Habitats polygons are not topologically clean: there might be overlaps, overshoots, polygons that are not closed, or other issues. Try adding the snap parameter (perhaps with an even bigger threshold, 1e-6 or similar) and report back if that improves the result.

And, as a second approach, there's a QGIS tool in Processing: SetZValue. That might also work for you. You can use the Expression builder to choose your Height column as the Z value.

3
  • 1
    Hey Micha, thanks for this! I have managed to isolate the polygon that had an invalid geometry and fixed that part. I then used SetZValues and now have a Z value and ran this through 3.to.3d, I also tried running the original habitat layer through 3.to.3d with the fixed geometry, neither worked... I will edit my post to add the responses. Thanks for helping me troubleshoot this! Appreciate it
    – Jade
    Commented Mar 31, 2021 at 18:28
  • You'll probably want to start a new question, since the issue is different now.
    – Micha
    Commented Apr 1, 2021 at 13:16
  • Okay, I will do this. Thanks Micha (:
    – Jade
    Commented Apr 1, 2021 at 17:00

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.