Learn R Programming

REAT (version 3.0.2)

dist.mat: Euclidean distance matrix between points

Description

Calculation of an euclidean distance matrix between points with stated coordinates (lat, lon)

Usage

dist.mat(startpoints, sp_id, lat_start, lon_start, endpoints, ep_id, 
lat_end, lon_end, unit = "km")

Arguments

startpoints

A data frame containing the start points

sp_id

Column containing the IDs of the startpoints in the data frame startpoints

lat_start

Column containing the latitudes of the start points in the data frame startpoints

lon_start

Column containing the longitudes of the start points in the data frame startpoints

endpoints

A data frame containing the end points

ep_id

Column containing the IDs of the endpoints in the data frame endpoints

lat_end

Column containing the latitudes of the end points in the data frame endpoints

lon_end

Column containing the longitudes of the end points in the data frame endpoints

unit

Unit of the resulting distance: unit="m" for meters, unit="km" for kilometers or unit="miles" for miles

Value

The function returns a data.frame containing 4 columns: The start point IDs (from), the end point IDs (to), the combination of both (from_to) and the calculated distance (distance).

Details

The function calculates an euclidean distance matrix between points with stated coordinates (lat and lon). While \(m\) start points and \(n\) end points are given, the output is a linear \(m * n\) distance matrix.

References

de Lange, N. (2013): “Geoinformatik in Theorie und Praxis”. 3rd edition. Berlin : Springer Spektrum.

Krider, R. E./Putler, R. S. (2013): “Which Birds of a Feather Flock Together? Clustering and Avoidance Patterns of Similar Retail Outlets”. In: Geographical Analysis, 45, 2, p. 123-149

See Also

dist, dist.buf

Examples

Run this code
# NOT RUN {
citynames <- c("Goettingen", "Karlsruhe", "Freiburg")
lat <- c(51.556307, 49.009603, 47.9874)
lon <- c(9.947375, 8.417004, 7.8945)
citynames <- c("Goettingen", "Karlsruhe", "Freiburg")
cities <- data.frame(citynames, lat, lon)
dist.mat (cities, "citynames", "lat", "lon", cities, "citynames", "lat", "lon")
# Euclidean distance matrix (3 x 3 cities = 9 distances)
dist.buf (cities, "citynames", "lat", "lon", cities, "citynames", "lat", "lon", bufdist = 300000)
# Cities within 300 km
# }

Run the code above in your browser using DataLab