Learn R Programming

ursa (version 3.11.5)

spatial_write: Wrapper functions for writing spatial objects.

Description

Write spatial object to disk. If spatial object is Simple Features, then appropriate functions from package sf are used. If spatial objest are abstract of class Spatial (package sp) then preliminarly transformation to Simple Features is performed.

Usage

spatial_write(obj, fname, layer, driver = NA, compress = "", 
              dopt = character(), lopt = character(), verbose = FALSE, ...)

Value

invisible NULL.

Arguments

obj

Spatial object: Either Simple Features (sf) or Spatial Abstract (sp). List of spatial objects can be used.

fname

Character. File name with or without extension. If extension is missed, then argument driver must be specified.

layer

Character. Layer name. If missed, then basename of fname is used.

driver

Character. Driver for specification of output file format. Default is NA; value is determined from extension of fname.

compress

Character or logical. Will output file or list of files be packed after writing and what archive format will be used. Available character values are "" (default; no compression), "gz", "gzip", "bz2", "bzip2", "zip", "xz", "zstd", "zst". If logical and TRUE, then "zip" is used for driver "ESRI Shapefile" and "gzip" otherwise. If logical and FALSE, then no compression.

dopt

Named character or named list. Driver dependent dataset creation options, , similar to argument dataset_options in function st_write().

lopt

Named character or named list. Driver dependent layer creation options, similar to argument layer_options in function st_write().

verbose

Logical. Value TRUE provides information on console. Default is FALSE.

...

Argument, which are passed to functions from suggested packages, e.g. pretty = TRUE in the case of using package yyjson.

Author

Nikita Platonov platonov@sev-in.ru

Details

Based on sf::st_write function with additonal options: compressing of output file(s), coordinates trasforming (to longitudes and latitudes for driver="GeoJSON"), creating multi-layer destination (for driver="SQLite").

See Also

write_sf

spatial_read

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))
}
print(spatial_dir(tempdir()))

Run the code above in your browser using DataLab