{
  "_id": "6af31cd4535793c8533266ce",
  "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",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.1.0",
  "Config/pak/sysreqs": "libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev\nlibssl-dev libproj-dev libsqlite3-dev libudunits2-dev",
  "Repository": "https://metrictrails.r-universe.dev",
  "Date/Publication": "2026-10-11 10:49:44 UTC",
  "RemoteUrl": "https://github.com/metrictrails/metrictrails",
  "RemoteRef": "HEAD",
  "RemoteSha": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-11-10 13:05:24 UTC",
    "User": "root"
  },
  "Author": "Raimundo Sanchez [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-2242-1335>)",
  "Maintainer": "Raimundo Sanchez <raimundosanchezu@gmail.com>",
  "_user": "metrictrails",
  "_type": "src",
  "_file": "metrictrails_1.0.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/83eb916f397285d9517e32a186c6be8af8670c2a144adb07ecfebc4241d5026b",
  "_filesize": 958803,
  "_sha256": "83eb916f397285d9517e32a186c6be8af8670c2a144adb07ecfebc4241d5026b",
  "_expires": "2027-02-18T13:32:02.000Z",
  "_created": "2026-11-10T13:05:24.000Z",
  "_published": "2026-11-10T13:32:04.846Z",
  "_upstream": "https://github.com/metrictrails/metrictrails",
  "_status": "success",
  "_maintainer": {
    "name": "Raimundo Sanchez",
    "email": "raimundosanchezu@gmail.com",
    "login": "raimun2",
    "description": "Systems Builder.",
    "uuid": 13170576,
    "orcid": "0000-0003-2242-1335"
  },
  "_jobs": [
    {
      "job": 129847540109,
      "time": 157,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13767706884"
    },
    {
      "job": 129847539863,
      "time": 141,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13766742477"
    },
    {
      "job": 129847539873,
      "time": 166,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13767904652"
    },
    {
      "job": 129847539842,
      "time": 210,
      "config": "macos-release-arm64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13769891053"
    },
    {
      "job": 129845613152,
      "time": 228,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13767406767"
    },
    {
      "job": 129847539713,
      "time": 131,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13767876328"
    },
    {
      "job": 129847539797,
      "time": 90,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13767546559"
    },
    {
      "job": 129847539926,
      "time": 126,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13766582801"
    },
    {
      "job": 129847539868,
      "time": 88,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13766926926"
    }
  ],
  "_buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126",
  "_commit": {
    "id": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
    "author": "Raimundo Sanchez <raimundosanchezu@gmail.com>",
    "committer": "Raimundo Sanchez <raimundosanchezu@gmail.com>",
    "message": "Update README.md\n",
    "time": 1791715784
  },
  "_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": "metrictrails",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-41",
      "n": 8
    }
  ],
  "_tags": [
    {
      "name": "v1.0.0",
      "date": "2026-10-11"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "raimun2",
      "count": 8,
      "uuid": 13170576
    }
  ],
  "_userbio": {
    "uuid": 354268414,
    "type": "organization",
    "name": "Metric Trails",
    "followers": 0,
    "description": "Every metre counts"
  },
  "_downloads": {
    "count": 421,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/metrictrails"
  },
  "_devurl": "https://github.com/raimun2/metrictrails",
  "_searchresults": 0,
  "_rbuild": "4.6.2",
  "_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"
  ],
  "_homeurl": "https://github.com/metrictrails/metrictrails",
  "_realowner": "metrictrails",
  "_cranurl": true,
  "_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/metrictrails/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-11 09:59:35",
      "modified": "2026-10-11 09:59:35",
      "commits": 1
    }
  ],
  "_score": 3.6989700043360187,
  "_indexed": true,
  "_nocasepkg": "metrictrails",
  "_universes": [
    "metrictrails",
    "raimun2"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-11-10T13:07:36.000Z",
      "distro": "resolute",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/67c26e61a120a76048e0afae46fefb6b67050df25a72660a3966ef364df4d664",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-11-10T13:07:32.000Z",
      "distro": "resolute",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/9f825efdc273a5cce3857f1c0d332bebdb6aecb990e641a9690a8c2c24712c40",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-11-10T13:27:15.000Z",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/a8483176d4e148cfef00ee305bbe2b661f068ca46ff8387e8a2577fd8e1ec9f4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    },
    {
      "r": "4.6.2",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-11-10T13:30:28.000Z",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/0ce1b213f90717d84e9aed5ca0f3e5980a89c570c182195753940d6c363e0cb1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.0",
      "date": "2026-11-10T13:07:55.000Z",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/135fc39433f3f1768f74228dc57251483d87e0242019e2d1d7ba7d45a8f7d6a0",
      "status": "success",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-11-10T13:06:34.000Z",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/587a23d5e70adb835f9b99765c087b192df73c567d096463c620cd975fcf53f7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-11-10T13:06:49.000Z",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/2c68258dde39b835a48d7cf86f91cd4e64eb27638165217c46ff30c3dfa09568",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-11-10T13:06:32.000Z",
      "commit": "ac1c9ee25583ec657dc57f4fa684e98261b2354d",
      "fileid": "https://r2.ropensci.org/d8a5d63351b7a81e45c5878e4756ba11dcda38d23d8a22cd4196f0331f7b1a0b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/metrictrails/actions/runs/42820782126"
    }
  ]
}