pleistodist_relativewidth: Calculate width of islands relative to each other

pleistodist_relativewidthR Documentation

Calculate width of islands relative to each other

Description

This function calculates the width of source islands relative to their recipient islands for every pairwise combination of islands as specified by the user-defined source points. The island width is calculated by drawing a line between the centroids of the two islands, and plotting a line perpendicular to the centroid-centroid line extending from the centroid of the source island to the island edges. This widthline changes relative to the orientation of the receiving island, and is mostly needed for calculating the expected net inter-island migration, as defined in chapter 6 of MacArthur and Wilson (1967).

Usage

pleistodist_relativewidth(points, epsg, intervalfile, mapdir, outdir)

Arguments

points

A user-generated multi-point shapefile (.shp) containing at least two points. If the shapefile attribute table contains a column labelled 'Name', the output distance matrix will use the identifiers in this column to label each pairwise comparison. Otherwise, the output distance matrix will use the attribute FID values instead.

epsg

The projected coordinate system in EPSG code format. Because of the curvature of the Earth's surface, we need to apply a map projection to accurately calculate straight-line distances between points instead of using the default WGS84 geographical coordinate system. Users should specify a projected coordinate system appropriate to the geographic region being analysed using the projection's associated EPSG code (https://epsg.org/home). Geographic coordinate system projections are not recommended as those will result in distance matrices calculated in decimal degrees rather than in distance units.

intervalfile

This is the master control file generated using either the getintervals_time() or getintervals_sealvl() function that defines the number of intervals, the sea level at each interval, and the duration of each interval. By default, this function will use the "intervals.csv" file stored in the output folder, but users can also specify their own custom interval file (with nice round mean sea level values, for example), although users need to ensure that the same column names are preserved, and be aware that custom interval files may lead to inaccurate weighted mean distance calculations.

mapdir

The directory containing map outputs from the makemaps() function (i.e. the directory containing the raster_flat, raster_topo, and shapefile folders).

outdir

Output directory for the inter-island relative width matrix file. If the specified output directory doesn't already exist, PleistoDist will create the output directory.

Value

This function outputs an asymmetric pairwise distance matrix of relative island widths in long format, with one column per interval. Because this distance matrix is asymmetric, the directionality of the distance calculation matters.

Examples


#create temp directory
path <- file.path(tempdir())
#create points shapefile
points <- sf::st_multipoint(rbind(c(179.41256,-17.79426), c(179.27600,-17.97850)))
#convert points to feature geometry
points <- sf::st_sfc(points)
points <- sf::st_cast(points, "POINT")
#set default projection (WGS84)
sf::st_crs(points) <- 4326
#save shapefile
sf::write_sf(points,paste0(path,"/points.shp"))
#load bathymetry file
fiji <- system.file("extdata","FJ.asc",package="PleistoDist")
#generate interval file for 2 intervals and 20 kya cutoff time, binning by time
getintervals_time(time=20,intervals=2,outdir=path)
#generate maps based on interval file, projecting map using EPSG:3141
makemaps(inputraster=fiji,epsg=3141,intervalfile=paste0(path,"/intervals.csv"),outdir=path)
#calculate relative source island width, projecting points using EPSG:3141
pleistodist_relativewidth(points=paste0(path,"/points.shp"),epsg=3141,
    intervalfile=paste0(path,"/intervals.csv"),mapdir=path,outdir=path)


g33k5p34k/PleistoDistR documentation built on Oct. 9, 2022, 5:27 a.m.