Random

Base.randMethod
rand([rng], G, crs=Cartesian3D)

Generate a random geometry of type G with CRS crs, optionally passing a random number generator rng.

Examples

rand(Point)
rand(Triangle)
rand(Point, crs=Cartesian2D)
rand(Triangle, crs=LatLon)
source
Base.randMethod
rand([rng], G, n, crs=Cartesian3D)

Generate a vector of n random geometries of type G with CRS crs, optionally passing a random number generator rng.

Examples

rand(Point, 10)
rand(Triangle, 10)
rand(Point, 10, crs=Cartesian2D)
rand(Triangle, 10, crs=LatLon)
source

Random geometries can be generated using the rand function:

rand(Point)
Point with Cartesian{NoDatum} coordinates
├─ x: 0.45906315452269075 m
├─ y: 0.49296411010991514 m
└─ z: 0.6037798837438986 m

By default, the rand function uses the Cartesian3D CRS (Coordinate Reference System). It's possible to change the CRS using the crs keyword argument:

rand(Point, crs=Cartesian2D)
Point with Cartesian{NoDatum} coordinates
├─ x: 0.7596112174206335 m
└─ y: 0.8852865703321728 m

A vector of geometries can be generated by passing the number of elements as the second argument:

rand(Segment, 5, crs=LatLon)
5-element Vector{Segment{🌐, CoordRefSystems.GeodeticLatLon{CoordRefSystems.WGS84Latest, Unitful.Quantity{Float64, NoDims, Unitful.FreeUnits{(°,), NoDims, nothing}}}}}:
 Segment((lat: 83.884°, lon: -80.2095°), (lat: -84.9148°, lon: -27.3962°))
 Segment((lat: 41.0259°, lon: 160.297°), (lat: 64.5584°, lon: 147.197°))
 Segment((lat: -50.1111°, lon: 114.351°), (lat: -39.9802°, lon: -1.38882°))
 Segment((lat: 50.0665°, lon: 21.0297°), (lat: 18.3768°, lon: 82.1053°))
 Segment((lat: 50.4766°, lon: 82.9501°), (lat: -85.3251°, lon: 69.5075°))

For reproducibility purposes, a random number generator can be passed as the first argument in both methods:

rng = Xoshiro(123)
rand(rng, Triangle)
Triangle
├─ Point(x: 0.521213795535383 m, y: 0.5868067574533484 m, z: 0.8908786980927811 m)
├─ Point(x: 0.19090669902576285 m, y: 0.5256623915420473 m, z: 0.3905882754313441 m)
└─ Point(x: 0.044818005017491114 m, y: 0.933353287277165 m, z: 0.5805599818745412 m)
rand(rng, Triangle, 5)
5-element Vector{Triangle{𝔼{3}, CoordRefSystems.Cartesian3D{CoordRefSystems.NoDatum, Unitful.Quantity{Float64, 𝐋, Unitful.FreeUnits{(m,), 𝐋, nothing}}}}}:
 Triangle((x: 0.327238 m, y: 0.526996 m, z: 0.836229 m), (x: 0.0409061 m, y: 0.465202 m, z: 0.362649 m), (x: 0.102205 m, y: 0.720103 m, z: 0.573619 m))
 Triangle((x: 0.664468 m, y: 0.295367 m, z: 0.276597 m), (x: 0.983436 m, y: 0.880897 m, z: 0.234017 m), (x: 0.380949 m, y: 0.131944 m, z: 0.088291 m))
 Triangle((x: 0.313505 m, y: 0.46361 m, z: 0.713636 m), (x: 0.205925 m, y: 0.0905512 m, z: 0.581912 m), (x: 0.311448 m, y: 0.121148 m, z: 0.20453 m))
 Triangle((x: 0.38669 m, y: 0.018572 m, z: 0.0721807 m), (x: 0.914247 m, y: 0.387374 m, z: 0.771916 m), (x: 0.377383 m, y: 0.875555 m, z: 0.264568 m))
 Triangle((x: 0.901877 m, y: 0.864693 m, z: 0.732238 m), (x: 0.103197 m, y: 0.587585 m, z: 0.809433 m), (x: 0.223841 m, y: 0.858524 m, z: 0.375417 m))