geo_match {geomander} | R Documentation |
Match Across Geographic Layers
Description
Match Across Geographic Layers
Usage
geo_match(
from,
to,
method = "center",
by = NULL,
tiebreaker = TRUE,
epsg = 3857
)
Arguments
from |
smaller geographic level to match up from |
to |
larger geographic level to be matched to |
method |
string from 'center', 'centroid', 'point', 'circle', or 'area' for matching method |
by |
A character vector to match by. One element if both |
tiebreaker |
Should ties be broken? boolean. If FALSE, precincts with no matches get value -1 and precincts with multiple matches get value -2. |
epsg |
numeric EPSG code to planarize to. Default is 3857. |
Details
Methods are as follows:
centroid: matches each element of
from
to theto
entry that the geographic centroid intersectscenter: very similar to centroid, but it matches an arbitrary center point within
from
if the centroid offrom
is outside the bounds of from. (This happens for non-convex shapes only).point: matches each element of
from
to theto
entry that the "point on surface" intersects.circle: matches each element of
from
to theto
entry that the centroid of the maximum inscribed circle intersectsarea: matches each element of
from
to theto
element which has the largest area overlap
Value
Integer Vector of matches length(to) with values in 1:nrow(from)
Examples
library(dplyr)
data(checkerboard)
counties <- sf::st_as_sf(as.data.frame(rbind(
sf::st_union(checkerboard %>% filter(i < 4)),
sf::st_union(checkerboard %>% filter(i >= 4))
)))
geo_match(from = checkerboard, to = counties)
geo_match(from = checkerboard, to = counties, method = 'area')