Skip to content

Convert digital images into georeferenced rasters

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

dieghernan/rasterpic

Repository files navigation

rasterpic

CRAN status CRAN results R-CMD-check R-hub codecov r-universe CodeFactor DOI Project Status: Active – The project has reached a stable, usable state and is being actively developed. status

rasterpic is a tiny package with one single goal: to transform an image into a SpatRaster object (see ?terra::SpatRaster).

Installation

Install rasterpic from CRAN:

install.packages("rasterpic")

You can install the developing version of rasterpic with:

remotes::install_github("dieghernan/rasterpic")

Alternatively, you can install rasterpic using the r-universe:

# Install rasterpic in R:
install.packages("rasterpic", repos = c(
  "https://dieghernan.r-universe.dev",
  "https://cloud.r-project.org"
))

Example

This package allows you to create cool maps by using a wide variety of objects:

  • Spatial object created with the sf package: sf, sfc, sfg or bbox.
  • Spatial objects created with the terra package: SpatRaster, SpatVector, SpatExtent.
  • A vector of coordinates with the form c(xmin, ymin, xmax, yman)

An example using an sf object:

library(rasterpic)
library(sf)
library(terra)

# The flag of the United Kingdom
img <- system.file("img/UK_flag.png", package = "rasterpic")
uk <- read_sf(system.file("gpkg/UK.gpkg", package = "rasterpic"))


class(uk)
#> [1] "sf"         "tbl_df"     "tbl"        "data.frame"

# Rasterize!
uk_flag <- rasterpic_img(uk, img)

uk_flag
#> class       : SpatRaster 
#> dimensions  : 400, 800, 3  (nrow, ncol, nlyr)
#> resolution  : 5398.319, 5398.319  (x, y)
#> extent      : -2542183, 1776472, 6430573, 8589900  (xmin, xmax, ymin, ymax)
#> coord. ref. : WGS 84 / Pseudo-Mercator (EPSG:3857) 
#> source(s)   : memory
#> colors RGB  : 1, 2, 3 
#> names       : lyr.1, lyr.2, lyr.3 
#> min values  :     0,    14,    35 
#> max values  :   255,   255,   255

# Plot it!
# Using ggplot2 + tidyterra
library(tidyterra)
library(ggplot2)

autoplot(uk_flag) +
  geom_sf(data = uk, color = alpha("blue", 0.5))

We can also play with other parameters, as well as modifying the alignment of the image with respect to the object:

# Align, crop and mask
uk_flag2 <- rasterpic_img(uk, img, halign = 0.2, crop = TRUE, mask = TRUE)

autoplot(uk_flag2) +
  geom_sf(data = uk, fill = NA)

Image formats admitted

rasterpic can parse the following image formats:

  • png files.
  • jpg/jpeg files.
  • tif/tiff files.

Citation

Hernangómez D (2024). rasterpic: Convert Digital Images into SpatRaster Objects. doi:10.5281/zenodo.5910095, https://dieghernan.github.io/rasterpic/.

A BibTeX entry for LaTeX users is:

@Manual{R-rasterpic,
  title = {{rasterpic}: Convert Digital Images into {SpatRaster} Objects},
  author = {Diego Hernangómez},
  year = {2024},
  version = {0.2.5},
  doi = {10.5281/zenodo.5910095},
  url = {https://dieghernan.github.io/rasterpic/},
  abstract = {Generate SpatRaster objects, as defined by the terra package, from digital images, using a specified spatial object as a geographical reference.},
}