The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Benchmark

a comparison to known estimates

Koen Hufkens

This benchmark visually compares the results of skytrackr to results from the geolocation manual. In particular it compares the results of the SGAT and FlightR outputs to skytrackr approximations. The vignette isn’t run online, with rendered results included as images, however all the code can be used in a reproducible way (to track changes between updates).

1 SGAT

The SGAT demo includes data from the European bee-eater, recorded from a Swiss Ornithological Institute logger.

# read the data from the geolocation manual repo
df <- stk_read_glf(
  "https://raw.githubusercontent.com/slisovski/TheGeolocationManual/refs/heads/master/data/RawData/MerApi/14SA.glf",
   verbose = FALSE)

# automatically screen most spurious days
df <- df |>  
  stk_screen_twl(filter = TRUE)

# estimate upper scale value
scale <- stk_calibrate(df)

# set the twilight range
# note that these values are generally larger
# for the SOI loggers
range <- c(1.5, 3000)

# define land mask with a bounding box
# and an off-shore buffer (in km), in addition
# you can specifiy the resolution of the resulting raster
mask <- stk_mask(
  bbox  =  c(-20, -40, 70, 70), #xmin, ymin, xmax, ymax
  buffer = 10,
  resolution = 0.5 # map grid in degrees corresponding to the buffer in km
)

# define a step selection distribution
ssf <- function(x, shape = 0.7, scale = 100, tolerance = 1500){
  # normalize over expected range with km increments
  norm <- sum(stats::dgamma(1:tolerance, shape = shape, scale = scale))
  prob <- stats::dgamma(x, shape = shape, scale = scale) / norm
  return(prob)
}

locations <- df |>
    skytrackr(
      mask = mask,
      plot = FALSE,
      start_location = c(51.32, 11.96),
      tolerance = 1500, # in km
      scale = log(scale),
      range = range,
      control = list(
        sampler = 'DEzs',
        settings = list(
          burnin = 1000,
          iterations = 3000,
          message = FALSE
        )
      ),
      window_size = 1,
      step_selection = ssf
    )

# save results
saveRDS(locations, "sgat_locations.rds", compress = "xz")

# render map
locations |> stk_map()

2 FlightR

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.