R/crop_map_world.R

Defines functions crop_map_world

Documented in crop_map_world

#' @title crop_map_world
#' @description A function to plot biodiversity data.
#' @param input  df or raster
#' @param crs projection of data provided ('longlat'/'cea'/'auto')
#' @param zoom_out zoom level for the map
#' @examples
#' crop_map_world(df)
#' crop_map_world(df,crs='longlat')
#' @export
crop_map_world=function(input, crs='auto',zoom_out=1){
rm(worldMap)
  flpth <- system.file('wmap_hr.RDS', package = 'ggg')
  load(flpth)

  if(any(class(input)=='data.frame')){
    df=input
    df=input[,c(1,2,3)]
    if(grepl(pattern = "(x|long)" , x = colnames(input[2]), ignore.case = T))
      df=input[,c(1,3,2)]
    colnames(df)=c('species','Latitude','Longitude')

  if(crs=='longlat'){

    df_coord=df[,3:2]
    spdf <- SpatialPointsDataFrame(df_coord, df,proj4string =
                                     CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"))
    map <- worldMap %>% st_crop(extent(spdf))
   }

  if(crs=='cea') {

    df_coord=df[,3:2]
    spdf <- SpatialPointsDataFrame(df_coord, df,proj4string =
                                     CRS('+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'))

    map = st_transform(worldMap, '+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs')

    map <- map %>% st_crop(extent(spdf))
  }

  if(crs=='auto'){

    if (max(df$Latitude)^2>1000){
      df_coord=df[,3:2]
      spdf <- SpatialPointsDataFrame(df_coord, df,proj4string =
                                       CRS('+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'))
      map = st_transform(worldMap, '+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs')

      map <- map %>% st_crop(extent(spdf))
    }
    else{
      df_coord=df[,3:2]
      spdf <- SpatialPointsDataFrame(df_coord, df,proj4string =
                                       CRS('+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'))

      map = st_transform(worldMap, '+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs')

      map <- map %>% st_crop(extent(spdf))

    }
  }#'auto'
  }#'daframe'
  else{
    temp=as.list(bbox(input))
#raster_input

      if ((grepl(pattern = '+proj=cea', x = proj4string(input)))|(temp[[1]]^2>1000))
      {

        worldMap = st_transform(worldMap, '+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs')

      }

      map <- worldMap %>% st_crop(extent(input)*zoom_out)


    }
  return(map)
}
harithmorgadinho/ggg documentation built on May 18, 2019, 12:28 p.m.