Skip to contents

Calculate isotropic Sum of Exponentially Decaying Contributions (SEDC) covariates

Usage

sum_edc_mod(
  from = NULL,
  locs = NULL,
  locs_id = NULL,
  sedc_bandwidth = NULL,
  target_fields = NULL
)

Arguments

from

SpatVector(1). Point locations which contain point-source covariate data.

locs

sf/SpatVector(1). Locations where the sum of exponentially decaying contributions are calculated.

locs_id

character(1). Name of the unique id field in point_to.

sedc_bandwidth

numeric(1). Distance at which the source concentration is reduced to exp(-3) (approximately -95 %)

target_fields

character(varying). Field names in characters.

Value

a data.frame (tibble) or SpatVector object with input field names with a suffix "_sedc" where the sums of EDC are stored. Additional attributes are attached for the EDC information.

  • `attr(result, "sedc_bandwidth")“: the bandwidth where concentration reduces to approximately five percent

  • `attr(result, "sedc_threshold")“: the threshold distance at which emission source points are excluded beyond that

Note

The function is originally from chopin Distance calculation is done with terra functions internally. Thus, the function internally converts sf objects in point_* arguments to terra. The threshold should be carefully chosen by users.

References

messier2012integratingamadeus

web_sedctutorial_packageamadeus

Author

Insang Song

Examples

set.seed(101)
ncpath <- system.file("gpkg/nc.gpkg", package = "sf")
nc <- terra::vect(ncpath)
nc <- terra::project(nc, "EPSG:5070")
pnt_locs <- terra::centroids(nc, inside = TRUE)
pnt_locs <- pnt_locs[, "NAME"]
pnt_from <- terra::spatSample(nc, 10L)
pnt_from$pid <- seq(1, 10)
pnt_from <- pnt_from[, "pid"]
pnt_from$val1 <- rgamma(10L, 1, 0.05)
pnt_from$val2 <- rgamma(10L, 2, 1)

vals <- c("val1", "val2")
sum_edc_mod(pnt_locs, pnt_from, "NAME", 1e4, vals)
#> Joining with `by = join_by(from_id)`
#> Joining with `by = join_by(to_id)`
#> Joining with `by = join_by(from_id, to_id)`
#> # A tibble: 8 × 3
#>   NAME          val1     val2
#>   <chr>        <dbl>    <dbl>
#> 1 Currituck  0.397   0.119   
#> 2 Franklin   0.00767 0.000963
#> 3 Madison    0.00859 0.00400 
#> 4 Polk       0.0603  0.00367 
#> 5 Randolph   0.0343  0.0468  
#> 6 Rutherford 0.116   0.00708 
#> 7 Stokes     0.0443  0.00493 
#> 8 Yancey     0.0559  0.0260