R/get_elevdata_list.R

Defines functions get_elevdata_list

Documented in get_elevdata_list

#' Get elevation data labeled for rayshader
#' 
#' Due to the transposing of elevation data at the Greenich line for all my GPX
#' animations data needs to be transposed. Therefore the labels of longitudinal
#' and latitudinal also need to be transposed to suit rayshader package
#' 
#' @export
#' 
#' @param elevdata (\code{data.frame}) generated by get_elevdata_from_bbox
#' 
#' @return \code{list} with three elements: \code{elevation_matrix} containing
#'   the elevation data with the 0.0 coordinate on top right.
#'   \code{lon} The longitudinal labels of this elevation matrix
#'   \code{lat} The latitudinal labels of this elevation matrix
#' @importFrom magrittr %>%
get_elevdata_list <- function(elevdata) {
  elevdata <- elevdata[c((nrow(elevdata) - 1):1, nrow(elevdata)), c((ncol(elevdata) - 1):1, ncol(elevdata))]
  elevdata[nrow(elevdata), ] <- elevdata[nrow(elevdata), c((ncol(elevdata) - 1):1,ncol(elevdata)) ]
  elevdata[, ncol(elevdata)] <- elevdata[c((nrow(elevdata)-1):1,nrow(elevdata)) , ncol(elevdata)]
  
  colnames(elevdata) <- colnames(elevdata)[c((ncol(elevdata) - 1):1, ncol(elevdata))]
  
  lon_elevdata <- as.numeric(colnames(elevdata)[(ncol(elevdata) - 1):1])
  lat_elevdata <- as.numeric(elevdata$deg_elmat_lat[1:(nrow(elevdata) -1)])
  
  elevation_matrix <- elevdata %>% unlabel_elevdata() %>% t
  
  return(list(
    elevation_matrix = elevation_matrix,
    lon = lon_elevdata,
    lat = lat_elevdata
  ))
}
zappingseb/rayshaderanimate documentation built on Dec. 14, 2021, 11:43 p.m.