v.kernel(1)
π v.kernel β the GRASS GIS glow-up for your points π
okay bestie, welcome to v.kernel(1), a page straight out of the GRASS GIS User's Manual. this one's a baddie: it makes density maps. raster ones, vector ones, network ones. the whole vibe. let's get into it π«Ά
β¨ NAME β¨
v.kernel β generates a raster density map from vector points map. density is computed using a moving kernel. optionally generates a vector density map on a vector network. yes, it does both. versatile queen. π
π·οΈ KEYWORDS π·οΈ
vector, kernel density, point density, heatmap, hotspot
like... it's giving heatmap. it's giving hotspot. iykyk. π₯
πΈ SYNOPSIS πΈ
v.kernel
v.kernel --help
v.kernel [-oqnm] input=name [net=name] [output=name]
[net_output=name] radius=float [dsize=float] [segmax=float]
[distmax=float] [multiplier=float] [node=string] [kernel=string]
[--overwrite] [--help] [--verbose] [--quiet] [--ui]
π Flags π
-oβ tries to calculate an optimal radius, using the value you gave forradiusas the maximum. experimental, bestie. handle with care π-qβ only calculates the optimal radius and then dips (no map gets written). just the number, nothing else, periodt.-nβ in network mode, normalizes values by the sum of density multiplied by the length of each segment. the integral over the output map then gives1.0 * multiplier. math ate. π-mβ in network mode, multiplies the result by the number of input points.--overwriteβ lets output files overwrite files that already exist. chaotic but permitted.--helpβ prints the usage summary.--verboseβ verbose module output. it will tell you things. so many things.--quietβ quiet module output. shhh.--uiβ forces the GUI dialog to launch. main character GUI energy.
π§ Parameters π§
input=name[required]β name of the input vector map with training points. this is the whole point of the operation. the points. the moment. βnet=nameβ name of the input network vector map. give it this if you want the network flavor.output=nameβ name for the output raster map.net_output=nameβ name for the output vector density map. outputs a vector map if a network map is given.radius=float[required]β kernel radius, in map units. required, bestie. no skipping.dsize=floatβ discretization error, in map units. Default:0.segmax=floatβ maximum length of segment on network. Default:100.distmax=floatβ maximum distance from point to network. Default:100.multiplier=floatβ multiply the density result by this number. Default:1.node=stringβ node method. Options:none,split. Default:none.none: no method applied at nodes with more than 2 arcssplit: equal split (Okabe 2009) applied at nodes
kernel=stringβ kernel function. Options:uniform,triangular,epanechnikov,quartic,triweight,gaussian,cosine. Default:gaussian.
π DESCRIPTION π
so, v.kernel generates a raster density map from vector points data using a moving kernel. the kernel density functions you can choose from are uniform, triangular, epanechnikov, quartic, triweight, gaussian, and cosine β and the default is gaussian, because gaussian is that girl. β¨
the module can also generate a vector density map on a vector network. here's the tea tho: conventional kernel functions produce biased estimates by overestimating the densities around network nodes. meanwhile the equal split method of Okabe et al. (2009) produces unbiased density estimates. the equal split method uses the kernel function you picked with the kernel option, and you turn it on with node=split. iconic behavior, honestly. π¦
π NOTES π
the multiplier option exists to overcome the limitation that the resulting density, when you're outputting a vector map, is stored as category (an integer). the density result stored as category may be multiplied by this number. so like... it's a workaround. a cute little workaround. π
for the gaussian kernel, the standard deviation for the gaussian function is set to 1/4 of the radius. noted. no cap.
with the -o flag (experimental!), the command tries to calculate an optimal radius. the value of radius is taken as the maximum value. the radius is calculated based on the gaussian function, using ALL points β not just those in the current region. all of them. every single one. π
π EXAMPLES π
compute density of points (using a vector map of schools from the North Carolina sample dataset):
g.region region=wake_30m
v.kernel input=schools_wake output=schools_density radius=5000 multiplier=1000000
r.colors map=schools_density color=bcyr
School density
like... look at her go. π
π KNOWN ISSUES π
the module only considers the presence of points, but not (yet) any attribute values. so your attributes are just... sitting there. unread. someday, bestie. someday. π
π REFERENCES π
- Okabe, A., Satoh, T., Sugihara, K. (2009). A kernel density estimation method for networks, its computational method and a GIS-based tool. International Journal of Geographical Information Science, Vol 23(1), pp. 7-32. DOI:
10.1080/13658810802475491
π SEE ALSO π
v.surf.rst
Overview: Interpolation and Resampling in GRASS GIS
π AUTHORS π
- Stefano Menegon, ITC-irst, Trento, Italy
- Radim Blazek (additional kernel density functions and network part)
π₯ SOURCE CODE π₯
Available at: v.kernel source code (history)
Accessed: Saturday Jan 17 05:41:23 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
and that's the whole page, bestie!! this was written for GRASS 8.4.2 (the source/version vibe, fr fr) and accessed on Saturday Jan 17 05:41:23 2026 β so you know it's fresh. go make some density maps, you absolute legend. slay. πβ¨πΈ
π¦ where this page comes from
- fedora 44: grass 8.4.2-4.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms