HES 505 Fall 2023: Session 11
Image Source: USGS
By the end of today, you should be able to:
Recognize the unary, binary, and n-ary transformers
Articulate common uses for unary and binary transformers
Use unary transformations to fix invalid geometries
Implement common binary transformers to align and combine data
predicates
and measures
Predicates: evaluate a logical statement asserting that a property is TRUE
Measures: return a numeric value with units based on the units of the CRS
Unary, binary, and n-ary distinguish how many geometries each function accepts and returns
transformer | returns a geometry … |
---|---|
centroid |
of type POINT with the geometry’s centroid |
buffer |
that is larger (or smaller) than the input geometry, depending on the buffer size |
jitter |
that was moved in space a certain amount, using a bivariate uniform distribution |
wrap_dateline |
cut into pieces that do no longer cover the dateline |
boundary |
with the boundary of the input geometry |
convex_hull |
that forms the convex hull of the input geometry |
line_merge |
after merging connecting LINESTRING elements of a MULTILINESTRING into longer LINESTRING s. |
make_valid |
that is valid |
node |
with added nodes to linear geometries at intersections without a node; only works on individual linear geometries |
point_on_surface |
with a (arbitrary) point on a surface |
polygonize |
of type polygon, created from lines that form a closed ring |
all(st_is_valid(your.shapefile))
returns FALSE
st_make_valid
has two methods:
st_make_valid
st_buffer
CRS
with st_transform
You’ve already been using this!!
Does not guarantee valid geometries (use check = TRUE
if you want this)
We’ll try to keep things from getting too complicated
st_centroid
or st_point_on_surface
Uncertainty in your point locations
Incorporate a fixed range around each point
Combine multiple points into a single polygon
transformer | returns a geometry … |
---|---|
segmentize |
a (linear) geometry with nodes at a given density or minimal distance |
simplify |
simplified by removing vertices/nodes (lines or polygons) |
split |
that has been split with a splitting linestring |
transform |
transformed or convert to a new coordinate reference system (chapter @ref(cs)) |
triangulate |
with Delauney triangulated polygon(s) (figure @ref(fig:vor)) |
voronoi |
with the Voronoi tessellation of an input geometry (figure @ref(fig:vor)) |
zm |
with removed or added Z and/or M coordinates |
collection_extract |
with subgeometries from a GEOMETRYCOLLECTION of a particular type |
cast |
that is converted to another type |
+ |
that is shifted over a given vector |
* |
that is multiplied by a scalar or matrix |
function | returns | infix operator |
---|---|---|
intersection |
the overlapping geometries for pair of geometries | & |
union |
the combination of the geometries; removes internal boundaries and duplicate points, nodes or line pieces | | |
difference |
the geometries of the first after removing the overlap with the second geometry | / |
sym_difference |
the combinations of the geometries after removing where they intersect; the negation (opposite) of intersection |
%/% |
crop |
crop an sf object to a specific rectangle |
Relating partially overlapping datasets to each other
Reducing the extent of vector objects
Similar to Binary (except st_crop
)
union
can be applied to a set of geometries to return its geometrical union
intersection
and difference
take a single argument, but operate (sequentially) on all pairs, triples, quadruples, etc.