Learn R Programming

spgrass6 (version 0.5-17)

readVECT6: Read and write GRASS 6 vector object files

Description

readVECT6 moves one GRASS 6.0 vector object file with attribute data through a temporary shapefile to a Spatial*DataFrame object of type determined by the GRASS 6.0 vector object; writeVECT6 moves a Spatial*DataFrame object through a temporary shapefile to a GRASS vector object file. vect2neigh returns neighbour pairs with shared boundary length as described by Markus Neteler, in https://stat.ethz.ch/pipermail/r-sig-geo/2005-October/000616.html. cygwin_clean_temp can be called to try to clean the GRASS mapset-specific temporary directory under cygwin.

Usage

readVECT6(vname, type=NULL, plugin=NULL, remove.duplicates = TRUE, ignore.stderr = FALSE, with_prj=TRUE, with_c=FALSE, mapset=NULL)
writeVECT6(SDF, vname,  v.in.ogr_flags="", ignore.stderr = FALSE)
vInfo(vname, ignore.stderr = FALSE)
vColumns(vname, ignore.stderr = TRUE)
vDataCount(vname, ignore.stderr = TRUE)
vect2neigh(vname, ID=NULL, ignore.stderr = FALSE)
putSites6sp(SPDF, vname,  ignore.stderr = FALSE) 
putSites6(df, vname, ignore.stderr = FALSE)
getSites6sp(vname, ignore.stderr = FALSE, with_prj=TRUE) 
getSites6(vname, ignore.stderr = FALSE, with_prj=TRUE)
cygwin_clean_temp(verbose=TRUE, ignore.stderr = FALSE)

Arguments

vname
A GRASS 6.0 vector file name
type
override type detection when multiple types are non-zero, passed to v.out.ogr
plugin
default NULL for auto-detection, may be set to FALSE to avoid or TRUE if the plugin is known to be available; if the plugin is used, no further arguments other than mapset are respected
remove.duplicates
In line and area vector objects, multiple geometrical features may be associated with a single cat number, leading to duplication of data rows; this argument attempts to combine the geometrical features so that they match a single data row
ignore.stderr
default FALSE, can be set to TRUE to silence system output to standard error; does not apply on Windows platforms
with_prj
default TRUE, write ESRI-style PRJ file for transfered data
with_c
if TRUE, export features with category (labeled) only; by default all features are exported
mapset
if plugin is TRUE, the mapset of the file to be imported may be changed from the current mapset by passing a character string
SDF
A Spatial*DataFrame to be moved to GRASS6 as a vector object, for SpatialPointsDataFrame, SpatialLinesDataFrame, and SpatialPolygonsDataFrame objects
v.in.ogr_flags
String containing additional optional flags and/or options for v.in.ogr, particularly -o and --overwrite
ID
A valid DB column name for unique identifiers (optional)
SPDF
A SpatialPointsDataFrame to be moved to GRASS6 as vector points
df
A data frame with at least columns named x, y and cat (no z support yet)
verbose
TRUE, can be set to false

Value

  • readVECT6 imports a GRASS6 vector object into a Spatial*DataFrame object with the type determined by the type of the GRASS6 vector object; getSites6 returns a data frame. vect2neigh returns a data frame object with left and right neighbours and boundary lengths, also given class GRASSneigh and spatial.neighbour (as used in spdep). The incantation to retrieve the neighbours list is sn2listw(vect2neigh())$neighbours, and to retrieve the boundary lengths: sn2listw(vect2neigh())$weights. The GRASSneigh object has two other useful attributes: external is a vector giving the length of shared boundary between each polygon and the external area, and total giving each polygon's total boundary length.

Examples

Run this code
if (nchar(Sys.getenv("GISRC")) > 0) {
  if ((Sys.getenv("OSTYPE") == "msys" || nchar(Sys.getenv("WINGISRC")) > 0) || Sys.getenv("OSTYPE") == "cygwin")
    system("v.info.exe bugsites")
  else system("v.info bugsites")
  print(vInfo("bugsites", ignore.stderr=TRUE))
  bugs <- readVECT6("bugsites", ignore.stderr=TRUE, plugin=NULL)
  print(summary(bugs))
  bugs1 <- readVECT6("bugsites", ignore.stderr=TRUE, plugin=FALSE)
  print(summary(bugs1))
  writeVECT6(bugs, "newbugs", v.in.ogr_flags="-o --overwrite", ignore.stderr=TRUE)
  if ((Sys.getenv("OSTYPE") == "msys" || nchar(Sys.getenv("WINGISRC")) > 0) || Sys.getenv("OSTYPE") == "cygwin")
    system("v.info.exe newbugs")
  else system("v.info newbugs")
  nbugs <- readVECT6("newbugs", ignore.stderr=TRUE)
  print(summary(nbugs))
  print(vInfo("roads", ignore.stderr=TRUE))
  roads <- readVECT6("roads", ignore.stderr=TRUE)
  print(summary(roads))
}

Run the code above in your browser using DataLab