Skip to content

mit-spatial-action/unknownpleasur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

unknownpleasur

R-CMD-check License Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. DOI

Sample map generated by st_unknown_pleasures.

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

dxf_screenshot

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

Sample map generated by st_unknown_pleasures.

About

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

Topics

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
LICENSE.md

Stars

Watchers

Forks

Languages