{
  "_id": "6adabde7343c88418cb7234b",
  "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://raimun2.r-universe.dev",
  "Date/Publication": "2026-10-23 00:57:55 UTC",
  "RemoteUrl": "https://github.com/raimun2/metrictrails",
  "RemoteRef": "HEAD",
  "RemoteSha": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-23 01:49:15 UTC",
    "User": "root"
  },
  "Author": "Raimundo Sanchez [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-2242-1335>)",
  "Maintainer": "Raimundo Sanchez <raimundosanchezu@gmail.com>",
  "_user": "raimun2",
  "_type": "src",
  "_file": "metrictrails_1.0.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/dda0b40a1e0bad49de0d5dd61bf35b56e3a043f080a99e09bb5e021fc8af1fbb",
  "_filesize": 960309,
  "_sha256": "dda0b40a1e0bad49de0d5dd61bf35b56e3a043f080a99e09bb5e021fc8af1fbb",
  "_expires": "2027-01-31T01:52:37.000Z",
  "_created": "2026-10-23T01:49:15.000Z",
  "_published": "2026-10-23T01:52:39.722Z",
  "_upstream": "https://github.com/raimun2/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": 120194765395,
      "time": 161,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12471759764"
    },
    {
      "job": 120194765328,
      "time": 149,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12472812020"
    },
    {
      "job": 120194765353,
      "time": 147,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12473345350"
    },
    {
      "job": 120194765397,
      "time": 126,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12472911587"
    },
    {
      "job": 120193682386,
      "time": 217,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12472243391"
    },
    {
      "job": 120194765284,
      "time": 133,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12472621970"
    },
    {
      "job": 120194765330,
      "time": 117,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12472742164"
    },
    {
      "job": 120194765334,
      "time": 86,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12472767208"
    },
    {
      "job": 120194765275,
      "time": 108,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12473180658"
    }
  ],
  "_buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641",
  "_commit": {
    "id": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
    "author": "Raimundo Sanchez <raimun2@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Update installation instructions in README",
    "time": 1792717075
  },
  "_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": "raimun2",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-41",
      "n": 9
    },
    {
      "week": "2026-42",
      "n": 1
    },
    {
      "week": "2026-43",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "raimun2",
      "count": 11,
      "uuid": 13170576
    }
  ],
  "_userbio": {
    "uuid": 13170576,
    "type": "user",
    "name": "Raimundo Sanchez",
    "followers": 25,
    "description": "Systems Builder."
  },
  "_downloads": {
    "count": 10,
    "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"
  ],
  "_homeurl": "https://github.com/raimun2/metrictrails",
  "_realowner": "raimun2",
  "_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/raimun2/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": 4.176091259055681,
  "_indexed": true,
  "_nocasepkg": "metrictrails",
  "_universes": [
    "raimun2"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-10-23T01:51:25.000Z",
      "distro": "resolute",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/7bee3a2623c99cc9b3c7f10deb3147df1bae247ceae55e2888c43d2e28f3e14a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-10-23T01:51:25.000Z",
      "distro": "resolute",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/f5ff407491c2d2ca7d5499c94f9c20d1ad06f25fa7a254b3a2fc9d38f52b7960",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-10-23T01:51:21.000Z",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/1fcbd0b2d9c565fe6cc56f74842536ff80ca2f0a7e114465a584ffecf1df3551",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-10-23T01:50:59.000Z",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/950d98ef4de971ef2c4799322a3bf7204fbfad2824409bf904aac9ab7c8b136f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.0",
      "date": "2026-10-23T01:51:39.000Z",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/fdd66b27dc2391c8924b080426a0d9207932bfe0a4d1fbb2a523ed193cacbf92",
      "status": "success",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-10-23T01:50:26.000Z",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/6589a6edf002220b916ea4c71dfac292a502600009d60a41d3b92b0214e24130",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-10-23T01:50:21.000Z",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/94dbb457d28cf7184ac0a113e5a8a6687a78571751d90e98f3dac93d31676e8d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-10-23T01:50:25.000Z",
      "commit": "240bbf5d9dbe19e98892cc8df438de728d9ed22b",
      "fileid": "https://r2.ropensci.org/93582a800d7b4c9deb4d6c3edeada1475c8057511281ebb82cb770e9f688ae43",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/raimun2/actions/runs/39885818641"
    }
  ]
}