m.nviz.image(1grass)

πŸ’– m.nviz.image πŸ’–

okay bestie, welcome to the m.nviz.image page from the GRASS User's Manual β€” yes it's a whole manual page, yes it's long, and yes we're doing all of it together. grab a snack πŸ“


✨ NAME ✨

m.nviz.image β€” creates a 3D rendering of GIS data.

It renders surfaces (raster data), 2D/3D vector data, and volumes (3D raster data) in 3D. it's giving full cinematic universe fr fr πŸ‘‘


🌈 KEYWORDS 🌈

miscellaneous, visualization, graphics, raster, vector, raster3d


πŸ¦‹ SYNOPSIS πŸ¦‹

m.nviz.image
m.nviz.image --help
m.nviz.image [-anb]  [elevation_map=name[,name,...]]
[elevation_value=value[,value,...]]   [color_map=name[,name,...]]
[color=name[,name,...]]   [mask_map=name[,name,...]]
[transparency_map=name[,name,...]]
[transparency_value=value[,value,...]]   [shininess_map=name[,name,...]]
[shininess_value=value[,value,...]]   [emission_map=name[,name,...]]
[emission_value=value[,value,...]]   [mode=string[,string,...]]
[resolution_fine=value[,value,...]]
[resolution_coarse=value[,value,...]]   [style=string[,string,...]]
[shading=string[,string,...]]   [wire_color=name[,name,...]]
[surface_position=x,y,z[,x,y,z,...]]   [vline=name[,name,...]]
[vline_layer=string[,string,...]]   [vline_width=value[,value,...]]
[vline_width_column=name[,name,...]]   [vline_color=name[,name,...]]
[vline_color_column=name[,name,...]]   [vline_mode=string[,string,...]]
[vline_height=value[,value,...]]   [vline_position=x,y,z[,x,y,z,...]]
[vpoint=name[,name,...]]   [vpoint_layer=string[,string,...]]
[vpoint_size=value[,value,...]]   [vpoint_size_column=name[,name,...]]
[vpoint_width=value[,value,...]]   [vpoint_width_column=name[,name,...]]
[vpoint_color=name[,name,...]]   [vpoint_color_column=name[,name,...]]
[vpoint_marker=string[,string,...]]
[vpoint_marker_column=name[,name,...]]
[vpoint_mode=string[,string,...]]   [vpoint_position=x,y,z[,x,y,z,...]]
[volume=name[,name,...]]   [volume_mode=string[,string,...]]
[volume_shading=string[,string,...]]
[volume_position=x,y,z[,x,y,z,...]]
[volume_resolution=value[,value,...]]
[isosurf_level=volume:value[,volume:value,...]]
[isosurf_color_map=name[,name,...]]
[isosurf_color_value=name[,name,...]]
[isosurf_transparency_map=name[,name,...]]
[isosurf_transparency_value=value[,value,...]]
[isosurf_shininess_map=name[,name,...]]
[isosurf_shininess_value=value[,value,...]]
[slice=volume:axis[,volume:axis,...]]
[slice_position=x1,x2,y1,y2,z1,z2[,x1,x2,y1,y2,z1,z2,...]]
[slice_transparency=value[,value,...]]   [bgcolor=name]   [position=x,y]
[height=value]   [perspective=value]   [twist=value]   [zexag=value]
[focus=x,y,z]   [light_position=x,y,z]   [light_color=name]
[light_brightness=integer]   [light_ambient=integer]
[fringe=string[,string,...]]   [fringe_color=name]
[fringe_elevation=integer]   [cplane=value[,value,...]]
[cplane_position=x,y,z[,x,y,z,...]]
[cplane_rotation=value[,value,...]]   [cplane_tilt=value[,value,...]]
[cplane_shading=string]   [arrow_position=x,y]   [arrow_size=value]
[arrow_color=name]  output=name format=string size=width,height
[--overwrite]  [--help]  [--verbose]  [--quiet]  [--ui]

🚩 Flags: 🚩

  • -a β€” use draw mode for all loaded surfaces
  • -n β€” toggles normal direction of all isosurfaces (changes light effect)
  • -b β€” draw volume box
  • --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: πŸŽ€

  • elevation_map=name[,name,...] β€” name of raster map(s) for elevation
  • elevation_value=value[,value,...] β€” constant elevation value(s) to use instead of a raster DEM
  • color_map=name[,name,...] β€” name of raster map(s) for color
  • color=name[,name,...] β€” color value(s)
    • either a standard color name or R:G:B triplet
  • mask_map=name[,name,...] β€” name of raster map(s) for mask
  • transparency_map=name[,name,...] β€” name of raster map(s) for transparency
  • transparency_value=value[,value,...] β€” transparency value(s)
    • options: 0-255
  • shininess_map=name[,name,...] β€” name of raster map(s) for shininess
  • shininess_value=value[,value,...] β€” shininess value(s)
    • options: 0-255
  • emission_map=name[,name,...] β€” name of raster map(s) for emission
  • emission_value=value[,value,...] β€” emission value(s)
    • options: 0-255
  • mode=string[,string,...] β€” draw mode
    • options: coarse, fine, both
    • default: fine
  • resolution_fine=value[,value,...] β€” fine resolution
    • default: 6
  • resolution_coarse=value[,value,...] β€” coarse resolution
    • default: 9
  • style=string[,string,...] β€” draw style
    • options: wire, surface
    • default: surface
  • shading=string[,string,...] β€” shading
    • options: flat, gouraud
    • default: gouraud
  • wire_color=name[,name,...] β€” wire color
    • either a standard color name or R:G:B triplet
    • default: 136:136:136
  • surface_position=x,y,z[,x,y,z,...] β€” surface position
    • default: 0,0,0
  • vline=name[,name,...] β€” name of vector map
    • name of line vector overlay map(s)
  • vline_layer=string[,string,...] β€” layer number or name
    • layer number or name for thematic mapping
    • default: 1
  • vline_width=value[,value,...] β€” vector line width
    • options: 1-100
    • default: 2
  • vline_width_column=name[,name,...] β€” name of width definition column
    • name of attribute column
  • vline_color=name[,name,...] β€” vector line color
    • either a standard color name or R:G:B triplet
    • default: blue
  • vline_color_column=name[,name,...] β€” name of color definition column
    • name of attribute column
  • vline_mode=string[,string,...] β€” vector line display mode
    • options: surface, flat
    • default: surface
    • surface: drape on raster surface
    • flat: draw at constant elevation
  • vline_height=value[,value,...] β€” vector line height
    • options: 0-1000
    • default: 0
  • vline_position=x,y,z[,x,y,z,...] β€” vector lines position
    • default: 0,0,0
  • vpoint=name[,name,...] β€” name of vector map
    • name of point vector overlay map(s)
  • vpoint_layer=string[,string,...] β€” layer number or name
    • layer number or name for thematic mapping
    • default: 1
  • vpoint_size=value[,value,...] β€” icon size (map units)
    • options: 0-1000
    • default: 100
  • vpoint_size_column=name[,name,...] β€” name of size definition column
    • name of attribute column
  • vpoint_width=value[,value,...] β€” icon width
    • options: 1-1000
    • default: 2
  • vpoint_width_column=name[,name,...] β€” name of width definition column
    • name of attribute column
  • vpoint_color=name[,name,...] β€” icon color
    • either a standard color name or R:G:B triplet
    • default: blue
  • vpoint_color_column=name[,name,...] β€” name of color definition column
    • name of attribute column
  • vpoint_marker=string[,string,...] β€” icon marker
    • options: x, box, sphere, cube, diamond, dec_tree, con_tree, aster, gyro, histogram
    • default: sphere
  • vpoint_marker_column=name[,name,...] β€” name of marker definition column
    • name of attribute column
  • vpoint_mode=string[,string,...] β€” 3D vector point display mode
    • options: surface, 3D
    • default: 3D
    • surface: drape on raster surface
    • 3D: place at 3D point's z-elevation
  • vpoint_position=x,y,z[,x,y,z,...] β€” vector points position
    • default: 0,0,0
  • volume=name[,name,...] β€” name of 3D raster map(s)
  • volume_mode=string[,string,...] β€” volume draw mode
    • options: isosurface, slice
    • default: isosurface
  • volume_shading=string[,string,...] β€” volume shading
    • options: flat, gouraud
    • default: gouraud
  • volume_position=x,y,z[,x,y,z,...] β€” volume position
    • default: 0,0,0
  • volume_resolution=value[,value,...] β€” volume resolution
    • default: 3
  • isosurf_level=volume:value[,volume:value,...] β€” isosurface level
  • isosurf_color_map=name[,name,...] β€” name of volume for isosurface color
  • isosurf_color_value=name[,name,...] β€” isosurface color
    • either a standard color name or R:G:B triplet
  • isosurf_transparency_map=name[,name,...] β€” name of 3D raster map(s) for isosurface transparency
  • isosurf_transparency_value=value[,value,...] β€” transparency value(s) for isosurfaces
    • options: 0-255
  • isosurf_shininess_map=name[,name,...] β€” name of 3D raster map(s) for shininess
  • isosurf_shininess_value=value[,value,...] β€” shininess value(s) for isosurfaces
    • options: 0-255
  • slice=volume:axis[,volume:axis,...] β€” volume slice parallel to given axis (x, y, z)
  • slice_position=x1,x2,y1,y2,z1,z2[,x1,x2,y1,y2,z1,z2,...] β€” volume slice position
    • default: 0,1,0,1,0,1
  • slice_transparency=value[,value,...] β€” volume slice transparency
    • options: 0-255
    • default: 0
  • bgcolor=name β€” background color
    • either a standard color name or R:G:B triplet
    • default: white
  • position=x,y β€” viewpoint position (x,y model coordinates)
    • options: 0.0-1.0
    • default: 0.84,0.16
  • height=value β€” viewpoint height (in map units)
  • perspective=value β€” viewpoint field of view (in degrees)
    • options: 1-180
    • default: 40
  • twist=value β€” viewpoint twist angle (in degrees)
    • options: -180-180
    • default: 0
  • zexag=value β€” vertical exaggeration
  • focus=x,y,z β€” focus to point on surface (from SW corner in map units)
  • light_position=x,y,z β€” light position (x,y,z model coordinates)
    • default: 0.68,-0.68,0.80
  • light_color=name β€” light color
    • either a standard color name or R:G:B triplet
    • default: white
  • light_brightness=integer β€” light brightness
    • options: 0-100
    • default: 80
  • light_ambient=integer β€” light ambient
    • options: 0-100
    • default: 20
  • fringe=string[,string,...] β€” fringe edges
    • options: nw, ne, sw, se
    • nw: North-West edge
    • ne: North-East edge
    • sw: South-West edge
    • se: South-East edge
  • fringe_color=name β€” fringe color
    • either a standard color name or R:G:B triplet
    • default: grey
  • fringe_elevation=integer β€” fringe elevation
    • default: 55
  • cplane=value[,value,...] β€” cutting plane index (0-5)
  • cplane_position=x,y,z[,x,y,z,...] β€” cutting plane x,y,z coordinates
    • default: 0,0,0
  • cplane_rotation=value[,value,...] β€” cutting plane rotation along the vertical axis
    • options: 0-360
    • default: 0
  • cplane_tilt=value[,value,...] β€” the tilt of your cutting plane(s). Accepts a whole lil list of values if you got multiple planes, separated by commas ✨
    • Options: 0-360
    • Default: 0
  • cplane_shading=string β€” how the cutting plane gets colored, you know, the bit between two surfaces 🎨
    • Options: clear, top, bottom, blend, shaded
    • Default: clear
  • arrow_position=x,y β€” drops the north arrow exactly where you want it (screen coordinates, measured from the bottom left corner, bestie, don't forget that part 🧭)
  • arrow_size=value β€” how big the north arrow is, in map units
  • arrow_color=name β€” the north arrow's color. Either a standard color name or an R:G:B triplet, your call πŸ’…
    • Default: black
  • output=name β€” [required] the name for your output image file, and no extension, she's naked on purpose, the format handles that part πŸ’–
  • format=string β€” [required] which graphics file format you're serving today
    • Options: ppm, tif
    • Default: ppm
  • size=width,height β€” [required] the size (width, height) of the output image
    • Default: 640,480

πŸ‘‘ DESCRIPTION πŸ‘‘

So m.nviz.image lets you realistically render multiple surfaces (that's raster data, babes) in a 3D space, all from the command line β€” no GUI required, main character energy only πŸ”₯

And it's not just surfaces. You can optionally:

  • use thematic coloring 🎨
  • drape 2D vector data over the surfaces
  • display 3D vector data in the space
  • visualize volume data (that's 3D raster data, for the uninitiated) πŸ“¦

All of it, from your terminal. Periodt.


✨ EXAMPLE ✨

Render that elevation map in a 3D space, let's go:

g.region raster=elevation
m.nviz.image elevation_map=elevation output=elev perspective=15

Ate. No crumbs. 🫢


🌈 SEE ALSO 🌈

  • wxGUI 3D viewer

πŸŽ€ AUTHORS πŸŽ€

  • Martin Landa β€” Google Summer of Code 2008 (mentor: Michael Barton) and Google Summer of Code 2010 (mentor: Helena Mitasova)
  • Anna Kratochvilova β€” Google Summer of Code 2011 (mentor: Martin Landa)

Absolute legends, every one of them πŸ˜­πŸ’œ


πŸ¦‹ SOURCE CODE πŸ¦‹

Available at: m.nviz.image source code (history)

Latest change: Friday Apr 17 01:04:26 2026 in commit: 32a143358df26b2e518b03c7e0d79541e8d1e5b1

  • Main index | Miscellaneous index | Topics index | Keywords index | Graphical index | Full index

Β© 2003-2026 GRASS Development Team, GRASS 8.5.0 Reference Manual

ok bestie that's a wrap on m.nviz.image(1grass) πŸ’– go render something iconic, and remember: this whole thing lives in GRASS 8.5.0, so when you're lost just holler at the man page again. slay πŸŽ€βœ¨

πŸ“¦ where this page comes from