{
  "_id": "6ad92953021a938ed758dfeb",
  "Package": "metrictrails",
  "Title": "Processing of GNSS Streams from Sports Watches",
  "Version": "1.0.0",
  "Authors@R": "person(given = \"Raimundo\",\nfamily = \"Sanchez\",\nrole = c(\"aut\", \"cre\"),\nemail = \"raimundosanchezu@gmail.com\",\ncomment = c(ORCID = \"0000-0003-2242-1335\"))",
  "Description": "Tools to read, clean and standardise GNSS (Global\nNavigation Satellite System) streams recorded by sports watches\nand similar devices, with a focus on trail and mountain\nrunning. The pipeline reads GPX files, applies a naming\nconvention, sanitises coordinates (Kalman, LOESS, Gaussian\nkernel or Savitzky-Golay smoothing, and red flags for\nimplausible readings), resamples the trajectory to a uniform\nspatial resolution derived from the Nyquist criterion, and\nreplaces elevation with values from a Digital Elevation Model.\nDerived measures include speed, slope, elevation gain and\nkilometre-effort, Tobler hiking function parameters fitted by\nquantile regression, comparison between streams, detection of\npasses along a route and map matching to a known reference\ntrail by dynamic programming. Methods follow Sanchez and\nVillena (2020) <doi:10.1177/1754337120918975>, Sanchez et al.\n(2024) <doi:10.1109/ICECET61485.2024.10698606>, Sanchez et al.\n(2025) <doi:10.1177/17543371251341660> and Martinez, Sanchez\nand Diaz (2026) <doi:10.1109/ICECET65726.2026.11632531>.",
  "URL": "https://github.com/raimun2/metrictrails",
  "BugReports": "https://github.com/raimun2/metrictrails/issues",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.1.0",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-21 21:03:05 UTC",
    "User": "root"
  },
  "Author": "Raimundo Sanchez [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-2242-1335>)",
  "Maintainer": "Raimundo Sanchez <raimundosanchezu@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-21 15:20:02 UTC",
  "RemoteUrl": "https://github.com/cran/metrictrails",
  "RemoteRef": "HEAD",
  "RemoteSha": "3c722c2732253cd74552a2cf7aabeb70f33e09b5",
  "_user": "cran",
  "_type": "src",
  "_file": "metrictrails_1.0.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/a7e8fc8a59ae76e7f9325bc7d736aaa0dec138bd17971ee9fe43c75f97c0ff83",
  "_filesize": 960777,
  "_sha256": "a7e8fc8a59ae76e7f9325bc7d736aaa0dec138bd17971ee9fe43c75f97c0ff83",
  "_expires": "2027-01-29T21:06:25.000Z",
  "_created": "2026-10-21T21:03:05.000Z",
  "_published": "2026-10-21T21:06:27.640Z",
  "_upstream": "https://github.com/cran/metrictrails",
  "_status": "success",
  "_maintainer": {
    "name": "Raimundo Sanchez",
    "email": "raimundosanchezu@gmail.com",
    "login": "raimun2",
    "linkedin": "in/raimun2",
    "description": "Systems Builder.",
    "uuid": 13170576,
    "orcid": "0000-0003-2242-1335"
  },
  "_jobs": [
    {
      "job": 119484598558,
      "time": 133,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12382461602"
    },
    {
      "job": 119484598660,
      "time": 153,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12382076981"
    },
    {
      "job": 119482617068,
      "time": 235,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12382481070"
    },
    {
      "job": 119484598710,
      "time": 123,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12381221550"
    },
    {
      "job": 119484598605,
      "time": 135,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12380909628"
    },
    {
      "job": 119484598603,
      "time": 130,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12381312558"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/39675005960",
  "_commit": {
    "id": "3c722c2732253cd74552a2cf7aabeb70f33e09b5",
    "author": "Raimundo Sanchez <raimundosanchezu@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.0.0\n",
    "time": 1792596002
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "sf",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "terra",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "curl",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-43",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.0.0",
      "date": "2026-10-21"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "raimun2",
      "count": 1,
      "uuid": 13170576
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/metrictrails"
  },
  "_devurl": "https://github.com/raimun2/metrictrails",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/metrictrails.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.0.0",
      "date": "2026-10-21"
    }
  ],
  "_exports": [
    "%>%",
    "compare_stream",
    "detect_stream",
    "differential_stream",
    "ele_correction",
    "fractal_stream",
    "get_dem",
    "locate_stream",
    "match_stream",
    "project_stream",
    "read_stream",
    "resample_dem",
    "resample_stream",
    "resolution_stream",
    "sanitize_stream",
    "summarise_stream",
    "tobler_speed",
    "tobler_stream",
    "uniform_stream",
    "write_stream"
  ],
  "_datasets": [
    {
      "name": "strava_metadata",
      "title": "Metadata of the activities in strava_streams",
      "object": "strava_metadata",
      "class": [
        "data.frame"
      ],
      "fields": [
        "achievement_count",
        "athlete.id",
        "athlete.resource_state",
        "athlete_count",
        "average_cadence",
        "average_heartrate",
        "average_speed",
        "average_temp",
        "comment_count",
        "commute",
        "display_hide_heartrate_option",
        "distance",
        "elapsed_time",
        "elev_high",
        "elev_low",
        "end_latlng1",
        "end_latlng2",
        "external_id",
        "flagged",
        "from_accepted_tag",
        "has_heartrate",
        "has_kudoed",
        "heartrate_opt_out",
        "id",
        "kudos_count",
        "location_country",
        "manual",
        "map.id",
        "map.resource_state",
        "map.summary_polyline",
        "max_heartrate",
        "max_speed",
        "moving_time",
        "name",
        "photo_count",
        "pr_count",
        "private",
        "resource_state",
        "start_date",
        "start_date_local",
        "start_latitude",
        "start_latlng1",
        "start_latlng2",
        "start_longitude",
        "suffer_score",
        "timezone",
        "total_elevation_gain",
        "total_photo_count",
        "trainer",
        "type",
        "upload_id",
        "upload_id_str",
        "utc_offset",
        "visibility",
        "workout_type",
        "average_watts",
        "device_watts",
        "gear_id",
        "kilojoules",
        "location_city",
        "location_state"
      ],
      "rows": 2,
      "table": true,
      "tojson": true
    },
    {
      "name": "strava_streams",
      "title": "GNSS streams of two activities from the Strava API",
      "object": "strava_streams",
      "class": [
        "data.frame"
      ],
      "fields": [
        "lon",
        "lat",
        "ele",
        "time",
        "cadence",
        "distance",
        "grade_smooth",
        "heartrate",
        "moving",
        "temp",
        "velocity_smooth",
        "id",
        "type"
      ],
      "rows": 4148,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "compare_stream",
      "title": "Compare two streams",
      "topics": [
        "compare_stream"
      ]
    },
    {
      "page": "detect_stream",
      "title": "Detect the passes of a stream along a route",
      "topics": [
        "detect_stream"
      ]
    },
    {
      "page": "differential_stream",
      "title": "Spatial and temporal derivatives of a stream",
      "topics": [
        "differential_stream"
      ]
    },
    {
      "page": "ele_correction",
      "title": "Replace the elevation of a stream with values from a DEM",
      "topics": [
        "ele_correction"
      ]
    },
    {
      "page": "fractal_stream",
      "title": "Fractal dimension of a stream",
      "topics": [
        "fractal_stream"
      ]
    },
    {
      "page": "get_dem",
      "title": "Download a Digital Elevation Model for a stream",
      "topics": [
        "get_dem"
      ]
    },
    {
      "page": "locate_stream",
      "title": "Locate a stream along a reference",
      "topics": [
        "locate_stream"
      ]
    },
    {
      "page": "match_stream",
      "title": "Match a stream to a known reference trail",
      "topics": [
        "match_stream"
      ]
    },
    {
      "page": "project_stream",
      "title": "Project a stream to metric coordinates",
      "topics": [
        "project_stream"
      ]
    },
    {
      "page": "read_stream",
      "title": "Read a GNSS stream from a GPX file",
      "topics": [
        "read_stream"
      ]
    },
    {
      "page": "resample_dem",
      "title": "Change the resolution of a DEM",
      "topics": [
        "resample_dem"
      ]
    },
    {
      "page": "resample_stream",
      "title": "Resample a stream to a uniform spatial resolution",
      "topics": [
        "resample_stream"
      ]
    },
    {
      "page": "resolution_stream",
      "title": "Spatial resolution of a stream",
      "topics": [
        "resolution_stream"
      ]
    },
    {
      "page": "sanitize_stream",
      "title": "Sanitize the coordinates of a stream and flag implausible readings",
      "topics": [
        "sanitize_stream"
      ]
    },
    {
      "page": "strava_metadata",
      "title": "Metadata of the activities in strava_streams",
      "topics": [
        "strava_metadata"
      ]
    },
    {
      "page": "strava_streams",
      "title": "GNSS streams of two activities from the Strava API",
      "topics": [
        "strava_streams"
      ]
    },
    {
      "page": "summarise_stream",
      "title": "Summary measures of a stream",
      "topics": [
        "summarise_stream"
      ]
    },
    {
      "page": "tobler_speed",
      "title": "Speed predicted by the Tobler function",
      "topics": [
        "tobler_speed"
      ]
    },
    {
      "page": "tobler_stream",
      "title": "Tobler parameters of a stream",
      "topics": [
        "tobler_stream"
      ]
    },
    {
      "page": "uniform_stream",
      "title": "Uniform naming convention for a stream",
      "topics": [
        "uniform_stream"
      ]
    },
    {
      "page": "write_stream",
      "title": "Write a GNSS stream to a GPX file",
      "topics": [
        "write_stream"
      ]
    }
  ],
  "_readme": "https://github.com/cran/metrictrails/raw/HEAD/README.md",
  "_rundeps": [
    "class",
    "classInt",
    "cli",
    "DBI",
    "e1071",
    "glue",
    "KernSmooth",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "proxy",
    "Rcpp",
    "rlang",
    "s2",
    "sf",
    "terra",
    "tibble",
    "units",
    "utf8",
    "vctrs",
    "wk"
  ],
  "_vignettes": [
    {
      "source": "metrictrails.Rmd",
      "filename": "metrictrails.html",
      "title": "From a GPX file to research-grade trail measures",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Ingest",
        "2. Naming convention",
        "3. Sanitize",
        "4. Resample: the Nyquist resolution",
        "5. Elevation from a DEM",
        "Measures",
        "Tobler parameters",
        "Two streams",
        "Matching to a known reference",
        "Writing the result",
        "References"
      ],
      "created": "2026-10-21 15:20:02",
      "modified": "2026-10-21 15:20:02",
      "commits": 1
    }
  ],
  "_score": 2.6989700043360187,
  "_indexed": false,
  "_nocasepkg": "metrictrails",
  "_universes": [
    "cran",
    "raimun2"
  ],
  "_indexurl": "https://raimun2.r-universe.dev/metrictrails",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-10-21T21:05:16.000Z",
      "distro": "resolute",
      "commit": "3c722c2732253cd74552a2cf7aabeb70f33e09b5",
      "fileid": "https://r2.ropensci.org/cc468df058a71903ce278fd96fbac574e1cb410c195f4d69de515afbf3e5751a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39675005960"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-10-21T21:05:08.000Z",
      "distro": "resolute",
      "commit": "3c722c2732253cd74552a2cf7aabeb70f33e09b5",
      "fileid": "https://r2.ropensci.org/9f721af62842f653a7630acc5b84b98265e7703ff3b1fa64307f6929abcf2c02",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39675005960"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.0",
      "date": "2026-10-21T21:05:25.000Z",
      "commit": "3c722c2732253cd74552a2cf7aabeb70f33e09b5",
      "fileid": "https://r2.ropensci.org/967498a780057adab07679dcf8ff90bbdb8eb368ba2d56ca6d676d613db33169",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39675005960"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-10-21T21:04:40.000Z",
      "commit": "3c722c2732253cd74552a2cf7aabeb70f33e09b5",
      "fileid": "https://r2.ropensci.org/c83ef6c780533fde0163f50402b872d029bf73728cd3de3df2dbade56ba15c8a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39675005960"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-10-21T21:04:29.000Z",
      "commit": "3c722c2732253cd74552a2cf7aabeb70f33e09b5",
      "fileid": "https://r2.ropensci.org/069de2933247566202b05756fa24fb82b7d2e4e02811431afa548346d8e56c28",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39675005960"
    }
  ]
}