R/read.gps.R

Defines functions read.gps

Documented in read.gps

#' Read GPS Data
#' 
#' @description This function reads a GPS track file.
#' 
#' @param x File name(s).
#' 
#' @return Returns a data.frame with date, time, latitude and longitude fields.
#' 
#' @seealso \code{\link{probe}}

#' @export read.gps
read.gps <- function(x){
   res <- NULL
   for (i in 1:length(x)){
      # Load file:
      data <- scan(x[i], what = "character", quiet = TRUE)
      
      # Parse latitude and longitude fields:
      data <- gsub('[\"]', "", data)
      latitude <- data[grep("^lat", data)]
      latitude <- as.numeric(gsub("lat=", "", latitude))
      longitude <- data[grep("^lon", data)]
      data <- longitude
      longitude <- gsub("><.+", "", longitude)
      longitude <- as.numeric(gsub("lon=", "", longitude))

      data <- gsub("lon.+<time>", "", data) 
      data <- gsub("</time>.+$", "", data) 
      
      # Parse out data and time fields:
      data <- gsub("lon.+<time>", "", data) 
      data <- gsub("</time>.+$", "", data) 
      date <- gsub("T.+$", "", data)
      time <- gsub("(.+T)|(Z)", "", data)

      # Combine data:
      data <- data.frame(date = date, 
                         time = time, 
                         latitude = latitude, 
                         longitude = longitude,   
                         stringsAsFactors = FALSE)
      
      # Catenate data:
      res <- rbind(res, data)
   }
   
   return(res)
}
TobieSurette/gulf.data documentation built on Jan. 19, 2025, 7:50 p.m.