graphneigh {spdep} | R Documentation |
Functions return a graph object containing a list with the vertex
coordinates and the to and from indices defining the edges. The helper
function graph2nb
converts a graph
object into a neighbour list. The plot functions plot the graph objects.
gabrielneigh(coords) relativeneigh(coords) soi.graph(tri.nb, coords) graph2nb(gob, row.names=NULL,sym=FALSE) plot.Gabriel(x, show.points=FALSE, add=FALSE, linecol=par(col), ...) plot.relative(x, show.points=FALSE, add=FALSE, linecol=par(col),...)
coords |
matrix of region point coordinates |
tri.nb |
a neighbor list created from tri2nb |
gob |
a graph object created from any of the graph funtions |
row.names |
character vector of region ids to be added to the
neighbours list as attribute region.id , default seq(1,
nrow(x)) |
sym |
a logical argument indicating whether or not neighbors should be symetric (if i->j then j->i) |
x |
object to be plotted |
show.points |
(logical) add points to plot |
add |
(logical) add to existing plot |
linecol |
edge plotting colour |
... |
further graphical parameters as in par(..) |
The graph functions produce graphs on a 2d point set that are all subgraphs of the Delaunay triangulation. The relative neighbor graph is defined by the relation, x and y are neighbors if
d(x,y) <= min(max(d(x,z),d(y,z))| z in S)
where d() is the distance, S is the set of points and z is an arbitrary point in S. The Gabriel graph is a subgraph of the delaunay triangulation and has the relative neighbor graph as a sub-graph. The relative neighbor graph is defined by the relation x and y are Gabriel neighbors if
d(x,y) <= min((d(x,z)^2 + d(y,z)^2)^1/2 |z in S)
where x,y,z and S are as before. The sphere of influence graph is defined for a finite point set S, let r_x be the distance from point x to its nearest neighbor in S, and C_x is the circle centered on x. Then x and y are SOI neigbors iff C_x and C_y intersect in at least 2 places.
A list of class Graph
withte following elements
np |
number of input points |
from |
array of origin ids |
to |
array of destination ids |
nedges |
number of edges in graph |
x |
input x coordinates |
y |
input y coordinates |
The helper functions return an nb
object with a list of integer
vectors containing neighbour region number ids.
Nicholas Lewin-Koh kohnicho@comp.nus.edu.sg
Matula, D. W. and Sokal R. R. 1980, Properties of Gabriel graphs relevant to geographic variation research and the clustering of points in the plane, Geographic Analysis, 12(3), pp. 205-222.
Toussaint, G. T. 1980, The relative neighborhood graph of a finite planar set, Pattern Recognition, 12(4), pp. 261-268.
Kirkpatrick, D. G. and Radke, J. D. 1985, A framework for computational morphology. In Computational Geometry, Ed. G. T. Toussaint, North Holland.
knearneigh
, dnearneigh
,
knn2nb
data(columbus) par(mfrow=c(2,2)) col.tri.nb<-tri2nb(coords) col.gab.nb<-graph2nb(gabrielneigh(coords), sym=TRUE) col.rel.nb<- graph2nb(relativeneigh(coords), sym=TRUE) col.soi.nb<- graph2nb(soi.graph(col.tri.nb,coords), sym=TRUE) library(maptools) plot(polys, border="grey", forcefill=FALSE) plot(col.tri.nb,coords,add=TRUE) title(main="Delaunay Triangulation") plot(polys, border="grey", forcefill=FALSE) plot(col.gab.nb, coords, add=TRUE) title(main="Gabriel Graph") plot(polys, border="grey", forcefill=FALSE) plot(col.rel.nb, coords, add=TRUE) title(main="Relative Neighbor Graph") plot(polys, border="grey", forcefill=FALSE) plot(col.soi.nb, coords, add=TRUE) title(main="Sphere of Influence Graph") par(mfrow=c(1,1))