Description Usage Arguments Value Note Author(s) Examples
readVECT
moves one GRASS 7 vector object file with attribute data through a temporary shapefile to a Spatial*DataFrame object of type determined by the GRASS 7 vector object; writeVECT
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.
1 2 3 4 5 6 7 8 9 10 11 12 | readVECT(vname, layer, type=NULL, plugin=NULL,
remove.duplicates = TRUE, ignore.stderr=NULL,
with_prj=TRUE, with_c=FALSE, mapset=NULL,
pointDropZ=FALSE, driver=NULL)
writeVECT(SDF, vname, v.in.ogr_flags=NULL,
ignore.stderr = NULL, driver=NULL,
min_area=0.0001, snap=-1)
vInfo(vname, layer, ignore.stderr = NULL)
vColumns(vname, layer, ignore.stderr = NULL)
vDataCount(vname, layer, ignore.stderr = NULL)
vect2neigh(vname, ID=NULL, ignore.stderr = NULL, remove=TRUE, vname2=NULL,
units="k")
|
vname |
A GRASS 7 vector file name |
layer |
a layer name (string); if missing set to default of “1” |
type |
override type detection when multiple types are non-zero, passed to v.out.ogr |
plugin |
default NULL if which case it will be set to the value set by |
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 the value set by
|
with_prj |
default TRUE, write ESRI-style PRJ file for transfered data |
with_c |
default FALSE in GRASS 7; if FALSE, export features with category (labeled) only; if not default, all features are exported, including GRASS “islands” which are probably spurious exterior rings filling holes. |
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 |
pointDropZ |
default FALSE, if TRUE, discard third coordinates for point geometries; third coordinates are alway discarded for line and polygon geometries |
driver |
default NULL, which will lead to the choice of the first driver found in a ordered preferred vector, currently |
min_area |
default 0.0001); Minimum size of area to be imported (square meters) Smaller areas and islands are ignored. Should be greater than snap^2 |
snap |
default -1); Snapping threshold for boundaries (map units). '-1' for no snap |
SDF |
A Spatial*DataFrame to be moved to GRASS 7 as a vector object, for SpatialPointsDataFrame, SpatialLinesDataFrame, and SpatialPolygonsDataFrame objects |
v.in.ogr_flags |
Character vector 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) |
remove |
default TRUE, remove copied vectors created in |
vname2 |
If on a previous run, remove was FALSE, the name of the temporary vector may be given to circumvent its generation |
units |
default “k”; see GRASS |
readVECT
imports a GRASS 7 vector object into a Spatial*DataFrame object with the type determined by the type of the GRASS 7 vector object. readVECT
and writeVECT
attempt to preserve longer column/field names despite using the “ESRI Shapefile” format for transfer.
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.
Please note that the OGR drivers used may not handle missing data gracefully. From rgdal release 0.5-27, missing values are taken as unset OGR field values. If the OGR driver encodes them in this way, NAs will be moved across the interface correctly from R to GRASS, and from GRASS to R using the OGR GRASS vector plugin. Work is continuing to correct v.out.ogr so that it emits unset fields, which affects users with no OGR GRASS plugin for the present. Thanks to Dylan Beaudette for helping with missing data handling.
Roger S. Bivand, e-mail: Roger.Bivand@nhh.no.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | if (nchar(Sys.getenv("GISRC")) > 0 &&
read.dcf(Sys.getenv("GISRC"))[1,"LOCATION_NAME"] == "nc_basic_spm_grass7") {
GV <- Sys.getenv("GRASS_VERBOSE")
Sys.setenv("GRASS_VERBOSE"=0)
require(rgdal)
ois <- get.ignore.stderrOption()
set.ignore.stderrOption(TRUE)
execGRASS("v.info", map="schools", layer="1")
print(vInfo("schools"))
schs <- readVECT("schools", plugin=NULL)
print(summary(schs))
schs1 <- readVECT("schools", plugin=FALSE)
print(summary(schs1))
writeVECT(schs, "newsch", v.in.ogr_flags=c("o", "overwrite"))
execGRASS("v.info", map="newsch", layer="1")
nschs <- readVECT("newsch")
print(summary(nschs))
print(all.equal(names(nschs), as.character(vColumns("newsch")[,2])))
names(nschs) <- paste("ABCDEFGHIJKLMNO", names(nschs), sep="")
writeVECT(nschs, "newsch1", v.in.ogr_flags=c("o", "overwrite"))
print(all.equal(names(nschs), as.character(vColumns("newsch1")[-1,2])))
nschs1 <- readVECT("newsch1")
print(all.equal(names(nschs), names(nschs1)[-1]))
print(summary(nschs1))
schs <- readVECT("schools", driver="ESRI Shapefile")
names(schs) <- paste("ABCDEFGHIJKLMNO", names(schs), sep="")
writeVECT(schs, "newsch", v.in.ogr_flags=c("o", "overwrite"),
driver="ESRI Shapefile")
print(all.equal(names(schs), as.character(vColumns("newsch")[-1,2])))
nschs <- readVECT("newsch", driver="ESRI Shapefile")
all.equal(names(schs), names(nschs)[-1])
print(vInfo("roadsmajor"))
roads <- readVECT("roadsmajor")
print(summary(roads))
cen_neig <- vect2neigh("census")
str(cen_neig)
Sys.setenv("GRASS_VERBOSE"=GV)
set.ignore.stderrOption(ois)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.