Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/statnmap/cartomisc
Miscellaneous tools for spatial data manipulation and analysis
https://github.com/statnmap/cartomisc
Last synced: 26 days ago
JSON representation
Miscellaneous tools for spatial data manipulation and analysis
- Host: GitHub
- URL: https://github.com/statnmap/cartomisc
- Owner: statnmap
- License: other
- Created: 2019-04-26T12:01:44.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-03-19T15:51:53.000Z (over 2 years ago)
- Last Synced: 2024-08-13T07:13:27.279Z (4 months ago)
- Language: R
- Homepage: https://statnmap.github.io/cartomisc/
- Size: 621 KB
- Stars: 10
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - statnmap/cartomisc - Miscellaneous tools for spatial data manipulation and analysis (R)
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# cartomisc[![R build status](https://github.com/statnmap/cartomisc/workflows/R-CMD-check/badge.svg)](https://github.com/statnmap/cartomisc/actions)
The goal of {cartomisc} is to store a few useful functions for spatial data manipulation and analysis.
## Installation
You can install the dev version on Github
```{r, eval=FALSE}
# install.packages("remotes")
remotes::install_github("statnmap/cartomisc")
```# Usage
```{r, message=FALSE}
library(dplyr)
library(raster)
library(cartomisc)
library(ggplot2)
library(sf)
```## Extract part of the data with `gplot_data`
To draw multiple raster on the same ggplot2, or to draw raster after other objects (points, polygons, lines)
- data are extracted as a tibble
- data can then be added to a ggplot2 with `geom_tile````{r}
# Read some data
slogo <- stack(system.file("external/rlogo.grd", package = "raster"))
slogo# Get partial raster data to plot in ggplot
r.gg <- gplot_data(slogo)# Remove NA to reduce size of table
r.gg.nona <- r.gg %>%
filter(!is.na(value))r.gg.nona
```### Plot with ggplot2
```{r, fig.width=12, fig.height=4}
# Plot
ggplot(r.gg.nona) +
geom_tile(aes(x = x, y = y, fill = value)) +
scale_fill_gradient("Probability", low = 'yellow', high = 'blue') +
facet_wrap(vars(variable)) +
coord_equal()
```## Sun position
Calculate sun position for hillShade
```{r}
sun_position <- sun_position(2019, 04, 26,
hour = 12, min = 0, sec = 0,
lat = 46.5, long = 6.5
)
sun_position
```Use with hillShade
```{r}
r <- raster(system.file("external/rlogo.grd", package = "raster"))
# slope and aspect
r_slope <- terrain(r, opt = "slope")
r_aspect <- terrain(r, opt = "aspect")
# hillshade
r_hillshade <- hillShade(r_slope, r_aspect, angle = sun_position$elevation, direction = sun_position$azimuth)
# plot
image(r)
image(r_hillshade, col = grey(seq(0, 1, 0.1), alpha = 0.5), add = TRUE)
```## Create buffer areas with attribute of the closest region
- Download some data
```{r}
# Define where to save the dataset
extraWD <- tempdir()
# Get some data available to anyone
if (!file.exists(file.path(extraWD, "departement.zip"))) {
githubURL <- "https://github.com/statnmap/blog_tips/raw/master/2018-07-14-introduction-to-mapping-with-sf-and-co/data/departement.zip"
download.file(githubURL, file.path(extraWD, "departement.zip"))
unzip(file.path(extraWD, "departement.zip"), exdir = extraWD)
}
```- Reduce the dataset to a small region
```{r}
departements_l93 <- read_sf(dsn = extraWD, layer = "DEPARTEMENT")# Reduce dataset
bretagne_l93 <- departements_l93 %>%
filter(NOM_REG == "BRETAGNE")
```- Calculate the regional buffer area using `regional_seas()`
```{r}
bretagne_regional_2km_l93 <- regional_seas(
x = bretagne_l93,
group = "NOM_DEPT",
dist = units::set_units(30, km), # buffer distance
density = units::set_units(0.5, 1/km) # density of points (the higher, the more precise the region attribution)
)
```- Plot the data
```{r}
ggplot() +
geom_sf(data = bretagne_regional_2km_l93,
aes(colour = NOM_DEPT, fill = NOM_DEPT),
alpha = 0.25) +
geom_sf(data = bretagne_l93,
aes(fill = NOM_DEPT),
colour = "grey20",
alpha = 0.5) +
scale_fill_viridis_d() +
scale_color_viridis_d() +
theme_bw()
```