v.random can generate also 3D vector points or write random value to the attribute table. Point height range or attribute value range is controlled by specifying zmin and zmax options. Both z values are included in range (zmin <= z <= zmax). Generated random attribute value type can be controlled by column_type. Use integer column type for integers and double precision for floating point numbers. Integer values are calculated by rounding random floating point number.
To produce repeatable results a random seed can be set using the option seed.
If an restrict vector map with areas is specified, the location of random points is restricted to the selected areas. By default, the requested number of points are distributed across all areas.
If the -a flag is given, the requested number of points is generated for each individual area. For example, if 20 points should be generated and the input map has 100 individual areas, 2000 points will be generated in total.
Attributes attached to restrict vector map are also transferred if the layer parameter is defined > 0, see example below.
v.random output=binary_random npoints=20 zmin=0 zmax=1 column='binary' v.db.select binary_random cat|binary 1|0.63495 2|0.233421 3|0.489302 4|0.748264 5|0.505556 6|0.32975 [...] v.univar -d binary_random Calculating geometric distances between 20 primitives... [...] minimum: 148.515 maximum: 16572.8 [...]
v.random output=binary_random npoints=20 zmin=0 zmax=1 column='binary' column_type=integer v.db.select binary_random cat|binary 1|0 2|0 3|0 4|0 5|1 6|0 [...]
v.random seed=52 output=height_random npoints=40 zmin=110 zmax=170 -z v.univar -d height_random Calculating geometric distances between 40 primitives... [...] minimum: 334.889 maximum: 18351.9 range: 18017 sum: 5.38425e+06 mean: 7266.2 mean of absolute values: 7266.2 population standard deviation: 3563.95 [...] skewness: 0.34703
v.random restrict=zipcodes_wake output=zipcodes_local_random_n3 npoints=3 where="ZIPNAME = 'RALEIGH'" -a # visualization d.mon wx0 d.vect zipcodes_wake d.vect zipcodes_wake fcolor=yellow where="ZIPNAME = 'RALEIGH'" d.vect zipcodes_local_random_n3 color=red icon=basic/circle
g.region vector=nc_state v.random output=randpoints6k npoints=6000 v.voronoi input=randpoints6k output=randareas6k v.info -t randareas6k v.category randareas6k option=print # plot vector areas d.mon wx0 d.vect randareas6k -c
To eventually obtain isolated areas, selected areas can be extracted with v.extract.
These vector areas can also be rasterized:
# rasterize areas # note: rastermaps must result in at least 6k pixel in this example g.region vector=nc_state res=500 -p -a v.to.rast randareas6k out=randareas6k use=cat r.colors randareas6k color=random d.rast randareas6k
g.region -p raster=elevation v.random output=random_samples npoints=20 v.db.addtable map=random_samples columns='cat INTEGER, sample DOUBLE PRECISION' v.what.rast map=random_samples raster=elevation column=sample v.db.select random_samples cat|sample 1|103.9935 2|129.1266 3|96.01388 [...]
g.region -p vector=geology v.random output=random_samples npoints=20 v.db.addtable map=random_samples columns='cat integer, geology varchar(100)' v.what.vect map=random_samples column=geology query_map=geology query_layer=1 query_column=GEO_NAME v.db.select random_samples cat|geology 1|PzZm 2| 3|Zatm [...]
g.region -p raster=landclass96 r.to.vect -v input=landclass96 output=landclass96 type=area v.random restrict=landclass96 output=random_samples npoints=20 where="label = 'forest'" layer=1 v.db.select map=random_samples cat|landclass96_cat|landclass96_label 1|5|forest 2|5|forest 3|5|forest ...
g.region -p raster=landclass96 r.to.vect -v input=landclass96 output=landclass96 type=area v.random restrict=landclass96 output=random_samples npoints=2 where="label = 'water'" layer=1 -a
Available at: v.random source code (history)
Latest change: Monday Oct 26 11:54:36 2020 in commit: 3b6d257bdfc18a58dd42c5ab06c69ada99c56a24
Main index | Vector index | Topics index | Keywords index | Graphical index | Full index
© 2003-2023 GRASS Development Team, GRASS GIS 7.8.9dev Reference Manual