chooseCN: Function to choose a connection network

View source: R/chooseCN.R

chooseCNR Documentation

Function to choose a connection network


The function chooseCN is a simple interface to build a connection network (CN) from xy coordinates. The user chooses from 6 types of graph and one additional weighting scheme. chooseCN calls functions from appropriate packages, handles non-unique coordinates and returns a connection network either with classe nb or listw. For graph types 1-4, duplicated locations are not accepted and will issue an error.


  ask = TRUE,
  type = NULL,
  result.type = "nb",
  d1 = NULL,
  d2 = NULL,
  k = NULL,
  a = NULL,
  dmin = NULL,
  plot.nb = TRUE,
  edit.nb = FALSE



an matrix or data.frame with two columns for x and y coordinates.


a logical stating whether graph should be chosen interactively (TRUE,default) or not (FALSE). Set to FALSE if type is provided.


an integer giving the type of graph (see details).


a character giving the class of the returned object. Either "nb" (default) or "listw", both from spdep package. See details.


the minimum distance between any two neighbours. Used if type=5.


the maximum distance between any two neighbours. Used if type=5. Can also be a character: "dmin" for the minimum distance so that each site has at least one connection, or "dmax" to have all sites connected (despite the later has no sense).


the number of neighbours per point. Used if type=6.


the exponent of the inverse distance matrix. Used if type=7.


the minimum distance between any two distinct points. Used to avoid infinite spatial proximities (defined as the inversed spatial distances). Used if type=7.


a logical stating whether the resulting graph should be plotted (TRUE, default) or not (FALSE).


a logical stating whether the resulting graph should be edited manually for corrections (TRUE) or not (FALSE, default).


There are 7 kinds of graphs proposed:
Delaunay triangulation (type 1)
Gabriel graph (type 2)
Relative neighbours (type 3)
Minimum spanning tree (type 4)
Neighbourhood by distance (type 5)
K nearests neighbours (type 6)
Inverse distances (type 7)

The last option (type=7) is not a true neighbouring graph: all sites are neighbours, but the spatial weights are directly proportional to the inversed spatial distances.
Also not that in this case, the output of the function is always a listw object, even if nb was requested.

The choice of the connection network has been discuted on the adegenet forum. Please search the archives from adegenet website (section 'contact') using 'graph' as keyword.


Returns a connection network having the class nb or listw. The xy coordinates are passed as attribute to the created object.


Thibaut Jombart


if(require("ade4", quietly = TRUE)){

oldpar <- par(mfrow=c(2,2))
cn1 <- chooseCN(mafragh$xy,ask=FALSE,type=1)
cn2 <- chooseCN(mafragh$xy,ask=FALSE,type=2)
cn3 <- chooseCN(mafragh$xy,ask=FALSE,type=3)
cn4 <- chooseCN(mafragh$xy,ask=FALSE,type=4)

adespatial documentation built on Oct. 19, 2023, 1:06 a.m.