Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seasmith/sfx
Extra functions for 'sf' Simple Features in R
https://github.com/seasmith/sfx
r r-spatial spatial
Last synced: 3 months ago
JSON representation
Extra functions for 'sf' Simple Features in R
- Host: GitHub
- URL: https://github.com/seasmith/sfx
- Owner: seasmith
- Created: 2020-03-15T22:39:49.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-30T22:06:43.000Z (7 months ago)
- Last Synced: 2024-05-21T02:10:53.355Z (6 months ago)
- Topics: r, r-spatial, spatial
- Language: R
- Homepage: http://seasmith.github.io/packages/sfx/
- Size: 11.3 MB
- Stars: 12
- Watchers: 2
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.Rmd
Awesome Lists containing this project
README
---
output: github_document
---# Extra 'sf' Simple Features manipulations
[![CRAN](http://www.r-pkg.org/badges/version/sfx)](https://cran.r-project.org/package=sfx)
[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-red.svg)](https://www.tidyverse.org/lifecycle/#experimental)
[![License](http://img.shields.io/badge/license-GPL%20%28%3E=%202%29-brightgreen.svg?style=flat)](http://www.gnu.org/licenses/gpl-2.0.html)Still a work-in-progress -- I want to add a few more features, such as:
* Random density points (random points with density values? why? guassian distribution for sampling?)
* Alternative density methods.
See the [Reference section][ref_sec] for detailed examples.
[ref_sec]: http://seasmith.github.io/packages/sfx/reference/index.html
```{r, collapse=TRUE}
library(sf)
library(sfx)
library(ggplot2)
library(stars) # for geom_stars()olinda1 <- sf::read_sf(system.file("shape/olinda1.shp", package = "sf"))
olinda1_centroids <- olinda1 %>%
sf::st_centroid()
```## Point
```{r}
# MASS::kde2d kernel (default)
olinda1_centroids %>%
st_density() %>%
ggplot() +
geom_sf(data = olinda1, fill = NA, color = "gray80") +
geom_sf(aes(color = density)) +
scale_color_viridis_c() +
theme_void()# KernSmooth::bkde2D kernel
olinda1_centroids %>%
st_density(method = "bkde2D") %>%
ggplot() +
geom_sf(data = olinda1, fill = NA, color = "gray80") +
geom_sf(aes(color = density)) +
scale_color_viridis_c() +
theme_void()
```## Grid
```{r}
# n = 10 produces a 10x10 grid
olinda1_centroids %>%
st_density(return_geometry = "grid", n = 10) %>%
ggplot() +
geom_sf(data = olinda1, fill = NA, color = "gray80") +
geom_sf(aes(color = density)) +
scale_color_viridis_c() +
theme_void()
```## Isoband
```{r}
olinda1_centroids %>%
st_density(return_geometry = "isoband") %>%
ggplot() +
geom_sf(aes(fill = level), alpha = 1) +
geom_sf(data = olinda1_centroids, color = "red", size = 2) +
scale_fill_viridis_c()
```## Raster
```{r, eval=TRUE}
# NOT WORKING AS EXPECTED
olinda1_centroids %>%
st_density(return_geometry = "raster", n = 50) %>%
# use lambda expr to place . inside geom_stars
# or else ggplot() will error on fortify() attempt
{
ggplot() +
geom_stars(data = .) +
coord_equal() +
theme_void() +
scale_fill_viridis_c() +
scale_x_discrete(expand = c(0, 0)) +
scale_y_discrete(expand = c(0, 0))
}
```## Current Functions
```{r, eval=FALSE}
# Density estimation (kernel based)
st_density# Joins
st_inner_join
st_left_join
st_anti_join
st_semi_join# Convert logical matrix to logical vector
st_any# Binary logical helpers
st_any_contains
st_any_contains_properly
st_any_covered_by
st_any_covers
st_any_crosses
st_any_disjoint
st_any_equals
st_any_equals_exact
st_any_intersects
st_any_is_within_distance
st_any_overlaps
st_any_touches
st_any_within# Unitless dimensions
st_ul_area
st_ul_distance
st_ul_length# Bounding-box helpers
st_extent
st_xdist
st_ydist
st_xlim
st_ylim
```## Future Functions?
```{r, eval=FALSE}
geom_sf_density()
plot_sf_density()
```