| Title: | Build and Run Spatially Explicit Agent-Based Models |
|---|---|
| Description: | Build and run spatially explicit agent-based models using only the R platform. 'NetLogoR' follows the same framework as the 'NetLogo' software (Wilensky (1999) <https://www.netlogo.org>) and is a translation in R of the structure and functions of 'NetLogo'. 'NetLogoR' provides new R classes to define model agents and functions to implement spatially explicit agent-based models in the R environment. This package allows benefiting of the fast and easy coding phase from the highly developed 'NetLogo' framework, coupled with the versatility, power and massive resources of the R software. Examples of two models from the NetLogo software repository (Ants <https://ccl.northwestern.edu/netlogo/models/Ants>) and Wolf-Sheep-Predation (<https://ccl.northwestern.edu/netlogo/models/WolfSheepPredation>), and a third, Butterfly, from Railsback and Grimm (2012) <https://www.railsback-grimm-abm-book.com/>, all written using 'NetLogoR' are available. The 'NetLogo' code of the original version of these models is provided alongside. A programming guide inspired from the 'NetLogo' Programming Guide (<https://docs.netlogo.org/programming.html>) and a dictionary of 'NetLogo' primitives (<https://docs.netlogo.org/dictionary.html>) equivalences are also available. NOTE: To increment 'time', these functions can use a for loop or can be integrated with a discrete event simulator, such as 'SpaDES' (<https://cran.r-project.org/package=SpaDES>). |
| Authors: | Sarah Bauduin [aut] (ORCID: <https://orcid.org/0000-0002-3252-5894>), Eliot J B McIntire [aut, cre] (ORCID: <https://orcid.org/0000-0002-6914-8316>), Alex M Chubaty [aut] (ORCID: <https://orcid.org/0000-0001-7146-8135>), His Majesty the King in Right of Canada, as represented by the Minister of Natural Resources Canada [cph] |
| Maintainer: | Eliot J B McIntire <[email protected]> |
| License: | GPL-3 |
| Version: | 1.0.6 |
| Built: | 2026-06-01 07:45:50 UTC |
| Source: | https://github.com/PredictiveEcology/NetLogoR |
NetLogoR packageThe 3 specific R examples can be opened here, but it's recommended to make copies of these for editing:
exPath <- file.path(system.file(package = "NetLogoR", "examples") file.edit(exPath, "Ants", "Ants.R")) file.edit(exPath, "Butterfly", "Butterfly-1.R")) file.edit(exPath, "Wolf-Sheep-Predation", "Wolf-Sheep-Predation.R"))
Maintainer: Eliot J B McIntire [email protected] (ORCID)
Authors:
Sarah Bauduin [email protected] (ORCID)
Alex M Chubaty [email protected] (ORCID)
Other contributors:
His Majesty the King in Right of Canada, as represented by the Minister of Natural Resources Canada [copyright holder]
Useful links:
Report bugs at https://github.com/PredictiveEcology/NetLogoR/issues
.bboxCoords is a drop in replacement for raster::.bboxCoords..bboxCoords is a drop in replacement for raster::.bboxCoords.
.bboxCoords(coords).bboxCoords(coords)
coords |
xy coordinates for all cells, e.g., produced by |
Operators acting on vectors, matrices, arrays and lists to extract or replace parts.
## S4 method for signature 'worldMatrix,numeric,numeric,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'worldMatrix,missing,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 replacement method for signature 'worldMatrix,numeric,numeric,ANY' x[i, j] <- value ## S4 replacement method for signature 'worldMatrix,missing,missing,ANY' x[i, j] <- value ## S4 method for signature 'worldArray,numeric,numeric,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'worldArray,missing,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 replacement method for signature 'worldArray,numeric,numeric,matrix' x[i, j] <- value ## S4 replacement method for signature 'worldArray,missing,missing,matrix' x[i, j] <- value ## S4 method for signature 'agentMatrix,numeric,numeric,ANY' x[i, j, ..., drop = FALSE] ## S4 method for signature 'agentMatrix,logical,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'agentMatrix,numeric,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'agentMatrix,missing,missing,missing' x[i, j, ..., drop = FALSE] ## S4 method for signature 'agentMatrix,missing,character,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'agentMatrix,numeric,character,ANY' x[i, j, ..., drop = FALSE] ## S4 method for signature 'agentMatrix,missing,numeric,ANY' x[i, j, ..., drop = FALSE] ## S4 replacement method for signature 'agentMatrix,numeric,numeric,numeric' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,missing,numeric,numeric' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,missing,numeric' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,character,data.frame' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,numeric,character' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,missing,numeric,character' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,missing,character,character' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,character,character' x[i, j] <- value ## S4 method for signature 'agentMatrix' x$name## S4 method for signature 'worldMatrix,numeric,numeric,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'worldMatrix,missing,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 replacement method for signature 'worldMatrix,numeric,numeric,ANY' x[i, j] <- value ## S4 replacement method for signature 'worldMatrix,missing,missing,ANY' x[i, j] <- value ## S4 method for signature 'worldArray,numeric,numeric,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'worldArray,missing,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 replacement method for signature 'worldArray,numeric,numeric,matrix' x[i, j] <- value ## S4 replacement method for signature 'worldArray,missing,missing,matrix' x[i, j] <- value ## S4 method for signature 'agentMatrix,numeric,numeric,ANY' x[i, j, ..., drop = FALSE] ## S4 method for signature 'agentMatrix,logical,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'agentMatrix,numeric,missing,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'agentMatrix,missing,missing,missing' x[i, j, ..., drop = FALSE] ## S4 method for signature 'agentMatrix,missing,character,ANY' x[i, j, ..., drop = TRUE] ## S4 method for signature 'agentMatrix,numeric,character,ANY' x[i, j, ..., drop = FALSE] ## S4 method for signature 'agentMatrix,missing,numeric,ANY' x[i, j, ..., drop = FALSE] ## S4 replacement method for signature 'agentMatrix,numeric,numeric,numeric' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,missing,numeric,numeric' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,missing,numeric' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,character,data.frame' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,numeric,character' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,missing,numeric,character' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,missing,character,character' x[i, j] <- value ## S4 replacement method for signature 'agentMatrix,numeric,character,character' x[i, j] <- value ## S4 method for signature 'agentMatrix' x$name
x |
A |
i |
Indices specifying elements to extract or replace. |
j |
see |
... |
other named arguments |
drop |
not implemented |
value |
Any R object |
name |
A literal character string or a |
An agentMatrix when full row(s), full column(s) or element(s)
at specific row(s) and column(s) is/are extracted.
Extract methods for agentMatrix class will generally maintain the agentMatrix class.
This means that there will still be coordinates, character columns represented as numerics etc.
$ is for extracting the raw columns and does not maintain the agentMatrix class.
[] will extract all values, and result in a data.frame with the correct character and
numeric columns.
worldArray classSubsetting and replacing for worldArray class
## S4 method for signature 'worldArray,ANY,missing' x[[i]] ## S4 replacement method for signature 'worldArray,ANY,missing' x[[i]] <- value ## S4 method for signature 'worldArray' x$name## S4 method for signature 'worldArray,ANY,missing' x[[i]] ## S4 replacement method for signature 'worldArray,ANY,missing' x[[i]] <- value ## S4 method for signature 'worldArray' x$name
x |
A |
i |
Index number or layer name specifying a subset of layer(s)
from the |
value |
A replacement |
name |
Layer name, normally without back ticks, unless has symbols. |
The replacement method returns the original object, but with updated elements. The accessor method extracts the entire layer.
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100)) w2 <- createWorld(0, 9, 0, 9, data = runif(100)) w3 <- createWorld(0, 9, 0, 9, data = runif(100) + 2) # add 2 so different range a1 <- stackWorlds(w1, w2) a1[[2]] a1[[2]] <- w3w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100)) w2 <- createWorld(0, 9, 0, 9, data = runif(100)) w3 <- createWorld(0, 9, 0, 9, data = runif(100) + 2) # add 2 so different range a1 <- stackWorlds(w1, w2) a1[[2]] a1[[2]] <- w3
Binary operators which allow the comparison of values in an agentMatrix.
## S4 method for signature 'agentMatrix,character' e1 == e2 ## S4 method for signature 'agentMatrix,numeric' e1 == e2## S4 method for signature 'agentMatrix,character' e1 == e2 ## S4 method for signature 'agentMatrix,numeric' e1 == e2
e1 |
An |
e2 |
atomic vector, symbol, call, or other object for which methods have been written. |
A logical vector indicating the result of the element by element comparison.
agentMatrix objectThis is a fast alternative to the SpatialPointsDataFrame.
It is meant to replace that functionality, though there are not as many methods (yet).
The object is primarily a numeric matrix.
Any character column passed to ... will be converted to a numeric, using as.factor
internally, and stored as a numeric.
Methods using this class will automatically convert character queries to the correct numeric
alternative.
agentMatrix(..., coords) ## S4 method for signature 'matrix' agentMatrix(..., coords) ## S4 method for signature 'missing' agentMatrix(..., coords)agentMatrix(..., coords) ## S4 method for signature 'matrix' agentMatrix(..., coords) ## S4 method for signature 'missing' agentMatrix(..., coords)
... |
Vectors, a data.frame, or a matrix of extra columns to add to the coordinates,
or a |
coords |
A matrix with 2 columns representing |
An agentMatrix object
Eliot McIntire
https://docs.netlogo.org/dictionary.html#clear-turtles
newAgent <- agentMatrix( coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10))newAgent <- agentMatrix( coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10))
agentMatrix classThe agentMatrix class
Eliot McIntire
newAgent <- new("agentMatrix", coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) # compare speeds -- about 5x faster if (requireNamespace("microbenchmark", quietly = TRUE) && requireNamespace("sp", quietly = TRUE)) { microbenchmark::microbenchmark( times = 499, spdf = { sp::SpatialPointsDataFrame( coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), data = data.frame( char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) ) }, agentMat = { agentMatrix( coords = cbind( pxcor = c(1, 2, 5), pycor = c(3, 4, 6) ), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) }, agentMatDirect = { new("agentMatrix", coords = cbind( pxcor = c(1, 2, 5), pycor = c(3, 4, 6) ), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) } ) }newAgent <- new("agentMatrix", coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) # compare speeds -- about 5x faster if (requireNamespace("microbenchmark", quietly = TRUE) && requireNamespace("sp", quietly = TRUE)) { microbenchmark::microbenchmark( times = 499, spdf = { sp::SpatialPointsDataFrame( coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), data = data.frame( char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) ) }, agentMat = { agentMatrix( coords = cbind( pxcor = c(1, 2, 5), pycor = c(3, 4, 6) ), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) }, agentMatDirect = { new("agentMatrix", coords = cbind( pxcor = c(1, 2, 5), pycor = c(3, 4, 6) ), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) } ) }
Methods for classes in NetLogoR (i.e., agentMatrix, worldMatrix, and worldArray).
Replacement method sets the bbox attribute of an agentMatrix.
bbox(obj) ## S4 method for signature 'agentMatrix' bbox(obj) ## S4 method for signature 'ANY' bbox(obj) bbox(obj) <- value ## S4 replacement method for signature 'agentMatrix,matrix' bbox(obj) <- value ## S4 method for signature 'worldNLR' bbox(obj) ## S4 method for signature 'SpatExtent' bbox(obj)bbox(obj) ## S4 method for signature 'agentMatrix' bbox(obj) ## S4 method for signature 'ANY' bbox(obj) bbox(obj) <- value ## S4 replacement method for signature 'agentMatrix,matrix' bbox(obj) <- value ## S4 method for signature 'worldNLR' bbox(obj) ## S4 method for signature 'SpatExtent' bbox(obj)
obj |
object deriving from class |
value |
2x2 matrix representing the bounding box. See |
The replacement method returns the same object as supplied to
obj, i.e., an agentMatrix, with the bbox attribute set to value.
raster::extent(), raster::coordinates(), sp::bbox()
newAgent <- agentMatrix( coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) bbox(newAgent) extent(newAgent) coordinates(newAgent)newAgent <- agentMatrix( coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) bbox(newAgent) extent(newAgent) coordinates(newAgent)
Move the turtles backward of their headings' directions.
bk(turtles, dist, world, torus = FALSE, out = TRUE) ## S4 method for signature 'agentMatrix,numeric' bk(turtles, dist, world, torus = FALSE, out = TRUE)bk(turtles, dist, world, torus = FALSE, out = TRUE) ## S4 method for signature 'agentMatrix,numeric' bk(turtles, dist, world, torus = FALSE, out = TRUE)
turtles |
|
dist |
Numeric. Vector of distances to move. Must
be of length 1 or of length |
world |
|
torus |
Logical to determine if the |
out |
Logical. Determine if a |
If torus = FALSE and out = TRUE, world
does not need to be provided.
If a distance to move leads a `turtle` outside of the `world`'s extent
and `torus = TRUE`, the `turtle` is
relocated on the other side of the `world`, inside its extent; if
`torus = FALSE` and `out = TRUE`, the `turtle` moves past the
`world`'s extent; if `torus = FALSE` and `out = FALSE`, the
`turtle` does not move at all. In the event that a `turtle` does not move,
its previous coordinates are still updated with its position before
running `bk()` (i.e., its current position).
If a given `dist` value is negative, then the `turtle` moves
forward.
The `turtles`' headings are not affected by the function (i.e., the
`turtles` do not face backward).
AgentMatrix representing the turtles with updated
coordinates and updated data for their previous coordinates prevX
and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#back
<https://docs.netlogo.org/dictionary.html#jump>
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createOTurtles(n = 10, world = w1) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 2) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- bk(turtles = t1, dist = 1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 0.5) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createOTurtles(n = 10, world = w1) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 2) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- bk(turtles = t1, dist = 1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 0.5) points(t1, col = of(agents = t1, var = "color"), pch = 16)
turtles move?Report TRUE if a turtle can move the given distance without leaving
the world's extent, report FALSE otherwise.
canMove(world, turtles, dist) ## S4 method for signature 'worldNLR,agentMatrix,numeric' canMove(world, turtles, dist)canMove(world, turtles, dist) ## S4 method for signature 'worldNLR,agentMatrix,numeric' canMove(world, turtles, dist)
world |
|
turtles |
|
dist |
Numeric. Vector of distances to move. Must
be of length 1 or of length |
Logical. Vector of length turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#can-move
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) canMove(world = w1, turtles = t1, dist = 1:10)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) canMove(world = w1, turtles = t1, dist = 1:10)
Take a sequence of agentMatrix arguments and combine by columns or rows, respectively.
This will take the coordinates of the first argument and remove the coordinates
of the second object.
## S3 method for class 'agentMatrix' cbind(..., deparse.level) ## S3 method for class 'agentMatrix' rbind(..., deparse.level = 1)## S3 method for class 'agentMatrix' cbind(..., deparse.level) ## S3 method for class 'agentMatrix' rbind(..., deparse.level = 1)
... |
Two |
deparse.level |
See |
An agentMatrix object.
patches coordinatesReport the cells numbers as defined for a Raster* object given the patches
coordinates pxcor and pycor.
cellFromPxcorPycor(world, pxcor, pycor) ## S4 method for signature 'worldNLR,numeric,numeric' cellFromPxcorPycor(world, pxcor, pycor)cellFromPxcorPycor(world, pxcor, pycor) ## S4 method for signature 'worldNLR,numeric,numeric' cellFromPxcorPycor(world, pxcor, pycor)
world |
|
pxcor |
Integer. Vector of patches |
pycor |
Integer. Vector of patches |
Numeric. Vector of cells number.
Sarah Bauduin
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) cellFromPxcorPycor(world = w1, pxcor = 0, pycor = 9) cellFromPxcorPycor(world = w1, pxcor = c(0, 1, 2), pycor = 0)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) cellFromPxcorPycor(world = w1, pxcor = 0, pycor = 9) cellFromPxcorPycor(world = w1, pxcor = c(0, 1, 2), pycor = 0)
world's patches
Reset all patches values to NA.
clearPatches(world) ## S4 method for signature 'worldMatrix' clearPatches(world) ## S4 method for signature 'worldArray' clearPatches(world)clearPatches(world) ## S4 method for signature 'worldMatrix' clearPatches(world) ## S4 method for signature 'worldArray' clearPatches(world)
world |
|
WorldMatrix object with NA values for all patches.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#clear-patches
w1 <- createWorld() w1 <- NLset(world = w1, agents = patches(w1), val = runif(NLcount(patches(w1)))) w1Val <- of(world = w1, agents = patches(w1)) summary(w1Val) w1 <- clearPatches(w1) w1Val <- of(world = w1, agents = patches(w1)) summary(w1Val)w1 <- createWorld() w1 <- NLset(world = w1, agents = patches(w1), val = runif(NLcount(patches(w1)))) w1Val <- of(world = w1, agents = patches(w1)) summary(w1Val) w1 <- clearPatches(w1) w1Val <- of(world = w1, agents = patches(w1)) summary(w1Val)
NetLogoR classesSpatial accessors and setters for NetLogoR classes
## S4 method for signature 'agentMatrix' coordinates(obj, ...)## S4 method for signature 'agentMatrix' coordinates(obj, ...)
obj |
object deriving from class |
... |
additional arguments that may be used by particular methods |
coordinates returns a matrix of coordinates of the obj.
turtles
Create n turtles at the center of the world with their headings evenly
distributed.
createOTurtles(n, world, breed, color) ## S4 method for signature 'numeric' createOTurtles(n, world, breed, color)createOTurtles(n, world, breed, color) ## S4 method for signature 'numeric' createOTurtles(n, world, breed, color)
n |
Integer. |
world |
|
breed |
Character. Vector of |
color |
Character. Vector of |
The identity of the turtles is defined by their who number. This
numbering starts at 0 and increments by 1.
The coordinates from the previous time step are stored in `prevX` and
`prevY`. The initial values are `NA`.
AgentMatrix object of length n with data for the
turtles being: xcor, ycor, who, heading, prevX, prevY, breed,
and color.
Sarah Bauduin and Eliot McIntire
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#create-ordered-turtles
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createOTurtles(n = 10, world = w1) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 1) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createOTurtles(n = 10, world = w1) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 1) points(t1, col = of(agents = t1, var = "color"), pch = 16)
turtles
Create n moving agents with a set of defined variables.
createTurtles(n, coords, world, heading, breed, color) ## S4 method for signature 'numeric,matrix,missing' createTurtles(n, coords, world, heading, breed, color) ## S4 method for signature 'numeric,missing,ANY' createTurtles(n, coords, world, heading, breed, color)createTurtles(n, coords, world, heading, breed, color) ## S4 method for signature 'numeric,matrix,missing' createTurtles(n, coords, world, heading, breed, color) ## S4 method for signature 'numeric,missing,ANY' createTurtles(n, coords, world, heading, breed, color)
n |
Integer. |
coords |
Matrix ( |
world |
|
heading |
Numeric. Vector of values between 0 and 360. Must be of length 1 or
of length |
breed |
Character. Vector of |
color |
Character. Vector of |
If coords is provided, world must not be provided.
The identity of the `turtles` is defined by their `who` number. This
numbering starts at 0 and increments by 1.
The coordinates from the previous time step are stored in `prevX` and
`prevY`. The initial values are `NA`.
AgentMatrix object of length n with data for the
turtles being: xcor, ycor, who, heading, prevX, prevY,
breed, and color.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#create-turtles
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)
world
Create a world of patches of class worldMatrix.
createWorld(minPxcor, maxPxcor, minPycor, maxPycor, data = NA) ## S4 method for signature 'numeric,numeric,numeric,numeric,ANY' createWorld(minPxcor, maxPxcor, minPycor, maxPycor, data = NA) ## S4 method for signature 'missing,missing,missing,missing,missing' createWorld()createWorld(minPxcor, maxPxcor, minPycor, maxPycor, data = NA) ## S4 method for signature 'numeric,numeric,numeric,numeric,ANY' createWorld(minPxcor, maxPxcor, minPycor, maxPycor, data = NA) ## S4 method for signature 'missing,missing,missing,missing,missing' createWorld()
minPxcor |
Integer. Minimum |
maxPxcor |
Integer. Maximum |
minPycor |
Integer. Minimum |
maxPycor |
Integer. Maximum |
data |
Vector of length 1 or length
|
If data is provided, values are assigned by rows.
If no parameters value are provided, default values are:
`minPxcor = -16`,
`maxPxcor = 16`, `minPycor = -16`, and `maxPycor = 16`.
See `help("worldMatrix-class")` for more details on the `worldMatrix` class.
WorldMatrix object composed of
(maxPxcor - minPxcor + 1) * (maxPycor - minPycor + 1)
patches (i.e., matrix cells).
Sarah Bauduin, Eliot McIntire, and Alex Chubaty
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25) plot(w1)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25) plot(w1)
turtles
Kill selected turtles.
die(turtles, who) ## S4 method for signature 'agentMatrix,numeric' die(turtles, who)die(turtles, who) ## S4 method for signature 'agentMatrix,numeric' die(turtles, who)
turtles |
|
who |
Integer. Vector of the |
The who numbers of the remaining turtles are unchanged.
AgentMatrix representing the turtles with the selected
ones removed.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#die
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) NLcount(t1) t1 <- die(turtles = t1, who = c(2, 3, 4)) NLcount(t1)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) NLcount(t1) t1 <- die(turtles = t1, who = c(2, 3, 4)) NLcount(t1)
world
Each patch gives an equal share of a portion of its value to its neighbor patches.
diffuse(world, pVar, share, nNeighbors, torus = FALSE) ## S4 method for signature 'worldMatrix,missing,numeric,numeric' diffuse(world, share, nNeighbors, torus) ## S4 method for signature 'worldArray,character,numeric,numeric' diffuse(world, pVar, share, nNeighbors, torus = FALSE)diffuse(world, pVar, share, nNeighbors, torus = FALSE) ## S4 method for signature 'worldMatrix,missing,numeric,numeric' diffuse(world, share, nNeighbors, torus) ## S4 method for signature 'worldArray,character,numeric,numeric' diffuse(world, pVar, share, nNeighbors, torus = FALSE)
world |
|
pVar |
Character. If the |
share |
Numeric. Value between 0 and 1 representing the portion of
the |
nNeighbors |
Integer: 4 or 8. Represents the number of neighbor |
torus |
Logical to determine if the |
What is given is lost for the patches.
If `torus = TRUE`, all `patches` have `nNeighbors` `patches` around
them, which
some may be on the other sides of the `world`. If `torus = FALSE`,
`patches` located on the edges of the `world` have less than
`nNeighbors` `patches` around them.
However, each neighbor still gets 1/4 or 1/8 of the shared amount
and the diffusing
patch keeps the leftover.
WorldMatrix or worldArray object with patches values updated.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#diffuse
<https://docs.netlogo.org/dictionary.html#diffuse4>
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:3, size = 25, replace = TRUE) ) plot(w1) # Diffuse 50% of each patch value to its 8 neighbors if (requireNamespace("SpaDES.tools", quietly = TRUE)) { w2 <- diffuse(world = w1, share = 0.5, nNeighbors = 8) plot(w2) }w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:3, size = 25, replace = TRUE) ) plot(w1) # Diffuse 50% of each patch value to its 8 neighbors if (requireNamespace("SpaDES.tools", quietly = TRUE)) { w2 <- diffuse(world = w1, share = 0.5, nNeighbors = 8) plot(w2) }
Move the turtles to their neighboring patch with the lowest value.
downhill(world, pVar, turtles, nNeighbors, torus = FALSE) ## S4 method for signature 'worldMatrix,missing,agentMatrix,numeric' downhill(world, turtles, nNeighbors, torus) ## S4 method for signature 'worldArray,character,agentMatrix,numeric' downhill(world, pVar, turtles, nNeighbors, torus = FALSE)downhill(world, pVar, turtles, nNeighbors, torus = FALSE) ## S4 method for signature 'worldMatrix,missing,agentMatrix,numeric' downhill(world, turtles, nNeighbors, torus) ## S4 method for signature 'worldArray,character,agentMatrix,numeric' downhill(world, pVar, turtles, nNeighbors, torus = FALSE)
world |
|
pVar |
Character. If the |
turtles |
|
nNeighbors |
Integer: 4 or 8. Represents the number of neighbor |
torus |
Logical to determine if the |
If no neighboring patch has a smaller value than the patch where the
turtle is currently located on, the turtle stays on this patch. It still
moves to the patch center if it was not already on it.
If there are multiple neighboring `patches` with the same lowest value,
the `turtle` chooses one `patch` randomly.
If a `turtle` is located on a `patch` on the edge
of the `world` and `torus = FALSE`, it has fewer
neighboring `patches` as options to move than `nNeighbors`; if
`torus = TRUE`, the `turtle` can move on the other side of the `world` to
move downhill and its choice of neighboring `patches` is always equals to
`nNeighbors`.
AgentMatrix representing the turtles with updated
coordinates and updated data for their heading values and
previous coordinates prevX
and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#downhill
w1 <- createWorld( minPxcor = 1, maxPxcor = 10, minPycor = 1, maxPycor = 10, data = runif(100) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) if (requireNamespace("SpaDES.tools", quietly = TRUE)) { t1 <- downhill(world = w1, turtles = t1, nNeighbors = 8) points(t1, col = of(agents = t1, var = "color"), pch = 16) }w1 <- createWorld( minPxcor = 1, maxPxcor = 10, minPycor = 1, maxPycor = 10, data = runif(100) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) if (requireNamespace("SpaDES.tools", quietly = TRUE)) { t1 <- downhill(world = w1, turtles = t1, nNeighbors = 8) points(t1, col = of(agents = t1, var = "color"), pch = 16) }
Report the amount by which the turtles' coordinates xcor would change
if the turtles were
to move forward the given distances with their current headings.
dx(turtles, dist = 1) ## S4 method for signature 'agentMatrix,numeric' dx(turtles, dist = 1) ## S4 method for signature 'agentMatrix,missing' dx(turtles)dx(turtles, dist = 1) ## S4 method for signature 'agentMatrix,numeric' dx(turtles, dist = 1) ## S4 method for signature 'agentMatrix,missing' dx(turtles)
turtles |
|
dist |
Numeric. Vector of distances the |
Report the sine of the turtles' heading multiplied by the dist
values. Heading 0 is north and angles are calculated in degrees in a
clockwise manner.
Numeric. Vector of length turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#dxy
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createOTurtles(world = w1, n = 10) dx(turtles = t1)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createOTurtles(world = w1, n = 10) dx(turtles = t1)
Report the amount by which the turtles' coordinates ycor would change
if the turtles were
to move forward the given distances with their current headings.
dy(turtles, dist = 1) ## S4 method for signature 'agentMatrix,numeric' dy(turtles, dist = 1) ## S4 method for signature 'agentMatrix,missing' dy(turtles)dy(turtles, dist = 1) ## S4 method for signature 'agentMatrix,numeric' dy(turtles, dist = 1) ## S4 method for signature 'agentMatrix,missing' dy(turtles)
turtles |
|
dist |
Numeric. Vector of distances the |
Report the cosine of the turtles' heading multiplied by the dist
values. Heading 0 is north and angles are calculated in degrees in a
clockwise manner.
Numeric. Vector of length turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#dxy
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createOTurtles(world = w1, n = 10) dy(turtles = t1)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createOTurtles(world = w1, n = 10) dy(turtles = t1)
Same as sp::bbox and raster::extent.
## S4 method for signature 'worldNLR' extent(x, ...) ## S4 method for signature 'agentMatrix' extent(x, ...)## S4 method for signature 'worldNLR' extent(x, ...) ## S4 method for signature 'agentMatrix' extent(x, ...)
x |
object deriving from class "agentMatrix",
or a |
... |
Ignored. |
bbox returns a two-column matrix; the first column has the minimum,
the second the maximum values; rows represent the spatial dimensions.
extent returns an SpatExtent object from the package terra.
sp::bbox(), raster::coordinates()
Set the turtles' heading towards agents2.
face(turtles, agents2, world, torus = FALSE) ## S4 method for signature 'agentMatrix,matrix' face(turtles, agents2, world, torus = FALSE)face(turtles, agents2, world, torus = FALSE) ## S4 method for signature 'agentMatrix,matrix' face(turtles, agents2, world, torus = FALSE)
turtles |
|
agents2 |
Matrix ( `AgentMatrix` object representing the moving `agents`, or
Matrix (`ncol` = 2) with the first column `x` and the second column
`y` representing locations coordinates.
|
world |
|
torus |
Logical to determine if the |
The number of agents/locations in agents2 must be equal to 1 or
to the length of turtles.
If `torus = FALSE`, `world` does not need to be provided.
If `torus = TRUE` and the distance from one `turtles` to
its corresponding agent/location `agents2` is smaller around the
sides of the `world` than across it, then the direction to the agent/location
`agents2` going around the sides of the `world` is given to the `turtle`.
If a turtle is facing its own location, its heading does not change.
AgentMatrix representing the turtles with updated headings.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#face
<https://docs.netlogo.org/dictionary.html#facexy>
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- face(turtles = t1, agents2 = cbind(x = 0, y = 0)) t1 <- fd(turtles = t1, dist = 0.5) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- face(turtles = t1, agents2 = cbind(x = 0, y = 0)) t1 <- fd(turtles = t1, dist = 0.5) points(t1, col = of(agents = t1, var = "color"), pch = 16)
Move the turtles forward with their headings as directions.
fd(turtles, dist, world, torus = FALSE, out = TRUE) ## S4 method for signature 'agentMatrix,numeric' fd(turtles, dist, world, torus = FALSE, out = TRUE)fd(turtles, dist, world, torus = FALSE, out = TRUE) ## S4 method for signature 'agentMatrix,numeric' fd(turtles, dist, world, torus = FALSE, out = TRUE)
turtles |
|
dist |
Numeric. Vector of distances to move. Must
be of length 1 or of length |
world |
|
torus |
Logical to determine if the |
out |
Logical. Determine if a |
If torus = FALSE and out = TRUE, world
does not need to be provided.
If a distance to move leads a `turtle` outside of the `world`'s extent
and `torus = TRUE`, the `turtle` is
relocated on the other side of the `world`, inside its extent; if
`torus = FALSE` and `out = TRUE`, the `turtle` moves past the
`world`'s extent; if `torus = FALSE` and `out = FALSE`, the
`turtle` does not move at all. In the event that a `turtle` does not move,
its previous coordinates are still updated with its position before
running `fd()` (i.e., its current position).
If a given `dist` value is negative, then the `turtle` moves
backward.
AgentMatrix representing the turtles with updated
coordinates and updated data for their previous coordinates prevX
and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#forward
<https://docs.netlogo.org/dictionary.html#jump>
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createOTurtles(n = 10, world = w1) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 1) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createOTurtles(n = 10, world = w1) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- fd(turtles = t1, dist = 1) points(t1, col = of(agents = t1, var = "color"), pch = 16)
turtles
Create new turtles from parent turtles.
hatch(turtles, who, n, breed) ## S4 method for signature 'agentMatrix,numeric,numeric' hatch(turtles, who, n, breed)hatch(turtles, who, n, breed) ## S4 method for signature 'agentMatrix,numeric,numeric' hatch(turtles, who, n, breed)
turtles |
|
who |
Integer. Vector of the |
n |
Integer. Vector of length 1 or of length |
breed |
Character. One |
The parent turtle must be contained in the turtles.
The created `turtles` inherit of all the data from the parent `turtle`,
except for the `breed` if specified otherwise, and for the `who` numbers.
The `who`" numbers of the `turtles` created take on following the highest
`who` number among the `turtles`.
All new hatched `turtles` are placed at the end of the `agentMatrix` object.
AgentMatrix representing the turtles with the new
hatched ones.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#hatch
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) NLcount(t1) t1 <- hatch(turtles = t1, who = 0, n = 2) NLcount(t1)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) NLcount(t1) t1 <- hatch(turtles = t1, who = 0, n = 2) NLcount(t1)
Move the turtles back home.
home(world, turtles, home) ## S4 method for signature 'worldNLR,agentMatrix,character' home(world, turtles, home)home(world, turtles, home) ## S4 method for signature 'worldNLR,agentMatrix,character' home(world, turtles, home)
world |
|
turtles |
|
home |
Character. Can take one of the following options to define where
to relocate the `home = "home0"` will place the `turtles` at the location
`x = 0, y = 0`.
`home = "center"` will place the `turtles` at the center of
the `world`.
`home = "pCorner"` will place the `turtles` at the center of
the `patch` located in the left bottom corner of the `world`.
`home = "corner"` will place the `turtles` at the left bottom
corner of the `world`.
|
AgentMatrix representing the turtles with updated
coordinates and updated data for their previous coordinates prevX
and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#home
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = "black", pch = 16) t1 <- home(world = w1, turtles = t1, home = "pCorner") points(t1, col = "red", pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = "black", pch = 16) t1 <- home(world = w1, turtles = t1, home = "pCorner") points(t1, col = "red", pch = 16)
Agents in coneReport the agents within the "cone of vision" in front of each one of the
turtles.
inCone(turtles, radius, angle, agents, world, torus = FALSE) ## S4 method for signature 'agentMatrix,numeric,numeric,matrix' inCone(turtles, radius, angle, agents, world, torus = FALSE)inCone(turtles, radius, angle, agents, world, torus = FALSE) ## S4 method for signature 'agentMatrix,numeric,numeric,matrix' inCone(turtles, radius, angle, agents, world, torus = FALSE)
turtles |
|
radius |
Numeric. Vector of distances from |
angle |
Numeric. Vector of angles to define the size of the cone of vision
for the |
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
torus |
Logical to determine if the |
agents are reported if there are within radius
distance of the turtle and their direction from the turtle is within
[-angle, + angle] of the turtle's heading.
Distances to `patches` are calculated to their center.
If `torus = FALSE`, `world` does not need to be provided.
If `torus = TRUE`, the `radius` distances are calculated
around the sides of the `world` to select `agents`.
Matrix (ncol = 3) with the first column pxcor
and the second column pycor representing the coordinates of the
patches among agents2 within the cone of vision of each of the
turtles
which are represented by the id column, if
agents are patches, or
Matrix (`ncol` = 2) with the first column `who`
representing the `who` numbers of the
`turtles` among `agents2` within the cone of vision of each of the
`turtles`
which are represented by the `id` column, if
`agents` are `turtles`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#in-cone
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) if (requireNamespace("sf", quietly = TRUE)) { p1 <- inCone(turtles = t1, radius = 2, agents = patches(w1), angle = 90) t2 <- inCone(turtles = turtle(t1, who = 0), radius = 2, angle = 90, agents = t1) }w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) if (requireNamespace("sf", quietly = TRUE)) { p1 <- inCone(turtles = t1, radius = 2, agents = patches(w1), angle = 90) t2 <- inCone(turtles = turtle(t1, who = 0), radius = 2, angle = 90, agents = t1) }
agentMatrix ClassTo create a new agentMatrix object.
## S4 method for signature 'agentMatrix' initialize(.Object = "agentMatrix", coords, ..., levelsAM)## S4 method for signature 'agentMatrix' initialize(.Object = "agentMatrix", coords, ..., levelsAM)
.Object |
An object: see the “Initialize Methods” section. |
coords |
2 column matrix of coordinates |
... |
arguments to specify properties of the new object, to
be passed to |
levelsAM |
A list with named character vectors. Each name should
match with elements in |
An agentMatrix object.
Agents in radiusReport the patches or turtles among agents2 within given distances of
each of the agents. Currently, this function multiplies radius by
1.0000001 so that the response of inRadius is inclusive.
inRadius(agents, radius, agents2, world, torus = FALSE) ## S4 method for signature 'matrix,numeric,matrix' inRadius(agents, radius, agents2, world, torus = FALSE)inRadius(agents, radius, agents2, world, torus = FALSE) ## S4 method for signature 'matrix,numeric,matrix' inRadius(agents, radius, agents2, world, torus = FALSE)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
radius |
Numeric. Vector of distances from |
agents2 |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
torus |
Logical to determine if the |
Distances from/to patches are calculated from/to their center.
If `torus = FALSE`, `world` does not need to be provided.
If `torus = TRUE`, the `radius` distances are calculated
around the sides of the `world` to select `agents2`.
Matrix (ncol = 3) with the first column pxcor
and the second column pycor representing the coordinates of the
patches among agents2 within radius distances for each agents
which are represented by the id column, if
agents2 are patches, or
Matrix (`ncol` = 2) with the first column `who`
representing the `who` numbers of the
`turtles` among `agents2` within `radius` distances for each `agents`
which are represented by the `id` column, if
`agents2` are `turtles`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#in-radius
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) if (requireNamespace("sf", quietly = TRUE)) { p1 <- inRadius(agents = patch(w1, 0, 0), radius = 2, agents2 = patches(w1)) t2 <- inRadius(agents = patch(w1, 0, 0), radius = 2, agents2 = t1) p2 <- inRadius(agents = t1, radius = 2, agents2 = patches(w1)) t3 <- inRadius(agents = turtle(t1, who = 0), radius = 2, agents2 = t1) }w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) if (requireNamespace("sf", quietly = TRUE)) { p1 <- inRadius(agents = patch(w1, 0, 0), radius = 2, agents2 = patches(w1)) t2 <- inRadius(agents = patch(w1, 0, 0), radius = 2, agents2 = t1) p2 <- inRadius(agents = t1, radius = 2, agents2 = patches(w1)) t3 <- inRadius(agents = turtle(t1, who = 0), radius = 2, agents2 = t1) }
turtles
Display all variables values for the selected individuals among the turtles.
inspect(turtles, who) ## S4 method for signature 'agentMatrix,numeric' inspect(turtles, who)inspect(turtles, who) ## S4 method for signature 'agentMatrix,numeric' inspect(turtles, who)
turtles |
|
who |
Integer. Vector of the |
Dataframe (nrow = length(who)) of the variables of the selected
individuals among the turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#inspect
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createOTurtles(world = w1, n = 10) inspect(turtles = t1, who = c(2, 3))w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createOTurtles(world = w1, n = 10) inspect(turtles = t1, who = c(2, 3))
Report TRUE if the agents is of the class tested,
report FALSE otherwise.
isNLclass(agents, class) ## S4 method for signature 'matrix,character' isNLclass(agents, class)isNLclass(agents, class) ## S4 method for signature 'matrix,character' isNLclass(agents, class)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
class |
Character. Can take one of the following options to define
the |
Careful! The class tested does not correspond to actual R classes.
`agents` is `"patch"` if it is a matrix (`ncol` = 2) with the
first column `pxcor` and the second column `pycor` with only
one row. `agents` is `"patcheset"` if the matrix has more than
one row.
`agents` is `"turtle"` if it is an `agentMatrix`
containing only one `turtle`.
`agents` is `"turtleset"` if the
`agentMatrix` contains more than one `turtle`.
`agents` is `"agent"` if it is either `"patch"` or
`"turtle"`. `agents` is `"agentset"` if it is either
`"patcheset"` or `"turtleset"`.
Logical. TRUE if agents is of the class tested.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#is-of-type
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) isNLclass(agents = patches(w1), class = "patch") isNLclass(agents = patches(w1), class = "patcheset") isNLclass(agents = t1, class = "agentset") isNLclass(agents = t1, class = "turtleset")w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) isNLclass(agents = patches(w1), class = "patch") isNLclass(agents = patches(w1), class = "patcheset") isNLclass(agents = t1, class = "agentset") isNLclass(agents = t1, class = "turtleset")
turtles on a circleRelocate the turtles on a circle centered on the world.
layoutCircle(world, turtles, radius, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric' layoutCircle(world, turtles, radius, torus = FALSE)layoutCircle(world, turtles, radius, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric' layoutCircle(world, turtles, radius, torus = FALSE)
world |
|
turtles |
|
radius |
Numeric. Radius of the circle. |
torus |
Logical to determine if the |
The turtles point outwards.
If the
`radius` value leads `turtles` outside of the `world`'s extent
and `torus = TRUE`, they are
relocated on the other sides of the `world`, inside its extent; if
`torus = FALSE`, the `turtles` are located past
the `world`'s extent.
AgentMatrix representing the turtles with updated
coordinates and updated data for their heading values and
previous coordinates prevX
and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#layout-circle
w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = "black", pch = 16) t1 <- layoutCircle(world = w1, turtles = t1, radius = 3) points(t1, col = "red", pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = "black", pch = 16) t1 <- layoutCircle(world = w1, turtles = t1, radius = 3) points(t1, col = "red", pch = 16)
Rotate the turtles's headings to the left of angle degrees.
left(turtles, angle) ## S4 method for signature 'agentMatrix,numeric' left(turtles, angle)left(turtles, angle) ## S4 method for signature 'agentMatrix,numeric' left(turtles, angle)
turtles |
|
angle |
Numeric. Vector of angles in degrees by which to rotate the |
If a given angle value is negative, then the turtle rotates to the right.
AgentMatrix representing the turtles with updated heading values.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#left
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) of(agents = t1, var = "heading") t1 <- left(turtles = t1, angle = 180) of(agents = t1, var = "heading")w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) of(agents = t1, var = "heading") t1 <- left(turtles = t1, angle = 180) of(agents = t1, var = "heading")
N agents with maximumReport the n patches or turtles among agents which have their variable
among the maximum values.
maxNof(agents, n, world, var) ## S4 method for signature 'matrix,numeric,worldMatrix,missing' maxNof(agents, n, world) ## S4 method for signature 'matrix,numeric,worldArray,character' maxNof(agents, n, world, var) ## S4 method for signature 'agentMatrix,numeric,missing,character' maxNof(agents, n, var)maxNof(agents, n, world, var) ## S4 method for signature 'matrix,numeric,worldMatrix,missing' maxNof(agents, n, world) ## S4 method for signature 'matrix,numeric,worldArray,character' maxNof(agents, n, world, var) ## S4 method for signature 'agentMatrix,numeric,missing,character' maxNof(agents, n, var)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
n |
Integer. |
world |
|
var |
Character. The name of the selected |
world must not be provided if agents are turtles.
If there is a tie that would make the number of returned `patches` or `turtles` larger
than `n`, it is broken randomly.
Matrix (ncol = 2, nrow = n) with the first column pxcor and
the second column pycor representing the coordinates of the n
patches among the agents which have their variable values among
the maximum values among the
agents, or
`AgentMatrix` of length `n` representing the `turtles` among the
`agents` which
have their `var` values among the maximum values among the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#max-n-of
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:10, size = 25, replace = TRUE) ) plot(w1) p1 <- maxNof(agents = patches(w1), n = 6, world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:5, size = 10, replace = TRUE) ) t2 <- maxNof(agents = t1, n = 5, var = "heading")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:10, size = 25, replace = TRUE) ) plot(w1) p1 <- maxNof(agents = patches(w1), n = 6, world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:5, size = 10, replace = TRUE) ) t2 <- maxNof(agents = t1, n = 5, var = "heading")
agent with maximumReport one patch or one turtle among agents which has its variable equals
to the maximum value.
maxOneOf(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' maxOneOf(agents, world) ## S4 method for signature 'matrix,worldArray,character' maxOneOf(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' maxOneOf(agents, var)maxOneOf(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' maxOneOf(agents, world) ## S4 method for signature 'matrix,worldArray,character' maxOneOf(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' maxOneOf(agents, var)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
var |
Character. The name of the selected |
world must not be provided if agents are turtles.
If there are several `patches` or `turtles` among `agents` with their
variable equal to the maximum
value, one is chosen randomly. To access to all `patches` or `turtles` among
`agents` which have their variable equal
to the maximum value, use `withMax()`.
Matrix (ncol = 2, nrow = 1) with the first column pxcor and
the second column pycor representing the coordinates of the patch
(or of one of the patches) among the agents which has its variable
equals to the maximum value
among the agents, or
`AgentMatrix` of length 1 representing the `turtle` (or one of
the `turtles`) among the `agents` which has its variable `var`
equals to the maximum value
among the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#max-one-of
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- maxOneOf(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- maxOneOf(agents = t1, var = "heading")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- maxOneOf(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- maxOneOf(agents = t1, var = "heading")
pxcor
Report the patches maximum pxcor in the world.
maxPxcor(world) ## S4 method for signature 'worldNLR' maxPxcor(world)maxPxcor(world) ## S4 method for signature 'worldNLR' maxPxcor(world)
world |
|
Integer.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#max-pcor
w1 <- createWorld() maxPxcor(w1)w1 <- createWorld() maxPxcor(w1)
pycor
Report the patches maximum pycor in the world.
maxPycor(world) ## S4 method for signature 'worldNLR' maxPycor(world)maxPycor(world) ## S4 method for signature 'worldNLR' maxPycor(world)
world |
|
Integer.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#max-pcor
w1 <- createWorld() maxPycor(w1)w1 <- createWorld() maxPycor(w1)
N agents with minimumReport the n patches or turtles among agents which have their variable
among the minimum values.
minNof(agents, n, world, var) ## S4 method for signature 'matrix,numeric,worldMatrix,missing' minNof(agents, n, world) ## S4 method for signature 'matrix,numeric,worldArray,character' minNof(agents, n, world, var) ## S4 method for signature 'agentMatrix,numeric,missing,character' minNof(agents, n, var)minNof(agents, n, world, var) ## S4 method for signature 'matrix,numeric,worldMatrix,missing' minNof(agents, n, world) ## S4 method for signature 'matrix,numeric,worldArray,character' minNof(agents, n, world, var) ## S4 method for signature 'agentMatrix,numeric,missing,character' minNof(agents, n, var)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
n |
Integer. |
world |
|
var |
Character. The name of the selected |
world must not be provided if agents are turtles.
If there is a tie that would make the number of returned `patches` or `turtles` larger
than `n`, it is broken randomly.
Matrix (ncol = 2, nrow = n) with the first column pxcor and
the second column pycor representing the coordinates of the n
patches among the agents which have their variable values among
the minimum values among the
agents, or
`AgentMatrix` of length `n` representing the `turtles` among the
`agents` which
have their `var` values among the minimum values among the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#min-n-of
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:10, size = 25, replace = TRUE) ) plot(w1) p1 <- minNof(agents = patches(w1), n = 6, world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:5, size = 10, replace = TRUE) ) t2 <- minNof(agents = t1, n = 5, var = "heading")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:10, size = 25, replace = TRUE) ) plot(w1) p1 <- minNof(agents = patches(w1), n = 6, world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:5, size = 10, replace = TRUE) ) t2 <- minNof(agents = t1, n = 5, var = "heading")
agent with minimumReport one patch or one turtle among agents which has its variable equals
to the minimum value.
minOneOf(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' minOneOf(agents, world) ## S4 method for signature 'matrix,worldArray,character' minOneOf(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' minOneOf(agents, var)minOneOf(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' minOneOf(agents, world) ## S4 method for signature 'matrix,worldArray,character' minOneOf(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' minOneOf(agents, var)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
var |
Character. The name of the selected |
world must not be provided if agents are turtles.
If there are several `patches` or `turtles` among `agents` with their
variable equal to the minimum
value, one is chosen randomly. To access to all `patches` or `turtles` among
`agents` which have their variable equal
to the minimum value, use `withMin()`.
Matrix (ncol = 2, nrow = 1) with the first column pxcor and
the second column pycor representing the coordinates of the patch
(or of one of the patches) among the agents which has its variable
equals to the minimum value
among the agents, or
`AgentMatrix` of length 1 representing the `turtle` (or one of
the `turtles`) among the `agents` which has its variable `var`
equals to the minimum value
among the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#min-one-of
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- minOneOf(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- minOneOf(agents = t1, var = "heading")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- minOneOf(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- minOneOf(agents = t1, var = "heading")
pxcor
Report the patches minimum pxcor in the world.
minPxcor(world) ## S4 method for signature 'worldNLR' minPxcor(world)minPxcor(world) ## S4 method for signature 'worldNLR' minPxcor(world)
world |
|
Integer.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#min-pcor
w1 <- createWorld() minPxcor(w1)w1 <- createWorld() minPxcor(w1)
pycor
Report the patches minimum pycor in the world.
minPycor(world) ## S4 method for signature 'worldNLR' minPycor(world)minPycor(world) ## S4 method for signature 'worldNLR' minPycor(world)
world |
|
Integer.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#min-pcor
w1 <- createWorld() minPycor(w1)w1 <- createWorld() minPycor(w1)
Move the turtles to the agents' locations.
moveTo(turtles, agents) ## S4 method for signature 'agentMatrix,matrix' moveTo(turtles, agents)moveTo(turtles, agents) ## S4 method for signature 'agentMatrix,matrix' moveTo(turtles, agents)
turtles |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
The number of agents must be equal to 1 or to
length turtles.
The `turtle`'s `headings` are not affected with this function.
If a `turtle` is moving to a `patch` location, it will be located at
the `patch` center.
AgentMatrix representing the turtles with updated coordinates
and updated data for their previous coordinates prevX and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#move-to
w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 5, coords = randomXYcor(w1, n = 5)) plot(w1) points(t1, col = "black", pch = 16) t1 <- moveTo(turtles = t1, agents = turtle(t1, who = 0)) points(t1, col = "red", pch = 16) t1 <- moveTo(turtles = t1, agents = patch(w1, 9, 9)) points(t1, col = "blue", pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 5, coords = randomXYcor(w1, n = 5)) plot(w1) points(t1, col = "black", pch = 16) t1 <- moveTo(turtles = t1, agents = turtle(t1, who = 0)) points(t1, col = "red", pch = 16) t1 <- moveTo(turtles = t1, agents = patch(w1, 9, 9)) points(t1, col = "blue", pch = 16)
patches
Report the coordinates of the neighbors patches around the agents.
neighbors(world, agents, nNeighbors, torus = FALSE) ## S4 method for signature 'worldNLR,matrix,numeric' neighbors(world, agents, nNeighbors, torus = FALSE)neighbors(world, agents, nNeighbors, torus = FALSE) ## S4 method for signature 'worldNLR,matrix,numeric' neighbors(world, agents, nNeighbors, torus = FALSE)
world |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
nNeighbors |
Integer: 4 or 8. Represents the number of neighbor |
torus |
Logical to determine if the |
The patch around which the neighbors are identified, or the patch where
the turtle is located on around which the neighbors are identified, is not
returned.
If `torus = FALSE`, `agents` located on the edges of the
`world` have less than `nNeighbors` patches around them.
If `torus = TRUE`, all `agents` located on the edges of the
`world` have `nNeighbors` patches around them,
which some may be on the other sides of the `world`.
Matrix (ncol = 3) with the first column pxcor
and the second column pycor representing the coordinates of the neighbors
patches around the agents and the third column id representing
the id of the agents in the order provided.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#neighbors
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) if (requireNamespace("SpaDES.tools", quietly = TRUE)) { neighbors(world = w1, agents = patch(w1, c(0, 9), c(0, 7)), nNeighbors = 8) t1 <- createTurtles(n = 3, coords = randomXYcor(w1, n = 3)) neighbors(world = w1, agents = t1, nNeighbors = 4) }w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) if (requireNamespace("SpaDES.tools", quietly = TRUE)) { neighbors(world = w1, agents = patch(w1, c(0, 9), c(0, 7)), nNeighbors = 8) t1 <- createTurtles(n = 3, coords = randomXYcor(w1, n = 3)) neighbors(world = w1, agents = t1, nNeighbors = 4) }
Report TRUE if all agents have their variable equal to a given value,
report FALSE otherwise.
NLall(agents, world, var, val) ## S4 method for signature 'matrix,worldMatrix,missing' NLall(agents, world, val) ## S4 method for signature 'matrix,worldArray,character' NLall(agents, world, var, val) ## S4 method for signature 'agentMatrix,missing,character' NLall(agents, var, val)NLall(agents, world, var, val) ## S4 method for signature 'matrix,worldMatrix,missing' NLall(agents, world, val) ## S4 method for signature 'matrix,worldArray,character' NLall(agents, world, var, val) ## S4 method for signature 'agentMatrix,missing,character' NLall(agents, var, val)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
var |
Character. The name of the selected |
val |
Numeric or character. Vector of any length. |
world must not be provided if agents are turtles.
Logical. TRUE if all the agents have their variable equal to
val, FALSE otherwise.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#all
# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25)) NLall(agents = patches(w1), world = w1, val = 5) w2 <- w1 w2 <- NLset(world = w1, agents = patches(w1), val = 5) NLall(agents = patches(w2), world = w2, val = 5) # Turtles t1 <- createTurtles(n = 5, coords = cbind(xcor = 1, ycor = 1), heading = c(1, 2, 2, 1, 2)) NLall(agents = t1, var = "xcor", val = 1) NLall(agents = t1, var = "heading", val = 2)# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25)) NLall(agents = patches(w1), world = w1, val = 5) w2 <- w1 w2 <- NLset(world = w1, agents = patches(w1), val = 5) NLall(agents = patches(w2), world = w2, val = 5) # Turtles t1 <- createTurtles(n = 5, coords = cbind(xcor = 1, ycor = 1), heading = c(1, 2, 2, 1, 2)) NLall(agents = t1, var = "xcor", val = 1) NLall(agents = t1, var = "heading", val = 2)
Report TRUE if agents is non empty, report FALSE otherwise.
NLany(agents) ## S4 method for signature 'matrix' NLany(agents)NLany(agents) ## S4 method for signature 'matrix' NLany(agents)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
Logical. TRUE if there is at least one patch or one turtle in the
agents, FALSE otherwise.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#any
# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) p1 <- noPatches() p2 <- patch(w1, 0, 0) NLany(p1) NLany(p2) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) t2 <- noTurtles() NLany(t1) NLany(t2)# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) p1 <- noPatches() p2 <- patch(w1, 0, 0) NLany(p1) NLany(p2) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) t2 <- noTurtles() NLany(t1) NLany(t2)
Report the number of patches or turtles inside agents.
NLcount(agents) ## S4 method for signature 'matrix' NLcount(agents)NLcount(agents) ## S4 method for signature 'matrix' NLcount(agents)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
Integer.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#count
# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) p1 <- patches(w1) NLcount(p1) # 25 patches # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) NLcount(t1) # 10 turtles# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) p1 <- patches(w1) NLcount(p1) # 25 patches # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) NLcount(t1) # 10 turtles
Report the distances between agents and agents2.
NLdist(agents, agents2, world, torus = FALSE, allPairs = FALSE) ## S4 method for signature 'matrix,matrix' NLdist(agents, agents2, world, torus = FALSE, allPairs = FALSE)NLdist(agents, agents2, world, torus = FALSE, allPairs = FALSE) ## S4 method for signature 'matrix,matrix' NLdist(agents, agents2, world, torus = FALSE, allPairs = FALSE)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
agents2 |
Matrix ( `AgentMatrix` object representing the moving `agents`, or
Matrix (`ncol` = 2) with the first column `x` and the second column
`y` representing locations coordinates.
|
world |
|
torus |
Logical to determine if the |
allPairs |
Logical. Only relevant if the number of agents/locations in
|
Distances from/to a patch are measured from/to its center.
If `torus = FALSE`, `world` does not need to be provided.
If `torus = TRUE`, a distance around the sides of the `world` is
reported only if smaller than the one across the `world`.
Numeric. Vector of distances between agents and agents2 if
agents and/or agents2 contained
one agent/location, or if agents and agents2 contained the same
number of agents/locations and allPairs = FALSE, or
Matrix of distances between `agents` (rows) and
`agents2` (columns)
if `agents` and `agents2` are of different lengths,
or of same length
and `allPairs = TRUE`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#distance
<https://docs.netlogo.org/dictionary.html#distancexy>
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) NLdist(agents = patch(w1, 0, 0), agents2 = patch(w1, c(1, 9), c(1, 9))) NLdist( agents = patch(w1, 0, 0), agents2 = patch(w1, c(1, 9), c(1, 9)), world = w1, torus = TRUE ) t1 <- createTurtles(n = 2, coords = randomXYcor(w1, n = 2)) NLdist(agents = t1, agents2 = patch(w1, c(1, 9), c(1, 9)), allPairs = TRUE)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) NLdist(agents = patch(w1, 0, 0), agents2 = patch(w1, c(1, 9), c(1, 9))) NLdist( agents = patch(w1, 0, 0), agents2 = patch(w1, c(1, 9), c(1, 9)), world = w1, torus = TRUE ) t1 <- createTurtles(n = 2, coords = randomXYcor(w1, n = 2)) NLdist(agents = t1, agents2 = patch(w1, c(1, 9), c(1, 9)), allPairs = TRUE)
agents variableAssign values to the agents for the selected variables.
NLset(world, turtles, agents, var, val) ## S4 method for signature 'missing,agentMatrix,agentMatrix,character' NLset(turtles, agents, var, val) ## S4 method for signature 'worldMatrix,missing,matrix,missing' NLset(world, agents, val) ## S4 method for signature 'worldArray,missing,matrix,character' NLset(world, agents, var, val)NLset(world, turtles, agents, var, val) ## S4 method for signature 'missing,agentMatrix,agentMatrix,character' NLset(turtles, agents, var, val) ## S4 method for signature 'worldMatrix,missing,matrix,missing' NLset(world, agents, val) ## S4 method for signature 'worldArray,missing,matrix,character' NLset(world, agents, var, val)
world |
|
turtles |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
var |
Character. Vector of the names of the selected |
val |
Numeric or character. Vector of length 1 or length Matrix or `Dataframe` (`ncol` = `length(var)`, `nrow` = `NLcount(agents)`).
Columns must be in the same order as `var`.
|
If agents are patches, world must be provided and turtles
must not be provided. If agents are turtles, turtles must be
provided and world must not be provided.
WorldMatrix or worldArray object with the values val assigned to the patches
variables var
for the agents, or
`AgentMatrix` representing the `turtles` with
the values `val` assigned to the variables `var` for the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#set
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) w1 <- NLset(world = w1, agents = patches(w1), val = 1) # Set the patch[0,4] to 0 w1 <- NLset(world = w1, agents = patch(w1, 0, 4), val = 0) of(world = w1, agents = patches(w1)) t1 <- createTurtles(n = 3, world = w1, heading = 0) # Set the heading of turtle 0 to 180 t2 <- NLset(turtles = t1, agents = turtle(t1, who = 0), var = "heading", val = 180) of(agents = t2, var = "heading") # c(180, 0, 0)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) w1 <- NLset(world = w1, agents = patches(w1), val = 1) # Set the patch[0,4] to 0 w1 <- NLset(world = w1, agents = patch(w1, 0, 4), val = 0) of(world = w1, agents = patches(w1)) t1 <- createTurtles(n = 3, world = w1, heading = 0) # Set the heading of turtle 0 to 180 t2 <- NLset(turtles = t1, agents = turtle(t1, who = 0), var = "heading", val = 180) of(agents = t2, var = "heading") # c(180, 0, 0)
Agents withReport the patches or the turtles among agents which have their variable
equals to specific values.
NLwith(agents, world, var, val) ## S4 method for signature 'matrix,worldMatrix,missing' NLwith(agents, world, val) ## S4 method for signature 'matrix,worldArray,character' NLwith(agents, world, var, val) ## S4 method for signature 'agentMatrix,missing,character' NLwith(agents, var, val)NLwith(agents, world, var, val) ## S4 method for signature 'matrix,worldMatrix,missing' NLwith(agents, world, val) ## S4 method for signature 'matrix,worldArray,character' NLwith(agents, world, var, val) ## S4 method for signature 'agentMatrix,missing,character' NLwith(agents, var, val)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
var |
Character. The name of the selected |
val |
Numeric or character. Vector of any length. |
world must not be provided if agents are turtles.
This is equivalent in R to subsetting.
`val` can include `NA`.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches among the agents
which have their variable
equals to any val, or
`AgentMatrix` representing the `turtles` among the `agents`
which have their variable
`var` equals to any `val`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#with
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p2 <- NLwith(agents = patches(w1), world = w1, val = 2) # Turtles t1 <- createTurtles( n = 5, coords = randomXYcor(w1, n = 5), breed = c("sheep", "sheep", "wolf", "sheep", "sheperd") ) t2 <- NLwith(agents = t1, var = "breed", val = "sheep") t3 <- NLwith(agents = t1, var = "breed", val = c("sheep", "wolf"))# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p2 <- NLwith(agents = patches(w1), world = w1, val = 2) # Turtles t1 <- createTurtles( n = 5, coords = randomXYcor(w1, n = 5), breed = c("sheep", "sheep", "wolf", "sheep", "sheperd") ) t2 <- NLwith(agents = t1, var = "breed", val = "sheep") t3 <- NLwith(agents = t1, var = "breed", val = c("sheep", "wolf"))
WorldMatrix indices from vector indicesConvert vector indices or Raster* cell numbers into worldMatrix indices.
NLworldIndex(world, cellNum) ## S4 method for signature 'worldMatrix,numeric' NLworldIndex(world, cellNum)NLworldIndex(world, cellNum) ## S4 method for signature 'worldMatrix,numeric' NLworldIndex(world, cellNum)
world |
|
cellNum |
Integer. Vector of cells number. |
Numeric. Vector of worldMatrix indices.
Eliot McIntire
if (requireNamespace("raster", quietly = TRUE)) { w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = 1:100) w1Ras <- world2raster(w1) index <- 24 pxpy <- PxcorPycorFromCell(world = w1, cellNum = index) rasValue <- as.integer(unname(w1Ras[index])) # Not correct index: identical(w1[index], rasValue) # Correct index identical(w1[NLworldIndex(w1, index)], rasValue) }if (requireNamespace("raster", quietly = TRUE)) { w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = 1:100) w1Ras <- world2raster(w1) index <- 24 pxpy <- PxcorPycorFromCell(world = w1, cellNum = index) rasValue <- as.integer(unname(w1Ras[index])) # Not correct index: identical(w1[index], rasValue) # Correct index identical(w1[NLworldIndex(w1, index)], rasValue) }
agents
Report n patches or turtles randomly selected among agents.
nOf(agents, n) ## S4 method for signature 'matrix,numeric' nOf(agents, n)nOf(agents, n) ## S4 method for signature 'matrix,numeric' nOf(agents, n)
agents |
Matrix ( Matrix (`ncol` = 3) with the first column "`pxcor` and the second
column `pycor` representing the `patches` coordinates and the
third column `id`, or
`AgentMatrix` object representing the moving `agents`, or
Matrix (`ncol` = 2) with the first column `whoTurtles` and the
second column `id`.
|
n |
Integer. Number of |
n must be less or equal the number of patches
or turtles in agents.
If `agents` is a matrix with `ncol` = 3, the selection of `n`
random `patches` is done per individual "id". The order of the `patches`
coordinates returned follow the order of "id".
If `agents` is a matrix (`ncol` = 2) with columns `whoTurtles` and
`id`, the selection of `n` random `turtles` (defined by their `whoTurtles`)
is done per individual "id". The order of the `who` numbers returned
follow the order of "id".
Matrix (ncol = 2, nrow = n) with the first column pxcor
and the second column pycor representing the coordinates of the
selected patches from agents, or
Matrix (`ncol` = 2) with the first column `pxcor`
and the second column `pycor` representing the coordinates of the
selected `patches` from `agents`, `n` per individual "id", or
`AgentMatrix` (`nrow` = `n`) representing the `turtles`
selected from `agents`,
Integer. Vector of `who` numbers for the selected `turtles` from
`agents`, `n` per individual "id".
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#n-of
# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) pSelect <- nOf(agents = patches(w1), n = 5) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) tSelect <- nOf(agents = t1, n = 2)# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) pSelect <- nOf(agents = patches(w1), n = 5) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) tSelect <- nOf(agents = t1, n = 2)
patches
Report an empty patch agentset.
noPatches()noPatches()
Matrix (ncol = 2, nrow = 0) with the first column pxcor and the
second column pycor.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#no-patches
p1 <- noPatches() NLcount(p1)p1 <- noPatches() NLcount(p1)
turtles
Report an empty turtle agentset.
noTurtles()noTurtles()
AgentMatrix with the turtle variables defined as when using
createTurtles() but with 0 turtle.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#no-turtles
t1 <- noTurtles() NLcount(t1)t1 <- noTurtles() NLcount(t1)
quickPlot
These are required to create plotting methods to work with quickPlot.
## S3 method for class 'worldArray' numLayers(x) ## S3 method for class 'worldMatrix' numLayers(x) ## S4 method for signature 'worldArray' layerNames(object) ## S4 method for signature 'worldArray,.quickPlotGrob' .identifyGrobToPlot(toPlot, sGrob, takeFromPlotObj)## S3 method for class 'worldArray' numLayers(x) ## S3 method for class 'worldMatrix' numLayers(x) ## S4 method for signature 'worldArray' layerNames(object) ## S4 method for signature 'worldArray,.quickPlotGrob' .identifyGrobToPlot(toPlot, sGrob, takeFromPlotObj)
x |
An object or list of objects. |
object |
An object from which to extract the layer names. |
toPlot |
The object to plot. Should be a single layer if from a multi-layer
object such as a |
sGrob |
|
takeFromPlotObj |
Logical. Should the data come from the argument passed
into |
numLayers returns an integer representing the number of
layers in a worldArray or worldMatrix (which is always 1L)
layerNames returns an character vector representing the names
of the layers in a worldArray
agents variableReport the agents values for the requested variable.
of(world, agents, var) ## S4 method for signature 'missing,agentMatrix,character' of(agents, var) ## S4 method for signature 'worldMatrix,matrix,missing' of(world, agents) ## S4 method for signature 'worldArray,matrix,character' of(world, agents, var)of(world, agents, var) ## S4 method for signature 'missing,agentMatrix,character' of(agents, var) ## S4 method for signature 'worldMatrix,matrix,missing' of(world, agents) ## S4 method for signature 'worldArray,matrix,character' of(world, agents, var)
world |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
var |
Character. Vector of the names of the selected |
world must be provided only if agents are patches.
Vector of values for the agents if one variable is
requested. The class depends
of the variable class. The order of the vector follows the order
of the agents, or
Matrix or `Dataframe` (`ncol` = `length(var)`, `nrow` = `NLcount(agents)`)
if more than one variable is requested. The row order
follows the order of the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#of
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25 ) of(world = w1, agents = patch(w1, c(0, 0), c(4, 0))) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) of(agents = t1, var = "heading")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25 ) of(world = w1, agents = patch(w1, c(0, 0), c(4, 0))) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) of(agents = t1, var = "heading")
agent
Report one patch or turtle randomly selected among agents.
oneOf(agents) ## S4 method for signature 'matrix' oneOf(agents)oneOf(agents) ## S4 method for signature 'matrix' oneOf(agents)
agents |
Matrix ( Matrix (`ncol` = 3) with the first column "`pxcor` and the second
column `pycor` representing the `patches` coordinates and the
third column `id`, or
`AgentMatrix` object representing the moving `agents`, or
Matrix (`ncol` = 2) with the first column `whoTurtles` and the
second column `id`.
|
If agents is a matrix with ncol = 3, the selection of one
random patch is done per individual id. The order of the patches
coordinates returned follow the order of id.
If agents is a matrix (ncol = 2) with columns whoTurtles and
id, the selection of one random turtle (defined by their whoTurtles)
is done per individual id. The order of the who numbers returned
follow the order of id.
Matrix (ncol = 2, nrow = 1) with the first column pxcor
and the second column pycor representing the coordinates of the
selected patch from agents, or
Matrix (`ncol` = 2) with the first column `pxcor`
and the second column `pycor` representing the coordinates of the
selected `patches` from `agents`, one per individual `id`, or
`AgentMatrix` object representing the `turtle`
selected from `agents`, or
Integer. Vector of `who` numbers for the selected `turtles` from
`agents`, one per individual `id`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#one-of
# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) pSelect <- oneOf(agents = patches(w1)) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) tSelect <- oneOf(agents = t1)# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) pSelect <- oneOf(agents = patches(w1)) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) tSelect <- oneOf(agents = t1)
Report an agentset of the agents except specific ones.
other(agents, except) ## S4 method for signature 'matrix,matrix' other(agents, except)other(agents, except) ## S4 method for signature 'matrix,matrix' other(agents, except)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
except |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
Both agents and except must be of the same class (e.g., both
patches or both turtles).
Warning: this function removes `turtles` only based on similar `who` numbers
and `breed` names.
Matrix (ncol = 2) with the first column pxcor and the second
column pycor representing the patches in agents without
the ones in except, or
`AgentMatrix` representing the `turtles` in `agents` without
the ones in `except`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#other
# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) p1 <- other(agents = patches(w1), except = patch(w1, 0, 0)) NLcount(p1) # 99 patches # Turtles t1 <- createTurtles(n = 10, coords = cbind(xcor = 0, ycor = 0)) t2 <- other(agents = t1, except = turtle(t1, who = 0)) NLcount(t2) # 9 turtles# Patches w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) p1 <- other(agents = patches(w1), except = patch(w1, 0, 0)) NLcount(p1) # 99 patches # Turtles t1 <- createTurtles(n = 10, coords = cbind(xcor = 0, ycor = 0)) t2 <- other(agents = t1, except = turtle(t1, who = 0)) NLcount(t2) # 9 turtles
Patches coordinatesReport the coordinates of the patches at the given [x, y] locations.
patch(world, x, y, duplicate = FALSE, torus = FALSE, out = FALSE) ## S4 method for signature 'worldNLR,numeric,numeric' patch(world, x, y, duplicate = FALSE, torus = FALSE, out = FALSE)patch(world, x, y, duplicate = FALSE, torus = FALSE, out = FALSE) ## S4 method for signature 'worldNLR,numeric,numeric' patch(world, x, y, duplicate = FALSE, torus = FALSE, out = FALSE)
world |
|
x |
Numeric. Vector of |
y |
Numeric. Vector of |
duplicate |
Logical. If more than one location |
torus |
Logical to determine if the |
out |
Logical. If |
If a location [x, y] is outside the world's extent and
torus = FALSE and out = FALSE, no patch coordinates are returned;
if torus = FALSE and out = TRUE, NA are returned;
if torus = TRUE, the patch coordinates from a wrapped world are
returned.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the patches coordinates at [x, y].
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) patch(world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4)) patch( world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4), duplicate = TRUE ) patch( world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4), torus = TRUE ) patch( world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4), torus = TRUE, duplicate = TRUE )w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) patch(world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4)) patch( world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4), duplicate = TRUE ) patch( world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4), torus = TRUE ) patch( world = w1, x = c(0, 9.1, 8.9, 5, 5.3), y = c(0, 0, -0.1, 12.4, 12.4), torus = TRUE, duplicate = TRUE )
Patches aheadReport the coordinates of the patches at the given
distances of the turtles in the direction of their headings.
patchAhead(world, turtles, dist, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric' patchAhead(world, turtles, dist, torus = FALSE)patchAhead(world, turtles, dist, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric' patchAhead(world, turtles, dist, torus = FALSE)
world |
|
turtles |
|
dist |
Numeric. Vector of distances from the |
torus |
Logical to determine if the |
If torus = FALSE and the patch at distance dist of a turtle
is outside the world's extent, NA
are returned for the patch coordinates. If torus = TRUE, the patch
coordinates from a wrapped world are returned.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches at the distances dist
and turtles's headings directions
of turtles. The order of the patches follows the order of the turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch-ahead
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) patchAhead(world = w1, turtles = t1, dist = 1)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) patchAhead(world = w1, turtles = t1, dist = 1)
Patches atReport the coordinates of the patches at (dx, dy) distances of the agents.
patchAt(world, agents, dx, dy, torus = FALSE) ## S4 method for signature 'worldNLR,matrix,numeric,numeric' patchAt(world, agents, dx, dy, torus = FALSE)patchAt(world, agents, dx, dy, torus = FALSE) ## S4 method for signature 'worldNLR,matrix,numeric,numeric' patchAt(world, agents, dx, dy, torus = FALSE)
world |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
dx |
Numeric. Vector of distances to the east (right) from the |
dy |
Numeric. Vector of distances to the north (up) from the |
torus |
Logical to determine if the |
If the patch at distance (dx, dy)
of an agent is outside of the world's extent and torus = FALSE,
NA are returned
for the patch coordinates;
if torus = TRUE, the patch coordinates from a wrapped world are
returned.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches at (dx, dy)
distances of the agents. The order of the patches follows the order
of the agents.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch-at
https://docs.netlogo.org/dictionary.html#at-points
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) patchCorner <- patchAt(world = w1, agents = patch(w1, 0, 0), dx = 1, dy = 1) t1 <- createTurtles(n = 1, coords = cbind(xcor = 0, ycor = 0)) patchCorner <- patchAt(world = w1, agents = t1, dx = 1, dy = 1)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) patchCorner <- patchAt(world = w1, agents = patch(w1, 0, 0), dx = 1, dy = 1) t1 <- createTurtles(n = 1, coords = cbind(xcor = 0, ycor = 0)) patchCorner <- patchAt(world = w1, agents = t1, dx = 1, dy = 1)
Patches at given distances and directionsReport the coordinates of the patches at the given
distances and directions from the agents.
patchDistDir(world, agents, dist, angle, torus = FALSE) ## S4 method for signature 'worldNLR,matrix,numeric,numeric' patchDistDir(world, agents, dist, angle, torus = FALSE)patchDistDir(world, agents, dist, angle, torus = FALSE) ## S4 method for signature 'worldNLR,matrix,numeric,numeric' patchDistDir(world, agents, dist, angle, torus = FALSE)
world |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
dist |
Numeric. Vector of distances from the |
angle |
Numeric. Absolute directions from the |
torus |
Logical to determine if the |
If torus = FALSE and the patch at distance dist and
direction angle of an agent is outside the world's extent,
NA are returned for the patch coordinates.
If torus = TRUE, the patch coordinates from a wrapped world
are returned.
If `agents` are `turtles`, their `headings` are not taken into account;
the given directions `angle` are used. To find a `patch` at certain
distance from a `turtle` using the `turtle`'s `heading`, look at `pacthAhead()`,
`patchLeft()` or `patchRight()`.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches at the distances
dist and directions angle of agents.
The order of the patches follows the order of the agents.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch-at-heading-and-distance
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) p1 <- patchDistDir(world = w1, agents = patch(w1, 0, 0), dist = 1, angle = 45) t1 <- createTurtles(n = 1, coords = cbind(xcor = 0, ycor = 0), heading = 315) p2 <- patchDistDir(world = w1, agents = t1, dist = 1, angle = 45)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) p1 <- patchDistDir(world = w1, agents = patch(w1, 0, 0), dist = 1, angle = 45) t1 <- createTurtles(n = 1, coords = cbind(xcor = 0, ycor = 0), heading = 315) p2 <- patchDistDir(world = w1, agents = t1, dist = 1, angle = 45)
patches in a world
Report the coordinates of all the patches in the world.
patches(world) ## S4 method for signature 'worldNLR' patches(world)patches(world) ## S4 method for signature 'worldNLR' patches(world)
world |
|
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the patches coordinates. The order of the patches
follows the order of the cells numbers as defined for a Raster* object.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patches
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) allPatches <- patches(world = w1) NLcount(allPatches) # 100 patchesw1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) allPatches <- patches(world = w1) NLcount(allPatches) # 100 patches
Patches hereReport the coordinates of the patches under the turtles
locations.
patchHere(world, turtles) ## S4 method for signature 'worldNLR,agentMatrix' patchHere(world, turtles)patchHere(world, turtles) ## S4 method for signature 'worldNLR,agentMatrix' patchHere(world, turtles)
world |
|
turtles |
|
If a turtle is located outside of the world's extent,
NA are returned
for the patch coordinates.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches at the turtles
location. The order of the patches follows the order of the turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch-here
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) patchHere(world = w1, turtles = t1)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) patchHere(world = w1, turtles = t1)
Patches on the leftReport the coordinates of the patches at the given distances of the turtles
and given angle left of their headings.
patchLeft(world, turtles, dist, angle, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric,numeric' patchLeft(world, turtles, dist, angle, torus = FALSE)patchLeft(world, turtles, dist, angle, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric,numeric' patchLeft(world, turtles, dist, angle, torus = FALSE)
world |
|
turtles |
|
dist |
Numeric. Vector of distances from the |
angle |
Numeric. Vector of angles in degrees by which the |
torus |
Logical to determine if the |
If a given dist value is negative, then the turtle would look backward.
If a given angle value is negative, then the turtle would look to the right.
If `torus = FALSE` and the `patch` at distance `dist` of a `turtle`
and `angle` degrees to the left of its `heading` is outside the
`world`'s extent, `NA`
are returned for the `patch` coordinates. If `torus = TRUE`, the `patch`
coordinates from a wrapped `world` are returned.
Matrix (ncol = 2) with the first column pxcor and the second
column pycor representing the coordinates of the patches at dist
distances of the turtles and angle to the left of their headings.
The order of the patches follows the order of the turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch-lr-and-ahead
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 1, coords = cbind(xcor = 2, ycor = 2), heading = 90) patchLeft(world = w1, turtles = t1, dist = 2, angle = 90)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 1, coords = cbind(xcor = 2, ycor = 2), heading = 90) patchLeft(world = w1, turtles = t1, dist = 2, angle = 90)
Patches on the rightReport the coordinates of the patches at the given distances of the turtles
and given angle right of their headings.
patchRight(world, turtles, dist, angle, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric,numeric' patchRight(world, turtles, dist, angle, torus = FALSE)patchRight(world, turtles, dist, angle, torus = FALSE) ## S4 method for signature 'worldNLR,agentMatrix,numeric,numeric' patchRight(world, turtles, dist, angle, torus = FALSE)
world |
|
turtles |
|
dist |
Numeric. Vector of distances from the |
angle |
Numeric. Vector of angles in degrees by which the |
torus |
Logical to determine if the |
If a given dist value is negative, then the turtle would look backward.
If a given angle value is negative, then the turtle would
look to the left.
If `torus = FALSE` and the `patch` at distance `dist` of a `turtle`
and `angle` degrees to the right of its `heading` is outside the
`world`'s extent, `NA`
are returned for the `patch` coordinates. If `torus = TRUE`, the `patch`
coordinates from a wrapped `world` are returned.
Matrix (ncol = 2) with the first column pxcor and the second
column pycor representing the coordinates of the patches at dist
distances of the turtles and angle to the right of their headings.
The order of the patches follows the order of the turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch-lr-and-ahead
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 1, coords = cbind(xcor = 2, ycor = 2), heading = 90) patchRight(world = w1, turtles = t1, dist = 2, angle = 90)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 1, coords = cbind(xcor = 2, ycor = 2), heading = 90) patchRight(world = w1, turtles = t1, dist = 2, angle = 90)
Patch setReport the patch coordinates of all the unique patches contained in the inputs.
patchSet(...) ## S4 method for signature 'matrix' patchSet(...)patchSet(...) ## S4 method for signature 'matrix' patchSet(...)
... |
Matrices ( |
Duplicate patches among the inputs are removed in the returned matrix.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the patches coordinates.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#patch-set
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) p1 <- patchAt(world = w1, agents = patch(w1, c(0, 1, 2), c(0, 0, 0)), dx = 1, dy = 1) p2 <- patchDistDir(world = w1, agents = patch(w1, 0, 0), dist = 1, angle = 45) p3 <- patch(world = w1, x = 4.3, y = 8) p4 <- patchSet(p1, p2, p3)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) p1 <- patchAt(world = w1, agents = patch(w1, c(0, 1, 2), c(0, 0, 0)), dx = 1, dy = 1) p2 <- patchDistDir(world = w1, agents = patch(w1, 0, 0), dist = 1, angle = 45) p3 <- patch(world = w1, x = 4.3, y = 8) p4 <- patchSet(p1, p2, p3)
Report TRUE if a patch exists inside the world's extent, report
FALSE otherwise.
pExist(world, pxcor, pycor) ## S4 method for signature 'worldNLR,numeric,numeric' pExist(world, pxcor, pycor)pExist(world, pxcor, pycor) ## S4 method for signature 'worldNLR,numeric,numeric' pExist(world, pxcor, pycor)
world |
|
pxcor |
Integer. Vector of patches |
pycor |
Integer. Vector of patches |
Logical.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#member
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) pExist(world = w1, pxcor = -1, pycor = 2)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) pExist(world = w1, pxcor = -1, pycor = 2)
agentMatrix, worldMatrix, worldArray
These pass to plot, as a matrix of points (agentMatrix), as a raster (worldMatrix),
or a rasterStack (worldArray).
They can be modified.
## S3 method for class 'agentMatrix' plot(x, ...) ## S3 method for class 'worldMatrix' plot(x, ...) ## S3 method for class 'worldArray' plot(x, ...) ## S3 method for class 'agentMatrix' points(x, ...)## S3 method for class 'agentMatrix' plot(x, ...) ## S3 method for class 'worldMatrix' plot(x, ...) ## S3 method for class 'worldArray' plot(x, ...) ## S3 method for class 'agentMatrix' points(x, ...)
x |
an |
... |
arguments passed to plot methods for matrix ( |
none; invoked for side-effect of generating a plot.
# agentMatrix newAgent <- new("agentMatrix", coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) plot(newAgent) ## worldMatrix w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = 1:100) plot(w1) ## worldArray w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25) w2 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 25:1) w3 <- stackWorlds(w1, w2) plot(w3) # agentMatrix newAgent <- new("agentMatrix", coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) points(newAgent)# agentMatrix newAgent <- new("agentMatrix", coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) plot(newAgent) ## worldMatrix w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = 1:100) plot(w1) ## worldArray w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25) w2 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 25:1) w3 <- stackWorlds(w1, w2) plot(w3) # agentMatrix newAgent <- new("agentMatrix", coords = cbind(pxcor = c(1, 2, 5), pycor = c(3, 4, 6)), char = letters[c(1, 2, 6)], nums2 = c(4.5, 2.6, 2343), char2 = LETTERS[c(4, 24, 3)], nums = 5:7 ) points(newAgent)
Patches coordinates from cells numbersReport the patches coordinates pxcor and pycor given the cells
numbers as defined for a Raster* object.
PxcorPycorFromCell(world, cellNum) ## S4 method for signature 'worldNLR,numeric' PxcorPycorFromCell(world, cellNum)PxcorPycorFromCell(world, cellNum) ## S4 method for signature 'worldNLR,numeric' PxcorPycorFromCell(world, cellNum)
world |
|
cellNum |
Integer. Vector of cells number. |
Matrix (ncol = 2) with the first column pxcor and the second
column pycor in the order of the given cellNum.
Sarah Bauduin
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) cellNum <- cellFromPxcorPycor(world = w1, pxcor = 0, pycor = 9) PxcorPycorFromCell(world = w1, cellNum = cellNum) cellNum <- cellFromPxcorPycor(world = w1, pxcor = c(0, 1, 2), pycor = 0) PxcorPycorFromCell(world = w1, cellNum = cellNum)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) cellNum <- cellFromPxcorPycor(world = w1, pxcor = 0, pycor = 9) PxcorPycorFromCell(world = w1, cellNum = cellNum) cellNum <- cellFromPxcorPycor(world = w1, pxcor = c(0, 1, 2), pycor = 0) PxcorPycorFromCell(world = w1, cellNum = cellNum)
pxcor
Report n random pxcor coordinates within the world's extent.
randomPxcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomPxcor(world, n)randomPxcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomPxcor(world, n)
world |
|
n |
Integer. |
Integer. Vector of length n of pxcor coordinates.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#random-pcor
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) pxcor <- randomPxcor(world = w1, n = 10)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) pxcor <- randomPxcor(world = w1, n = 10)
pycor
Report n random pycor coordinates within the world's extent.
randomPycor(world, n) ## S4 method for signature 'worldNLR,numeric' randomPycor(world, n)randomPycor(world, n) ## S4 method for signature 'worldNLR,numeric' randomPycor(world, n)
world |
|
n |
Integer. |
Integer. Vector of length n of pycor coordinates.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#random-pcor
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) pycor <- randomPycor(world = w1, n = 10)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) pycor <- randomPycor(world = w1, n = 10)
xcor
Report n random xcor coordinates within the world's extent.
randomXcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomXcor(world, n)randomXcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomXcor(world, n)
world |
|
n |
Integer. |
Numeric. Vector of length n of xcor coordinates.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#random-cor
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = cbind( xcor = randomXcor(world = w1, n = 10), ycor = randomYcor(world = w1, n = 10) )) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = cbind( xcor = randomXcor(world = w1, n = 10), ycor = randomYcor(world = w1, n = 10) )) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)
turtles coordinatesReport n random xcor and ycor coordinates within the world's extent.
randomXYcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomXYcor(world, n)randomXYcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomXYcor(world, n)
world |
|
n |
Integer. |
Matrix (ncol = 2, nrow = n) with the first column xcor and the second
column ycor.
Sarah Bauduin
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(world = w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = randomXYcor(world = w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)
ycor
Report n random ycor coordinates within the world's extent.
randomYcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomYcor(world, n)randomYcor(world, n) ## S4 method for signature 'worldNLR,numeric' randomYcor(world, n)
world |
|
n |
Integer. |
Numeric. Vector of length n of ycor coordinates.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#random-cor
w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = cbind( xcor = randomXcor(world = w1, n = 10), ycor = randomYcor(world = w1, n = 10) )) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = runif(25) ) t1 <- createTurtles(n = 10, coords = cbind( xcor = randomXcor(world = w1, n = 10), ycor = randomYcor(world = w1, n = 10) )) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16)
Raster* object into a worldMatrix or worldArray objectConvert a RasterLayer object into a worldMatrix object or a RasterStack object
into a worldArray object.
raster2world(raster) ## S4 method for signature 'ANY' raster2world(raster)raster2world(raster) ## S4 method for signature 'ANY' raster2world(raster)
raster |
|
See help("worldMatrix-class") or help("worldArray-class")
for more details on the classes.
The number of rows and columns, as well as the cell values of the `raster`
are kept the same. However, to match the coordinates system and resolution of a
`worldMatrix` or `worldArray`, the grid is shifted by a 1/2 cell to have
round coordinate values at the center of the patches and patch size is equal to (1,1).
The bottom left corner cell coordinates of the `worldMatrix` or `worldArray`
will be (pxcor = 0, pycor = 0).
WorldMatrix or worldArray object depending on the input raster.
Patches value are retained from the raster.
Sarah Bauduin
if (requireNamespace("raster")) { r1 <- raster::raster(raster::extent(c(0, 10, 0, 10)), nrows = 10, ncols = 10) r1[] <- runif(100) w1 <- raster2world(r1) terra::plot(r1) terra::plot(w1) }if (requireNamespace("raster")) { r1 <- raster::raster(raster::extent(c(0, 10, 0, 10)), nrows = 10, ncols = 10) r1[] <- runif(100) w1 <- raster2world(r1) terra::plot(r1) terra::plot(w1) }
Rotate the turtles's headings to the right of angle degrees.
right(turtles, angle) ## S4 method for signature 'agentMatrix,numeric' right(turtles, angle)right(turtles, angle) ## S4 method for signature 'agentMatrix,numeric' right(turtles, angle)
turtles |
|
angle |
Numeric. Vector of angles in degrees by which to rotate the |
If a given angle value is negative, then the turtle rotates to the left.
AgentMatrix representing the turtles with updated heading values.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#right
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) of(agents = t1, var = "heading") t1 <- right(turtles = t1, angle = 180) of(agents = t1, var = "heading")w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) t1 <- createTurtles(n = 10, world = w1) of(agents = t1, var = "heading") t1 <- right(turtles = t1, angle = 180) of(agents = t1, var = "heading")
turtles' locationsSet the turtles xcor and ycor coordinates.
setXY(turtles, xcor, ycor, world, torus = FALSE) ## S4 method for signature 'agentMatrix,numeric,numeric,missing,ANY' setXY(turtles, xcor, ycor, torus) ## S4 method for signature 'agentMatrix,numeric,numeric,worldNLR,logical' setXY(turtles, xcor, ycor, world, torus = FALSE)setXY(turtles, xcor, ycor, world, torus = FALSE) ## S4 method for signature 'agentMatrix,numeric,numeric,missing,ANY' setXY(turtles, xcor, ycor, torus) ## S4 method for signature 'agentMatrix,numeric,numeric,worldNLR,logical' setXY(turtles, xcor, ycor, world, torus = FALSE)
turtles |
|
xcor |
Numeric. Vector of |
ycor |
Numeric. Vector of |
world |
|
torus |
Logical to determine if the |
world must be provided only if torus = TRUE.
If the given coordinates `[xcor, ycor]`
are located outside of the `world`'s extent and `torus = TRUE`,
then the coordinates assigned to the `turtle`
are the ones from a wrapped `word`; if `torus = FALSE`, the `turtle`
is located outside of the `world`'s extent with the given coordinates.
AgentMatrix representing the turtles with updated coordinates
and updated data for their previous coordinates prevX and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#setxy
w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 5, coords = randomXYcor(w1, n = 5)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- setXY(turtles = t1, xcor = 1:5, ycor = 1:5) points(t1, col = of(agents = t1, var = "color"), pch = 16)w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 5, coords = randomXYcor(w1, n = 5)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t1 <- setXY(turtles = t1, xcor = 1:5, ycor = 1:5) points(t1, col = of(agents = t1, var = "color"), pch = 16)
sf to agentMatrix
Convert a sf object into an agentMatrix object.
sf2turtles(turtles_sf) ## S4 method for signature 'ANY' sf2turtles(turtles_sf)sf2turtles(turtles_sf) ## S4 method for signature 'ANY' sf2turtles(turtles_sf)
turtles_sf |
|
If the turtles_sf does not contain the variables created with
createTurtles(), these variables will be created with the
default values as in createTurtles().
AgentMatrix object representing the moving agents (coordinates and data)
as contained in turtles_sf.
Sarah Bauduin
if (requireNamespace("sf", quietly = TRUE)) { turtles_sf1 <- sf::st_as_sf( cbind.data.frame( x = c(1, 2, 3), y = c(1, 2, 3), age = c(0, 0, 3), sex = c("F", "F", "M") ), coords = c("x", "y") ) t1 <- sf2turtles(turtles_sf = turtles_sf1) }if (requireNamespace("sf", quietly = TRUE)) { turtles_sf1 <- sf::st_as_sf( cbind.data.frame( x = c(1, 2, 3), y = c(1, 2, 3), age = c(0, 0, 3), sex = c("F", "F", "M") ), coords = c("x", "y") ) t1 <- sf2turtles(turtles_sf = turtles_sf1) }
agentMatrix classSlight modifications from the default versions.
## S4 method for signature 'agentMatrix' show(object) ## S4 method for signature 'agentMatrix' length(x) ## S4 method for signature 'agentMatrix' nrow(x) ## S3 method for class 'agentMatrix' head(x, n = 6L, ...) ## S3 method for class 'agentMatrix' tail(x, n = 6L, ...)## S4 method for signature 'agentMatrix' show(object) ## S4 method for signature 'agentMatrix' length(x) ## S4 method for signature 'agentMatrix' nrow(x) ## S3 method for class 'agentMatrix' head(x, n = 6L, ...) ## S3 method for class 'agentMatrix' tail(x, n = 6L, ...)
object |
An |
x |
An |
n |
an integer vector of length up to dim(x) (or 1, for non-dimensioned objects). |
... |
arguments to be passed to or from other methods (currently, none used). |
show is called for its side effects.
It shows all columns of data, except for the coordinates.
To access those, use coordinates().
length returns a non-negative integer of length 1,
except for vectors of more than 2^31 - 1 elements, when it returns a double.
nrow returns an integer of length 1 or NULL.
An agentMatrix object, like x, but generally smaller.
worldNLR classesSlight modifications from the default versions.
## S4 method for signature 'worldArray' show(object) ## S4 method for signature 'worldMatrix' show(object)## S4 method for signature 'worldArray' show(object) ## S4 method for signature 'worldMatrix' show(object)
object |
An |
show is called for its side effects. It shows key metadata elements
of the worldArray or worldMatrix, plus the first 4 columns and rows of data
agents
Return the agents sorted according to their value.
sortOn(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' sortOn(agents, world) ## S4 method for signature 'matrix,worldArray,character' sortOn(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' sortOn(agents, var)sortOn(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' sortOn(agents, world) ## S4 method for signature 'matrix,worldArray,character' sortOn(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' sortOn(agents, var)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
var |
Character. The name of the selected |
world must not be provided if agents are turtles.
The sorting of the `agents` is done in a increasing order.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches sorted according to
their values, if agents
are patches, or
`AgentMatrix` representing the `turtles` sorted according
to their `var` values, if `agents` are
`turtles`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#sort-on
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- sortOn(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) sortHeadingT1 <- sortOn(agents = t1, var = "heading") # or library(quickPlot) Plot(w1) Plot(t1, addTo = "w1")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- sortOn(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) sortHeadingT1 <- sortOn(agents = t1, var = "heading") # or library(quickPlot) Plot(w1) Plot(t1, addTo = "w1")
SpatRaster object into a worldMatrix or worldArray objectConvert a SpatRaster object into a worldMatrix
object or a worldArray object depending on the number of layers of the
SpatRaster object.
spatRast2world(raster) ## S4 method for signature 'SpatRaster' spatRast2world(raster)spatRast2world(raster) ## S4 method for signature 'SpatRaster' spatRast2world(raster)
raster |
|
See help("worldMatrix-class") or help("worldArray-class")
for more details on the classes.
If the `SpatRaster` object has only one layer, a `worldMatrix` object
will be returned. If the `SpatRaster` object has more than one layer,
layers must have unique names and a `worldArray` object will be returned.
The number of rows and columns, as well as the cell values of the `raster`
are kept the same. However, to match the coordinates system and resolution of a
`worldMatrix` or `worldArray`, the grid is shifted by a 1/2 cell to have
round coordinate values at the center of the patches and patch size is equal to (1,1).
The bottom left corner cell coordinates of the `worldMatrix` or `worldArray`
will be (pxcor = 0, pycor = 0).
WorldMatrix or worldArray object depending on the number of layers
of the input raster.
Patches value are retained from the raster.
Sarah Bauduin
library(terra) r1 <- rast(xmin = 0, xmax = 10, ymin = 0, ymax = 10, nrows = 10, ncols = 10) r1[] <- runif(100) w1 <- spatRast2world(r1) terra::plot(r1) plot(w1) r2 <- rast(xmin = 0, xmax = 10, ymin = 0, ymax = 10, nrows = 10, ncols = 10) r2[] <- 0 r3 <- c(r1, r2) names(r3) <- c("layer1", "layer2") w3 <- spatRast2world(r3) terra::plot(r3) plot(w3)library(terra) r1 <- rast(xmin = 0, xmax = 10, ymin = 0, ymax = 10, nrows = 10, ncols = 10) r1[] <- runif(100) w1 <- spatRast2world(r1) terra::plot(r1) plot(w1) r2 <- rast(xmin = 0, xmax = 10, ymin = 0, ymax = 10, nrows = 10, ncols = 10) r2[] <- 0 r3 <- c(r1, r2) names(r3) <- c("layer1", "layer2") w3 <- spatRast2world(r3) terra::plot(r3) plot(w3)
SpatialPointsDataFrame to agentMatrix
Convert a SpatialPointsDataFrame object into an agentMatrix object.
spdf2turtles(spdf) ## S4 method for signature 'ANY' spdf2turtles(spdf)spdf2turtles(spdf) ## S4 method for signature 'ANY' spdf2turtles(spdf)
spdf |
|
If the spdf does not contain the variables created with
createTurtles(), these variables will be created with the
default values as in createTurtles().
AgentMatrix object representing the moving agents (coordinates and data)
as contained in spdf.
Sarah Bauduin
if (requireNamespace("sp", quietly = TRUE)) { sp1 <- sp::SpatialPointsDataFrame( coords = cbind(x = c(1, 2, 3), y = c(1, 2, 3)), data = cbind.data.frame( age = c(0, 0, 3), sex = c("F", "F", "M") ) ) t1 <- spdf2turtles(spdf = sp1) }if (requireNamespace("sp", quietly = TRUE)) { sp1 <- sp::SpatialPointsDataFrame( coords = cbind(x = c(1, 2, 3), y = c(1, 2, 3)), data = cbind.data.frame( age = c(0, 0, 3), sex = c("F", "F", "M") ) ) t1 <- spdf2turtles(spdf = sp1) }
turtles
Create n new turtles on specific patches.
sprout(n, patches, breed, heading, color, turtles) ## S4 method for signature 'numeric,matrix' sprout(n, patches, breed, heading, color, turtles)sprout(n, patches, breed, heading, color, turtles) ## S4 method for signature 'numeric,matrix' sprout(n, patches, breed, heading, color, turtles)
n |
Integer. Vector of length 1 or of length the number of |
patches |
Matrix ( |
breed |
Character. Vector of |
heading |
Numeric. Vector of values between 0 and 360.
Must be of length 1 or of length the number of |
color |
Character. Vector of |
turtles |
|
nrow(patches) must be equal to 1 or to n.
If `turtles` is provided, the new `turtles` are added to
the `turtles` when returned. The `who` numbers of the sprouted `turtles`
therefore follow the ones from the `turtles`.
All new sprouted `turtles` are placed at the end of the `agentMatrix` object.
If no `turtles`
is provided, a new `agentMatrix` is created and the `who` numbers
start at 0.
If `turtles` is provided and had additional variables created
with `turtlesOwn()`, `NA` is given for these variables
for the new sprouted `turtles`.
AgentMatrix including the new
sprouted turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#sprout
t1 <- sprout(patches = cbind(pxcor = 2, pycor = 2), n = 3) t2 <- sprout(patches = cbind(pxcor = 3, pycor = 3), n = 3, turtles = t1)t1 <- sprout(patches = cbind(pxcor = 2, pycor = 2), n = 3) t2 <- sprout(patches = cbind(pxcor = 3, pycor = 3), n = 3, turtles = t1)
worlds
Stack multiple worldMatrix into a worldArray.
stackWorlds(...) ## S4 method for signature 'worldMatrix' stackWorlds(...)stackWorlds(...) ## S4 method for signature 'worldMatrix' stackWorlds(...)
... |
|
The worldMatrix objects must all have the same extents.
worldArray object.
Sarah Bauduin
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25) w2 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 25:1) w3 <- stackWorlds(w1, w2) plot(w3) # pass named arguments to specify a different name than the object name w4 <- stackWorlds(layer1 = w1, layer2 = w2)w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 1:25) w2 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = 25:1) w3 <- stackWorlds(w1, w2) plot(w3) # pass named arguments to specify a different name than the object name w4 <- stackWorlds(layer1 = w1, layer2 = w2)
headings
Compute the difference between headings.
subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'numeric,numeric' subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'agentMatrix,numeric' subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'numeric,agentMatrix' subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'agentMatrix,agentMatrix' subHeadings(angle1, angle2, range360 = FALSE)subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'numeric,numeric' subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'agentMatrix,numeric' subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'numeric,agentMatrix' subHeadings(angle1, angle2, range360 = FALSE) ## S4 method for signature 'agentMatrix,agentMatrix' subHeadings(angle1, angle2, range360 = FALSE)
angle1 |
Numeric. Vector of angles. |
angle2 |
Numeric. Vector of angles. |
range360 |
Logical. If |
This function does the opposite as the one in NetLogo where
angle1 is the target heading.
`angle1` and `angle2` must be of the same length or if different,
one of them must be of length 1.
Positive values mean clockwise rotations, negative value mean
counterclockwise rotations.
Numeric. Vector of the smallest angles in degrees
by which angle1 could be rotated to produce angle2
(i.e., the target heading).
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#subtract-headings
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createOTurtles(n = 10, world = w1) subHeadings(angle1 = t1, angle2 = 0)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createOTurtles(n = 10, world = w1) subHeadings(angle1 = t1, angle2 = 0)
turtle exist?Report TRUE if a turtle exists inside the turtles, report
FALSE otherwise.
tExist(turtles, who, breed) ## S4 method for signature 'agentMatrix,numeric,missing' tExist(turtles, who) ## S4 method for signature 'agentMatrix,numeric,character' tExist(turtles, who, breed)tExist(turtles, who, breed) ## S4 method for signature 'agentMatrix,numeric,missing' tExist(turtles, who) ## S4 method for signature 'agentMatrix,numeric,character' tExist(turtles, who, breed)
turtles |
|
who |
Integer. Vector of the |
breed |
Characters. Vector of |
Logical. Vector of TRUE or FALSE if the who numbers
with any of the breed, if provided, exist or not
inside the turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#member
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), breed = c(rep("sheep", 5), rep("wolf", 5)) ) tExist(turtles = t1, who = 3, breed = "sheep") tExist(turtles = t1, who = 9, breed = "sheep") tExist(turtles = t1, who = 9, breed = c("sheep", "wolf")) tExist(turtles = t1, who = c(3, 9))w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), breed = c(rep("sheep", 5), rep("wolf", 5)) ) tExist(turtles = t1, who = 3, breed = "sheep") tExist(turtles = t1, who = 9, breed = "sheep") tExist(turtles = t1, who = 9, breed = c("sheep", "wolf")) tExist(turtles = t1, who = c(3, 9))
Report the directions of each agents towards each corresponding agents2.
towards(agents, agents2, world, torus = FALSE) ## S4 method for signature 'matrix,matrix' towards(agents, agents2, world, torus = FALSE)towards(agents, agents2, world, torus = FALSE) ## S4 method for signature 'matrix,matrix' towards(agents, agents2, world, torus = FALSE)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
agents2 |
Matrix ( `AgentMatrix` object representing the moving `agents`, or
Matrix (`ncol` = 2) with the first column `x` and the second column
`y` representing locations coordinates.
|
world |
|
torus |
Logical to determine if the |
agents and agents2 must have the same number of agents/locations
or if different, one of them must have only one agent/location. If
agents and agents2 have the same number of agents/locations,
the directions are calculated for each pair agents[i] and agents2[i]
and not for each agents towards every single agents2.
If `torus = FALSE`, `world` does not need to be provided.
If `torus = TRUE` and the distance from one `agents` to
its corresponding `agents2` is smaller around the
sides of the `world` than across it, then the direction to `agents2`
going around the sides of the `world` is returned.
The direction from a patch to its location returns 0; the direction from
a turtle to its location returns the turtle's heading.
Numeric. Vector of angles in degrees of length equal to the largest
number of agents/locations between agents and agents2.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#towards
<https://docs.netlogo.org/dictionary.html#towardsxy>
w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) towards(agents = patches(w1), agents2 = cbind(x = 0, y = 0)) t1 <- createTurtles(n = 10, world = w1) towards(agents = t1, agents2 = cbind(x = 0, y = 0))w1 <- createWorld(minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4) towards(agents = patches(w1), agents2 = cbind(x = 0, y = 0)) t1 <- createTurtles(n = 10, world = w1) towards(agents = t1, agents2 = cbind(x = 0, y = 0))
turtles
Report the individuals among turtles based on their who numbers
and breed.
turtle(turtles, who, breed) ## S4 method for signature 'agentMatrix,numeric,missing' turtle(turtles, who) ## S4 method for signature 'agentMatrix,numeric,character' turtle(turtles, who, breed)turtle(turtles, who, breed) ## S4 method for signature 'agentMatrix,numeric,missing' turtle(turtles, who) ## S4 method for signature 'agentMatrix,numeric,character' turtle(turtles, who, breed)
turtles |
|
who |
Integer. Vector of the |
breed |
Characters. Vector of |
If no turtle matches the given who numbers, with potentially
one of the given
breed, inside turtles, then an empty agentMatrix is returned.
If there are duplicates `who` numbers among the `turtles`, the first
matching `turtle` with the requested `who` number is returned.
AgentMatrix of the selected turtles sorted in the order of
the who numbers requested. If breed was provided, the
turtles selected are of one of the breed.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#turtle
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) t2 <- turtle(t1, who = 2)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) t2 <- turtle(t1, who = 2)
agentMatrix to sf
Convert an agentMatrix object into an sf object.
turtles2sf(turtles) ## S4 method for signature 'ANY' turtles2sf(turtles)turtles2sf(turtles) ## S4 method for signature 'ANY' turtles2sf(turtles)
turtles |
|
sf object of POINT geometry representing the moving agents
(coordinates and data)
as contained in turtles.
Sarah Bauduin
t1 <- createTurtles(n = 10, coords = cbind(xcor = 1:10, ycor = 1:10)) if (requireNamespace("sf", quietly = TRUE)) { sf_t1 <- turtles2sf(turtles = t1) }t1 <- createTurtles(n = 10, coords = cbind(xcor = 1:10, ycor = 1:10)) if (requireNamespace("sf", quietly = TRUE)) { sf_t1 <- turtles2sf(turtles = t1) }
agentMatrix to SpatialPointsDataFrame
Convert an agentMatrix object into a SpatialPointsDataFrame object.
turtles2spdf(turtles) ## S4 method for signature 'agentMatrix' turtles2spdf(turtles)turtles2spdf(turtles) ## S4 method for signature 'agentMatrix' turtles2spdf(turtles)
turtles |
|
SpatialPointsDataFrame object representing the moving agents
(coordinates and data)
as contained in turtles.
Sarah Bauduin
t1 <- createTurtles(n = 10, coords = cbind(xcor = 1:10, ycor = 1:10)) if (requireNamespace("sp", quietly = TRUE)) { sp1 <- turtles2spdf(turtles = t1) }t1 <- createTurtles(n = 10, coords = cbind(xcor = 1:10, ycor = 1:10)) if (requireNamespace("sp", quietly = TRUE)) { sp1 <- turtles2spdf(turtles = t1) }
Turtles atReport the individuals among turtles that are located on the patches at
(dx, dy) distances of the agents.
turtlesAt(world, turtles, agents, dx, dy, breed, torus = FALSE) ## S4 method for signature ## 'worldNLR,agentMatrix,matrix,numeric,numeric,missing' turtlesAt(world, turtles, agents, dx, dy, torus) ## S4 method for signature ## 'worldNLR,agentMatrix,matrix,numeric,numeric,character' turtlesAt(world, turtles, agents, dx, dy, breed, torus = FALSE)turtlesAt(world, turtles, agents, dx, dy, breed, torus = FALSE) ## S4 method for signature ## 'worldNLR,agentMatrix,matrix,numeric,numeric,missing' turtlesAt(world, turtles, agents, dx, dy, torus) ## S4 method for signature ## 'worldNLR,agentMatrix,matrix,numeric,numeric,character' turtlesAt(world, turtles, agents, dx, dy, breed, torus = FALSE)
world |
|
turtles |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
dx |
Numeric. Vector of distances to the east (right) from the |
dy |
Numeric. Vector of distances to the north (up) from the |
breed |
Characters. Vector of |
torus |
Logical to determine if the |
If the patch at distance (dx, dy)
of an agent is outside of the world's extent and torus = FALSE,
no turtle is returned;
if torus = TRUE, the turtle located on the patch whose coordinates
are defined from the wrapped world is returned.
AgentMatrix representing the individuals among turtles
of any of the given breed, if specified,
which are located on the patches at (dx, dy) distances of the
agents.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#turtles-at
https://docs.netlogo.org/dictionary.html#at-points
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles( n = 10, coords = cbind(xcor = 0:9, ycor = 0:9), breed = c(rep("sheep", 5), rep("wolf", 5)) ) t2 <- turtlesAt( world = w1, turtles = t1, agents = turtle(t1, who = 0), dx = 1, dy = 1 ) t3 <- turtlesAt( world = w1, turtles = t1, agents = patch(w1, c(3, 4, 5), c(3, 4, 5)), dx = 1, dy = 1, breed = "sheep" )w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles( n = 10, coords = cbind(xcor = 0:9, ycor = 0:9), breed = c(rep("sheep", 5), rep("wolf", 5)) ) t2 <- turtlesAt( world = w1, turtles = t1, agents = turtle(t1, who = 0), dx = 1, dy = 1 ) t3 <- turtlesAt( world = w1, turtles = t1, agents = patch(w1, c(3, 4, 5), c(3, 4, 5)), dx = 1, dy = 1, breed = "sheep" )
turtle agentset
Report a turtle agentset containing all unique turtles provided in the inputs.
turtleSet(...) ## S4 method for signature 'agentMatrix' turtleSet(...)turtleSet(...) ## S4 method for signature 'agentMatrix' turtleSet(...)
... |
|
Duplicated turtles are identified based only on their who numbers.
The turtle chosen for a who number is the first one given in the inputs.
To keep all turtles from the inputs, use NLset() to
reassign who numbers in some of the inputs, prior using
turtleSet(), to avoid turtles with duplicated who numbers.
AgentMatrix object containing all the unique turtles.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#turtle-set
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10), breed = "sheep") t2 <- createTurtles(n = 2, coords = randomXYcor(w1, n = 2), breed = "wolf") t2 <- NLset(turtles = t2, agents = t2, var = "who", val = c(10, 11)) t3 <- createTurtles(n = 1, coords = randomXYcor(w1, n = 1), breed = "sheperd") t3 <- NLset(turtles = t3, agents = t3, var = "who", val = 12) t4 <- turtleSet(t1, t2, t3)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10), breed = "sheep") t2 <- createTurtles(n = 2, coords = randomXYcor(w1, n = 2), breed = "wolf") t2 <- NLset(turtles = t2, agents = t2, var = "who", val = c(10, 11)) t3 <- createTurtles(n = 1, coords = randomXYcor(w1, n = 1), breed = "sheperd") t3 <- NLset(turtles = t3, agents = t3, var = "who", val = 12) t4 <- turtleSet(t1, t2, t3)
Turtles onReport the individuals among turtles that are on the same patches as
the agents.
turtlesOn(world, turtles, agents, breed, simplify = TRUE) ## S4 method for signature 'worldNLR,agentMatrix,matrix,missing' turtlesOn(world, turtles, agents, simplify) ## S4 method for signature 'worldNLR,agentMatrix,matrix,character' turtlesOn(world, turtles, agents, breed, simplify = TRUE)turtlesOn(world, turtles, agents, breed, simplify = TRUE) ## S4 method for signature 'worldNLR,agentMatrix,matrix,missing' turtlesOn(world, turtles, agents, simplify) ## S4 method for signature 'worldNLR,agentMatrix,matrix,character' turtlesOn(world, turtles, agents, breed, simplify = TRUE)
world |
|
turtles |
|
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
breed |
Characters. Vector of |
simplify |
Logical. If |
The agents must be located inside the
world's extent.
AgentMatrix representing any individuals from turtles of
any of the given breed, if specified,
located on the same patches as any of the agents, if simplify = TRUE, or
Matrix (`ncol` = 2) with the first column `whoTurtles` and the second column
`id` showing which `turtles` are on the same
`patches` as which `agents` represented by `id`, if `simplify = FALSE`.
`id` represents and follows the order of the `agents`. `id` does not represent
the `who` numbers
of the `agents` if `agents` are `turtles`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#turtles-on
w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 500, coords = randomXYcor(w1, n = 500)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t2 <- turtlesOn(world = w1, turtles = t1, agents = patch(w1, 2, 2))w1 <- createWorld( minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100) ) t1 <- createTurtles(n = 500, coords = randomXYcor(w1, n = 500)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) t2 <- turtlesOn(world = w1, turtles = t1, agents = patch(w1, 2, 2))
turtles variableCreate a new variable for the turtles.
turtlesOwn(turtles, tVar, tVal) ## S4 method for signature 'agentMatrix,character,missing' turtlesOwn(turtles, tVar) ## S4 method for signature 'agentMatrix,character,ANY' turtlesOwn(turtles, tVar, tVal)turtlesOwn(turtles, tVar, tVal) ## S4 method for signature 'agentMatrix,character,missing' turtlesOwn(turtles, tVar) ## S4 method for signature 'agentMatrix,character,ANY' turtlesOwn(turtles, tVar, tVal)
turtles |
|
tVar |
Character. the name of the |
tVal |
Vector representing the values of |
AgentMatrix representing the turtles with the new
variable tVar added.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#turtles-own
t1 <- createTurtles(n = 5, coords = cbind(xcor = 0, ycor = 0)) t1 <- turtlesOwn(turtles = t1, tVar = "sex", tVal = c("F", "F", "F", "M", "M"))t1 <- createTurtles(n = 5, coords = cbind(xcor = 0, ycor = 0)) t1 <- turtlesOwn(turtles = t1, tVar = "sex", tVal = c("F", "F", "F", "M", "M"))
Merge two named list based on their named entries. Where any element matches in both lists, the value from the second list is used in the updated list. Subelements are not examined and are simply replaced. If one list is empty, then it returns the other one, unchanged.
updateList(x, y) ## S4 method for signature 'list,list' updateList(x, y) ## S4 method for signature 'NULL,list' updateList(x, y) ## S4 method for signature 'list,NULL' updateList(x, y) ## S4 method for signature 'NULL,NULL' updateList(x, y)updateList(x, y) ## S4 method for signature 'list,list' updateList(x, y) ## S4 method for signature 'NULL,list' updateList(x, y) ## S4 method for signature 'list,NULL' updateList(x, y) ## S4 method for signature 'NULL,NULL' updateList(x, y)
x, y
|
a named list |
A named list, with elements sorted by name.
The values of matching elements in list y
replace the values in list x.
Alex Chubaty
L1 <- list(a = "hst", b = NA_character_, c = 43) L2 <- list(a = "gst", c = 42, d = list(letters)) updateList(L1, L2) updateList(L1, NULL) updateList(NULL, L2) updateList(NULL, NULL) # should return empty listL1 <- list(a = "hst", b = NA_character_, c = 43) L2 <- list(a = "gst", c = 42, d = list(letters)) updateList(L1, L2) updateList(L1, NULL) updateList(NULL, L2) updateList(NULL, NULL) # should return empty list
Move the turtles to their neighboring patch with the highest value.
uphill(world, pVar, turtles, nNeighbors, torus = FALSE) ## S4 method for signature 'worldMatrix,missing,agentMatrix,numeric' uphill(world, turtles, nNeighbors, torus) ## S4 method for signature 'worldArray,character,agentMatrix,numeric' uphill(world, pVar, turtles, nNeighbors, torus = FALSE)uphill(world, pVar, turtles, nNeighbors, torus = FALSE) ## S4 method for signature 'worldMatrix,missing,agentMatrix,numeric' uphill(world, turtles, nNeighbors, torus) ## S4 method for signature 'worldArray,character,agentMatrix,numeric' uphill(world, pVar, turtles, nNeighbors, torus = FALSE)
world |
|
pVar |
Character. If the |
turtles |
|
nNeighbors |
Integer: 4 or 8. Represents the number of neighbor |
torus |
Logical to determine if the |
If no neighboring patch has a larger value than the patch where the
turtle is currently located on, the turtle stays on this patch. It still
moves to the patch center if it was not already on it.
If there are multiple neighboring `patches` with the same highest value,
the `turtle` chooses one `patch` randomly.
If a `turtle` is located on a `patch` on the edge
of the `world` and `torus = FALSE`, it has fewer
neighboring `patches` as options to move than `nNeighbors`; if
`torus = TRUE`, the `turtle` can move on the other side of the `world` to
move uphill and its choice of neighboring `patches` is always equals to
`nNeighbors`.
AgentMatrix representing the turtles with updated
coordinates and updated data for their heading values and
previous coordinates prevX
and prevY.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#uphill
w1 <- createWorld( minPxcor = 1, maxPxcor = 10, minPycor = 1, maxPycor = 10, data = runif(100) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) if (requireNamespace("SpaDES.tools", quietly = TRUE)) { t1 <- uphill(world = w1, turtles = t1, nNeighbors = 8) points(t1, col = of(agents = t1, var = "color"), pch = 16) }w1 <- createWorld( minPxcor = 1, maxPxcor = 10, minPycor = 1, maxPycor = 10, data = runif(100) ) t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10)) plot(w1) points(t1, col = of(agents = t1, var = "color"), pch = 16) if (requireNamespace("SpaDES.tools", quietly = TRUE)) { t1 <- uphill(world = w1, turtles = t1, nNeighbors = 8) points(t1, col = of(agents = t1, var = "color"), pch = 16) }
Agents with maximumReport the patches or turtles among agents which have their variable
equals to the maximum value.
withMax(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' withMax(agents, world) ## S4 method for signature 'matrix,worldArray,character' withMax(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' withMax(agents, var)withMax(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' withMax(agents, world) ## S4 method for signature 'matrix,worldArray,character' withMax(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' withMax(agents, var)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
var |
Character. The name of the selected |
world must not be provided if agents are turtles.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches among the agents
which have their variable
equal to the maximum value among the agents, or
`AgentMatrix` representing the `turtles` among the `agents`
which have their variable
`var` equal to the maximum value among the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#with-max
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- withMax(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- withMax(agents = t1, var = "heading")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- withMax(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- withMax(agents = t1, var = "heading")
Agents with minimumReport the patches or turtles among agents which have their variable
equals to the minimum value.
withMin(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' withMin(agents, world) ## S4 method for signature 'matrix,worldArray,character' withMin(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' withMin(agents, var)withMin(agents, world, var) ## S4 method for signature 'matrix,worldMatrix,missing' withMin(agents, world) ## S4 method for signature 'matrix,worldArray,character' withMin(agents, world, var) ## S4 method for signature 'agentMatrix,missing,character' withMin(agents, var)
agents |
Matrix ( `AgentMatrix` object representing the moving `agents`. |
world |
|
var |
Character. The name of the selected |
world must not be provided if agents are turtles.
Matrix (ncol = 2) with the first column pxcor and the second column
pycor representing the coordinates of the patches among the agents
which have their variable
equal to the minimum value among the agents, or
`AgentMatrix` representing the `turtles` among the `agents`
which have their variable
`var` equal to the minimum value among the `agents`.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#with-min
# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- withMin(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- withMin(agents = t1, var = "heading")# Patches w1 <- createWorld( minPxcor = 0, maxPxcor = 4, minPycor = 0, maxPycor = 4, data = sample(1:5, size = 25, replace = TRUE) ) plot(w1) p1 <- withMin(agents = patches(w1), world = w1) # Turtles t1 <- createTurtles( n = 10, coords = randomXYcor(w1, n = 10), heading = sample(1:3, size = 10, replace = TRUE) ) t2 <- withMin(agents = t1, var = "heading")
worldMatrix or worldArray object into a Raster* objectConvert a worldMatrix object into a RasterLayer object or a
worldArray object into a RasterStack object
world2raster(world) ## S4 method for signature 'worldMatrix' world2raster(world) ## S4 method for signature 'worldArray' world2raster(world)world2raster(world) ## S4 method for signature 'worldMatrix' world2raster(world) ## S4 method for signature 'worldArray' world2raster(world)
world |
|
The Raster* returned has the same extent and resolution as the world
with round coordinates at the center of the cells and coordinates x.5
at the edges of the cells.
RasterLayer or RasterStack object depending on the input world.
Patches value are retained from the world.
Sarah Bauduin
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100)) if (requireNamespace("raster", quietly = TRUE)) { r1 <- world2raster(w1) terra::plot(r1) }w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100)) if (requireNamespace("raster", quietly = TRUE)) { r1 <- world2raster(w1) terra::plot(r1) }
worldMatrix or worldArray object into a SpatRaster objectConvert a worldMatrix object or a
worldArray object into a SpatRaster object
world2spatRast(world) ## S4 method for signature 'worldMatrix' world2spatRast(world) ## S4 method for signature 'worldArray' world2spatRast(world)world2spatRast(world) ## S4 method for signature 'worldMatrix' world2spatRast(world) ## S4 method for signature 'worldArray' world2spatRast(world)
world |
|
The SpatRaster returned has the same extent and resolution as the world
with round coordinates at the center of the cells and coordinates x.5
at the edges of the cells.
SpatRaster object.
Patches value are retained from the world.
Sarah Bauduin
w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100)) r1 <- world2spatRast(w1) terra::plot(r1) w2 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = 0) w3 <- stackWorlds(w1, w2) r3 <- world2spatRast(w3) terra::plot(r3)w1 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = runif(100)) r1 <- world2spatRast(w1) terra::plot(r1) w2 <- createWorld(minPxcor = 0, maxPxcor = 9, minPycor = 0, maxPycor = 9, data = 0) w3 <- stackWorlds(w1, w2) r3 <- world2spatRast(w3) terra::plot(r3)
worldArray classThis is an s4 class extension of array.
It is a collection of several worldMatrix objects with the same extent
(i.e., same values for all their slots) stacked together.
It is used to keep more than one value per patch.
Sarah Bauduin, Eliot McIntire, and Alex Chubaty
World heightReport the height of the world in patch number.
worldHeight(world) ## S4 method for signature 'worldNLR' worldHeight(world)worldHeight(world) ## S4 method for signature 'worldNLR' worldHeight(world)
world |
|
Integer.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#world-dim
w1 <- createWorld() worldHeight(w1)w1 <- createWorld() worldHeight(w1)
worldMatrix classThis is an s4 class extension of matrix with 7 additional slots.
A worldMatrix object can be viewed as a grid composed of squared patches
(i.e., matrix cells). Patches have two spatial coordinates pxcor and
pycor, representing the location of their center. pxcor and
pycor are always integer and increment by 1. pxcor increases as
you move right and pycor increases as you move up. pxcor and
pycor can be negative if there are patches to the left or below the patch
[pxcor = 0, pycor = 0].
The first four slots of the worldMatrix are: minPxcor, maxPxcor,
minPycor, maxPycor which represent the minimum and maximum patches
coordinates in the worldMatrix.
The slot extent is similar to a Raster* extent. Because pxcor
and pycor represent the spatial location at the center of the patches and the
resolution of them is 1, the extent of the worldMatrix is equal to
xmin = minPxcor - 0.5, xmax = maxPxcor + 0.5, ymin = minPycor - 0.5,
and ymax = maxPycor + 0.5.
The number of patches in a worldMatrix is equal to
((maxPxcor - minPxcor) + 1) * ((maxPycor - minPycor) + 1).
The slot res is equal to 1 as it is the spatial resolution of the patches.
The last slot pCoords is a matrix representing the patches coordinates
of all the matrix cells in the order of cells in a Raster* (i.e., by rows).
Careful: The methods [] and [] <- retrieve or assign values for
the patches in the given order of the patches coordinates provided.
When no patches coordinates are provided, the values retrieved or assigned
is done in the order of the cell numbers as defined in in Raster* objects
(i.e., by rows).
Sarah Bauduin, Eliot McIntire, and Alex Chubaty
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
worldNLR classThe worldNLR class is the union of the worldMatrix and worldArray
classes. Mostly used for building function purposes.
Sarah Bauduin, and Eliot McIntire
World widthReport the width of the world in patch number.
worldWidth(world) ## S4 method for signature 'worldNLR' worldWidth(world)worldWidth(world) ## S4 method for signature 'worldNLR' worldWidth(world)
world |
|
Integer.
Sarah Bauduin
Wilensky, U. 1999. NetLogo. https://www.netlogo.org. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
https://docs.netlogo.org/dictionary.html#world-dim
w1 <- createWorld() worldWidth(w1)w1 <- createWorld() worldWidth(w1)
Generally for model development purposes.
wrap(obj, bounds, withHeading) ## S4 method for signature 'ANY' wrap(obj, bounds, withHeading)wrap(obj, bounds, withHeading) ## S4 method for signature 'ANY' wrap(obj, bounds, withHeading)
obj |
A |
bounds |
Either a |
withHeading |
Logical. If |
If withHeading used, then obj must be a SpatialPointsDataFrame
that contains two columns, x1 and y1, with the immediately previous
agent locations.
Same class as obj, but with coordinates updated to reflect the wrapping.
Eliot McIntire
if (requireNamespace("terra")) { xrange <- yrange <- c(-50, 50) hab <- terra::rast(terra::ext(c(xrange, yrange))) hab[] <- runif(terra::ncell(hab)) # initialize agents N <- 10 # previous points x1 <- rep(0, N) y1 <- rep(0, N) # initial points starts <- cbind( x = stats::runif(N, xrange[1], xrange[2]), y = stats::runif(N, yrange[1], yrange[2]) ) # create the agent object agent <- agentMatrix(coords = starts, data = data.frame(x1 = x1, y1 = y1)) ln <- rlnorm(N, 1, 0.02) # log normal step length sd <- 30 # could be specified globally in params if (interactive()) { library(quickPlot) clearPlot() Plot(hab, zero.color = "white", axes = "L") Plot(agent, addTo = "hab") } if (requireNamespace("SpaDES.tools") && requireNamespace("CircStats")) { for (i in 1:10) { agent <- SpaDES.tools::crw( agent = agent, extent = terra::ext(hab), stepLength = ln, stddev = sd, lonlat = FALSE, torus = TRUE ) if (interactive()) Plot(agent, addTo = "hab", axes = TRUE) } } }if (requireNamespace("terra")) { xrange <- yrange <- c(-50, 50) hab <- terra::rast(terra::ext(c(xrange, yrange))) hab[] <- runif(terra::ncell(hab)) # initialize agents N <- 10 # previous points x1 <- rep(0, N) y1 <- rep(0, N) # initial points starts <- cbind( x = stats::runif(N, xrange[1], xrange[2]), y = stats::runif(N, yrange[1], yrange[2]) ) # create the agent object agent <- agentMatrix(coords = starts, data = data.frame(x1 = x1, y1 = y1)) ln <- rlnorm(N, 1, 0.02) # log normal step length sd <- 30 # could be specified globally in params if (interactive()) { library(quickPlot) clearPlot() Plot(hab, zero.color = "white", axes = "L") Plot(agent, addTo = "hab") } if (requireNamespace("SpaDES.tools") && requireNamespace("CircStats")) { for (i in 1:10) { agent <- SpaDES.tools::crw( agent = agent, extent = terra::ext(hab), stepLength = ln, stddev = sd, lonlat = FALSE, torus = TRUE ) if (interactive()) Plot(agent, addTo = "hab", axes = TRUE) } } }