fisheye

R-CMD-check codecov

The goal of fisheye is to create base maps focusing on a specific location using an azimuthal logarithmic distance transformation.

Installation

You can install the development version of fisheye from GitHub with:

# install.packages("remotes")
remotes::install_github("riatelab/fisheye")

Example

This is a basic example:

library(fisheye)
library(mapsf)
#> Le chargement a nécessité le package : sf
#> Linking to GEOS 3.9.0, GDAL 3.2.2, PROJ 7.1.0; sf_use_s2() is TRUE
# Import dataset
ncraw <- st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE)
nc <- st_transform(ncraw, 3857)
par(mfrow = c(1,2))
mf_map(nc, col ="grey90")
mf_map(nc[51, ], add = TRUE, col = "grey40")
mf_title("Original Map")
# transform the basemap
nc_fe  <- fisheye(nc, centre = nc[51, ])
mf_map(nc_fe, col ="grey90")
mf_map(nc_fe[51, ], add = TRUE, col = "grey40")
mf_title("Log-Azimuthal Projection")

See a more detailed example here:

References

Hägerstrand, T. (1957). Migration and Area: A Survey of a Sample of Swedish Migration Fields and Hypothetical Considerations of their Genesis. Lund Studies in Geography, Series B, Human Geography, Department of Geography, University of Lund, Lund.
Snyder, J.P. (1987). “Magnifying-Glass” Azimuthal Map Projections. The American Cartographer, 14:1, 61-68, DOI: 10.1559/152304087783875318
Boutoura, C., Tsioukas, V., & Tsorlini, A. (2012). Experimenting “fisheye-lens functions” in studying digitally particular historic maps. e-Perimetron (ISSN 1790 - 3769). 7. 111-123. custom software
Roughan, M. (2017). Log-azimuthal maps. https://roughan.info/math/log-az/ MATLAB
Rivière, P. (2018). The Log-Azimuthal projection. https://observablehq.com/@fil/log-azimuthal javascript
Jansen, T. (2018). “Magnifying-Glass” projections. https://observablehq.com/@toja/magnifying-glass-projections javascript
Sahasrabuddhe, R., Lambiotte, R., & Alessandretti, L. (2021). From centre to centres: polycentric structures in individual mobility. arXiv preprint arXiv:2108.08113. python