Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mit-spatial-action/unknownpleasur

Repository files navigation

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...

devtools::install_github("mit-spatial-action/unknownpleasur")

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().

dims <- get_dims(polygons, n = 100, type = "vertical") # or "horizontal"

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"
)

# Or, for more GIS-ready output...
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
)

About

Generates regular section cuts through a raster surface for a given extent.

Topics

Resources

Readme

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
LICENSE.md

Stars

Watchers

Forks

Contributors

Languages