R/SSN-methods.R

Defines functions as.SpatialLinesDataFrame.SpatialStreamNetwork as.SpatialLinesDataFrame as.SpatialPointsDataFrame.SpatialStreamNetwork as.SpatialPointsDataFrame as.SpatialPoints.SpatialStreamNetwork as.SpatialPoints as.SpatialLinesDataFrame.SpatialStreamNetwork as.SpatialLines.SpatialStreamNetwork as.SpatialLines

Documented in as.SpatialLines as.SpatialLinesDataFrame as.SpatialLinesDataFrame.SpatialStreamNetwork as.SpatialLines.SpatialStreamNetwork as.SpatialPoints as.SpatialPointsDataFrame as.SpatialPointsDataFrame.SpatialStreamNetwork as.SpatialPoints.SpatialStreamNetwork

as.SpatialLines <- function(x, ...){
  UseMethod("as.SpatialLines")
}
as.SpatialLines.SpatialStreamNetwork <- function(x, ...) {
  SpatialLines(x@lines, proj4string = x@proj4string)
}

as.SpatialLinesDataFrame.SpatialStreamNetwork <- function(x, ...) {
    SpatialLinesDataFrame(x@lines, x@data, proj4string = x@proj4string)
}



as.SpatialPoints <- function(x, ...){

  UseMethod("as.SpatialPoints")
}

as.SpatialPoints.SpatialStreamNetwork <- function(x, data = "Obs", ...) {
  if(data == "Obs") {
  return(SpatialPoints(x@obspoints@SSNPoints[[1]]@point.coords,
        proj4string = x@proj4string))
  } else {
     ind <- x@predpoints@ID %in% data
  if(sum(ind) ==0) {
       stop(paste0(data, " is not present in STSN"))}
     if(sum(ind) > 1) {
       stop(paste0(data, " resides in more than one slot in the STSN"))}
     j <- which(ind)
     return(SpatialPoints(x@predpoints@SSNPoints[[j]]@point.coords,
        proj4string = x@proj4string))
  }
  return(invisible())
}

as.SpatialPointsDataFrame <- function(x, ...){
  UseMethod("as.SpatialPointsDataFrame")
}

as.SpatialPointsDataFrame.SpatialStreamNetwork <- function(x, data = "Obs", ...) {
  if(data == "Obs") {
        return(SpatialPointsDataFrame(x@obspoints@SSNPoints[[1]]@point.coords,
        x@obspoints@SSNPoints[[1]]@point.data,
        proj4string = x@proj4string))
  } else {
     ind <- x@predpoints@ID %in% data
     if(sum(ind) ==0) {
       stop(paste0(data, " is not present in SSN"))}
     if(sum(ind) > 1) {
       stop(paste0(data, " resides in more than one slot in the SSN"))}
     j <- which(ind)
     return(SpatialPointsDataFrame(x@predpoints@SSNPoints[[j]]@point.coords,
        x@predpoints@SSNPoints[[j]]@point.data,
        proj4string = x@proj4string))
  }
  return(invisible())
}

as.SpatialLinesDataFrame <- function(x, ...) {
    UseMethod("as.SpatialLinesDataFrame")
}

as.SpatialLinesDataFrame.SpatialStreamNetwork <- function(x, ...) {
    sl <- SpatialLines(x@lines, proj4string = x@proj4string)
    data <- x@data
    sldf <- SpatialLinesDataFrame(sl, data, match.ID = FALSE)
    sldf
}

Try the SSN package in your browser

Any scripts or data that you put into this service are public.

SSN documentation built on March 7, 2023, 5:30 p.m.