Learn R Programming

ursa (version 3.9.10)

spatial_read: Wrapper functions for reading spatial objects.

Description

Read either simple features (package sf) and abstract of class Spatial (package sp) from disk using appropriate functionality (“engine”) of respective packages is used.

Usage

spatial_read(dsn, engine = c("native", "sp", "sf", "geojsonsf"))

Value

Depending of used engine, either simple features (package sf) or Spatial abstracts (sp).

Arguments

dsn

Character. File name of spatial object (vector GIS).

engine

Character. Functionality of which package is used for reading data. If value is "sf", then package sf is used and simple features are returned. If value is "geojsonsf", GDAL driver is GeoJSON and package geojsonsf can be loaded, then package geojsonsf is used and simple features are returned. If value is "sp", then package rgdal is used and Spatial abstracts (package sp) are returned. If value is "native" then engine selection depends of which namespace has already loaded or has suggested package sf been installed.

Author

Nikita Platonov platonov@sevin.ru

Details

Currently, list of arguments of this funtion is simplified and can be expanded.

See Also

read_sf (valid if package sf is installed)

readOGR (package rgdal)

spatial_write

Examples

Run this code
session_grid(NULL)
n <- 1e2
x <- runif(n,min=25,max=65)
y <- runif(n,min=55,max=65)
z <- runif(n,min=1,max=10)
da <- data.frame(x=x,y=y,z=z)
if (requireNamespace("sf",quietly=TRUE)) {
   obj1 <- sf::st_as_sf(da,coords=c("x","y"),crs=4326)
   print(series(obj1))
   fname1 <- file.path(tempdir(),"res1.shp")
   print(fname1)
   spatial_write(obj1,fname1)
   res1 <- spatial_read(fname1,engine="sf")
   print(series(res1))
}
if (requireNamespace("sp")) {
   obj2 <- da
   sp::coordinates(obj2) <- c("x","y")
   sp::proj4string(obj2) <- sp::CRS("+init=epsg:4326")
   print(series(obj2))
   print(spatial_crs(obj2))
   fname2 <- file.path(tempdir(),"res2.shp")
   print(fname2)
   spatial_write(obj2,fname2)
   res2 <- spatial_read(fname2,engine="sp")
   print(series(obj2))
}
print(spatial_dir(tempdir()))

Run the code above in your browser using DataLab