v.extrude(1)

πŸ’– v.extrude πŸ’–

okay bestie, this is the GRASS GIS User's Manual page for v.extrude(1) and it is literally the glow-up module. it takes your flat lil 2D features and gives them ✨height✨. sometimes it even samples an elevation raster to figure out how tall they should be. iconic behaviour, no cap. πŸ¦‹


✨ NAME ✨

v.extrude β€” extrudes flat vector features to 3D vector features with defined height.

and optionally? the height can be derived from sampling of an elevation raster map. so like, it can just know. πŸ’…


πŸŽ€ KEYWORDS πŸŽ€

vector, geometry, sampling, 3D


🌸 SYNOPSIS 🌸

v.extrude
v.extrude --help
v.extrude [-t] input=name  [layer=string]   [cats=range]
[where=sql_query]   [type=string[,string,...]]  output=name
[zshift=float]   [height=float]   [height_column=name]
[elevation=name]   [method=string]   [scale=float]   [null_value=float]
[--overwrite]  [--help]  [--verbose]  [--quiet]  [--ui]

🫢 Flags 🫢

  • -t β€” Trace elevation
  • --overwrite β€” Allow output files to overwrite existing files
  • --help β€” Print usage summary
  • --verbose β€” Verbose module output
  • --quiet β€” Quiet module output
  • --ui β€” Force launching GUI dialog

πŸ’œ Parameters πŸ’œ

  • input=name [required] β€” Name of input vector map. Or data source for direct OGR access.
  • layer=string β€” Layer number or name (-1 for all layers). A single vector map can be connected to multiple database tables. This number determines which table to use. When used with direct OGR access this is the layer name. Default: -1
  • cats=range β€” Category values. Example: 1,3,7-9,13
  • where=sql_query β€” WHERE conditions of SQL statement without where keyword. Example: income < 1000 and population >= 10000
  • type=string[,string,...] β€” Input feature type. Options: point, line, area. Default: point,line,area
  • output=name [required] β€” Name for output vector map
  • zshift=float β€” Shifting value for z coordinates. Default: 0
  • height=float β€” Fixed height for 3D vector features
  • height_column=name β€” Name of attribute column with feature height
  • elevation=name β€” Elevation raster map for height extraction
  • method=string β€” Sampling interpolation method. Options: nearest, bilinear, bicubic. Default: nearest
    • nearest: Nearest-neighbor interpolation
    • bilinear: Bilinear interpolation
    • bicubic: Bicubic interpolation
  • scale=float β€” Scale factor sampled raster values. Default: 1.0
  • null_value=float β€” Height for sampled raster NULL values

🌈 DESCRIPTION 🌈

so v.extrude creates faces, kernels or 3D lines based on input 2D vector features. the way it works is:

  • points get converted to 3D vertical lines ⬆️
  • lines become faces
  • areas become volumes (which is a composition of a closed set of faces and a kernel)

and if you use the elevation parameter, then your 3D vector features follow the elevation model by using individual elevation values for the vertices. the height for vertices is interpolated from the elevation raster map using the given interpolation method. chef's kiss. πŸ‘‘


🧚 NOTES 🧚

v.extrude extrudes vector features, which means points are converted to vertical lines. lines and area boundaries are extruded to a set of faces β€” each segment defines one face. area centroids are written as kernels. an area as a composition of boundaries and centroid is stored as a closed set of faces and kernel which define a volume. that's a whole volume, bestie, we're building structures out here.

for conversion of 2D points or lines to 3D you could also use v.to.3d or v.drape. in opposite to v.extrude, these modules do not extrude vector features β€” they define z-coordinate for the features from given parameters or by sampling elevation raster map values. it means that no feature type conversion is applied: points remain still points in the output vector map. same applies for the lines. so like, they're not the same thing, don't get it twisted. πŸ™ˆ

v.extrude modifies only features geometry. feature categories remain untouched and attribute data is copied from input vector map to the output. your data? safe. your categories? untouched. we love a non-destructive queen. πŸ’–

by default, all features (including features without category) from input vector map are processed (layer=-1). feature selection can be applied by layer, cats or where parameter.


πŸ”₯ EXAMPLES πŸ”₯

3D houses with fixed height

v.extrude input=houses output=houses3D height=5 type=area

3D houses with individual height

v.extrude input=houses output=houses3D elevation=dem height_column=height type=area

Convert 2D points to 3D vertical lines with fixed height

v.extrude input=geodetic_pts output=points3D height=200 type=point

⭐ SEE ALSO ⭐

  • v.transform, v.drape, v.to.3d
  • wxGUI 3D viewer

πŸ‘‘ AUTHORS πŸ‘‘

Jachym Cepicky, Updated for GRASS 7 by Martin Landa, FBK-irst, Italy and Czech Technical University in Prague, Czech Republic


πŸ’… SOURCE CODE πŸ’…

Available at: v.extrude source code (history)

Accessed: Saturday Jan 17 05:41:20 2026

Main index | Vector index | Topics index | Keywords index | Graphical index | Full index

Β© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual


okay that's the whole page, bestie 🫢 this was GRASS 8.4.2, v.extrude(1), accessed Saturday Jan 17 05:41:20 2026. go extrude something and make it 3D. periodt. πŸ’–βœ¨πŸŒΈ
πŸ“¦ where this page comes from