An open API service indexing awesome lists of open source software.

https://github.com/mit-spatial-action/unknown_pleasur

Generates regular section cuts through a raster surface for a given extent.
https://github.com/mit-spatial-action/unknown_pleasur

joy-division mapping raster spatial-analysis visualization

Last synced: over 1 year ago
JSON representation

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

Awesome Lists containing this project

README

          

# Unknown PleasuR

![Sample map generated by st_unknown_pleasures.](media/logo.png)

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.](https://jcheshire.com/resources/joy-division-population-surfaces-and-pioneering-electronic-cartography/)

General workflow looks like the below. (For a more thoroughly fleshed out example using real data, see `example.R`.) 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()`.

```r
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

```r
# 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.](media/logo.png)