R/spatial.R

Defines functions .findPrimeMeridian checkLongitude .longitude2Left .longitude2Center

.longitude2Center = function(x, ...) {
  if (!any(x > 180, na.rm=TRUE)) 
    return(x)
  x[which(x > 180)] = x[which(x > 180)] - 360
  return(x)
}

.longitude2Left = function(x, ...) {
  if (!any(x < 0, na.rm=TRUE)) 
    return(x)
  x[which(x < 0)] = x[which(x < 0)] + 360
  return(x)
}

checkLongitude = function(x, primeMeridian="center", ...) {
  if(all(is.na(x))) return(x)
  out = switch(primeMeridian, 
               center = .longitude2Center(x, ...),
               left = .longitude2Left(x, ...))
  return(out)
}

.findPrimeMeridian = function(x) {
  if(all(is.na(x))) return("center")
  if(any(x<0)) return("center")
  if(any(x>180)) return("left")
  return("center")
}
roliveros-ramos/kali documentation built on Jan. 14, 2023, 4:30 a.m.