Calculate distances between all locations within a known locations table and return a tibble with the row indices and separation distances of those records separated by less than distanceThreshold meters. Records are returned in order of distance.

It is useful when working with new metadata tables to identify adjacent locations early on so that decisions can be made about the appropriateness of the specified distanceThreshold.

table_findAdjacentDistances(
  locationTbl = NULL,
  distanceThreshold = NULL,
  measure = c("geodesic", "haversine", "vincenty", "cheap")
)

Arguments

locationTbl

Tibble of known locations.

distanceThreshold

Distance in meters.

measure

One of "haversine" "vincenty", "geodesic", or "cheap" specifying desired method of geodesic distance calculation.

See geodist::geodist for details.

Value

Tibble of row indices and distances for those locations separated by less than distanceThreshold meters.

Note

The measure "cheap" may be used to speed things up depending on the spatial scale being considered. Distances calculated with measure = "cheap" will vary by a few meters compared with those calculated using measure = "geodesic".

Examples

library(MazamaLocationUtils)

meta <- wa_airfire_meta

# Any locations closer than 2 km?
table_findAdjacentDistances(meta, distanceThreshold = 2000)
#> # A tibble: 0 × 3
#> # ℹ 3 variables: row1 <dbl>, row2 <dbl>, distance <dbl>

# How about 4 km?
table_findAdjacentDistances(meta, distanceThreshold = 4000)
#> # A tibble: 4 × 3
#>    row1  row2 distance
#>   <int> <int>    <dbl>
#> 1    46    74    2412.
#> 2    30    46    3329.
#> 3    39    70    3599.
#> 4    49    74    3628.