The hexagrid
function constrcucts a hexa-pentagonal grid based on the inversion of a
tessellated icosahedron.
Arguments
- tessellation
(
numeric
) An integer vector with the tessellation values. Each number describes the number of new edges replacing one original edge. Multiple series of tessellations are possible this way. The total tessellation is the product of the tessellation vector. Higher values result in more uniform cell sizes, but the larger number of tessellation series, increases the speed of lookup functions.- deg
(
numeric
) The target edge length of the grid in degrees. If provided, the function will select the appropriate tessellation vector from thehexguide
-table, which is closest to the target. Note that these are unlikely to be the exact matches.- sp
(
logical
) Flag indicating whether theSpatialPolygons
class representation of the grid should be added to the object when the grid is calculated. If set to true theSpPolygons
function will be run with with the resolution parameter set to25
. The resulting object will be stored in slot@sp
. As the calculation of this object can increase the grid creation time substantially by default this argument has a valueFALSE
. This can be added on demand by running the functionnewsp
.- graph
(
logical
) Flag indicating whether theigraph
class representation of the grid should be added to the object when the grid is calculated. This argument defaults toTRUE
because this option has only minor performance load on the grid constructor function. For familiarization with the object structure, however, setting this parameter toFALSE
might help, as invokingstr
on the 'igraph' class slot of the class might flood the console.- radius
(
numeric
) The radius of the grid. Defaults to the authalic radius of Earth.- center
(
numeric
) The origin of the grid in the reference Cartesian coordinate system. Defaults toc(0,0,0)
.- verbose
(
logical
) Should messages be printed during grid creation?
Details
Inherits from the trigrid
class.
The grid structure functions as a frame for data graining, plotting and
calculations. Data can be stored in layers that are linked to the grid object. In the current version only the
facelayer
class is implemented which allows the user to render data to the cells
of the grid which are called faces.
The grid 'user interface' is made up of four primary tables: the @vertices
table for the coordinates of the vertices,
the faceCenters
for the coordinates of the centers of faces,
the faces
and the edges
tables that contain which vertices form which faces and edges respectively.
In these tables, the faces and vertices are sorted to form spirals that go from the north pole in a counter-clockwise
direction. In case grid subsetting is performed these tables get truncated.
At finer resolutions, the large number of spatial elements render all calculations very resource demanding and slow,
therefore the hierarchical structure created during the tessellation procedure is retained for efficient implementations.
These data are stored in a list in the slot @skeleton
and are 0-indexed integer tables for Rccp-based functions. $v
stores vertex, $f
the edge, and $e
contains the edge data for plotting and calculations. In these tables
the original hierarchy based orderings of the units are retained, during subsetting, additional vectors are used to indicate
deactivation of these units. Any sort of meddling with the @skeleton object will lead to unexpected behavior.
Slots
vertices
Matrix of the vertex coordinates.
faces
Matrix of the verticies forming the faces
edges
Matrix of the vertices forming the edges.
tessellation
Contains the tessellation vector.
orientation
Contains the grid orientation in xyz 3d space, values in radian.
center
The xyz coordinates of the grid's origin/center.
div
Contains the number of faces that a single face of the previous tessellation level is decomposed to.
faceCenters
Contains the xyz coordinates of the centers of the faces on the surface of the sphere.
Examples
g <- hexagrid(c(8), sf=TRUE)
# based on approximate size (4 degrees edge length)
g1 <- hexagrid(deg=4)
#> Selecting hexagrid with tessellation vector: c(2, 5).
#> Mean edge length: 3.995 degrees.