knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width=6,
  fig.height=4)

oldoption <-
  options(scipen = 9999,
          "rgdal_show_exportToProj4_warnings"="none")

library(gpxr)
library(dplyr)
library(sf)
library(mapview)
mapviewOptions(fgb = FALSE)
f <- "../gpx/indie.gpx"

track <- load_track_points(f)

track <- sf::st_transform(track, 5070)

track <- simplify_track(track, 0)

plot(st_geometry(track))

# from manual map selection
control_geo <- read_sf("../gpx/indie.gpx_control.gpkg")
control_geo <- output_control_point

control_geo <- sf::st_transform(control_geo, 5070)

control <- list(start_ids = control_geo$start_id, end_ids = control_geo$end_id,
                points = lapply(1:nrow(control_geo), 
                                function(x, p) as.numeric(p[x, ]), 
                                p = st_coordinates(control_geo)))

for(i in 1:length(control$points)) {
  track <- gpxr:::bez_smooth(track, control$start_ids[i], control$end_ids[i], 
                             control$points[[i]])
}

track$track_seg_point_id <- 1:nrow(track)

mapview(list(track, control_geo))
track$ele[37:47] <- seq(track$ele[37], 218.6, length.out = 11)

track2 <- clean_elev(track)

plot(track$track_seg_point_id, track$ele)
points(track2$track_seg_point_id, track2$ele, col = "red", pch = ".", cex = 3)
track <- mutate(track, ele = track2$ele, track_seg_id = 0, track_fid = 0, time = "")

track <- sf::st_transform(track, 4326)

unlink("../gpx/Indie_Crit.gpx")

write_sf(track, "../gpx/Indie_Crit.gpx", "track_points", driver = "GPX")
options(oldoption)


dblodgett-cycling/gpxR documentation built on Feb. 26, 2021, 8:32 p.m.