unknownpleasur
Generates regular section cuts through a raster surface for a given extent. Produces results that look quite a lot like the cover of Joy Division's Unknown Pleasures (1979). Also quite a lot like some of the work of the Harvard Laboratory for Computer Graphics and Spaital Analysis (RIP). Also, scholarly integrity requires that I say: James Cheshire got here first.
Installation
Submission to CRAN is forthcoming at release v0.1.0. Until then, you can install the development version ( hi! ) with devtools as follows...
Getting Started
General workflow looks like the below. Assuming an sf dataframe containing polygons or multipolygons (polygons) and a raster surface (raster), this generates regularly spaced lines (st_regular_lines()) and effecitvely "drapes" them over a raster surface, returning either polygonal or linestring section cuts (st_unknown_pleasures()).
Orientation and number of cut lines is set through get_dims() which returns a set of parameters that are subsequently passed to st_regular_lines() and st_unknown_pleasures().
lines <- polygons %>%
st_union() %>%
st_regular_lines(
dims = dims,
mask = TRUE
)
unknown_pleasures <- lines %>%
st_unknown_pleasures(
raster,
dims = dims,
sample_size = 250,
bleed_factor = 3,
# Or "planar"
mode = "xyz",
# Strictly speaking, the "xyz" and polygon
# combination leaves you with closed LINESTRINGs
polygon = TRUE
) %>%
st_geometry() %>%
# We devized the "xyz" mode for export to 3D Modeling software (e.g.,
# Rhino), so we export to dxf.
st_write(
"test_polys.dxf",
delete_dsn = TRUE,
driver = "dxf"
)
unknown_pleasures <- lines %>%
st_unknown_pleasures(
raster,
dims = dims,
sample_size = 250,
bleed_factor = 3,
mode = "planar",
polygon = TRUE
) %>%
st_write(
"test_polys.geojson",
delete_dsn = TRUE
)