diff --git a/dev/pkgdown.yml b/dev/pkgdown.yml index 779f957..07560a1 100644 --- a/dev/pkgdown.yml +++ b/dev/pkgdown.yml @@ -3,7 +3,7 @@ pkgdown: 2.0.7 pkgdown_sha: ~ articles: geograph: geograph.html -last_built: 2023-12-08T04:44Z +last_built: 2023-12-08T04:54Z urls: reference: https://evolecolgroup.github.io/geograph/reference article: https://evolecolgroup.github.io/geograph/articles diff --git a/dev/reference/connectivity-2.png b/dev/reference/connectivity-2.png index aec8ab3..b354cf3 100644 Binary files a/dev/reference/connectivity-2.png and b/dev/reference/connectivity-2.png differ diff --git a/dev/reference/findLand-1.png b/dev/reference/findLand-1.png index 7891864..ad27447 100644 Binary files a/dev/reference/findLand-1.png and b/dev/reference/findLand-1.png differ diff --git a/dev/reference/findLand.html b/dev/reference/findLand.html index 7aeb8d8..5c96349 100644 --- a/dev/reference/findLand.html +++ b/dev/reference/findLand.html @@ -136,10 +136,10 @@

Examples#> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes -#> lon lat -#> 1 -102.227623 -75.66818 -#> 2 8.870435 -43.17489 -#> 3 72.150869 81.74692 +#> lon lat +#> 1 73.10167 80.01679 +#> 2 137.55146 -71.65659 +#> 3 -162.61384 -15.40920 #> ... #> #> @nodes.attr: 0 nodes attributes @@ -160,16 +160,16 @@

Examples#> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes -#> lon lat -#> 1 -102.227623 -75.66818 -#> 2 8.870435 -43.17489 -#> 3 72.150869 81.74692 +#> lon lat +#> 1 73.10167 80.01679 +#> 2 137.55146 -71.65659 +#> 3 -162.61384 -15.40920 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat -#> 1 land -#> 2 sea +#> 1 sea +#> 2 land #> 3 sea #> ... #> diff --git a/dev/search.json b/dev/search.json index b186801..60824c0 100644 --- a/dev/search.json +++ b/dev/search.json @@ -1 +1 @@ -[{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"geograph-walking-through-the-geographic-space-using-graphs-","dir":"Articles","previous_headings":"","what":"geoGraph: walking through the geographic space using graphs.","title":"An introduction to geoGraph","text":"document describes geoGraph package R software. geoGraph aims implementing graph approaches geographic data. geoGraph, given geographic area modelled fine regular grid, vertice set spatial coordinates set attributes, can instance habitat descriptors, presence/abundance given species. ‘Travelling’ within geographic area can easily modelled moving connected vertices. cost moving one vertex another can defined according attribute values, allows instance define friction routes based habitat. geoGraph harnesses full power graph algorithms implemented R graph RBGL (R Boost Graph Library) packages. particular, RBGL interface R comprehensive Boost Graph Library C++, provides fast efficient implementations wide range graph algorithms. defined frictions entire geographic area, can easily, instance, find least costs path one location another, find parsimonious way connecting set locations. Interfacing spatial data graphs can complicated task. purpose geoGraph provide tools achieve simplify ‘preliminary’ step. achieved defining new classes objects essentially geo-referenced graphs node attributes (gGraph objects), interfaced spatial data (gData objects). vignette, show install geoGraph, construct handle gGraph/gData objects, illustrate basic features graph algorithms.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"installing-the-package","dir":"Articles","previous_headings":"First steps","what":"Installing the package","title":"An introduction to geoGraph","text":"following instructions entered new R session avoid errors due installing attached packages. devtools also needed install geoGraph: , install geoGraph, simply type: installed, package can loaded using: error regarding missing packages, may need install manually packages graph RBGL Bioconductor: attempt reinstall geoGraph GitHub.","code":"install.packages(\"devtools\") library(devtools) install_github(\"thibautjombart/geoGraph\") library(\"geoGraph\") install.packages(\"BiocManager\") BiocManager::install(c(\"graph\", \"RBGL\"))"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"data-representation","dir":"Articles","previous_headings":"First steps","what":"Data representation","title":"An introduction to geoGraph","text":"Data representation refers way given type data handled computer program. Two types objects used geoGraph: gGraph, gData objects. objects defined formal (S4) classes often methods similar generic function (e.g. getNodes defined objects). Essentially, gGraph objects contain underlying layers informations, including spatial grid possibly node attributes, covering area interest. gData sets locations (like sampled sites, instance) interfaced gGraph object, allow manipulations finding paths grid pairs locations.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"ggraph-objects","dir":"Articles","previous_headings":"First steps > Data representation","what":"gGraph objects","title":"An introduction to geoGraph","text":"definition formal class gGraph can obtained using: new empty object can obtained using constructor: documentation ?gGraph explains basics object’s content. nutshell, objects spatial grids nodes segments connecting neighbouring nodes, additional informations nodes graph . coords matrix longitudes latitudes nodes. nodes.attr data.frame storing attributes nodes, habitat descriptors; row corresponds node grid, column corresponds variable. meta list containing miscellanous informations graph . contraint applying components list, typical components $costs $colors recognised certain functions. instance, can specify plotting rules representing given node attribute given color defining component $colors. Similarly, can associate costs given node attribute defining component $costs. example can found already existing gGraph objects. instance, worldgraph.10k graph world approximately 10,000 nodes, -land connectivity (\\textit{.e.travelling seas). ```{r } worldgraph.10k worldgraph.10k@meta ``` Lastly, thegraphcomponent agraphNEL` object, standard class graphs graph RBGL packages. object contains information connections nodes, weights (costs) connections. Four main gGraph provided geoGraph: rawgraph.10k, rawgraph.40k, worldgraph.10k, worldgraph.40k. datasets available using command data. grid used datasets best geometric approximation regular grid surface sphere. One advantage working grids use projection geographic coordinates, usual issue regular GIS. difference rawgraphs worldgraphs first entirely connected, second connections occur land. Numbers 10k' and40k’ indicate grids consist roughly 10,000 40,000 nodes. illustrative purposes, often use 10k grids, since less heavy handle. large-scale applications, 40k versions provide sufficient resolution. New gGraph can constructed using constructor (new(...)), topic documented vignette.","code":"getClass(\"gGraph\") ## Class \"gGraph\" [package \"geoGraph\"] ## ## Slots: ## ## Name: coords nodes.attr meta graph ## Class: matrix data.frame list graphNEL new(\"gGraph\") ## ## === gGraph object === ## ## @coords: spatial coordinates of 0 nodes ## lon lat ## ## @nodes.attr: 0 nodes attributes ## data frame with 0 columns and 0 rows ## ## @meta: list of meta information with 0 items ## ## @graph: ## A graphNEL graph with undirected edges ## Number of Nodes = 0 ## Number of Edges = 0"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"gdata-objects","dir":"Articles","previous_headings":"First steps > Data representation","what":"gData objects","title":"An introduction to geoGraph","text":"gData essentially sets locations interfaced gGraph object. operation, location assigned closest node grid gGraph, allowing travelling locations using grid. , instance possible find shortest path two locations various types habitats. Like gGraph, content formal class gData can obtained using: new empty object can obtained using constructor: , description content objects can found documentation (?gData). coords matrix xy (longitude/latitude) coordinates row location. nodes.id vector characters giving name vertices matching locations; defined automatically creating new gData, using function closestNode. data slot storing data associated locations; can type object, data.frame cover requirements storing data. Note object subsettable (.e. [ operator defined), data can subsetted subsetting gData object. Lastly, slot gGraph.name contains name gGraph object gData interfaced. Contrary gGraph objects, gData objects frequently constructed user. next sections, illustrate can build use gData objects set locations.","code":"getClass(\"gData\") ## Class \"gData\" [package \"geoGraph\"] ## ## Slots: ## ## Name: coords nodes.id data gGraph.name ## Class: matrix character ANY character new(\"gData\") ## ## === gData object === ## ## @coords: spatial coordinates of 0 nodes ## lon lat ## ## @nodes.id: nodes identifiers ## character(0) ## ## @data: data ## NULL ## ## Associated gGraph:"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"using-geograph","dir":"Articles","previous_headings":"","what":"Using geoGraph","title":"An introduction to geoGraph","text":"overview material implemented package summarized package’s manpage, accessible via: html version manpage may preferred browse easily content geoGraph; accessible typing: revert help back text mode, simply type: following, go various tasks can achieve using geoGraph.","code":"?geoGraph help(\"geoGraph\", package = \"geoGraph\", html = TRUE) options(htmlhelp = FALSE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"importing-geographic-data","dir":"Articles","previous_headings":"Using geoGraph","what":"Importing geographic data","title":"An introduction to geoGraph","text":"GeoGraphic data consist set locations, possibly accompanied additional information. instance, one may want study migrations amongst set biological populations known geographic coordinates. geoGraph, geographic data stored gData objects. objects match locations closest nodes grid (gGraph object), store additional data needed. toy example, let us consider four locations: Bordeaux (France), London (UK), Malaga (Spain), Zagreb (Croatia). Since working crude grid (10,000 nodes), locations need exact. enter longitudes latitudes (order, , xy coordinates) cities decimal degrees, well approximate population sizes: load gGraph object contains grid support data: (use worldgraph.40k better resolution). figure, node represented color depending habitat type, either ‘sea’ (blue) ‘land’ (green). going interface cities data grid; , create gData object using new (see ?gData object): figure illustrates matching original locations (black crosses) nodes grid (red circles). can see, issue occured Bordeaux, assigned node sea (blue). Locations can re-assigned nodes restrictions node attribute values using closestNode; instance, constrain matching nodes habitat value (defined node attribute worldgraph.10k) equalling land (green points): Now, cities assigned land' node grid (, better accuracy gained 40k finer grids - use 10k illustrative purposes ). Content ofcitiescan accessed via various accessors (see?gData`). instance, can retrieve original locations, assigned nodes, stored data using: can also get coordinates matching nodes (, red circle previous figure) using: interestingly, can now retrieve geographic information contained underlying grid (, gGraph object) node attributes: example, information stored worldgraph.10k rather crude: habitat distinguishes land sea. However, complex habitat information incorporated, instance GIS shapefiles (see dedicated section ).","code":"Bordeaux <- c(-1, 45) London <- c(0, 51) Malaga <- c(-4, 37) Zagreb <- c(16, 46) cities.dat <- rbind.data.frame(Bordeaux, London, Malaga, Zagreb) colnames(cities.dat) <- c(\"lon\", \"lat\") cities.dat$pop <- c(1e6, 13e6, 5e5, 1.2e6) row.names(cities.dat) <- c(\"Bordeaux\", \"London\", \"Malaga\", \"Zagreb\") cities.dat ## lon lat pop ## Bordeaux -1 45 1.0e+06 ## London 0 51 1.3e+07 ## Malaga -4 37 5.0e+05 ## Zagreb 16 46 1.2e+06 worldgraph.10k ## ## === gGraph object === ## ## @coords: spatial coordinates of 10242 nodes ## lon lat ## 1 -180.00 90.00 ## 2 144.00 -90.00 ## 3 -33.78 27.19 ## ... ## ## @nodes.attr: 1 nodes attributes ## habitat ## 1 sea ## 2 sea ## 3 sea ## ... ## ## @meta: list of meta information with 2 items ## [1] \"$colors\" \"$costs\" ## ## @graph: ## A graphNEL graph with undirected edges ## Number of Nodes = 10242 ## Number of Edges = 6954 plot(worldgraph.10k) cities <- new(\"gData\", coords = cities.dat[, 1:2], data = cities.dat[, 3, drop = FALSE], gGraph.name = \"worldgraph.10k\") cities ## ## === gData object === ## ## @coords: spatial coordinates of 4 nodes ## lon lat ## 1 -1 45 ## 2 0 51 ## 3 -4 37 ## ... ## ## @nodes.id: nodes identifiers ## 1 2 3 ## \"5774\" \"6413\" \"4815\" ## ... ## ## @data: 4 data ## pop ## Bordeaux 1.0e+06 ## London 1.3e+07 ## Malaga 5.0e+05 ## ... ## ## Associated gGraph: worldgraph.10k plot(cities, type = \"both\", reset = TRUE) plotEdges(worldgraph.10k) cities <- closestNode(cities, attr.name = \"habitat\", attr.value = \"land\") plot(cities, type = \"both\", reset = TRUE) plotEdges(worldgraph.10k) getCoords(cities) ## lon lat ## 5775 -1 45 ## 6413 0 51 ## 4815 -4 37 ## 7699 16 46 getNodes(cities) ## 5774 6413 4815 7699 ## \"5775\" \"6413\" \"4815\" \"7699\" getData(cities) ## pop ## Bordeaux 1.0e+06 ## London 1.3e+07 ## Malaga 5.0e+05 ## Zagreb 1.2e+06 getCoords(cities, original = FALSE) ## lon lat ## 5775 1.002e-05 43.73 ## 6413 1.002e-05 51.38 ## 4815 -3.788e+00 37.75 ## 7699 1.548e+01 46.74 getNodesAttr(cities) ## habitat ## 5775 land ## 6413 land ## 4815 land ## 7699 land"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"visualizing-data","dir":"Articles","previous_headings":"Using geoGraph","what":"Visualizing data","title":"An introduction to geoGraph","text":"essential aspect spatial analysis lies visualizing data. geoGraph, spatial grids (gGraph) spatial data (gData) can plotted browsed using variety functions.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"plotting-ggraph-objects","dir":"Articles","previous_headings":"Using geoGraph > Visualizing data","what":"Plotting gGraph objects","title":"An introduction to geoGraph","text":"Displaying gGraph object done plot points functions. first opens new plotting region, second draws current plotting region; functions otherwise similar arguments (see ?plot.gGraph). default, plotting gGraph displays grid nodes overlaying shapefile (default, landmasses). Edges can plotted time (argument edges), added afterwards using plotEdges. gGraph object possesses adequately formed meta$colors component, colors nodes chosen according node attributes color scheme specified meta$colors. Alternatively, color nodes can specified via col argument plot/points. example using worldgraph.10k: may worth noting plotting gGraph objects involves plotting fairly large number points edges. graphical devices, resulting plotting can slow. instance, one may want disable cairo linux: graphical device yields better graphics Xlib, expense increase computational time. switch Xlib, type: revert cairo, type:","code":"worldgraph.10k@meta$colors ## habitat color ## 1 sea blue ## 2 land green ## 3 mountain brown ## 4 landbridge light green ## 5 oceanic crossing light blue ## 6 deselected land lightgray head(getNodesAttr(worldgraph.10k)) ## habitat ## 1 sea ## 2 sea ## 3 sea ## 4 sea ## 5 sea ## 6 sea table(getNodesAttr(worldgraph.10k)) ## habitat ## deselected land land sea ## 290 2632 7320 plot(worldgraph.10k, reset = TRUE) title(\"Default plotting of worldgraph.10k\") X11.options(type = \"Xlib\") X11.options(type = \"cairo\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"zooming-in-and-out-sliding-etc-","dir":"Articles","previous_headings":"Using geoGraph > Visualizing data","what":"Zooming in and out, sliding, etc.","title":"An introduction to geoGraph","text":"practice, often useful able peer specific regions, generally navigate inside graphical representation data. , can use interactive functions geo.zoomin, geo.zoomout, geo.slide, geo.back, geo.bookmark, geo.goto. zoom slide functions require left-click graphics zoom , zoom , slide adjacent areas; cases, right click ends function. Also note geo.zoomin can accept argument specifying rectangular region, adapted function fit best square area similar position centre, zoom area (see ?geo.zoomin). geo.bookmark geo.goto respectively set go bookmark, .e. tagged area. useful one switch distant areas repeatedly. examples based previous plotting worldgraph.10k: Zooming : Zooming : Sliding east: One important thing makes plotting gGraph objects different plotting R geoGraph keeps changes made plotting area memory. allows undo one several moves using geo.back. Moreover, even graphical device killed, plotting gGraph use old parameters default. disable behavior, set argument reset=TRUE calling upon plot. Technically, ‘plotting memory’ implemented storing plotting information environment defined hidden environment geoGraph:::.geoGraphEnv: can inspect individual variables within environment: However, recommended modify objects directly, unless really know . case, plotting gGraph object argument reset=TRUE remove previous plotting history undo possible wrong manipulations.","code":"geo.zoomin() geo.zoomout() geo.slide() ls(env = geoGraph:::.geoGraphEnv) ## [1] \"bookmarks\" \"last.plot\" \"last.plot.param\" \"last.points\" ## [5] \"psize\" \"sticky.points\" \"usr\" \"zoom.log\" get(\"last.plot.param\", envir = geoGraph:::.geoGraphEnv) ## $psize ## [1] 0.5 ## ## $pch ## [1] 19"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"plotting-gdata-objects","dir":"Articles","previous_headings":"Using geoGraph > Visualizing data","what":"Plotting gData objects","title":"An introduction to geoGraph","text":"gData objects default plotted overlaying corresponding gGraph. instance, using cities example : Note argument reset=TRUE, tells plotting function adapt plotting area geographic extent dataset. plot additional information, can useful extract spatial coordinates data. achieved getCoords. method takes extra argument original, TRUE original spatial coordinates seeked, FALSE coordinates nodes grid. can use represent, instance, population sizes different cities:","code":"plot(cities, reset = TRUE) text(getCoords(cities), rownames(getData(cities))) transp <- function(col, alpha = .5) { res <- apply(col2rgb(col), 2, function(c) rgb(c[1] / 255, c[2] / 255, c[3] / 255, alpha)) return(res) } plot(cities, reset = TRUE) par(xpd = TRUE) text(getCoords(cities) + -.5, rownames(getData(cities))) symbols(getCoords(cities)[, 1], getCoords(cities)[, 2], circ = sqrt(unlist(getData(cities))), inch = .2, bg = transp(\"red\"), add = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"editing-ggraphs","dir":"Articles","previous_headings":"Using geoGraph","what":"Editing gGraphs","title":"An introduction to geoGraph","text":"Editing graphs essential task geoGraph. available gGraph objects provide basis work (see ?worldgraph.10k), one may want adapt graph specific case. instance, connectivity defined according biological knowledge organism study. gGraph can modified different ways: changing connectivity, costs edges, attribute values.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"changing-the-global-connectivity-of-a-ggraph","dir":"Articles","previous_headings":"Using geoGraph > Editing gGraphs","what":"Changing the global connectivity of a gGraph","title":"An introduction to geoGraph","text":"two main ways changing connectivity gGraph, match two different objectives. first approach perform global systematic changes connectivity graph. Typically, one want remove connections given type landscape, uncrossable organism study. Let’s assume interested saltwater fishes. model fish dispersal, define graph connects nodes overlaying sea. load gGraph object rawgraph.10k, zoom smaller area (Madagascar) illustrate changes connectivity: shall set bookmark area, case want get back place later : now want remove sea-sea connections. , easiest approach ) define costs edges based habitat, land given large costs ii) remove edges large costs. Costs given node attribute (, habitat') indicated themeta$costs` slot: just changed costs associated habitat type, change yet effective edges nodes. use setCosts set cost edge average costs nodes: new graph, represent edges width inversely proportional associated cost; , bold lines easy travelling light edges/dotted lines costly mouvement. enough yet, since travelling land still possible. However, can tell geoGraph remove edges associated strong cost, defined given threshold (using dropDeadEdges). , sea-sea connections shall retained, , edges cost 1. : newGraph contains connections sea. Note , although restrained plotting area Madagascar, change effective everywhere. instance, travelling nort-west Australian coasts:","code":"geo.zoomin(c(35, 54, -26, -10)) plotEdges(rawgraph.10k) geo.bookmark(\"madagascar\") ## ## Bookmark ' madagascar 'saved. rawgraph.10k@meta$costs ## habitat cost ## 1 sea 100 ## 2 land 1 ## 3 mountain 10 ## 4 landbridge 5 ## 5 oceanic crossing 20 ## 6 deselected land 100 newGraph <- rawgraph.10k newGraph@meta$costs[2:6, 2] <- 100 newGraph@meta$costs[1, 2] <- 1 newGraph@meta$costs ## habitat cost ## 1 sea 1 ## 2 land 100 ## 3 mountain 100 ## 4 landbridge 100 ## 5 oceanic crossing 100 ## 6 deselected land 100 newGraph <- setCosts(newGraph, attr.name = \"habitat\") plot(newGraph, edge = TRUE) newGraph <- dropDeadEdges(newGraph, thres = 1.1) plot(newGraph, edge = TRUE) geo.zoomin(c(110, 130, -27, -12)) geo.bookmark(\"australia\") ## ## Bookmark ' australia 'saved."},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"changing-local-properties-of-a-ggraph","dir":"Articles","previous_headings":"Using geoGraph > Editing gGraphs","what":"Changing local properties of a gGraph","title":"An introduction to geoGraph","text":"second approach changing gGraph refine graph hand, adding removing locally connections, altering attributes nodes. can necessary connect components islands main landmasses, correct erroneous data. Adding removing edges grid gGraph can achieved geo.add.edges geo.remove.edges, respectively. functions interactive, require user select individual nodes rectangular area edges added removed. See ?geo.add.edges information functions. instance, can remove odd connections previous graph, near Australian coasts (note save changes using <-): img adding connections within area entire graph, node addition based another gGraph,.e. connections existing another gGraph serving reference can added current gGraph. graphs based 10k 40k grids, raw graphs provided geoGraph used, (rawgraph.10k, rawgraph.40k), since fully connected. addition changing grid connectivity, may also want modify attributes specific nodes. done interactively, using function geo.change.attr. instance, , define new value shalowwater (plotted light blue) attribute habitat, selecting affected nodes using ‘area’ mode first, refining changes using ‘point’ mode: , note changes made graph save object (using <-) effective.","code":"geo.goto(\"australia\") newGraph <- geo.remove.edges(newGraph) plot(newGraph, edge = TRUE) temp <- geo.change.attr(newGraph, mode = \"area\", attr.name = \"habitat\", attr.value = \"shallowwater\", newCol = \"deepskyblue\") temp <- geo.change.attr(temp, attr.name = \"habitat\", attr.value = \"shallowwater\", newCol = \"deepskyblue\") newGraph <- temp newGraph@meta$colors ## habitat color ## 1 sea blue ## 2 land green ## 3 mountain brown ## 4 landbridge light green ## 5 oceanic crossing light blue ## 6 deselected land lightgray ## 7 shallowwater deepskyblue plot(newGraph, edge = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"extracting-information-from-gis-shapefiles","dir":"Articles","previous_headings":"Using geoGraph","what":"Extracting information from GIS shapefiles","title":"An introduction to geoGraph","text":"important feature geoGraph serving interface geographic information system (GIS) layers geographic data. currently implemented, geoGraph can extract information shapefiles Arc GIS (http://www.esri.com/software/arcgis/index.html) format, using function extractFromLayer. , illustrate procedure using shapefile world-countries.shp provided package. geoGraph still relies SpatialPolygonDataFrame objects sp package. move sf objects planned, moment use sf::st_read() read GIS shapefile sf object, cast SpatialPolygonDataFrame sf::as_Spatial(): summary world.countries shows data (attributes) stored layer. Let us assume interested retrieving continent country information worldgraph.10k object. Note extractFromLayer can extract information types objects gGraph (see ?extractFromLayer) new object newGraph gGraph now includes, node grid, corresponding continent country retrieved GIS layer. can use newly acquired information plotting newGraph, defining new color rules: information turn used define costs travelling grid. instance, one import habitat descriptors GIS, use values formulate habitat model, derive costs dispersal grid. soon GIS layer extracted gGraph, information becomes also available gData interfaced object. instance, can re-use cities example defined previous section, interface newGraph retrieve continent country information cities dataset:","code":"library(sf) ## Linking to GEOS 3.10.2, GDAL 3.4.1, PROJ 8.2.1; sf_use_s2() is TRUE world.countries <- sf::st_read(system.file(\"files/shapefiles/world-countries.shp\", package = \"geoGraph\")) ## Reading layer `world-countries' from data source ## `/home/runner/work/_temp/Library/geoGraph/files/shapefiles/world-countries.shp' ## using driver `ESRI Shapefile' ## Simple feature collection with 239 features and 8 fields ## Geometry type: MULTIPOLYGON ## Dimension: XY ## Bounding box: xmin: -180 ymin: -89.9 xmax: 181.8 ymax: 84.93 ## CRS: NA world.countries <- sf::as_Spatial(world.countries) class(world.countries) ## [1] \"SpatialPolygonsDataFrame\" ## attr(,\"package\") ## [1] \"sp\" summary(world.countries) ## Length Class Mode ## 239 SpatialPolygonsDataFrame S4 summary(getNodesAttr(worldgraph.10k)) ## habitat ## deselected land: 290 ## land :2632 ## sea :7320 newGraph <- extractFromLayer(worldgraph.10k, layer = world.countries, attr = c(\"CONTINENT\", \"NAME\")) summary(getNodesAttr(newGraph)) ## habitat CONTINENT NAME ## deselected land: 290 Length:10242 Length:10242 ## land :2632 Class :character Class :character ## sea :7320 Mode :character Mode :character temp <- unique(getNodesAttr(newGraph)$\"NAME\") col <- c(\"transparent\", rainbow(length(temp) - 1)) colMat <- data.frame(NAME = temp, color = col) head(colMat) ## NAME color ## 1 transparent ## 2 Antartica #FF0000 ## 3 Saudi Arabia #FF0B00 ## 4 Yemen #FF1500 ## 5 Somalia #FF2000 ## 6 China #FF2B00 tail(colMat) ## NAME color ## 140 Latvia #FF0040 ## 141 Belarus #FF0035 ## 142 Eritrea #FF002A ## 143 Djibouti #FF0020 ## 144 East Timor #FF0015 ## 145 Jordan #FF000B plot(newGraph, col.rules = colMat, reset = TRUE) cities.dat ## lon lat pop ## Bordeaux -1 45 1.0e+06 ## London 0 51 1.3e+07 ## Malaga -4 37 5.0e+05 ## Zagreb 16 46 1.2e+06 cities <- new(\"gData\", coords = cities.dat[, 1:2], data = cities.dat[, 3, drop = FALSE], gGraph.name = \"newGraph\") cities <- closestNode(cities, attr.name = \"habitat\", attr.value = \"land\") getData(cities) ## pop ## Bordeaux 1.0e+06 ## London 1.3e+07 ## Malaga 5.0e+05 ## Zagreb 1.2e+06 getNodesAttr(cities) ## habitat CONTINENT NAME ## 5775 land Europe France, Metropolitan ## 6413 land Europe United Kingdom ## 4815 land Europe Spain ## 7699 land Europe Austria"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"finding-least-cost-paths","dir":"Articles","previous_headings":"Using geoGraph","what":"Finding least-cost paths","title":"An introduction to geoGraph","text":"One useful applications geoGraph research least-cost paths couples locations. can achieved using functions dijkstraFrom dijkstraBetween gData object contains locations interest. functions return least-cost paths format gPath. dijkstraFrom compute paths given node grid locations gData, dijkstraBetween computes paths pairs locations gData. , detail example documentation functions, uses famous dataset native Human populations, HGDP: Populations dataset shown red circles, underlying grid (worldgraph.40k) represented colors depending habitat (blue: sea; green: land; pink: coasts). Population genetics predicts genetic diversity within populations decay populations located away geographic origin species. , verify relationship theoretical origin Addis abeba, Ethiopia. shall seek paths landmasses HGDP populations. First, check populations connected grid using isConnected: Note practice, may often want assess graphically connectivity underlying grid, especially locations gData connected. can done using connectivityPlot, methods gGraph gData, represents different connected components using different colors. instance, worldgraph.10k: Since locations hgdp connected, can proceed . set costs edges gGraph grid. , can choose ) strictly uniform costs (using dropCosts) ii) distance-based costs – roughly uniform – (using setDistCosts) iii) attribute-driven costs (using setCosts). shall first illustrate strictly uniform costs. setting gGraph uniform costs, use dijkstraFrom find shortest paths Addis abeba populations hgdp: object paths contains identified paths, stored list class gPath (see ?gPath). Paths can plotted easily: graph, path plotted different color, several paths overlap several places. can extract distances origin' usinggPath2dist, examine relationship genetic diversity within populations (stored inhgdp`) distance origin: Alternatively, can use costs based habitat. toy example, consider coasts four times favourable dispersal rest landmasses. define new costs, compute plot corresponding shortest paths: new paths slightly different previous ones. can examine new relationship genetic distance: course, distinction coasts inner landmasses somewhat poor description habitat. practice, complex habitat models can used simply.","code":"hgdp ## ## === gData object === ## ## @coords: spatial coordinates of 52 nodes ## lon lat ## 1 -3 59 ## 2 39 44 ## 3 40 61 ## ... ## ## @nodes.id: nodes identifiers ## 28179 11012 22532 ## \"26898\" \"11652\" \"22532\" ## ... ## ## @data: 52 data ## Population Region Label n Latitude Longitude Genetic.Div ## 1 Orcadian EUROPE 1 15 59 -3 0.7259 ## 2 Adygei EUROPE 2 17 44 39 0.7298 ## 3 Russian EUROPE 3 25 61 40 0.7320 ## ... ## ## Associated gGraph: worldgraph.40k plot(hgdp, reset = TRUE) isConnected(hgdp) ## [1] TRUE connectivityPlot(worldgraph.10k, edges = TRUE, seed = 1) geo.zoomin(c(90, 150, 18, -25)) title(\"Different connected components\\n in worldgraph.10k\") myGraph <- dropCosts(worldgraph.40k) hgdp@gGraph.name <- \"myGraph\" addis <- cbind(38, 9) ori <- closestNode(myGraph, addis) paths <- dijkstraFrom(hgdp, ori) ## Loading required package: RBGL addis <- as.vector(addis) plot(myGraph, col = NA, reset = TRUE) plot(paths) points(addis[1], addis[2], pch = \"x\", cex = 2) text(addis[1] + 35, addis[2], \"Addis abeba\", cex = .8, font = 2) points(hgdp, col.node = \"black\") div <- getData(hgdp)$\"Genetic.Div\" dgeo.unif <- gPath2dist(paths, res.type = \"vector\") plot(div ~ dgeo.unif, xlab = \"GeoGraphic distance (arbitrary units)\", ylab = \"Genetic diversity\") lm.unif <- lm(div ~ dgeo.unif) abline(lm.unif, col = \"red\") summary(lm.unif) ## ## Call: ## lm(formula = div ~ dgeo.unif) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.07327 -0.00660 0.00074 0.01015 0.05449 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 7.70e-01 4.58e-03 168.2 <2e-16 *** ## dgeo.unif -8.39e-04 5.31e-05 -15.8 <2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.0185 on 50 degrees of freedom ## Multiple R-squared: 0.833, Adjusted R-squared: 0.83 ## F-statistic: 250 on 1 and 50 DF, p-value: <2e-16 title(\"Genetic diversity vs geographic distance \\n uniform costs \") myGraph@meta$costs[7, ] <- c(\"coast\", 0.25) myGraph@meta$costs ## habitat cost ## 1 sea 100 ## 2 land 1 ## 3 mountain 10 ## 4 landbridge 5 ## 5 oceanic crossing 20 ## 6 deselected land 100 ## 7 coast 0.25 myGraph <- setCosts(myGraph, attr.name = \"habitat\") paths.2 <- dijkstraFrom(hgdp, ori) plot(newGraph, col = NA, reset = TRUE) plot(paths.2) points(addis[1], addis[2], pch = \"x\", cex = 2) text(addis[1] + 35, addis[2], \"Addis abeba\", cex = .8, font = 2) points(hgdp, col.node = \"black\") dgeo.hab <- gPath2dist(paths.2, res.type = \"vector\") plot(div ~ dgeo.hab, xlab = \"GeoGraphic distance (arbitrary units)\", ylab = \"Genetic diversity\") lm.hab <- lm(div ~ dgeo.hab) abline(lm.hab, col = \"red\") summary(lm.hab) ## ## Call: ## lm(formula = div ~ dgeo.hab) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.11183 -0.00976 0.00133 0.01216 0.06413 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 0.770137 0.007174 107.36 < 2e-16 *** ## dgeo.hab -0.001421 0.000145 -9.79 3.2e-13 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.0265 on 50 degrees of freedom ## Multiple R-squared: 0.657, Adjusted R-squared: 0.651 ## F-statistic: 95.9 on 1 and 50 DF, p-value: 3.21e-13 title(\"Genetic diversity vs geographic distance \\n habitat costs \")"},{"path":"https://evolecolgroup.github.io/geograph/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Thibaut Jombart. Author. Andrea Manica. Author, maintainer.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Jombart T, Manica (2023). geoGraph: Walking geographic space using graphs. R package version 1.1.1.9001, https://evolecolgroup.github.io/geograph/, https://github.com/EvolEcolGroup/geograph.","code":"@Manual{, title = {geoGraph: Walking through the geographic space using graphs}, author = {Thibaut Jombart and Andrea Manica}, year = {2023}, note = {R package version 1.1.1.9001, https://evolecolgroup.github.io/geograph/}, url = {https://github.com/EvolEcolGroup/geograph}, }"},{"path":"https://evolecolgroup.github.io/geograph/dev/index.html","id":"geograph","dir":"","previous_headings":"","what":"Walking through the geographic space using graphs","title":"Walking through the geographic space using graphs","text":"geoGraph aims implementing graph approaches geographic data. geoGraph, given geographic area modelled fine regular grid, vertice set spatial coordinates set attributes, can instance habitat descriptors, presence/abundance given species. ‘Travelling’ within geographic area can easily modelled moving connected vertices. cost moving one vertex another can defined according attribute values, allows instance define friction routes based habitat. geoGraph harnesses full power graph algorithms implemented R graph RBGL (R Boost Graph Library) packages. particular, RBGL interface R comprehensive Boost Graph Library C++, provides fast efficient implementations wide range graph algorithms. defined frictions entire geographic area, can easily, instance, find least costs path one location another, find parsimonious way connecting set locations. Interfacing spatial data graphs can complicated task. purpose geoGraph provide tools achieve simplify ‘preliminary’ step. achieved defining new classes objects essentially geo-referenced graphs node attributes (gGraph objects), interfaced spatial data (gData objects).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Walking through the geographic space using graphs","text":"can install development version geoGraph GitHub :","code":"install.packages(\"devtools\") devtools::install_github(\"EvolEcolGroup/geograph/\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/index.html","id":"how-the-package-works","dir":"","previous_headings":"","what":"How the package works","title":"Walking through the geographic space using graphs","text":"detailed introduction functionalities geoGraph found overview article website.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":null,"dir":"Reference","previous_headings":"","what":"Auxiliary methods for geoGraph — auxiliary","title":"Auxiliary methods for geoGraph — auxiliary","text":"methods low-level functions called procedures geoGraph. can, however, useful . Note unlike functions geoGraph, functions generally test validity provided arguments (speed purposes).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Auxiliary methods for geoGraph — auxiliary","text":"","code":"hasCosts(x) geo.segments( x0, y0, x1, y1, col = graphics::par(\"fg\"), lty = graphics::par(\"lty\"), lwd = graphics::par(\"lwd\"), ... )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Auxiliary methods for geoGraph — auxiliary","text":"x valid gGraph. x0, y0 coordinates points draw. x1, y1 coordinates points draw. col character string integer indicating color segments. lty character string integer indicating type line. lwd integer indicating line width. ... graphical parameters ('par') passed segments function.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Auxiliary methods for geoGraph — auxiliary","text":"hasCost, logical value returned. geo.segments returns NULL.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Auxiliary methods for geoGraph — auxiliary","text":"hasCosts: tests whether gGraph costs associated edges. geo.segments: substitute segments correctly draws segments locations distant 90 degrees longitude. rebuild: development.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Auxiliary methods for geoGraph — auxiliary","text":"","code":"hasCosts(worldgraph.10k) #> [1] FALSE"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute buffers around locations for gGraph and gData objects — buffer","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"generic function buffer finds buffers around specified locations gGraph gData object. Different format output available.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"","code":"# S4 method for gGraph buffer(x, nodes, d, res.type = c(\"nodes\", \"gGraph\"), ...) # S4 method for gData buffer(x, d, res.type = c(\"nodes\", \"gData\", \"gGraph\"), ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"x valid gGraph gData object. nodes character vector identifying nodes aournd buffers computed. d radius buffer, km. res.type type result returned (see section value. ... arguments passed specific methods.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"output depends value argument res.type: nodes: vector characters identifying nodes buffers. gGraph: gGraph object new attribute \"buffer\" (TRUE: within buffers; FALSE: outside buffers), new color rules attribute @meta$buf.colors. gData: gData object including nodes buffers.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"computed buffers sets nodes lying within given distance specified locations. nodes buffer need connected location surround.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"","code":"#### gGraph example #### ## zoom in to an area plot(worldgraph.10k, reset = TRUE) geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) ## identify one node oneNodeXY <- c(getCoords(worldgraph.10k)[9299, 1], getCoords(worldgraph.10k)[9299, 2]) points(oneNodeXY[1], oneNodeXY[2], col = \"red\") ## find some buffers buffer(worldgraph.10k, \"9299\", 100) # nothing around 100km #> [1] \"9299\" buffer(worldgraph.10k, \"9299\", 500) #> [1] \"9299\" \"8979\" \"9619\" \"9300\" \"9298\" \"8978\" \"9620\" \"8980\" \"8658\" \"9618\" #> [11] \"9940\" \"9301\" \"9621\" \"9297\" \"8977\" \"8657\" \"9941\" buf500km <- buffer(worldgraph.10k, \"9299\", 500, res = \"gGraph\") plot(buf500km, col.rules = buf500km@meta$buf.colors) buf1000km <- buffer(worldgraph.10k, \"9299\", 1000, res = \"gGraph\") plot(buf1000km, col.rules = buf1000km@meta$buf.colors) #### gData example #### x <- hgdp[27:30] # retain a subset of hgdp plot(x, reset = TRUE, col.g = \"lightgrey\", pch.node = 20) buf.200 <- buffer(x, 200, res = \"gData\") buf.400 <- buffer(x, 400, res = \"gData\") buf.600 <- buffer(x, 600, res = \"gData\") buf.1000 <- buffer(x, 1000, res = \"gData\") points(buf.1000, col.node = \"black\") points(buf.600, col.node = \"yellow\") points(buf.400, col.node = \"gold\") points(buf.200, col.node = \"orange\") title(\"Different buffers for a gData \\n(100km, 200km, 500km)\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":null,"dir":"Reference","previous_headings":"","what":"Find the closest node to a given location — closestNode","title":"Find the closest node to a given location — closestNode","text":"function closestNode searches closest node gGraph gData object given location. possible restrain research given values node attribute. instance, one can search closest node land given location.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find the closest node to a given location — closestNode","text":"","code":"closestNode(x, ...) # S4 method for gGraph closestNode(x, loc, zoneSize = 5, attr.name = NULL, attr.values = NULL) # S4 method for gData closestNode(x, zoneSize = 5, attr.name = NULL, attr.values = NULL)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find the closest node to a given location — closestNode","text":"x valid gGraph gData object. latter case, gGraph gData linked current environment. ... arguments passed specific methods. loc locations, specified list two components indicating longitude latitude locations. Alternatively, can data.frame matrix longitude latitude columns, order. Note locator() can used specify interactively locations. zoneSize numeric value indicating size zone (latitude/longitude units) closest node searched . Note matters speed purpose: closest node found inside given zone, zone expanded nodes found. attr.name optional name node attribute. See details. attr.values optional vector giving values attr.names. See details.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find the closest node to a given location — closestNode","text":"x gGraph object: vector node names. x gData object: gData object matching nodes stored @nodes.id slot. Note previous content @nodes.id erased.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Find the closest node to a given location — closestNode","text":"function also used match locations gData object nodes gGraph object linked. creating gData object, gGraph.name argument provided, locations matched gGraph object automatically, internal call closestNode. Note, however, possible specify node attributes (attr.names attr.values) way.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Find the closest node to a given location — closestNode","text":"closestNode(gGraph): Method gGraph closestNode(gData): Method gData","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find the closest node to a given location — closestNode","text":"","code":"if (FALSE) { ## interactive example ## plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## click some locations myNodes <- closestNode(worldgraph.10k, locator(), attr.name = \"habitat\", attr.value = \"land\") myNodes ## here are the closestNodes points(getCoords(worldgraph.10k)[myNodes, ], col = \"red\") } ## example with a gData object ## myLoc <- list(x = c(3, -8, 11, 28), y = c(50, 57, 71, 67)) # some locations obj <- new(\"gData\", coords = myLoc) # new gData object obj #> #> === gData object === #> #> @coords: spatial coordinates of 4 nodes #> lon lat #> 1 3 50 #> 2 -8 57 #> 3 11 71 #> ... #> #> @nodes.id: nodes identifiers #> character(0) #> #> @data: data #> NULL #> ... #> #> Associated gGraph: obj@gGraph.name <- \"worldgraph.10k\" # this could be done when creating obj obj <- closestNode(obj, attr.name = \"habitat\", attr.value = \"land\") ## plot the result (original location -> assigned node) plot(obj, method = \"both\", reset = TRUE) #> Warning: \"method\" is not a graphical parameter title(\"'x'=location, 'o'=assigned node\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Combine the costs of two gGraph objects — combineCosts","title":"Combine the costs of two gGraph objects — combineCosts","text":"function combineCosts combines edge costs two gGraph objects. first object used temlate generate objects combined costs. Two two gGraph objects must edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Combine the costs of two gGraph objects — combineCosts","text":"","code":"combineCosts(x1, x2, method = c(\"sum\", \"product\", \"function\"), FUN = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Combine the costs of two gGraph objects — combineCosts","text":"x1 firt gGraph (used template build combined gGraph) x2 second gGraph costs combined method character string indicating method used combined edge cost two gGraph. Currently available options 'sum', 'prod' 'function', combined costs computed sum, product custom function (defined FUN) costs nodes. FUN function used compute cost two nodes (needed method=\"function\"). ... additional parameters passed FUN.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Combine the costs of two gGraph objects — combineCosts","text":"gGraph object newly defined costs, basedd combination two gGraph objects, used weightings edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Combine the costs of two gGraph objects — combineCosts","text":"Note costs inversely proportional connectivity edges: larger cost associated edge, lower connectivity two concerned nodes. Also note 'costs' defined geoGraph equivalent 'weights' defined graph RBGL packages.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Combine the costs of two gGraph objects — combineCosts","text":"","code":"data(\"worldgraph.40k\") # new graph with custom cost function exp.cost <- function(x1, x2, cost.coeff) { exp(-abs(x1 - x2) * cost.coeff) } # create a set of node costs worldgraph.40k@nodes.attr$meanProd <- runif(n = 40962) new_costs_graph <- setCosts( worldgraph.40k, node.values = worldgraph.40k@nodes.attr$meanProd, method = \"function\", FUN = exp.cost, cost.coeff = 0.5 ) # combine costs from the original graph with the new costs combine_costs_graph <- combineCosts(worldgraph.40k, new_costs_graph, method = \"sum\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":null,"dir":"Reference","previous_headings":"","what":"Check connectivity of a gGraph object — connectivity","title":"Check connectivity of a gGraph object — connectivity","text":"functions areNeighbours, areConnected method isConnected test connectivity different ways.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check connectivity of a gGraph object — connectivity","text":"","code":"areNeighbours(V1, V2, graph) areConnected(x, nodes) # S4 method for gData isConnected(object, ...) isReachable(x, loc) connectivityPlot(x, ...) # S4 method for gGraph connectivityPlot(x, ..., seed = NULL) # S4 method for gData connectivityPlot(x, col.gGraph = 0, ..., seed = NULL)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check connectivity of a gGraph object — connectivity","text":"V1 vector node names V2 vector node names graph valid graphNEL object. x valid gGraph object. nodes vector node names object valid gData object. ... arguments passed methods. loc location, specified list two components giving respectively longitude latitude. Alternatively, can matrix-like object one row two columns. seed optional integer giving seed used randomizing colors. One given seed always give set colors. NULL default, meaning colors randomized time plot drawn. col.gGraph character string number indicating color nodes used plotting gGraph object. Defaults '0', meaning nodes invisible.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check connectivity of a gGraph object — connectivity","text":"areNeighbours: vector logical, one value couple nodes. areConnected: single logical value, TRUE nodes form connected set. isConnected: single logical value, TRUE nodes object form connected set.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check connectivity of a gGraph object — connectivity","text":"areNeighbours: tests connectivity couples nodes object inheriting graph class (like graphNEL object). areConnected: tests set nodes form connected set gGraph object. isConnected: tests nodes gData object form connected set. Note method gData, generic defined graph package. isReachable: tests one location (actually, closest node ) reachable set nodes gData object. connectivityPlot: plots connected sets gGraph gData object different colors. connectivityPlot, isolated nodes (.e. belonging connected set size > 1) plotted light grey.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check connectivity of a gGraph object — connectivity","text":"","code":"connectivityPlot(rawgraph.10k) connectivityPlot(worldgraph.10k)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":null,"dir":"Reference","previous_headings":"","what":"Shortest path using Dijkstra algorithm — dijkstra-methods","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"methods dijkstraFrom dijkstraBetween wrappers procedures implemented RBGL package, designed gGraph gData object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"","code":"dijkstraBetween(x, ...) # S4 method for gGraph dijkstraBetween(x, from, to) # S4 method for gData dijkstraBetween(x) dijkstraFrom(x, ...) # S4 method for gGraph dijkstraFrom(x, start) # S4 method for gData dijkstraFrom(x, start) # S3 method for gPath plot(x, col = \"rainbow\", lwd = 3, ...) gPath2dist(m, diag = FALSE, upper = FALSE, res.type = c(\"dist\", \"vector\"))"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"x gGraph gData object. plotting method gPath objects, gPath object. ... arguments passed segments method. vector character strings giving node names. vector character strings giving node names. start character string naming 'source' node. col character string indicating color palette colors used plotting edges. lwd numeric value indicating width edges. m gPath object obtained dijkstraBetween. diag, upper unused parameters added consistency .dist. res.type character string indicating type result returned: dist object ('dist'), vector distances ('vector'). Note 'dist' required pairwise data, output dijkstraBetween (opposed dijkstraFrom).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"\"gPath\" object. basically outputs RBGL's sp.function (see ?sp.), class attribute set \"gPath\", additional slot 'xy' containing geographic coordinates nodes involved paths.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"dijkstraFrom finds minimum costs paths nodes given 'source' node. dijkstraBetween finds minimum costs paths possible pairs nodes given two sets nodes. functions return objects S3 class \"gPath\". objects can plotted using plot.gPath. gPath2dist extracts pairwise distances gPath returned dijkstraBetween returns dist object. Note gPath contain pairwise information, warning issued, resulting output likely meaningless. 'dijkstraBetween', paths seeked possible pairs nodes '' ''.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"","code":"if (FALSE) { ## plotting world <- worldgraph.40k par(mar = rep(.1, 4)) plot(world, reset = TRUE) ## check connectivity isConnected(hgdp) # must be ok ## Lowest cost path from an hypothetical origin ori.coord <- list(33, 10) # one given location long/lat points(data.frame(ori.coord), pch = \"x\", col = \"black\", cex = 3) # an 'x' shows the putative origin ori <- closestNode(world, ori.coord) # assign it the closest node myPath <- dijkstraFrom(hgdp, ori) # compute shortest path ## plotting plot(world, pch = \"\") # plot the world points(hgdp, lwd = 3) # plot populations points(data.frame(ori.coord), pch = \"x\", col = \"black\", cex = 3) # add origin plot(myPath) # plot the path }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":null,"dir":"Reference","previous_headings":"","what":"Get rid of some 'dead' edges or nodes — dropDeadEdges","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"functions dropDeadEdges dropDeadNodes used remove 'dead edges' 'dead nodes'.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"","code":"dropDeadEdges(x, thres)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"x valid gGraph. thres numeric value indicating threshold cost edge removed. costs strictly greater thres removed.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"Dead edges edges associated prohibitive cost, , edges longer imply connectivity two nodes. Dead nodes nodes connected node, thus role connectivity graph.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) x <- dropDeadNodes(worldgraph.10k) plot(x) }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieves node attributes from a layer — extractFromLayer","title":"Retrieves node attributes from a layer — extractFromLayer","text":"generic function extractFromLayer uses information GIS shapefile define node attributes. node, information retrieved layer assigned node.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieves node attributes from a layer — extractFromLayer","text":"","code":"extractFromLayer(x, ...) # S4 method for matrix extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for data.frame extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for list extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for gGraph extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for gData extractFromLayer(x, layer = \"world\", attr = \"all\", ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieves node attributes from a layer — extractFromLayer","text":"x matrix, data.frame, list, valid gGraph, valid gData object. matrix data.frame, input must two columns giving longitudes latitudes locations considered. list, input must two components vectors giving longitudes latitudes locations. ... arguments passed methds. Currently used. layer shapefile class SpatialPolygonsDataFrame (see readShapePoly maptools package import data GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available (see ?data(worldshape)). attr character vector giving names variables extracted layer. '', available variables extracted. case problem, available names displayed error message. Available data also stored layer@data.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieves node attributes from a layer — extractFromLayer","text":"output depends nature input: - matrix, data.frame, list: data.frame one row per location, many columns requested variables ('attributes'). gGraph: gGraph object new node attributes (@nodes.attr slot). nodes attributes already existed, new attributes added new columns. gData: gData object new data associated locations (@data slot). New information merge older information according type data stored.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieves node attributes from a layer — extractFromLayer","text":"Nodes can specified different ways, including providing gGraph gData object. Outputs match input formats.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieves node attributes from a layer — extractFromLayer","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) ## see what info is available names(worldshape@data) unique(worldshape@data$CONTINENT) ## retrieve continent info for all nodes ## (might take a few seconds) x <- extractFromLayer(worldgraph.10k, layer = worldshape, attr = \"CONTINENT\") x table(getNodesAttr(x, attr.name = \"CONTINENT\")) ## subset Africa temp <- getNodesAttr(x, attr.name = \"CONTINENT\") == \"Africa\" temp[is.na(temp)] <- FALSE x <- x[temp] plot(x, reset = TRUE) }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":null,"dir":"Reference","previous_headings":"","what":"Find which nodes are on land — findLand","title":"Find which nodes are on land — findLand","text":"generic function findLand uses information GIS shapefile define nodes land, . Strickly speaking, 'land' fact inside polygon shapefile.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find which nodes are on land — findLand","text":"","code":"findLand(x, ...) # S4 method for matrix findLand(x, shape = \"world\", ...) # S4 method for data.frame findLand(x, shape = \"world\", ...) # S4 method for gGraph findLand(x, shape = \"world\", attr.name = \"habitat\", ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find which nodes are on land — findLand","text":"x matrix, data.frame, valid gGraph object. matrix data.frame, input must two columns giving longitudes latitudes locations considered. ... arguments passed methods. Currently used. shape shapefile class SpatialPolygonsDataFrame (see readShapePoly maptools package import data GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available (see ?data(worldshape)). attr.name character string giving name node attribute output stored.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find which nodes are on land — findLand","text":"output depends nature input: - matrix, data.frame: factor two levels 'land' 'sea'. gGraph: gGraph object new node attribute, possibly added previously existing node attributes (@nodes.attr slot).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Find which nodes are on land — findLand","text":"Nodes can specified either matrix geographic coordinates, gGraph object.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find which nodes are on land — findLand","text":"","code":"## create a new gGraph with random coordinates myCoords <- data.frame(long = runif(1000, -180, 180), lat = runif(1000, -90, 90)) obj <- new(\"gGraph\", coords = myCoords) obj # note: no node attribute #> #> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes #> lon lat #> 1 -102.227623 -75.66818 #> 2 8.870435 -43.17489 #> 3 72.150869 81.74692 #> ... #> #> @nodes.attr: 0 nodes attributes #> data frame with 0 columns and 0 rows #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 1000 #> Number of Edges = 0 plot(obj) ## find which points are on land obj <- findLand(obj) obj # note: new node attribute #> #> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes #> lon lat #> 1 -102.227623 -75.66818 #> 2 8.870435 -43.17489 #> 3 72.150869 81.74692 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 land #> 2 sea #> 3 sea #> ... #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 1000 #> Number of Edges = 0 ## define rules for colors temp <- data.frame(habitat = c(\"land\", \"sea\"), color = c(\"green\", \"blue\")) temp #> habitat color #> 1 land green #> 2 sea blue obj@meta$color <- temp ## plot object with new colors plot(obj)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":null,"dir":"Reference","previous_headings":"","what":"Formal class ","title":"Formal class ","text":"class gData formal (S4) class storing georeferenced data, consisting set locations (longitude latitude) one several variables measured. data designed matched gGraph object, location assigned closest node gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Formal class ","text":"Note several operations gData object, gGraph object linked present environment.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"Formal class ","text":"coords matrix spatial coordinates two columns, respectively longitude (-180 180) latitude. Positive numbers intended 'east' 'north', respectively. nodes.id vector character strings giving name nodes (gGraph object) associated locations. data kind data associated locations coords. matrix-like objects, rows correspond locations. gGraph.name character string name gGraph object object matched. Note none mandatory: new(\"gData\") work, create empty gGraph object. Also note finer matching locations nodes gGraph object can achieved creating object, instance using closestNode method.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"objects-from-the-class-gdata","dir":"Reference","previous_headings":"","what":"Objects from the class gData","title":"Formal class ","text":"gData objects can created calls new(\"gData\", ...), '...' can following arguments:","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Formal class ","text":"","code":"hgdp #> #> === gData object === #> #> @coords: spatial coordinates of 52 nodes #> lon lat #> 1 -3 59 #> 2 39 44 #> 3 40 61 #> ... #> #> @nodes.id: nodes identifiers #> 28179 11012 22532 #> \"26898\" \"11652\" \"22532\" #> ... #> #> @data: 52 data #> Population Region Label n Latitude Longitude Genetic.Div #> 1 Orcadian EUROPE 1 15 59 -3 0.7258820 #> 2 Adygei EUROPE 2 17 44 39 0.7297802 #> 3 Russian EUROPE 3 25 61 40 0.7319749 #> ... #> #> Associated gGraph: worldgraph.40k ## plot data plot(worldgraph.40k, pch = \"\") points(hgdp) ## subset and plot data onlyNorth <- hgdp[hgdp@data$Latitude > 0] # only northern populations plot(worldgraph.40k, reset = TRUE) abline(h = 0) # equator points(onlyNorth, pch.node = 20, cex = 2, col.node = \"purple\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":null,"dir":"Reference","previous_headings":"","what":"Formal class ","title":"Formal class ","text":"class gGraph formal (S4) class storing geographic data. data composed set geographic coordinates vertices ('nodes'), graph describing connectivity vertices. Data associated nodes can also stored ('nodes attributes'), well meta-information used plotting object, computing weights associated edges based nodes attributes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Formal class ","text":"slots, nodes uniquely identified name (reference taken row names @coords slot).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"Formal class ","text":"coords matrix spatial coordinates two columns, respectively longitude (-180 180) latitude. Positive numbers intended 'east' 'north', respectively. nodes.attr data.frame whose rows nodes, whose columns different variables associated nodes. meta list, likely containing named data.frames (see Slots). graph object class graphNEL, graph package (see class?graphNEL), describing connectivity among nodes. Note none mandatory: new(\"gGraph\") work, create empty gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"objects-from-the-class-ggraph","dir":"Reference","previous_headings":"","what":"Objects from the class gGraph","title":"Formal class ","text":"gGraph objects can created calls new(\"gGraph\", ...), '...' can following arguments:","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Formal class ","text":"","code":"## create an empty object new(\"gGraph\") #> #> === gGraph object === #> #> @coords: spatial coordinates of 0 nodes #> lon lat #> #> @nodes.attr: 0 nodes attributes #> data frame with 0 columns and 0 rows #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 0 #> Number of Edges = 0 ## plotting the object plot(rawgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## to play interactively with graphics, use: # geo.zoomin() # geo.zoomout() # geo.slide() # geo.back() ## defining a new object restrained to visible nodes x <- rawgraph.10k[isInArea(rawgraph.10k)] plot(x, reset = TRUE, edges = TRUE) title(\"x does just contain these visible nodes.\") ## define weights for edges x <- setCosts(x, attr.name = \"habitat\", method = \"prod\") plot(x, edges = TRUE) title(\"costs defined by habitat (land/land=1, other=100)\") ## drop 'dead edges' (i.e. with weight 0) x <- dropDeadEdges(x, thres = 10) plot(x, edges = TRUE) title(\"after droping edges with null weight\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":null,"dir":"Reference","previous_headings":"","what":"Add and remove edges from a gGraph object — geo.add.edges","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"functions geo.add.edges geo.remove.edges allow one add remove edges interactively gGraph object. adding edges, two approaches possible: - click vertices defining new edges (mode=\"points\") - select area edges reference graph added (mode=\"area\").","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"","code":"geo.add.edges(x, mode = c(\"points\", \"area\", \"all\"), refObj = \"rawgraph.40k\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"x valid gGraph object. mode character string indicating mode addition removal edges. 'points': user expected click vertices indicate edges. 'area': user expected click two points defining rectangular area within edges selected. '': edges reference graph added current object. refObj valid gGraph object, used reference adding edges. selecting area inside edges added, edges existing area refObj added x. Alternatively, character string can provided, corresponding one following datasets: 'rawgraph.10k', rawgraph.40k'.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"gGraph object newly added removed edges.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## remove edges geo.remove.edges(worldgraph.10k) # points mode geo.remove.edges(worldgraph.10k, mode = \"area\") # area mode ## add edges geo.add.edges(worldgraph.10k) # points mode geo.add.edges(worldgraph.10k, mode = \"area\") # area mode }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":null,"dir":"Reference","previous_headings":"","what":"Change values of a node attribute — geo.change.attr","title":"Change values of a node attribute — geo.change.attr","text":"functions geo.change.attr changes values given node attribute set selected nodes gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Change values of a node attribute — geo.change.attr","text":"","code":"geo.change.attr( x, mode = c(\"points\", \"area\"), attr.name, attr.value, only.name = NULL, only.value = NULL, newCol = \"black\", restore.edges = FALSE, refObj = \"rawgraph.40k\" )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Change values of a node attribute — geo.change.attr","text":"x valid gGraph object. mode character string indicating whether selected nodes clicked one one ('points') defining rectangular area ('area'). attr.name name node attribute modified. attr.value new value attribute assigned selected nodes. .name (optional) area mode, name node attribute add extra selection criterion. See details. .value (optional) area mode, .name specified, values .name can selected. See details. newCol character string giving new color attribute value. restore.edges logical indicating whether edges stemming modified nodes re-added graph, using refObj reference. useful connectivity redefined using setCosts nodes previously disconnected. refObj character string gGraph object, used reference re-adding edges. character string provided, must match one following dataset: 'rawgraph.10k', 'rawgraph.40k'.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Change values of a node attribute — geo.change.attr","text":"gGraph object modified node attributes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Change values of a node attribute — geo.change.attr","text":"argument .name allows one perform accurate selection nodes whose attribute changed, specifying values (.value) attribute (.name) can selected. instance, one may want define new attributes nodes worldgraph.10k exclusively land: done specifying .name=\"habitat\" .value=\"land\".","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Change values of a node attribute — geo.change.attr","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) ## have to click here for an area ## all nodes are modified in the area x <- geo.change.attr(worldgraph.10k, mode = \"area\", attr.name = \"habitat\", attr.value = \"fancy habitat\", newCol = \"pink\") # modify selected area plot(x, reset = TRUE) # modification in the whole selected area ## have to click here for an area ## only nodes on land are modified x <- geo.change.attr(x, mode = \"area\", attr.name = \"habitat\", attr.value = \"fancy2 habitat\", newCol = \"purple\", only.name = \"habitat\", only.value = \"land\") plot(x, reset = TRUE) # modification in the whole selected area }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geoGraph-package.html","id":null,"dir":"Reference","previous_headings":"","what":"The geoGraph package — geoGraph-package","title":"The geoGraph package — geoGraph-package","text":"package implements classes methods large-scale georeferenced data handled spatial graphs.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geoGraph-package.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The geoGraph package — geoGraph-package","text":"Main functionalities geoGraph summarized . === DATA HANDLING === geoGraph, data stored particular formal class named gGraph. class contains spatial coordinates set nodes (@coords), attributes nodes (@nodes.attr), meta-information nodes attributes (@meta), graph connections nodes class graphNEL (@graph). Several functions available handling gGraph data: accessors allow access slots object, sometimes additional treatment information: getGraph, getNodesAttr, getCoords, getNodes, getEdges, getCosts. setEdges: add/remove edges specified edges. setCosts: set costs edges. hasCosts: tests graph weighted (.e., non-uniform costs). isInArea: finds nodes currently plotted area. areConnected: tests nodes directly connected. connectivityPlot: plot connected components different colors. dropDeadEdges: suppress edges whose weight null. closestNode: given longitude latitude, finds closest node; specific values node attribute can provided, instance, find closest node land. show: printing gGraph objects. extractFromLayer: extract information GIS layers. findLand: checks nodes land. setCosts: define edges weights accoring rules specified @meta slot. geo.add.edges, geo.remove.edges: graphical functions adding removing edges. geo.change.attr: graphical functions changing attributes nodes. === GRAPHICS ===geoGraph aims providing advanced graphical facilities, zooming particular area, moving plotted area, visualizing connectivity nodes. plot: plot method various options, allowing display shapefile (default, map world), using color according attributes, showing connectivity nodes, etc. points: similar plot method, except new plot created. plotEdges: specific function plotting edges. detects object weighted graph, plots edges accordingly. geo.zoomin, geo.zoomout: zoom plot. geo.back: replot previous screens. geo.slide: slide plotted area toward indicated direction. geo.bookmark, geo.goto: set goto bookmarked area. === DATASETS === Datasets occupy central place geoGraph, since provide spatial models used later operations. Two main datasets proposed, gGraph resulting spliting earth cells (allmost perfectly) equal sizes. Two different resolutions provided: - worldgraph.10k: coverage using 10,000 nodes - worldgraph.40k: coverage using 40,000 nodes datasets : - worldshape: shapefile containing world countries. cite geoGraph, please use reference given citation(\"geoGraph\").","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geoGraph-package.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The geoGraph package — geoGraph-package","text":"","code":"## the class gGraph worldgraph.10k #> #> === gGraph object === #> #> @coords: spatial coordinates of 10242 nodes #> lon lat #> 1 -180.0000 90.00000 #> 2 144.0000 -90.00000 #> 3 -33.7806 27.18924 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 sea #> 3 sea #> ... #> #> @meta: list of meta information with 2 items #> [1] \"$colors\" \"$costs\" #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 10242 #> Number of Edges = 6954 ## plotting the object plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## to play interactively with graphics, use: # geo.zoomin() # geo.zoomout() # geo.slide() # geo.back() ## defining a new object restrained to visible nodes x <- worldgraph.10k[isInArea(worldgraph.10k)] plot(x, reset = TRUE, edges = TRUE) title(\"x does just contain these visible nodes.\") ## define weights for edges x <- setCosts(x, attr.name = \"habitat\", method = \"prod\") plot(x, edges = TRUE) title(\"connectivity defined by habitat (land/land=1, other=0)\") ## drop 'dead edges' (i.e. with weight 0) x <- dropDeadEdges(x) plot(x, edges = TRUE) title(\"after droping edges with null weight\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":null,"dir":"Reference","previous_headings":"","what":"Get colors associated to edges of a gGraph object — getColors","title":"Get colors associated to edges of a gGraph object — getColors","text":"function getColors returns colors associated nodes gGraph object, based specified node attribute.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get colors associated to edges of a gGraph object — getColors","text":"","code":"getColors(x, ...) # S4 method for gGraph getColors(x, nodes = \"all\", attr.name, col.rules = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get colors associated to edges of a gGraph object — getColors","text":"x valid gGraph. ... arguments passed methods. nodes vector character strings integers identifying nodes name index. Can \"\", case nodes considered. attr.name character string indicating name node attribute used define colors. col.rules matrix giving rules plotting attribute values different colors. See details.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get colors associated to edges of a gGraph object — getColors","text":"vector characters valid colors.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get colors associated to edges of a gGraph object — getColors","text":"Colors based node attribute, , column nodes.attr data.frame. attribute finite number values, likely factor. Correspondence values variable colors must provided @meta\\$color slot, col.rules argument. Color rules mus provided two-column matrix; first column contains values node attribute, named attribute; second must named \"color\", contain valid colors. See example section know slot designed.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get colors associated to edges of a gGraph object — getColors","text":"getColors(gGraph): Method gGraph objects","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get colors associated to edges of a gGraph object — getColors","text":"","code":"worldgraph.10k # there is a node attribute 'habitat' #> #> === gGraph object === #> #> @coords: spatial coordinates of 10242 nodes #> lon lat #> 1 -180.0000 90.00000 #> 2 144.0000 -90.00000 #> 3 -33.7806 27.18924 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 sea #> 3 sea #> ... #> #> @meta: list of meta information with 2 items #> [1] \"$colors\" \"$costs\" #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 10242 #> Number of Edges = 6954 worldgraph.10k@meta$color #> habitat color #> 1 sea blue #> 2 land green #> 3 mountain brown #> 4 landbridge light green #> 5 oceanic crossing light blue #> 6 deselected land lightgray head(getNodes(worldgraph.10k)) #> [1] \"1\" \"2\" \"3\" \"4\" \"5\" \"6\" head(getColors(worldgraph.10k, res.type = \"vector\", attr.name = \"habitat\")) #> 1 2 3 4 5 6 #> \"blue\" \"blue\" \"blue\" \"blue\" \"blue\" \"blue\""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Get costs associated to edges of a gGraph object — getCosts","title":"Get costs associated to edges of a gGraph object — getCosts","text":"function getCosts returns costs associated edges gGraph object using different possible outputs. outputs designed match possible outputs getEdges function.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get costs associated to edges of a gGraph object — getCosts","text":"","code":"getCosts(x, ...) # S4 method for gGraph getCosts(x, res.type = c(\"asIs\", \"vector\"), unique = FALSE, ...) getNodeCosts(x, ...) # S4 method for gGraph getNodeCosts(x, attr.name, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get costs associated to edges of a gGraph object — getCosts","text":"x valid gGraph. ... arguments passed methods (currently unused). res.type character string indicating kind output used. See value. unique logical indicating whether costs returned unique edges (TRUE), duplicate edges considered well (TRUE, default). attr.name name node attribute used define node costs.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get costs associated to edges of a gGraph object — getCosts","text":"output depends value argument res.type: asIs: output named list weights, slot containing weights associated edges stemming one given node. format weights accessor graphNEL objects. vector: vector weights; output matches matrix outputs getEdges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get costs associated to edges of a gGraph object — getCosts","text":"getNodeCosts returns costs associated nodes based one node attribute. notion 'costs' context gGraph objects identical concept 'weights' graph (thus graphNEL) objects. larger edge, less connectivity couple concerned nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get costs associated to edges of a gGraph object — getCosts","text":"getCosts(gGraph): Method gGraph object getNodeCosts(): Function get costs values nodes getNodeCosts(gGraph): Method get node costs gGraph object","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get costs associated to edges of a gGraph object — getCosts","text":"","code":"head(getEdges(worldgraph.10k, res.type = \"matNames\", unique = TRUE)) #> Vi Vj #> [1,] \"67\" \"9955\" #> [2,] \"67\" \"68\" #> [3,] \"67\" \"9953\" #> [4,] \"68\" \"69\" #> [5,] \"68\" \"9955\" #> [6,] \"69\" \"9957\" head(getCosts(worldgraph.10k, res.type = \"vector\", unique = TRUE)) #> 67.9955 67.68 67.9953 68.69 68.9955 69.9957 #> 1 1 1 1 1 1"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":null,"dir":"Reference","previous_headings":"","what":"Get edges from a gGraph object — getEdges","title":"Get edges from a gGraph object — getEdges","text":"function getEdges returns edges gGraph object using different possible outputs.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get edges from a gGraph object — getEdges","text":"","code":"getEdges(x, ...) # S4 method for gGraph getEdges(x, res.type = c(\"asIs\", \"matNames\", \"matId\"), unique = FALSE, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get edges from a gGraph object — getEdges","text":"x valid gGraph. ... arguments passed methods (currently unused). res.type character string indicating kind output used. See value. unique logical indicating whether returned edges unique (TRUE) duplicated edges allowed (TRUE, default).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get edges from a gGraph object — getEdges","text":"output depends value argument res.type: asIs: output named list nodes, slot containing nodes forming edge one given node. format edges accessor graphNEL objects. matNames: matrix two columns giving couples node names forming edges. matId: matrix two columns giving couples node indices forming edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get edges from a gGraph object — getEdges","text":"getEdges(gGraph): Method gGraph objects","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get edges from a gGraph object — getEdges","text":"","code":"example(gGraph) #> #> gGraph> ## create an empty object #> gGraph> new(\"gGraph\") #> #> === gGraph object === #> #> @coords: spatial coordinates of 0 nodes #> lon lat #> #> @nodes.attr: 0 nodes attributes #> data frame with 0 columns and 0 rows #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 0 #> Number of Edges = 0 #> #> gGraph> ## plotting the object #> gGraph> plot(rawgraph.10k, reset = TRUE) #> #> gGraph> ## zooming in #> gGraph> geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) #> #> gGraph> title(\"Europe\") #> #> gGraph> ## to play interactively with graphics, use: #> gGraph> # geo.zoomin() #> gGraph> # geo.zoomout() #> gGraph> # geo.slide() #> gGraph> # geo.back() #> gGraph> #> gGraph> ## defining a new object restrained to visible nodes #> gGraph> x <- rawgraph.10k[isInArea(rawgraph.10k)] #> #> gGraph> plot(x, reset = TRUE, edges = TRUE) #> #> gGraph> title(\"x does just contain these visible nodes.\") #> #> gGraph> ## define weights for edges #> gGraph> x <- setCosts(x, attr.name = \"habitat\", method = \"prod\") #> #> gGraph> plot(x, edges = TRUE) #> #> gGraph> title(\"costs defined by habitat (land/land=1, other=100)\") #> #> gGraph> ## drop 'dead edges' (i.e. with weight 0) #> gGraph> x <- dropDeadEdges(x, thres = 10) #> #> gGraph> plot(x, edges = TRUE) #> #> gGraph> title(\"after droping edges with null weight\") getEdges(x) #> $`707` #> [1] \"1027\" \"9951\" \"9952\" \"1028\" #> #> $`1027` #> [1] \"707\" \"1347\" \"1028\" \"9950\" \"9951\" \"1348\" #> #> $`1028` #> [1] \"1348\" \"1027\" \"707\" #> #> $`1347` #> [1] \"1027\" \"1667\" \"1348\" \"9950\" \"1668\" #> #> $`1348` #> [1] \"1028\" \"1668\" \"1347\" \"1027\" #> #> $`1667` #> [1] \"1347\" \"1987\" \"1668\" \"9948\" \"1988\" #> #> $`1668` #> [1] \"1348\" \"1988\" \"1667\" \"1347\" #> #> $`1987` #> [1] \"1667\" \"1988\" \"9947\" \"9948\" \"2308\" #> #> $`1988` #> [1] \"1668\" \"2308\" \"1987\" \"1667\" #> #> $`2307` #> character(0) #> #> $`2308` #> [1] \"1988\" \"1987\" #> #> $`2627` #> character(0) #> #> $`2628` #> character(0) #> #> $`2947` #> [1] \"3267\" \"2948\" \"3268\" #> #> $`2948` #> [1] \"3268\" \"2947\" #> #> $`3267` #> [1] \"2947\" \"3587\" \"3268\" \"9943\" \"3588\" #> #> $`3268` #> [1] \"2948\" \"3588\" \"3267\" \"2947\" #> #> $`3533` #> character(0) #> #> $`3534` #> [1] \"3855\" #> #> $`3587` #> [1] \"3267\" \"3907\" \"3588\" \"9942\" \"9943\" \"3908\" #> #> $`3588` #> [1] \"3268\" \"3908\" \"3587\" \"3267\" #> #> $`3853` #> character(0) #> #> $`3854` #> character(0) #> #> $`3855` #> [1] \"4175\" \"3534\" \"4176\" #> #> $`3907` #> [1] \"3587\" \"4227\" \"3908\" \"9941\" \"9942\" \"4228\" #> #> $`3908` #> [1] \"3588\" \"4228\" \"3907\" \"3587\" #> #> $`4172` #> character(0) #> #> $`4173` #> character(0) #> #> $`4174` #> character(0) #> #> $`4175` #> [1] \"3855\" \"4176\" \"4496\" #> #> $`4176` #> [1] \"4496\" \"4175\" \"3855\" \"4497\" #> #> $`4227` #> [1] \"3907\" \"4547\" \"4228\" \"9940\" \"9941\" #> #> $`4228` #> [1] \"3908\" \"4227\" \"3907\" #> #> $`4492` #> character(0) #> #> $`4493` #> [1] \"4813\" \"4494\" \"4814\" #> #> $`4494` #> [1] \"4814\" \"4493\" \"4815\" #> #> $`4495` #> character(0) #> #> $`4496` #> [1] \"4176\" \"4497\" \"4175\" \"4817\" #> #> $`4497` #> [1] \"4817\" \"4496\" \"4176\" \"4818\" #> #> $`4547` #> [1] \"4227\" \"4867\" \"9939\" \"9940\" #> #> $`4811` #> character(0) #> #> $`4812` #> character(0) #> #> $`4813` #> [1] \"4493\" \"4814\" \"5134\" #> #> $`4814` #> [1] \"4494\" \"5134\" \"4815\" \"4813\" \"4493\" \"5135\" #> #> $`4815` #> [1] \"5135\" \"4814\" \"4494\" \"5136\" #> #> $`4816` #> character(0) #> #> $`4817` #> [1] \"4497\" \"5137\" \"4818\" \"4496\" \"5138\" #> #> $`4818` #> [1] \"5138\" \"4817\" \"4497\" \"5139\" #> #> $`4867` #> [1] \"4547\" \"5187\" \"9938\" \"9939\" #> #> $`5131` #> character(0) #> #> $`5132` #> character(0) #> #> $`5133` #> character(0) #> #> $`5134` #> [1] \"4814\" \"5135\" \"4813\" \"5455\" #> #> $`5135` #> [1] \"4815\" \"5455\" \"5136\" \"5134\" \"4814\" #> #> $`5136` #> [1] \"5137\" \"5135\" \"4815\" #> #> $`5137` #> [1] \"4817\" \"5138\" \"5136\" \"5458\" #> #> $`5138` #> [1] \"4818\" \"5458\" \"5139\" \"5137\" \"4817\" \"5459\" #> #> $`5139` #> [1] \"5459\" \"5138\" \"4818\" \"5460\" #> #> $`5187` #> [1] \"4867\" \"5507\" \"9937\" \"9938\" #> #> $`5450` #> character(0) #> #> $`5451` #> character(0) #> #> $`5452` #> character(0) #> #> $`5453` #> character(0) #> #> $`5454` #> character(0) #> #> $`5455` #> [1] \"5135\" \"5775\" \"5134\" \"5776\" #> #> $`5456` #> character(0) #> #> $`5457` #> character(0) #> #> $`5458` #> [1] \"5138\" \"5459\" \"5137\" \"5779\" #> #> $`5459` #> [1] \"5139\" \"5779\" \"5460\" \"5458\" \"5138\" \"5780\" #> #> $`5460` #> [1] \"5780\" \"5459\" \"5139\" \"5781\" #> #> $`5507` #> [1] \"5187\" \"5827\" \"9936\" \"9937\" #> #> $`5770` #> [1] \"6090\" #> #> $`5771` #> character(0) #> #> $`5772` #> character(0) #> #> $`5773` #> character(0) #> #> $`5774` #> character(0) #> #> $`5775` #> [1] \"5455\" \"6095\" \"5776\" \"6096\" #> #> $`5776` #> [1] \"6096\" \"5775\" \"5455\" #> #> $`5777` #> character(0) #> #> $`5778` #> character(0) #> #> $`5779` #> [1] \"5459\" \"5780\" \"5458\" \"6100\" #> #> $`5780` #> [1] \"5460\" \"6100\" \"5781\" \"5779\" \"5459\" \"6101\" #> #> $`5781` #> [1] \"6101\" \"5780\" \"5460\" \"6102\" #> #> $`5827` #> [1] \"5507\" \"6147\" \"9935\" \"9936\" #> #> $`6089` #> character(0) #> #> $`6090` #> [1] \"5770\" \"6411\" #> #> $`6091` #> character(0) #> #> $`6092` #> character(0) #> #> $`6093` #> [1] \"6413\" \"6094\" \"6414\" #> #> $`6094` #> [1] \"6414\" \"6095\" \"6093\" \"6415\" #> #> $`6095` #> [1] \"5775\" \"6415\" \"6096\" \"6094\" \"6416\" #> #> $`6096` #> [1] \"5776\" \"6416\" \"6095\" \"5775\" \"6417\" #> #> $`6097` #> character(0) #> #> $`6098` #> character(0) #> #> $`6099` #> character(0) #> #> $`6100` #> [1] \"5780\" \"6101\" \"5779\" \"6421\" #> #> $`6101` #> [1] \"5781\" \"6421\" \"6102\" \"6100\" \"5780\" \"6422\" #> #> $`6102` #> [1] \"6422\" \"6101\" \"5781\" \"6423\" #> #> $`6147` #> [1] \"5827\" \"6467\" \"9935\" #> #> $`6409` #> character(0) #> #> $`6410` #> character(0) #> #> $`6411` #> [1] \"6412\" \"6090\" #> #> $`6412` #> [1] \"6413\" \"6411\" #> #> $`6413` #> [1] \"6093\" \"6414\" \"6412\" #> #> $`6414` #> [1] \"6094\" \"6415\" \"6413\" \"6093\" \"6735\" #> #> $`6415` #> [1] \"6095\" \"6735\" \"6416\" \"6414\" \"6094\" \"6736\" #> #> $`6416` #> [1] \"6096\" \"6736\" \"6417\" \"6415\" \"6095\" \"6737\" #> #> $`6417` #> [1] \"6737\" \"6416\" \"6096\" #> #> $`6418` #> character(0) #> #> $`6419` #> character(0) #> #> $`6420` #> character(0) #> #> $`6421` #> [1] \"6101\" \"6422\" \"6100\" #> #> $`6422` #> [1] \"6102\" \"6423\" \"6421\" \"6101\" #> #> $`6423` #> [1] \"6422\" \"6102\" \"6744\" #> #> $`6467` #> [1] \"6147\" \"9933\" #> #> $`6728` #> character(0) #> #> $`6729` #> character(0) #> #> $`6730` #> character(0) #> #> $`6731` #> character(0) #> #> $`6732` #> character(0) #> #> $`6733` #> character(0) #> #> $`6734` #> character(0) #> #> $`6735` #> [1] \"6415\" \"7055\" \"6736\" \"6414\" \"7056\" #> #> $`6736` #> [1] \"6416\" \"7056\" \"6737\" \"6735\" \"6415\" \"7057\" #> #> $`6737` #> [1] \"6417\" \"7057\" \"6736\" \"6416\" \"7058\" #> #> $`6738` #> character(0) #> #> $`6739` #> character(0) #> #> $`6740` #> character(0) #> #> $`6741` #> character(0) #> #> $`6742` #> character(0) #> #> $`6743` #> character(0) #> #> $`6744` #> [1] \"6423\" \"7065\" #> #> $`6787` #> character(0) #> #> $`7048` #> character(0) #> #> $`7049` #> character(0) #> #> $`7050` #> character(0) #> #> $`7051` #> character(0) #> #> $`7052` #> character(0) #> #> $`7053` #> character(0) #> #> $`7054` #> character(0) #> #> $`7055` #> [1] \"6735\" \"7375\" \"7056\" \"7376\" #> #> $`7056` #> [1] \"6736\" \"7376\" \"7057\" \"7055\" \"6735\" \"7377\" #> #> $`7057` #> [1] \"6737\" \"7377\" \"7058\" \"7056\" \"6736\" \"7378\" #> #> $`7058` #> [1] \"7378\" \"7059\" \"7057\" \"6737\" #> #> $`7059` #> [1] \"7058\" #> #> $`7060` #> character(0) #> #> $`7061` #> character(0) #> #> $`7062` #> character(0) #> #> $`7063` #> character(0) #> #> $`7064` #> character(0) #> #> $`7065` #> [1] \"6744\" \"7386\" #> #> $`7107` #> character(0) #> #> $`7367` #> character(0) #> #> $`7368` #> character(0) #> #> $`7369` #> character(0) #> #> $`7370` #> character(0) #> #> $`7371` #> character(0) #> #> $`7372` #> character(0) #> #> $`7373` #> character(0) #> #> $`7374` #> character(0) #> #> $`7375` #> [1] \"7055\" \"7695\" \"7376\" \"7696\" #> #> $`7376` #> [1] \"7056\" \"7696\" \"7377\" \"7375\" \"7055\" \"7697\" #> #> $`7377` #> [1] \"7057\" \"7697\" \"7378\" \"7376\" \"7056\" \"7698\" #> #> $`7378` #> [1] \"7058\" \"7698\" \"7377\" \"7057\" \"7699\" #> #> $`7379` #> character(0) #> #> $`7380` #> character(0) #> #> $`7381` #> [1] \"7702\" #> #> $`7382` #> character(0) #> #> $`7383` #> character(0) #> #> $`7384` #> character(0) #> #> $`7385` #> character(0) #> #> $`7386` #> [1] \"7065\" #> #> $`7687` #> character(0) #> #> $`7688` #> character(0) #> #> $`7689` #> character(0) #> #> $`7690` #> character(0) #> #> $`7691` #> character(0) #> #> $`7692` #> [1] \"8012\" \"7693\" \"8013\" #> #> $`7693` #> [1] \"8013\" \"7694\" \"7692\" \"8014\" #> #> $`7694` #> [1] \"8014\" \"7695\" \"7693\" \"8015\" #> #> $`7695` #> [1] \"7375\" \"8015\" \"7696\" \"7694\" #> #> $`7696` #> [1] \"7376\" \"7697\" \"7695\" \"7375\" \"8017\" #> #> $`7697` #> [1] \"7377\" \"8017\" \"7698\" \"7696\" \"7376\" \"8018\" #> #> $`7698` #> [1] \"7378\" \"8018\" \"7699\" \"7697\" \"7377\" \"8019\" #> #> $`7699` #> [1] \"8019\" \"7700\" \"7698\" \"7378\" \"8020\" #> #> $`7700` #> [1] \"8020\" \"7699\" \"8021\" #> #> $`7701` #> character(0) #> #> $`7702` #> [1] \"8022\" \"7381\" \"8023\" #> #> $`7703` #> character(0) #> #> $`7704` #> character(0) #> #> $`7705` #> character(0) #> #> $`7706` #> character(0) #> #> $`8006` #> character(0) #> #> $`8007` #> character(0) #> #> $`8008` #> character(0) #> #> $`8009` #> character(0) #> #> $`8010` #> character(0) #> #> $`8011` #> character(0) #> #> $`8012` #> [1] \"7692\" \"8332\" \"8013\" \"8333\" #> #> $`8013` #> [1] \"7693\" \"8333\" \"8014\" \"8012\" \"7692\" \"8334\" #> #> $`8014` #> [1] \"7694\" \"8334\" \"8015\" \"8013\" \"7693\" #> #> $`8015` #> [1] \"7695\" \"8014\" \"7694\" #> #> $`8016` #> character(0) #> #> $`8017` #> [1] \"7697\" \"8337\" \"8018\" \"7696\" \"8338\" #> #> $`8018` #> [1] \"7698\" \"8338\" \"8019\" \"8017\" \"7697\" \"8339\" #> #> $`8019` #> [1] \"7699\" \"8339\" \"8020\" \"8018\" \"7698\" \"8340\" #> #> $`8020` #> [1] \"7700\" \"8340\" \"8021\" \"8019\" \"7699\" \"8341\" #> #> $`8021` #> [1] \"8341\" \"8022\" \"8020\" \"7700\" \"8342\" #> #> $`8022` #> [1] \"7702\" \"8342\" \"8023\" \"8021\" \"8343\" #> #> $`8023` #> [1] \"8343\" \"8022\" \"7702\" #> #> $`8024` #> character(0) #> #> $`8025` #> character(0) #> #> $`8026` #> character(0) #> #> $`8027` #> [1] \"8348\" #> #> $`8325` #> character(0) #> #> $`8326` #> character(0) #> #> $`8327` #> character(0) #> #> $`8328` #> character(0) #> #> $`8329` #> character(0) #> #> $`8330` #> character(0) #> #> $`8331` #> character(0) #> #> $`8332` #> [1] \"8012\" \"8652\" \"8333\" \"8653\" #> #> $`8333` #> [1] \"8013\" \"8653\" \"8334\" \"8332\" \"8012\" #> #> $`8334` #> [1] \"8014\" \"8333\" \"8013\" #> #> $`8335` #> character(0) #> #> $`8336` #> character(0) #> #> $`8337` #> [1] \"8017\" \"8657\" \"8338\" \"8658\" #> #> $`8338` #> [1] \"8018\" \"8658\" \"8339\" \"8337\" \"8017\" \"8659\" #> #> $`8339` #> [1] \"8019\" \"8659\" \"8340\" \"8338\" \"8018\" \"8660\" #> #> $`8340` #> [1] \"8020\" \"8660\" \"8341\" \"8339\" \"8019\" \"8661\" #> #> $`8341` #> [1] \"8021\" \"8661\" \"8342\" \"8340\" \"8020\" \"8662\" #> #> $`8342` #> [1] \"8022\" \"8662\" \"8343\" \"8341\" \"8021\" \"8663\" #> #> $`8343` #> [1] \"8023\" \"8663\" \"8342\" \"8022\" \"8664\" #> #> $`8344` #> character(0) #> #> $`8345` #> character(0) #> #> $`8346` #> character(0) #> #> $`8347` #> character(0) #> #> $`8348` #> [1] \"8027\" \"8669\" #> #> $`8646` #> character(0) #> #> $`8647` #> character(0) #> #> $`8648` #> character(0) #> #> $`8649` #> character(0) #> #> $`8650` #> character(0) #> #> $`8651` #> [1] \"8971\" \"8652\" \"8972\" #> #> $`8652` #> [1] \"8332\" \"8972\" \"8653\" \"8651\" #> #> $`8653` #> [1] \"8333\" \"8652\" \"8332\" \"8974\" #> #> $`8654` #> character(0) #> #> $`8655` #> character(0) #> #> $`8656` #> character(0) #> #> $`8657` #> [1] \"8337\" \"8977\" \"8658\" \"8978\" #> #> $`8658` #> [1] \"8338\" \"8978\" \"8659\" \"8657\" \"8337\" \"8979\" #> #> $`8659` #> [1] \"8339\" \"8979\" \"8660\" \"8658\" \"8338\" \"8980\" #> #> $`8660` #> [1] \"8340\" \"8980\" \"8661\" \"8659\" \"8339\" \"8981\" #> #> $`8661` #> [1] \"8341\" \"8981\" \"8662\" \"8660\" \"8340\" \"8982\" #> #> $`8662` #> [1] \"8342\" \"8982\" \"8663\" \"8661\" \"8341\" \"8983\" #> #> $`8663` #> [1] \"8343\" \"8983\" \"8664\" \"8662\" \"8342\" \"8984\" #> #> $`8664` #> [1] \"8984\" \"8663\" \"8343\" #> #> $`8665` #> character(0) #> #> $`8666` #> character(0) #> #> $`8667` #> character(0) #> #> $`8668` #> character(0) #> #> $`8669` #> [1] \"8348\" \"8990\" #> #> $`8967` #> character(0) #> #> $`8968` #> character(0) #> #> $`8969` #> character(0) #> #> $`8970` #> character(0) #> #> $`8971` #> [1] \"8651\" \"9291\" \"8972\" \"9292\" #> #> $`8972` #> [1] \"8652\" \"9292\" \"8971\" \"8651\" \"9293\" #> #> $`8973` #> character(0) #> #> $`8974` #> [1] \"9294\" \"8975\" \"8653\" \"9295\" #> #> $`8975` #> [1] \"9295\" \"8976\" \"8974\" #> #> $`8976` #> [1] \"8977\" \"8975\" \"9297\" #> #> $`8977` #> [1] \"8657\" \"9297\" \"8978\" \"8976\" \"9298\" #> #> $`8978` #> [1] \"8658\" \"9298\" \"8979\" \"8977\" \"8657\" \"9299\" #> #> $`8979` #> [1] \"8659\" \"9299\" \"8980\" \"8978\" \"8658\" \"9300\" #> #> $`8980` #> [1] \"8660\" \"9300\" \"8981\" \"8979\" \"8659\" \"9301\" #> #> $`8981` #> [1] \"8661\" \"9301\" \"8982\" \"8980\" \"8660\" \"9302\" #> #> $`8982` #> [1] \"8662\" \"9302\" \"8983\" \"8981\" \"8661\" \"9303\" #> #> $`8983` #> [1] \"8663\" \"9303\" \"8984\" \"8982\" \"8662\" #> #> $`8984` #> [1] \"8664\" \"8983\" \"8663\" #> #> $`8985` #> character(0) #> #> $`8986` #> [1] \"9306\" \"9307\" #> #> $`8987` #> character(0) #> #> $`8988` #> character(0) #> #> $`8989` #> character(0) #> #> $`8990` #> [1] \"8669\" #> #> $`9287` #> character(0) #> #> $`9288` #> character(0) #> #> $`9289` #> character(0) #> #> $`9290` #> character(0) #> #> $`9291` #> [1] \"8971\" \"9292\" \"9612\" #> #> $`9292` #> [1] \"8972\" \"9612\" \"9293\" \"9291\" \"8971\" \"9613\" #> #> $`9293` #> [1] \"9613\" \"9294\" \"9292\" \"8972\" \"9614\" #> #> $`9294` #> [1] \"8974\" \"9614\" \"9295\" \"9293\" \"9615\" #> #> $`9295` #> [1] \"8975\" \"9615\" \"9294\" \"8974\" \"9616\" #> #> $`9296` #> character(0) #> #> $`9297` #> [1] \"8977\" \"9617\" \"9298\" \"8976\" \"9618\" #> #> $`9298` #> [1] \"8978\" \"9618\" \"9299\" \"9297\" \"8977\" \"9619\" #> #> $`9299` #> [1] \"8979\" \"9619\" \"9300\" \"9298\" \"8978\" \"9620\" #> #> $`9300` #> [1] \"8980\" \"9620\" \"9301\" \"9299\" \"8979\" \"9621\" #> #> $`9301` #> [1] \"8981\" \"9621\" \"9302\" \"9300\" \"8980\" \"9622\" #> #> $`9302` #> [1] \"8982\" \"9622\" \"9303\" \"9301\" \"8981\" \"9623\" #> #> $`9303` #> [1] \"8983\" \"9623\" \"9302\" \"8982\" \"9624\" #> #> $`9304` #> character(0) #> #> $`9305` #> character(0) #> #> $`9306` #> [1] \"8986\" \"9626\" \"9307\" \"9627\" #> #> $`9307` #> [1] \"9627\" \"9306\" \"8986\" \"9628\" #> #> $`9308` #> character(0) #> #> $`9309` #> character(0) #> #> $`9310` #> character(0) #> #> $`9608` #> character(0) #> #> $`9609` #> character(0) #> #> $`9610` #> character(0) #> #> $`9611` #> character(0) #> #> $`9612` #> [1] \"9292\" \"9613\" \"9291\" \"9933\" #> #> $`9613` #> [1] \"9293\" \"9933\" \"9614\" \"9612\" \"9292\" #> #> $`9614` #> [1] \"9294\" \"9615\" \"9613\" \"9293\" \"9935\" #> #> $`9615` #> [1] \"9295\" \"9935\" \"9616\" \"9614\" \"9294\" \"9936\" #> #> $`9616` #> [1] \"9936\" \"9617\" \"9615\" \"9295\" \"9937\" #> #> $`9617` #> [1] \"9297\" \"9937\" \"9618\" \"9616\" \"9938\" #> #> $`9618` #> [1] \"9298\" \"9938\" \"9619\" \"9617\" \"9297\" \"9939\" #> #> $`9619` #> [1] \"9299\" \"9939\" \"9620\" \"9618\" \"9298\" \"9940\" #> #> $`9620` #> [1] \"9300\" \"9940\" \"9621\" \"9619\" \"9299\" \"9941\" #> #> $`9621` #> [1] \"9301\" \"9941\" \"9622\" \"9620\" \"9300\" \"9942\" #> #> $`9622` #> [1] \"9302\" \"9942\" \"9623\" \"9621\" \"9301\" \"9943\" #> #> $`9623` #> [1] \"9303\" \"9943\" \"9624\" \"9622\" \"9302\" #> #> $`9624` #> [1] \"9623\" \"9303\" #> #> $`9625` #> character(0) #> #> $`9626` #> [1] \"9306\" \"9627\" \"9947\" #> #> $`9627` #> [1] \"9307\" \"9947\" \"9628\" \"9626\" \"9306\" \"9948\" #> #> $`9628` #> [1] \"9948\" \"9627\" \"9307\" #> #> $`9629` #> character(0) #> #> $`9630` #> character(0) #> #> $`9631` #> character(0) #> #> $`9928` #> character(0) #> #> $`9929` #> character(0) #> #> $`9930` #> character(0) #> #> $`9931` #> character(0) #> #> $`9932` #> character(0) #> #> $`9933` #> [1] \"9613\" \"9612\" \"6467\" #> #> $`9934` #> character(0) #> #> $`9935` #> [1] \"9615\" \"6147\" \"9936\" \"9614\" \"5827\" #> #> $`9936` #> [1] \"9616\" \"5827\" \"9937\" \"9935\" \"9615\" \"5507\" #> #> $`9937` #> [1] \"9617\" \"5507\" \"9938\" \"9936\" \"9616\" \"5187\" #> #> $`9938` #> [1] \"9618\" \"5187\" \"9939\" \"9937\" \"9617\" \"4867\" #> #> $`9939` #> [1] \"9619\" \"4867\" \"9940\" \"9938\" \"9618\" \"4547\" #> #> $`9940` #> [1] \"9620\" \"4547\" \"9941\" \"9939\" \"9619\" \"4227\" #> #> $`9941` #> [1] \"9621\" \"4227\" \"9942\" \"9940\" \"9620\" \"3907\" #> #> $`9942` #> [1] \"9622\" \"3907\" \"9943\" \"9941\" \"9621\" \"3587\" #> #> $`9943` #> [1] \"9623\" \"3587\" \"9942\" \"9622\" \"3267\" #> #> $`9944` #> character(0) #> #> $`9945` #> character(0) #> #> $`9946` #> character(0) #> #> $`9947` #> [1] \"9627\" \"9948\" \"9626\" \"1987\" #> #> $`9948` #> [1] \"9628\" \"1987\" \"9947\" \"9627\" \"1667\" #> #> $`9949` #> character(0) #> #> $`9950` #> [1] \"1347\" \"9951\" \"1027\" #> #> $`9951` #> [1] \"1027\" \"9952\" \"9950\" \"707\" #> #> $`9952` #> [1] \"707\" \"9951\" #> getEdges(x, res.type = \"matNames\") #> Vi Vj #> [1,] \"707\" \"1027\" #> [2,] \"707\" \"9951\" #> [3,] \"707\" \"9952\" #> [4,] \"707\" \"1028\" #> [5,] \"1027\" \"707\" #> [6,] \"1027\" \"1347\" #> [7,] \"1027\" \"1028\" #> [8,] \"1027\" \"9950\" #> [9,] \"1027\" \"9951\" #> [10,] \"1027\" \"1348\" #> [11,] \"1028\" \"1348\" #> [12,] \"1028\" \"1027\" #> [13,] \"1028\" \"707\" #> [14,] \"1347\" \"1027\" #> [15,] \"1347\" \"1667\" #> [16,] \"1347\" \"1348\" #> [17,] \"1347\" \"9950\" #> [18,] \"1347\" \"1668\" #> [19,] \"1348\" \"1028\" #> [20,] \"1348\" \"1668\" #> [21,] \"1348\" \"1347\" #> [22,] \"1348\" \"1027\" #> [23,] \"1667\" \"1347\" #> [24,] \"1667\" \"1987\" #> [25,] \"1667\" \"1668\" #> [26,] \"1667\" \"9948\" #> [27,] \"1667\" \"1988\" #> [28,] \"1668\" \"1348\" #> [29,] \"1668\" \"1988\" #> [30,] \"1668\" \"1667\" #> [31,] \"1668\" \"1347\" #> [32,] \"1987\" \"1667\" #> [33,] \"1987\" \"1988\" #> [34,] \"1987\" \"9947\" #> [35,] \"1987\" \"9948\" #> [36,] \"1987\" \"2308\" #> [37,] \"1988\" \"1668\" #> [38,] \"1988\" \"2308\" #> [39,] \"1988\" \"1987\" #> [40,] \"1988\" \"1667\" #> [41,] \"2308\" \"1988\" #> [42,] \"2308\" \"1987\" #> [43,] \"2947\" \"3267\" #> [44,] \"2947\" \"2948\" #> [45,] \"2947\" \"3268\" #> [46,] \"2948\" \"3268\" #> [47,] \"2948\" \"2947\" #> [48,] \"3267\" \"2947\" #> [49,] \"3267\" \"3587\" #> [50,] \"3267\" \"3268\" #> [51,] \"3267\" \"9943\" #> [52,] \"3267\" \"3588\" #> [53,] \"3268\" \"2948\" #> [54,] \"3268\" \"3588\" #> [55,] \"3268\" \"3267\" #> [56,] \"3268\" \"2947\" #> [57,] \"3534\" \"3855\" #> [58,] \"3587\" \"3267\" #> [59,] \"3587\" \"3907\" #> [60,] \"3587\" \"3588\" #> [61,] \"3587\" \"9942\" #> [62,] \"3587\" \"9943\" #> [63,] \"3587\" \"3908\" #> [64,] \"3588\" \"3268\" #> [65,] \"3588\" \"3908\" #> [66,] \"3588\" \"3587\" #> [67,] \"3588\" \"3267\" #> [68,] \"3855\" \"4175\" #> [69,] \"3855\" \"3534\" #> [70,] \"3855\" \"4176\" #> [71,] \"3907\" \"3587\" #> [72,] \"3907\" \"4227\" #> [73,] \"3907\" \"3908\" #> [74,] \"3907\" \"9941\" #> [75,] \"3907\" \"9942\" #> [76,] \"3907\" \"4228\" #> [77,] \"3908\" \"3588\" #> [78,] \"3908\" \"4228\" #> [79,] \"3908\" \"3907\" #> [80,] \"3908\" \"3587\" #> [81,] \"4175\" \"3855\" #> [82,] \"4175\" \"4176\" #> [83,] \"4175\" \"4496\" #> [84,] \"4176\" \"4496\" #> [85,] \"4176\" \"4175\" #> [86,] \"4176\" \"3855\" #> [87,] \"4176\" \"4497\" #> [88,] \"4227\" \"3907\" #> [89,] \"4227\" \"4547\" #> [90,] \"4227\" \"4228\" #> [91,] \"4227\" \"9940\" #> [92,] \"4227\" \"9941\" #> [93,] \"4228\" \"3908\" #> [94,] \"4228\" \"4227\" #> [95,] \"4228\" \"3907\" #> [96,] \"4493\" \"4813\" #> [97,] \"4493\" \"4494\" #> [98,] \"4493\" \"4814\" #> [99,] \"4494\" \"4814\" #> [100,] \"4494\" \"4493\" #> [101,] \"4494\" \"4815\" #> [102,] \"4496\" \"4176\" #> [103,] \"4496\" \"4497\" #> [104,] \"4496\" \"4175\" #> [105,] \"4496\" \"4817\" #> [106,] \"4497\" \"4817\" #> [107,] \"4497\" \"4496\" #> [108,] \"4497\" \"4176\" #> [109,] \"4497\" \"4818\" #> [110,] \"4547\" \"4227\" #> [111,] \"4547\" \"4867\" #> [112,] \"4547\" \"9939\" #> [113,] \"4547\" \"9940\" #> [114,] \"4813\" \"4493\" #> [115,] \"4813\" \"4814\" #> [116,] \"4813\" \"5134\" #> [117,] \"4814\" \"4494\" #> [118,] \"4814\" \"5134\" #> [119,] \"4814\" \"4815\" #> [120,] \"4814\" \"4813\" #> [121,] \"4814\" \"4493\" #> [122,] \"4814\" \"5135\" #> [123,] \"4815\" \"5135\" #> [124,] \"4815\" \"4814\" #> [125,] \"4815\" \"4494\" #> [126,] \"4815\" \"5136\" #> [127,] \"4817\" \"4497\" #> [128,] \"4817\" \"5137\" #> [129,] \"4817\" \"4818\" #> [130,] \"4817\" \"4496\" #> [131,] \"4817\" \"5138\" #> [132,] \"4818\" \"5138\" #> [133,] \"4818\" \"4817\" #> [134,] \"4818\" \"4497\" #> [135,] \"4818\" \"5139\" #> [136,] \"4867\" \"4547\" #> [137,] \"4867\" \"5187\" #> [138,] \"4867\" \"9938\" #> [139,] \"4867\" \"9939\" #> [140,] \"5134\" \"4814\" #> [141,] \"5134\" \"5135\" #> [142,] \"5134\" \"4813\" #> [143,] \"5134\" \"5455\" #> [144,] \"5135\" \"4815\" #> [145,] \"5135\" \"5455\" #> [146,] \"5135\" \"5136\" #> [147,] \"5135\" \"5134\" #> [148,] \"5135\" \"4814\" #> [149,] \"5136\" \"5137\" #> [150,] \"5136\" \"5135\" #> [151,] \"5136\" \"4815\" #> [152,] \"5137\" \"4817\" #> [153,] \"5137\" \"5138\" #> [154,] \"5137\" \"5136\" #> [155,] \"5137\" \"5458\" #> [156,] \"5138\" \"4818\" #> [157,] \"5138\" \"5458\" #> [158,] \"5138\" \"5139\" #> [159,] \"5138\" \"5137\" #> [160,] \"5138\" \"4817\" #> [161,] \"5138\" \"5459\" #> [162,] \"5139\" \"5459\" #> [163,] \"5139\" \"5138\" #> [164,] \"5139\" \"4818\" #> [165,] \"5139\" \"5460\" #> [166,] \"5187\" \"4867\" #> [167,] \"5187\" \"5507\" #> [168,] \"5187\" \"9937\" #> [169,] \"5187\" \"9938\" #> [170,] \"5455\" \"5135\" #> [171,] \"5455\" \"5775\" #> [172,] \"5455\" \"5134\" #> [173,] \"5455\" \"5776\" #> [174,] \"5458\" \"5138\" #> [175,] \"5458\" \"5459\" #> [176,] \"5458\" \"5137\" #> [177,] \"5458\" \"5779\" #> [178,] \"5459\" \"5139\" #> [179,] \"5459\" \"5779\" #> [180,] \"5459\" \"5460\" #> [181,] \"5459\" \"5458\" #> [182,] \"5459\" \"5138\" #> [183,] \"5459\" \"5780\" #> [184,] \"5460\" \"5780\" #> [185,] \"5460\" \"5459\" #> [186,] \"5460\" \"5139\" #> [187,] \"5460\" \"5781\" #> [188,] \"5507\" \"5187\" #> [189,] \"5507\" \"5827\" #> [190,] \"5507\" \"9936\" #> [191,] \"5507\" \"9937\" #> [192,] \"5770\" \"6090\" #> [193,] \"5775\" \"5455\" #> [194,] \"5775\" \"6095\" #> [195,] \"5775\" \"5776\" #> [196,] \"5775\" \"6096\" #> [197,] \"5776\" \"6096\" #> [198,] \"5776\" \"5775\" #> [199,] \"5776\" \"5455\" #> [200,] \"5779\" \"5459\" #> [201,] \"5779\" \"5780\" #> [202,] \"5779\" \"5458\" #> [203,] \"5779\" \"6100\" #> [204,] \"5780\" \"5460\" #> [205,] \"5780\" \"6100\" #> [206,] \"5780\" \"5781\" #> [207,] \"5780\" \"5779\" #> [208,] \"5780\" \"5459\" #> [209,] \"5780\" \"6101\" #> [210,] \"5781\" \"6101\" #> [211,] \"5781\" \"5780\" #> [212,] \"5781\" \"5460\" #> [213,] \"5781\" \"6102\" #> [214,] \"5827\" \"5507\" #> [215,] \"5827\" \"6147\" #> [216,] \"5827\" \"9935\" #> [217,] \"5827\" \"9936\" #> [218,] \"6090\" \"5770\" #> [219,] \"6090\" \"6411\" #> [220,] \"6093\" \"6413\" #> [221,] \"6093\" \"6094\" #> [222,] \"6093\" \"6414\" #> [223,] \"6094\" \"6414\" #> [224,] \"6094\" \"6095\" #> [225,] \"6094\" \"6093\" #> [226,] \"6094\" \"6415\" #> [227,] \"6095\" \"5775\" #> [228,] \"6095\" \"6415\" #> [229,] \"6095\" \"6096\" #> [230,] \"6095\" \"6094\" #> [231,] \"6095\" \"6416\" #> [232,] \"6096\" \"5776\" #> [233,] \"6096\" \"6416\" #> [234,] \"6096\" \"6095\" #> [235,] \"6096\" \"5775\" #> [236,] \"6096\" \"6417\" #> [237,] \"6100\" \"5780\" #> [238,] \"6100\" \"6101\" #> [239,] \"6100\" \"5779\" #> [240,] \"6100\" \"6421\" #> [241,] \"6101\" \"5781\" #> [242,] \"6101\" \"6421\" #> [243,] \"6101\" \"6102\" #> [244,] \"6101\" \"6100\" #> [245,] \"6101\" \"5780\" #> [246,] \"6101\" \"6422\" #> [247,] \"6102\" \"6422\" #> [248,] \"6102\" \"6101\" #> [249,] \"6102\" \"5781\" #> [250,] \"6102\" \"6423\" #> [251,] \"6147\" \"5827\" #> [252,] \"6147\" \"6467\" #> [253,] \"6147\" \"9935\" #> [254,] \"6411\" \"6412\" #> [255,] \"6411\" \"6090\" #> [256,] \"6412\" \"6413\" #> [257,] \"6412\" \"6411\" #> [258,] \"6413\" \"6093\" #> [259,] \"6413\" \"6414\" #> [260,] \"6413\" \"6412\" #> [261,] \"6414\" \"6094\" #> [262,] \"6414\" \"6415\" #> [263,] \"6414\" \"6413\" #> [264,] \"6414\" \"6093\" #> [265,] \"6414\" \"6735\" #> [266,] \"6415\" \"6095\" #> [267,] \"6415\" \"6735\" #> [268,] \"6415\" \"6416\" #> [269,] \"6415\" \"6414\" #> [270,] \"6415\" \"6094\" #> [271,] \"6415\" \"6736\" #> [272,] \"6416\" \"6096\" #> [273,] \"6416\" \"6736\" #> [274,] \"6416\" \"6417\" #> [275,] \"6416\" \"6415\" #> [276,] \"6416\" \"6095\" #> [277,] \"6416\" \"6737\" #> [278,] \"6417\" \"6737\" #> [279,] \"6417\" \"6416\" #> [280,] \"6417\" \"6096\" #> [281,] \"6421\" \"6101\" #> [282,] \"6421\" \"6422\" #> [283,] \"6421\" \"6100\" #> [284,] \"6422\" \"6102\" #> [285,] \"6422\" \"6423\" #> [286,] \"6422\" \"6421\" #> [287,] \"6422\" \"6101\" #> [288,] \"6423\" \"6422\" #> [289,] \"6423\" \"6102\" #> [290,] \"6423\" \"6744\" #> [291,] \"6467\" \"6147\" #> [292,] \"6467\" \"9933\" #> [293,] \"6735\" \"6415\" #> [294,] \"6735\" \"7055\" #> [295,] \"6735\" \"6736\" #> [296,] \"6735\" \"6414\" #> [297,] \"6735\" \"7056\" #> [298,] \"6736\" \"6416\" #> [299,] \"6736\" \"7056\" #> [300,] \"6736\" \"6737\" #> [301,] \"6736\" \"6735\" #> [302,] \"6736\" \"6415\" #> [303,] \"6736\" \"7057\" #> [304,] \"6737\" \"6417\" #> [305,] \"6737\" \"7057\" #> [306,] \"6737\" \"6736\" #> [307,] \"6737\" \"6416\" #> [308,] \"6737\" \"7058\" #> [309,] \"6744\" \"6423\" #> [310,] \"6744\" \"7065\" #> [311,] \"7055\" \"6735\" #> [312,] \"7055\" \"7375\" #> [313,] \"7055\" \"7056\" #> [314,] \"7055\" \"7376\" #> [315,] \"7056\" \"6736\" #> [316,] \"7056\" \"7376\" #> [317,] \"7056\" \"7057\" #> [318,] \"7056\" \"7055\" #> [319,] \"7056\" \"6735\" #> [320,] \"7056\" \"7377\" #> [321,] \"7057\" \"6737\" #> [322,] \"7057\" \"7377\" #> [323,] \"7057\" \"7058\" #> [324,] \"7057\" \"7056\" #> [325,] \"7057\" \"6736\" #> [326,] \"7057\" \"7378\" #> [327,] \"7058\" \"7378\" #> [328,] \"7058\" \"7059\" #> [329,] \"7058\" \"7057\" #> [330,] \"7058\" \"6737\" #> [331,] \"7059\" \"7058\" #> [332,] \"7065\" \"6744\" #> [333,] \"7065\" \"7386\" #> [334,] \"7375\" \"7055\" #> [335,] \"7375\" \"7695\" #> [336,] \"7375\" \"7376\" #> [337,] \"7375\" \"7696\" #> [338,] \"7376\" \"7056\" #> [339,] \"7376\" \"7696\" #> [340,] \"7376\" \"7377\" #> [341,] \"7376\" \"7375\" #> [342,] \"7376\" \"7055\" #> [343,] \"7376\" \"7697\" #> [344,] \"7377\" \"7057\" #> [345,] \"7377\" \"7697\" #> [346,] \"7377\" \"7378\" #> [347,] \"7377\" \"7376\" #> [348,] \"7377\" \"7056\" #> [349,] \"7377\" \"7698\" #> [350,] \"7378\" \"7058\" #> [351,] \"7378\" \"7698\" #> [352,] \"7378\" \"7377\" #> [353,] \"7378\" \"7057\" #> [354,] \"7378\" \"7699\" #> [355,] \"7381\" \"7702\" #> [356,] \"7386\" \"7065\" #> [357,] \"7692\" \"8012\" #> [358,] \"7692\" \"7693\" #> [359,] \"7692\" \"8013\" #> [360,] \"7693\" \"8013\" #> [361,] \"7693\" \"7694\" #> [362,] \"7693\" \"7692\" #> [363,] \"7693\" \"8014\" #> [364,] \"7694\" \"8014\" #> [365,] \"7694\" \"7695\" #> [366,] \"7694\" \"7693\" #> [367,] \"7694\" \"8015\" #> [368,] \"7695\" \"7375\" #> [369,] \"7695\" \"8015\" #> [370,] \"7695\" \"7696\" #> [371,] \"7695\" \"7694\" #> [372,] \"7696\" \"7376\" #> [373,] \"7696\" \"7697\" #> [374,] \"7696\" \"7695\" #> [375,] \"7696\" \"7375\" #> [376,] \"7696\" \"8017\" #> [377,] \"7697\" \"7377\" #> [378,] \"7697\" \"8017\" #> [379,] \"7697\" \"7698\" #> [380,] \"7697\" \"7696\" #> [381,] \"7697\" \"7376\" #> [382,] \"7697\" \"8018\" #> [383,] \"7698\" \"7378\" #> [384,] \"7698\" \"8018\" #> [385,] \"7698\" \"7699\" #> [386,] \"7698\" \"7697\" #> [387,] \"7698\" \"7377\" #> [388,] \"7698\" \"8019\" #> [389,] \"7699\" \"8019\" #> [390,] \"7699\" \"7700\" #> [391,] \"7699\" \"7698\" #> [392,] \"7699\" \"7378\" #> [393,] \"7699\" \"8020\" #> [394,] \"7700\" \"8020\" #> [395,] \"7700\" \"7699\" #> [396,] \"7700\" \"8021\" #> [397,] \"7702\" \"8022\" #> [398,] \"7702\" \"7381\" #> [399,] \"7702\" \"8023\" #> [400,] \"8012\" \"7692\" #> [401,] \"8012\" \"8332\" #> [402,] \"8012\" \"8013\" #> [403,] \"8012\" \"8333\" #> [404,] \"8013\" \"7693\" #> [405,] \"8013\" \"8333\" #> [406,] \"8013\" \"8014\" #> [407,] \"8013\" \"8012\" #> [408,] \"8013\" \"7692\" #> [409,] \"8013\" \"8334\" #> [410,] \"8014\" \"7694\" #> [411,] \"8014\" \"8334\" #> [412,] \"8014\" \"8015\" #> [413,] \"8014\" \"8013\" #> [414,] \"8014\" \"7693\" #> [415,] \"8015\" \"7695\" #> [416,] \"8015\" \"8014\" #> [417,] \"8015\" \"7694\" #> [418,] \"8017\" \"7697\" #> [419,] \"8017\" \"8337\" #> [420,] \"8017\" \"8018\" #> [421,] \"8017\" \"7696\" #> [422,] \"8017\" \"8338\" #> [423,] \"8018\" \"7698\" #> [424,] \"8018\" \"8338\" #> [425,] \"8018\" \"8019\" #> [426,] \"8018\" \"8017\" #> [427,] \"8018\" \"7697\" #> [428,] \"8018\" \"8339\" #> [429,] \"8019\" \"7699\" #> [430,] \"8019\" \"8339\" #> [431,] \"8019\" \"8020\" #> [432,] \"8019\" \"8018\" #> [433,] \"8019\" \"7698\" #> [434,] \"8019\" \"8340\" #> [435,] \"8020\" \"7700\" #> [436,] \"8020\" \"8340\" #> [437,] \"8020\" \"8021\" #> [438,] \"8020\" \"8019\" #> [439,] \"8020\" \"7699\" #> [440,] \"8020\" \"8341\" #> [441,] \"8021\" \"8341\" #> [442,] \"8021\" \"8022\" #> [443,] \"8021\" \"8020\" #> [444,] \"8021\" \"7700\" #> [445,] \"8021\" \"8342\" #> [446,] \"8022\" \"7702\" #> [447,] \"8022\" \"8342\" #> [448,] \"8022\" \"8023\" #> [449,] \"8022\" \"8021\" #> [450,] \"8022\" \"8343\" #> [451,] \"8023\" \"8343\" #> [452,] \"8023\" \"8022\" #> [453,] \"8023\" \"7702\" #> [454,] \"8027\" \"8348\" #> [455,] \"8332\" \"8012\" #> [456,] \"8332\" \"8652\" #> [457,] \"8332\" \"8333\" #> [458,] \"8332\" \"8653\" #> [459,] \"8333\" \"8013\" #> [460,] \"8333\" \"8653\" #> [461,] \"8333\" \"8334\" #> [462,] \"8333\" \"8332\" #> [463,] \"8333\" \"8012\" #> [464,] \"8334\" \"8014\" #> [465,] \"8334\" \"8333\" #> [466,] \"8334\" \"8013\" #> [467,] \"8337\" \"8017\" #> [468,] \"8337\" \"8657\" #> [469,] \"8337\" \"8338\" #> [470,] \"8337\" \"8658\" #> [471,] \"8338\" \"8018\" #> [472,] \"8338\" \"8658\" #> [473,] \"8338\" \"8339\" #> [474,] \"8338\" \"8337\" #> [475,] \"8338\" \"8017\" #> [476,] \"8338\" \"8659\" #> [477,] \"8339\" \"8019\" #> [478,] \"8339\" \"8659\" #> [479,] \"8339\" \"8340\" #> [480,] \"8339\" \"8338\" #> [481,] \"8339\" \"8018\" #> [482,] \"8339\" \"8660\" #> [483,] \"8340\" \"8020\" #> [484,] \"8340\" \"8660\" #> [485,] \"8340\" \"8341\" #> [486,] \"8340\" \"8339\" #> [487,] \"8340\" \"8019\" #> [488,] \"8340\" \"8661\" #> [489,] \"8341\" \"8021\" #> [490,] \"8341\" \"8661\" #> [491,] \"8341\" \"8342\" #> [492,] \"8341\" \"8340\" #> [493,] \"8341\" \"8020\" #> [494,] \"8341\" \"8662\" #> [495,] \"8342\" \"8022\" #> [496,] \"8342\" \"8662\" #> [497,] \"8342\" \"8343\" #> [498,] \"8342\" \"8341\" #> [499,] \"8342\" \"8021\" #> [500,] \"8342\" \"8663\" #> [501,] \"8343\" \"8023\" #> [502,] \"8343\" \"8663\" #> [503,] \"8343\" \"8342\" #> [504,] \"8343\" \"8022\" #> [505,] \"8343\" \"8664\" #> [506,] \"8348\" \"8027\" #> [507,] \"8348\" \"8669\" #> [508,] \"8651\" \"8971\" #> [509,] \"8651\" \"8652\" #> [510,] \"8651\" \"8972\" #> [511,] \"8652\" \"8332\" #> [512,] \"8652\" \"8972\" #> [513,] \"8652\" \"8653\" #> [514,] \"8652\" \"8651\" #> [515,] \"8653\" \"8333\" #> [516,] \"8653\" \"8652\" #> [517,] \"8653\" \"8332\" #> [518,] \"8653\" \"8974\" #> [519,] \"8657\" \"8337\" #> [520,] \"8657\" \"8977\" #> [521,] \"8657\" \"8658\" #> [522,] \"8657\" \"8978\" #> [523,] \"8658\" \"8338\" #> [524,] \"8658\" \"8978\" #> [525,] \"8658\" \"8659\" #> [526,] \"8658\" \"8657\" #> [527,] \"8658\" \"8337\" #> [528,] \"8658\" \"8979\" #> [529,] \"8659\" \"8339\" #> [530,] \"8659\" \"8979\" #> [531,] \"8659\" \"8660\" #> [532,] \"8659\" \"8658\" #> [533,] \"8659\" \"8338\" #> [534,] \"8659\" \"8980\" #> [535,] \"8660\" \"8340\" #> [536,] \"8660\" \"8980\" #> [537,] \"8660\" \"8661\" #> [538,] \"8660\" \"8659\" #> [539,] \"8660\" \"8339\" #> [540,] \"8660\" \"8981\" #> [541,] \"8661\" \"8341\" #> [542,] \"8661\" \"8981\" #> [543,] \"8661\" \"8662\" #> [544,] \"8661\" \"8660\" #> [545,] \"8661\" \"8340\" #> [546,] \"8661\" \"8982\" #> [547,] \"8662\" \"8342\" #> [548,] \"8662\" \"8982\" #> [549,] \"8662\" \"8663\" #> [550,] \"8662\" \"8661\" #> [551,] \"8662\" \"8341\" #> [552,] \"8662\" \"8983\" #> [553,] \"8663\" \"8343\" #> [554,] \"8663\" \"8983\" #> [555,] \"8663\" \"8664\" #> [556,] \"8663\" \"8662\" #> [557,] \"8663\" \"8342\" #> [558,] \"8663\" \"8984\" #> [559,] \"8664\" \"8984\" #> [560,] \"8664\" \"8663\" #> [561,] \"8664\" \"8343\" #> [562,] \"8669\" \"8348\" #> [563,] \"8669\" \"8990\" #> [564,] \"8971\" \"8651\" #> [565,] \"8971\" \"9291\" #> [566,] \"8971\" \"8972\" #> [567,] \"8971\" \"9292\" #> [568,] \"8972\" \"8652\" #> [569,] \"8972\" \"9292\" #> [570,] \"8972\" \"8971\" #> [571,] \"8972\" \"8651\" #> [572,] \"8972\" \"9293\" #> [573,] \"8974\" \"9294\" #> [574,] \"8974\" \"8975\" #> [575,] \"8974\" \"8653\" #> [576,] \"8974\" \"9295\" #> [577,] \"8975\" \"9295\" #> [578,] \"8975\" \"8976\" #> [579,] \"8975\" \"8974\" #> [580,] \"8976\" \"8977\" #> [581,] \"8976\" \"8975\" #> [582,] \"8976\" \"9297\" #> [583,] \"8977\" \"8657\" #> [584,] \"8977\" \"9297\" #> [585,] \"8977\" \"8978\" #> [586,] \"8977\" \"8976\" #> [587,] \"8977\" \"9298\" #> [588,] \"8978\" \"8658\" #> [589,] \"8978\" \"9298\" #> [590,] \"8978\" \"8979\" #> [591,] \"8978\" \"8977\" #> [592,] \"8978\" \"8657\" #> [593,] \"8978\" \"9299\" #> [594,] \"8979\" \"8659\" #> [595,] \"8979\" \"9299\" #> [596,] \"8979\" \"8980\" #> [597,] \"8979\" \"8978\" #> [598,] \"8979\" \"8658\" #> [599,] \"8979\" \"9300\" #> [600,] \"8980\" \"8660\" #> [601,] \"8980\" \"9300\" #> [602,] \"8980\" \"8981\" #> [603,] \"8980\" \"8979\" #> [604,] \"8980\" \"8659\" #> [605,] \"8980\" \"9301\" #> [606,] \"8981\" \"8661\" #> [607,] \"8981\" \"9301\" #> [608,] \"8981\" \"8982\" #> [609,] \"8981\" \"8980\" #> [610,] \"8981\" \"8660\" #> [611,] \"8981\" \"9302\" #> [612,] \"8982\" \"8662\" #> [613,] \"8982\" \"9302\" #> [614,] \"8982\" \"8983\" #> [615,] \"8982\" \"8981\" #> [616,] \"8982\" \"8661\" #> [617,] \"8982\" \"9303\" #> [618,] \"8983\" \"8663\" #> [619,] \"8983\" \"9303\" #> [620,] \"8983\" \"8984\" #> [621,] \"8983\" \"8982\" #> [622,] \"8983\" \"8662\" #> [623,] \"8984\" \"8664\" #> [624,] \"8984\" \"8983\" #> [625,] \"8984\" \"8663\" #> [626,] \"8986\" \"9306\" #> [627,] \"8986\" \"9307\" #> [628,] \"8990\" \"8669\" #> [629,] \"9291\" \"8971\" #> [630,] \"9291\" \"9292\" #> [631,] \"9291\" \"9612\" #> [632,] \"9292\" \"8972\" #> [633,] \"9292\" \"9612\" #> [634,] \"9292\" \"9293\" #> [635,] \"9292\" \"9291\" #> [636,] \"9292\" \"8971\" #> [637,] \"9292\" \"9613\" #> [638,] \"9293\" \"9613\" #> [639,] \"9293\" \"9294\" #> [640,] \"9293\" \"9292\" #> [641,] \"9293\" \"8972\" #> [642,] \"9293\" \"9614\" #> [643,] \"9294\" \"8974\" #> [644,] \"9294\" \"9614\" #> [645,] \"9294\" \"9295\" #> [646,] \"9294\" \"9293\" #> [647,] \"9294\" \"9615\" #> [648,] \"9295\" \"8975\" #> [649,] \"9295\" \"9615\" #> [650,] \"9295\" \"9294\" #> [651,] \"9295\" \"8974\" #> [652,] \"9295\" \"9616\" #> [653,] \"9297\" \"8977\" #> [654,] \"9297\" \"9617\" #> [655,] \"9297\" \"9298\" #> [656,] \"9297\" \"8976\" #> [657,] \"9297\" \"9618\" #> [658,] \"9298\" \"8978\" #> [659,] \"9298\" \"9618\" #> [660,] \"9298\" \"9299\" #> [661,] \"9298\" \"9297\" #> [662,] \"9298\" \"8977\" #> [663,] \"9298\" \"9619\" #> [664,] \"9299\" \"8979\" #> [665,] \"9299\" \"9619\" #> [666,] \"9299\" \"9300\" #> [667,] \"9299\" \"9298\" #> [668,] \"9299\" \"8978\" #> [669,] \"9299\" \"9620\" #> [670,] \"9300\" \"8980\" #> [671,] \"9300\" \"9620\" #> [672,] \"9300\" \"9301\" #> [673,] \"9300\" \"9299\" #> [674,] \"9300\" \"8979\" #> [675,] \"9300\" \"9621\" #> [676,] \"9301\" \"8981\" #> [677,] \"9301\" \"9621\" #> [678,] \"9301\" \"9302\" #> [679,] \"9301\" \"9300\" #> [680,] \"9301\" \"8980\" #> [681,] \"9301\" \"9622\" #> [682,] \"9302\" \"8982\" #> [683,] \"9302\" \"9622\" #> [684,] \"9302\" \"9303\" #> [685,] \"9302\" \"9301\" #> [686,] \"9302\" \"8981\" #> [687,] \"9302\" \"9623\" #> [688,] \"9303\" \"8983\" #> [689,] \"9303\" \"9623\" #> [690,] \"9303\" \"9302\" #> [691,] \"9303\" \"8982\" #> [692,] \"9303\" \"9624\" #> [693,] \"9306\" \"8986\" #> [694,] \"9306\" \"9626\" #> [695,] \"9306\" \"9307\" #> [696,] \"9306\" \"9627\" #> [697,] \"9307\" \"9627\" #> [698,] \"9307\" \"9306\" #> [699,] \"9307\" \"8986\" #> [700,] \"9307\" \"9628\" #> [701,] \"9612\" \"9292\" #> [702,] \"9612\" \"9613\" #> [703,] \"9612\" \"9291\" #> [704,] \"9612\" \"9933\" #> [705,] \"9613\" \"9293\" #> [706,] \"9613\" \"9933\" #> [707,] \"9613\" \"9614\" #> [708,] \"9613\" \"9612\" #> [709,] \"9613\" \"9292\" #> [710,] \"9614\" \"9294\" #> [711,] \"9614\" \"9615\" #> [712,] \"9614\" \"9613\" #> [713,] \"9614\" \"9293\" #> [714,] \"9614\" \"9935\" #> [715,] \"9615\" \"9295\" #> [716,] \"9615\" \"9935\" #> [717,] \"9615\" \"9616\" #> [718,] \"9615\" \"9614\" #> [719,] \"9615\" \"9294\" #> [720,] \"9615\" \"9936\" #> [721,] \"9616\" \"9936\" #> [722,] \"9616\" \"9617\" #> [723,] \"9616\" \"9615\" #> [724,] \"9616\" \"9295\" #> [725,] \"9616\" \"9937\" #> [726,] \"9617\" \"9297\" #> [727,] \"9617\" \"9937\" #> [728,] \"9617\" \"9618\" #> [729,] \"9617\" \"9616\" #> [730,] \"9617\" \"9938\" #> [731,] \"9618\" \"9298\" #> [732,] \"9618\" \"9938\" #> [733,] \"9618\" \"9619\" #> [734,] \"9618\" \"9617\" #> [735,] \"9618\" \"9297\" #> [736,] \"9618\" \"9939\" #> [737,] \"9619\" \"9299\" #> [738,] \"9619\" \"9939\" #> [739,] \"9619\" \"9620\" #> [740,] \"9619\" \"9618\" #> [741,] \"9619\" \"9298\" #> [742,] \"9619\" \"9940\" #> [743,] \"9620\" \"9300\" #> [744,] \"9620\" \"9940\" #> [745,] \"9620\" \"9621\" #> [746,] \"9620\" \"9619\" #> [747,] \"9620\" \"9299\" #> [748,] \"9620\" \"9941\" #> [749,] \"9621\" \"9301\" #> [750,] \"9621\" \"9941\" #> [751,] \"9621\" \"9622\" #> [752,] \"9621\" \"9620\" #> [753,] \"9621\" \"9300\" #> [754,] \"9621\" \"9942\" #> [755,] \"9622\" \"9302\" #> [756,] \"9622\" \"9942\" #> [757,] \"9622\" \"9623\" #> [758,] \"9622\" \"9621\" #> [759,] \"9622\" \"9301\" #> [760,] \"9622\" \"9943\" #> [761,] \"9623\" \"9303\" #> [762,] \"9623\" \"9943\" #> [763,] \"9623\" \"9624\" #> [764,] \"9623\" \"9622\" #> [765,] \"9623\" \"9302\" #> [766,] \"9624\" \"9623\" #> [767,] \"9624\" \"9303\" #> [768,] \"9626\" \"9306\" #> [769,] \"9626\" \"9627\" #> [770,] \"9626\" \"9947\" #> [771,] \"9627\" \"9307\" #> [772,] \"9627\" \"9947\" #> [773,] \"9627\" \"9628\" #> [774,] \"9627\" \"9626\" #> [775,] \"9627\" \"9306\" #> [776,] \"9627\" \"9948\" #> [777,] \"9628\" \"9948\" #> [778,] \"9628\" \"9627\" #> [779,] \"9628\" \"9307\" #> [780,] \"9933\" \"9613\" #> [781,] \"9933\" \"9612\" #> [782,] \"9933\" \"6467\" #> [783,] \"9935\" \"9615\" #> [784,] \"9935\" \"6147\" #> [785,] \"9935\" \"9936\" #> [786,] \"9935\" \"9614\" #> [787,] \"9935\" \"5827\" #> [788,] \"9936\" \"9616\" #> [789,] \"9936\" \"5827\" #> [790,] \"9936\" \"9937\" #> [791,] \"9936\" \"9935\" #> [792,] \"9936\" \"9615\" #> [793,] \"9936\" \"5507\" #> [794,] \"9937\" \"9617\" #> [795,] \"9937\" \"5507\" #> [796,] \"9937\" \"9938\" #> [797,] \"9937\" \"9936\" #> [798,] \"9937\" \"9616\" #> [799,] \"9937\" \"5187\" #> [800,] \"9938\" \"9618\" #> [801,] \"9938\" \"5187\" #> [802,] \"9938\" \"9939\" #> [803,] \"9938\" \"9937\" #> [804,] \"9938\" \"9617\" #> [805,] \"9938\" \"4867\" #> [806,] \"9939\" \"9619\" #> [807,] \"9939\" \"4867\" #> [808,] \"9939\" \"9940\" #> [809,] \"9939\" \"9938\" #> [810,] \"9939\" \"9618\" #> [811,] \"9939\" \"4547\" #> [812,] \"9940\" \"9620\" #> [813,] \"9940\" \"4547\" #> [814,] \"9940\" \"9941\" #> [815,] \"9940\" \"9939\" #> [816,] \"9940\" \"9619\" #> [817,] \"9940\" \"4227\" #> [818,] \"9941\" \"9621\" #> [819,] \"9941\" \"4227\" #> [820,] \"9941\" \"9942\" #> [821,] \"9941\" \"9940\" #> [822,] \"9941\" \"9620\" #> [823,] \"9941\" \"3907\" #> [824,] \"9942\" \"9622\" #> [825,] \"9942\" \"3907\" #> [826,] \"9942\" \"9943\" #> [827,] \"9942\" \"9941\" #> [828,] \"9942\" \"9621\" #> [829,] \"9942\" \"3587\" #> [830,] \"9943\" \"9623\" #> [831,] \"9943\" \"3587\" #> [832,] \"9943\" \"9942\" #> [833,] \"9943\" \"9622\" #> [834,] \"9943\" \"3267\" #> [835,] \"9947\" \"9627\" #> [836,] \"9947\" \"9948\" #> [837,] \"9947\" \"9626\" #> [838,] \"9947\" \"1987\" #> [839,] \"9948\" \"9628\" #> [840,] \"9948\" \"1987\" #> [841,] \"9948\" \"9947\" #> [842,] \"9948\" \"9627\" #> [843,] \"9948\" \"1667\" #> [844,] \"9950\" \"1347\" #> [845,] \"9950\" \"9951\" #> [846,] \"9950\" \"1027\" #> [847,] \"9951\" \"1027\" #> [848,] \"9951\" \"9952\" #> [849,] \"9951\" \"9950\" #> [850,] \"9951\" \"707\" #> [851,] \"9952\" \"707\" #> [852,] \"9952\" \"9951\" getEdges(x, res.type = \"matId\") #> Vi Vj #> [1,] 1 2 #> [2,] 1 358 #> [3,] 1 359 #> [4,] 1 3 #> [5,] 2 1 #> [6,] 2 4 #> [7,] 2 3 #> [8,] 2 357 #> [9,] 2 358 #> [10,] 2 5 #> [11,] 3 5 #> [12,] 3 2 #> [13,] 3 1 #> [14,] 4 2 #> [15,] 4 6 #> [16,] 4 5 #> [17,] 4 357 #> [18,] 4 7 #> [19,] 5 3 #> [20,] 5 7 #> [21,] 5 4 #> [22,] 5 2 #> [23,] 6 4 #> [24,] 6 8 #> [25,] 6 7 #> [26,] 6 355 #> [27,] 6 9 #> [28,] 7 5 #> [29,] 7 9 #> [30,] 7 6 #> [31,] 7 4 #> [32,] 8 6 #> [33,] 8 9 #> [34,] 8 354 #> [35,] 8 355 #> [36,] 8 11 #> [37,] 9 7 #> [38,] 9 11 #> [39,] 9 8 #> [40,] 9 6 #> [41,] 11 9 #> [42,] 11 8 #> [43,] 14 16 #> [44,] 14 15 #> [45,] 14 17 #> [46,] 15 17 #> [47,] 15 14 #> [48,] 16 14 #> [49,] 16 20 #> [50,] 16 17 #> [51,] 16 350 #> [52,] 16 21 #> [53,] 17 15 #> [54,] 17 21 #> [55,] 17 16 #> [56,] 17 14 #> [57,] 19 24 #> [58,] 20 16 #> [59,] 20 25 #> [60,] 20 21 #> [61,] 20 349 #> [62,] 20 350 #> [63,] 20 26 #> [64,] 21 17 #> [65,] 21 26 #> [66,] 21 20 #> [67,] 21 16 #> [68,] 24 30 #> [69,] 24 19 #> [70,] 24 31 #> [71,] 25 20 #> [72,] 25 32 #> [73,] 25 26 #> [74,] 25 348 #> [75,] 25 349 #> [76,] 25 33 #> [77,] 26 21 #> [78,] 26 33 #> [79,] 26 25 #> [80,] 26 20 #> [81,] 30 24 #> [82,] 30 31 #> [83,] 30 38 #> [84,] 31 38 #> [85,] 31 30 #> [86,] 31 24 #> [87,] 31 39 #> [88,] 32 25 #> [89,] 32 40 #> [90,] 32 33 #> [91,] 32 347 #> [92,] 32 348 #> [93,] 33 26 #> [94,] 33 32 #> [95,] 33 25 #> [96,] 35 43 #> [97,] 35 36 #> [98,] 35 44 #> [99,] 36 44 #> [100,] 36 35 #> [101,] 36 45 #> [102,] 38 31 #> [103,] 38 39 #> [104,] 38 30 #> [105,] 38 47 #> [106,] 39 47 #> [107,] 39 38 #> [108,] 39 31 #> [109,] 39 48 #> [110,] 40 32 #> [111,] 40 49 #> [112,] 40 346 #> [113,] 40 347 #> [114,] 43 35 #> [115,] 43 44 #> [116,] 43 53 #> [117,] 44 36 #> [118,] 44 53 #> [119,] 44 45 #> [120,] 44 43 #> [121,] 44 35 #> [122,] 44 54 #> [123,] 45 54 #> [124,] 45 44 #> [125,] 45 36 #> [126,] 45 55 #> [127,] 47 39 #> [128,] 47 56 #> [129,] 47 48 #> [130,] 47 38 #> [131,] 47 57 #> [132,] 48 57 #> [133,] 48 47 #> [134,] 48 39 #> [135,] 48 58 #> [136,] 49 40 #> [137,] 49 59 #> [138,] 49 345 #> [139,] 49 346 #> [140,] 53 44 #> [141,] 53 54 #> [142,] 53 43 #> [143,] 53 65 #> [144,] 54 45 #> [145,] 54 65 #> [146,] 54 55 #> [147,] 54 53 #> [148,] 54 44 #> [149,] 55 56 #> [150,] 55 54 #> [151,] 55 45 #> [152,] 56 47 #> [153,] 56 57 #> [154,] 56 55 #> [155,] 56 68 #> [156,] 57 48 #> [157,] 57 68 #> [158,] 57 58 #> [159,] 57 56 #> [160,] 57 47 #> [161,] 57 69 #> [162,] 58 69 #> [163,] 58 57 #> [164,] 58 48 #> [165,] 58 70 #> [166,] 59 49 #> [167,] 59 71 #> [168,] 59 344 #> [169,] 59 345 #> [170,] 65 54 #> [171,] 65 77 #> [172,] 65 53 #> [173,] 65 78 #> [174,] 68 57 #> [175,] 68 69 #> [176,] 68 56 #> [177,] 68 81 #> [178,] 69 58 #> [179,] 69 81 #> [180,] 69 70 #> [181,] 69 68 #> [182,] 69 57 #> [183,] 69 82 #> [184,] 70 82 #> [185,] 70 69 #> [186,] 70 58 #> [187,] 70 83 #> [188,] 71 59 #> [189,] 71 84 #> [190,] 71 343 #> [191,] 71 344 #> [192,] 72 86 #> [193,] 77 65 #> [194,] 77 91 #> [195,] 77 78 #> [196,] 77 92 #> [197,] 78 92 #> [198,] 78 77 #> [199,] 78 65 #> [200,] 81 69 #> [201,] 81 82 #> [202,] 81 68 #> [203,] 81 96 #> [204,] 82 70 #> [205,] 82 96 #> [206,] 82 83 #> [207,] 82 81 #> [208,] 82 69 #> [209,] 82 97 #> [210,] 83 97 #> [211,] 83 82 #> [212,] 83 70 #> [213,] 83 98 #> [214,] 84 71 #> [215,] 84 99 #> [216,] 84 342 #> [217,] 84 343 #> [218,] 86 72 #> [219,] 86 102 #> [220,] 89 104 #> [221,] 89 90 #> [222,] 89 105 #> [223,] 90 105 #> [224,] 90 91 #> [225,] 90 89 #> [226,] 90 106 #> [227,] 91 77 #> [228,] 91 106 #> [229,] 91 92 #> [230,] 91 90 #> [231,] 91 107 #> [232,] 92 78 #> [233,] 92 107 #> [234,] 92 91 #> [235,] 92 77 #> [236,] 92 108 #> [237,] 96 82 #> [238,] 96 97 #> [239,] 96 81 #> [240,] 96 112 #> [241,] 97 83 #> [242,] 97 112 #> [243,] 97 98 #> [244,] 97 96 #> [245,] 97 82 #> [246,] 97 113 #> [247,] 98 113 #> [248,] 98 97 #> [249,] 98 83 #> [250,] 98 114 #> [251,] 99 84 #> [252,] 99 115 #> [253,] 99 342 #> [254,] 102 103 #> [255,] 102 86 #> [256,] 103 104 #> [257,] 103 102 #> [258,] 104 89 #> [259,] 104 105 #> [260,] 104 103 #> [261,] 105 90 #> [262,] 105 106 #> [263,] 105 104 #> [264,] 105 89 #> [265,] 105 123 #> [266,] 106 91 #> [267,] 106 123 #> [268,] 106 107 #> [269,] 106 105 #> [270,] 106 90 #> [271,] 106 124 #> [272,] 107 92 #> [273,] 107 124 #> [274,] 107 108 #> [275,] 107 106 #> [276,] 107 91 #> [277,] 107 125 #> [278,] 108 125 #> [279,] 108 107 #> [280,] 108 92 #> [281,] 112 97 #> [282,] 112 113 #> [283,] 112 96 #> [284,] 113 98 #> [285,] 113 114 #> [286,] 113 112 #> [287,] 113 97 #> [288,] 114 113 #> [289,] 114 98 #> [290,] 114 132 #> [291,] 115 99 #> [292,] 115 340 #> [293,] 123 106 #> [294,] 123 141 #> [295,] 123 124 #> [296,] 123 105 #> [297,] 123 142 #> [298,] 124 107 #> [299,] 124 142 #> [300,] 124 125 #> [301,] 124 123 #> [302,] 124 106 #> [303,] 124 143 #> [304,] 125 108 #> [305,] 125 143 #> [306,] 125 124 #> [307,] 125 107 #> [308,] 125 144 #> [309,] 132 114 #> [310,] 132 151 #> [311,] 141 123 #> [312,] 141 161 #> [313,] 141 142 #> [314,] 141 162 #> [315,] 142 124 #> [316,] 142 162 #> [317,] 142 143 #> [318,] 142 141 #> [319,] 142 123 #> [320,] 142 163 #> [321,] 143 125 #> [322,] 143 163 #> [323,] 143 144 #> [324,] 143 142 #> [325,] 143 124 #> [326,] 143 164 #> [327,] 144 164 #> [328,] 144 145 #> [329,] 144 143 #> [330,] 144 125 #> [331,] 145 144 #> [332,] 151 132 #> [333,] 151 172 #> [334,] 161 141 #> [335,] 161 181 #> [336,] 161 162 #> [337,] 161 182 #> [338,] 162 142 #> [339,] 162 182 #> [340,] 162 163 #> [341,] 162 161 #> [342,] 162 141 #> [343,] 162 183 #> [344,] 163 143 #> [345,] 163 183 #> [346,] 163 164 #> [347,] 163 162 #> [348,] 163 142 #> [349,] 163 184 #> [350,] 164 144 #> [351,] 164 184 #> [352,] 164 163 #> [353,] 164 143 #> [354,] 164 185 #> [355,] 167 188 #> [356,] 172 151 #> [357,] 178 199 #> [358,] 178 179 #> [359,] 178 200 #> [360,] 179 200 #> [361,] 179 180 #> [362,] 179 178 #> [363,] 179 201 #> [364,] 180 201 #> [365,] 180 181 #> [366,] 180 179 #> [367,] 180 202 #> [368,] 181 161 #> [369,] 181 202 #> [370,] 181 182 #> [371,] 181 180 #> [372,] 182 162 #> [373,] 182 183 #> [374,] 182 181 #> [375,] 182 161 #> [376,] 182 204 #> [377,] 183 163 #> [378,] 183 204 #> [379,] 183 184 #> [380,] 183 182 #> [381,] 183 162 #> [382,] 183 205 #> [383,] 184 164 #> [384,] 184 205 #> [385,] 184 185 #> [386,] 184 183 #> [387,] 184 163 #> [388,] 184 206 #> [389,] 185 206 #> [390,] 185 186 #> [391,] 185 184 #> [392,] 185 164 #> [393,] 185 207 #> [394,] 186 207 #> [395,] 186 185 #> [396,] 186 208 #> [397,] 188 209 #> [398,] 188 167 #> [399,] 188 210 #> [400,] 199 178 #> [401,] 199 222 #> [402,] 199 200 #> [403,] 199 223 #> [404,] 200 179 #> [405,] 200 223 #> [406,] 200 201 #> [407,] 200 199 #> [408,] 200 178 #> [409,] 200 224 #> [410,] 201 180 #> [411,] 201 224 #> [412,] 201 202 #> [413,] 201 200 #> [414,] 201 179 #> [415,] 202 181 #> [416,] 202 201 #> [417,] 202 180 #> [418,] 204 183 #> [419,] 204 227 #> [420,] 204 205 #> [421,] 204 182 #> [422,] 204 228 #> [423,] 205 184 #> [424,] 205 228 #> [425,] 205 206 #> [426,] 205 204 #> [427,] 205 183 #> [428,] 205 229 #> [429,] 206 185 #> [430,] 206 229 #> [431,] 206 207 #> [432,] 206 205 #> [433,] 206 184 #> [434,] 206 230 #> [435,] 207 186 #> [436,] 207 230 #> [437,] 207 208 #> [438,] 207 206 #> [439,] 207 185 #> [440,] 207 231 #> [441,] 208 231 #> [442,] 208 209 #> [443,] 208 207 #> [444,] 208 186 #> [445,] 208 232 #> [446,] 209 188 #> [447,] 209 232 #> [448,] 209 210 #> [449,] 209 208 #> [450,] 209 233 #> [451,] 210 233 #> [452,] 210 209 #> [453,] 210 188 #> [454,] 214 238 #> [455,] 222 199 #> [456,] 222 245 #> [457,] 222 223 #> [458,] 222 246 #> [459,] 223 200 #> [460,] 223 246 #> [461,] 223 224 #> [462,] 223 222 #> [463,] 223 199 #> [464,] 224 201 #> [465,] 224 223 #> [466,] 224 200 #> [467,] 227 204 #> [468,] 227 250 #> [469,] 227 228 #> [470,] 227 251 #> [471,] 228 205 #> [472,] 228 251 #> [473,] 228 229 #> [474,] 228 227 #> [475,] 228 204 #> [476,] 228 252 #> [477,] 229 206 #> [478,] 229 252 #> [479,] 229 230 #> [480,] 229 228 #> [481,] 229 205 #> [482,] 229 253 #> [483,] 230 207 #> [484,] 230 253 #> [485,] 230 231 #> [486,] 230 229 #> [487,] 230 206 #> [488,] 230 254 #> [489,] 231 208 #> [490,] 231 254 #> [491,] 231 232 #> [492,] 231 230 #> [493,] 231 207 #> [494,] 231 255 #> [495,] 232 209 #> [496,] 232 255 #> [497,] 232 233 #> [498,] 232 231 #> [499,] 232 208 #> [500,] 232 256 #> [501,] 233 210 #> [502,] 233 256 #> [503,] 233 232 #> [504,] 233 209 #> [505,] 233 257 #> [506,] 238 214 #> [507,] 238 262 #> [508,] 244 267 #> [509,] 244 245 #> [510,] 244 268 #> [511,] 245 222 #> [512,] 245 268 #> [513,] 245 246 #> [514,] 245 244 #> [515,] 246 223 #> [516,] 246 245 #> [517,] 246 222 #> [518,] 246 270 #> [519,] 250 227 #> [520,] 250 273 #> [521,] 250 251 #> [522,] 250 274 #> [523,] 251 228 #> [524,] 251 274 #> [525,] 251 252 #> [526,] 251 250 #> [527,] 251 227 #> [528,] 251 275 #> [529,] 252 229 #> [530,] 252 275 #> [531,] 252 253 #> [532,] 252 251 #> [533,] 252 228 #> [534,] 252 276 #> [535,] 253 230 #> [536,] 253 276 #> [537,] 253 254 #> [538,] 253 252 #> [539,] 253 229 #> [540,] 253 277 #> [541,] 254 231 #> [542,] 254 277 #> [543,] 254 255 #> [544,] 254 253 #> [545,] 254 230 #> [546,] 254 278 #> [547,] 255 232 #> [548,] 255 278 #> [549,] 255 256 #> [550,] 255 254 #> [551,] 255 231 #> [552,] 255 279 #> [553,] 256 233 #> [554,] 256 279 #> [555,] 256 257 #> [556,] 256 255 #> [557,] 256 232 #> [558,] 256 280 #> [559,] 257 280 #> [560,] 257 256 #> [561,] 257 233 #> [562,] 262 238 #> [563,] 262 286 #> [564,] 267 244 #> [565,] 267 291 #> [566,] 267 268 #> [567,] 267 292 #> [568,] 268 245 #> [569,] 268 292 #> [570,] 268 267 #> [571,] 268 244 #> [572,] 268 293 #> [573,] 270 294 #> [574,] 270 271 #> [575,] 270 246 #> [576,] 270 295 #> [577,] 271 295 #> [578,] 271 272 #> [579,] 271 270 #> [580,] 272 273 #> [581,] 272 271 #> [582,] 272 297 #> [583,] 273 250 #> [584,] 273 297 #> [585,] 273 274 #> [586,] 273 272 #> [587,] 273 298 #> [588,] 274 251 #> [589,] 274 298 #> [590,] 274 275 #> [591,] 274 273 #> [592,] 274 250 #> [593,] 274 299 #> [594,] 275 252 #> [595,] 275 299 #> [596,] 275 276 #> [597,] 275 274 #> [598,] 275 251 #> [599,] 275 300 #> [600,] 276 253 #> [601,] 276 300 #> [602,] 276 277 #> [603,] 276 275 #> [604,] 276 252 #> [605,] 276 301 #> [606,] 277 254 #> [607,] 277 301 #> [608,] 277 278 #> [609,] 277 276 #> [610,] 277 253 #> [611,] 277 302 #> [612,] 278 255 #> [613,] 278 302 #> [614,] 278 279 #> [615,] 278 277 #> [616,] 278 254 #> [617,] 278 303 #> [618,] 279 256 #> [619,] 279 303 #> [620,] 279 280 #> [621,] 279 278 #> [622,] 279 255 #> [623,] 280 257 #> [624,] 280 279 #> [625,] 280 256 #> [626,] 282 306 #> [627,] 282 307 #> [628,] 286 262 #> [629,] 291 267 #> [630,] 291 292 #> [631,] 291 315 #> [632,] 292 268 #> [633,] 292 315 #> [634,] 292 293 #> [635,] 292 291 #> [636,] 292 267 #> [637,] 292 316 #> [638,] 293 316 #> [639,] 293 294 #> [640,] 293 292 #> [641,] 293 268 #> [642,] 293 317 #> [643,] 294 270 #> [644,] 294 317 #> [645,] 294 295 #> [646,] 294 293 #> [647,] 294 318 #> [648,] 295 271 #> [649,] 295 318 #> [650,] 295 294 #> [651,] 295 270 #> [652,] 295 319 #> [653,] 297 273 #> [654,] 297 320 #> [655,] 297 298 #> [656,] 297 272 #> [657,] 297 321 #> [658,] 298 274 #> [659,] 298 321 #> [660,] 298 299 #> [661,] 298 297 #> [662,] 298 273 #> [663,] 298 322 #> [664,] 299 275 #> [665,] 299 322 #> [666,] 299 300 #> [667,] 299 298 #> [668,] 299 274 #> [669,] 299 323 #> [670,] 300 276 #> [671,] 300 323 #> [672,] 300 301 #> [673,] 300 299 #> [674,] 300 275 #> [675,] 300 324 #> [676,] 301 277 #> [677,] 301 324 #> [678,] 301 302 #> [679,] 301 300 #> [680,] 301 276 #> [681,] 301 325 #> [682,] 302 278 #> [683,] 302 325 #> [684,] 302 303 #> [685,] 302 301 #> [686,] 302 277 #> [687,] 302 326 #> [688,] 303 279 #> [689,] 303 326 #> [690,] 303 302 #> [691,] 303 278 #> [692,] 303 327 #> [693,] 306 282 #> [694,] 306 329 #> [695,] 306 307 #> [696,] 306 330 #> [697,] 307 330 #> [698,] 307 306 #> [699,] 307 282 #> [700,] 307 331 #> [701,] 315 292 #> [702,] 315 316 #> [703,] 315 291 #> [704,] 315 340 #> [705,] 316 293 #> [706,] 316 340 #> [707,] 316 317 #> [708,] 316 315 #> [709,] 316 292 #> [710,] 317 294 #> [711,] 317 318 #> [712,] 317 316 #> [713,] 317 293 #> [714,] 317 342 #> [715,] 318 295 #> [716,] 318 342 #> [717,] 318 319 #> [718,] 318 317 #> [719,] 318 294 #> [720,] 318 343 #> [721,] 319 343 #> [722,] 319 320 #> [723,] 319 318 #> [724,] 319 295 #> [725,] 319 344 #> [726,] 320 297 #> [727,] 320 344 #> [728,] 320 321 #> [729,] 320 319 #> [730,] 320 345 #> [731,] 321 298 #> [732,] 321 345 #> [733,] 321 322 #> [734,] 321 320 #> [735,] 321 297 #> [736,] 321 346 #> [737,] 322 299 #> [738,] 322 346 #> [739,] 322 323 #> [740,] 322 321 #> [741,] 322 298 #> [742,] 322 347 #> [743,] 323 300 #> [744,] 323 347 #> [745,] 323 324 #> [746,] 323 322 #> [747,] 323 299 #> [748,] 323 348 #> [749,] 324 301 #> [750,] 324 348 #> [751,] 324 325 #> [752,] 324 323 #> [753,] 324 300 #> [754,] 324 349 #> [755,] 325 302 #> [756,] 325 349 #> [757,] 325 326 #> [758,] 325 324 #> [759,] 325 301 #> [760,] 325 350 #> [761,] 326 303 #> [762,] 326 350 #> [763,] 326 327 #> [764,] 326 325 #> [765,] 326 302 #> [766,] 327 326 #> [767,] 327 303 #> [768,] 329 306 #> [769,] 329 330 #> [770,] 329 354 #> [771,] 330 307 #> [772,] 330 354 #> [773,] 330 331 #> [774,] 330 329 #> [775,] 330 306 #> [776,] 330 355 #> [777,] 331 355 #> [778,] 331 330 #> [779,] 331 307 #> [780,] 340 316 #> [781,] 340 315 #> [782,] 340 115 #> [783,] 342 318 #> [784,] 342 99 #> [785,] 342 343 #> [786,] 342 317 #> [787,] 342 84 #> [788,] 343 319 #> [789,] 343 84 #> [790,] 343 344 #> [791,] 343 342 #> [792,] 343 318 #> [793,] 343 71 #> [794,] 344 320 #> [795,] 344 71 #> [796,] 344 345 #> [797,] 344 343 #> [798,] 344 319 #> [799,] 344 59 #> [800,] 345 321 #> [801,] 345 59 #> [802,] 345 346 #> [803,] 345 344 #> [804,] 345 320 #> [805,] 345 49 #> [806,] 346 322 #> [807,] 346 49 #> [808,] 346 347 #> [809,] 346 345 #> [810,] 346 321 #> [811,] 346 40 #> [812,] 347 323 #> [813,] 347 40 #> [814,] 347 348 #> [815,] 347 346 #> [816,] 347 322 #> [817,] 347 32 #> [818,] 348 324 #> [819,] 348 32 #> [820,] 348 349 #> [821,] 348 347 #> [822,] 348 323 #> [823,] 348 25 #> [824,] 349 325 #> [825,] 349 25 #> [826,] 349 350 #> [827,] 349 348 #> [828,] 349 324 #> [829,] 349 20 #> [830,] 350 326 #> [831,] 350 20 #> [832,] 350 349 #> [833,] 350 325 #> [834,] 350 16 #> [835,] 354 330 #> [836,] 354 355 #> [837,] 354 329 #> [838,] 354 8 #> [839,] 355 331 #> [840,] 355 8 #> [841,] 355 354 #> [842,] 355 330 #> [843,] 355 6 #> [844,] 357 4 #> [845,] 357 358 #> [846,] 357 2 #> [847,] 358 2 #> [848,] 358 359 #> [849,] 358 357 #> [850,] 358 1 #> [851,] 359 1 #> [852,] 359 358"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":null,"dir":"Reference","previous_headings":"","what":"Get nodes attributes from gGraph/gData object — getNodesAttr","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"function getNodesAttr returns values set variables associated nodes (.e. node attributes) gGraph gData object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"","code":"getNodesAttr(x, ...) # S4 method for gGraph getNodesAttr(x, nodes = NULL, attr.name = NULL, ...) # S4 method for gData getNodesAttr(x, attr.name = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"x valid gGraph gData object. ... arguments passed methods (currently unused). nodes optional integer, logical, character string indicating subset nodes used. NULL, nodes used. attr.name optional character string indicating node attributes returned. provided, must match least one columns x@nodes.attr.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"data.frame requested nodes attributes. Nodes displayed rows, variables columns.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"getNodesAttr(gGraph): Method gGraph objects getNodesAttr(gData): Method gData objects","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"","code":"## gGraph method head(getNodesAttr(worldgraph.40k)) #> habitat #> 1 sea #> 2 sea #> 3 sea #> 4 sea #> 5 sea #> 6 sea ## gData method getNodesAttr(hgdp) #> habitat #> 26898 coast #> 11652 coast #> 22532 land #> 23709 land #> 24988 land #> 28833 land #> 26917 coast #> 28836 coast #> 21797 land #> 39741 coast #> 39740 coast #> 39740.1 coast #> 16798 land #> 16798.1 land #> 22561 land #> 19359 land #> 21280 land #> 13597 coast #> 20000 land #> 16162 land #> 13760 coast #> 7348 coast #> 13365 land #> 10816 land #> 5655 coast #> 40768 land #> 30164 land #> 6433 land #> 15411 land #> 20543 land #> 26955 land #> 13518 land #> 8583 land #> 34111 land #> 18189 land #> 20755 land #> 34111.1 land #> 899 land #> 20110 land #> 5389 land #> 1539 land #> 36661 land #> 28323 land #> 37309 land #> 16265 land #> 35388 land #> 28322 land #> 33480 land #> 19483 coast #> 27148 land #> 11457 land #> 30221 land"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":null,"dir":"Reference","previous_headings":"","what":"Human genome diversity panel - georeferenced data — hgdp","title":"Human genome diversity panel - georeferenced data — hgdp","text":"datasets hgdp hgdpPlus provides genetic diversity several human populations worldwide. datasets gData objects, interfaced gGraph object worldgraph.40k.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Human genome diversity panel - georeferenced data — hgdp","text":"hgdp gGraph object following data: % @nodes.attr$habitat habitat corresponding % vertice; currently 'land' 'sea'. @meta$color matrix assigning color plotting % vertices (second column) different values habitat (first % column).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Human genome diversity panel - georeferenced data — hgdp","text":"hgdp describes 52 populations original Human Genome Diversity Panel. hgdpPlus describes hgdp populations plus 24 native American populations.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Human genome diversity panel - georeferenced data — hgdp","text":"Authors Journal, YEAR, nb: pp-pp.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Human genome diversity panel - georeferenced data — hgdp","text":"","code":"## check object hgdp #> #> === gData object === #> #> @coords: spatial coordinates of 52 nodes #> lon lat #> 1 -3 59 #> 2 39 44 #> 3 40 61 #> ... #> #> @nodes.id: nodes identifiers #> 28179 11012 22532 #> \"26898\" \"11652\" \"22532\" #> ... #> #> @data: 52 data #> Population Region Label n Latitude Longitude Genetic.Div #> 1 Orcadian EUROPE 1 15 59 -3 0.7258820 #> 2 Adygei EUROPE 2 17 44 39 0.7297802 #> 3 Russian EUROPE 3 25 61 40 0.7319749 #> ... #> #> Associated gGraph: worldgraph.40k ## plotting the object plot(hgdp) ## results from Handley et al. if (FALSE) { ## Addis Ababa addis <- list(lon = 38.74, lat = 9.03) addis <- closestNode(worldgraph.40k, addis) # this takes a while ## shortest path from Addis Ababa myPath <- dijkstraFrom(hgdp, addis) ## plot results plot(worldgraph.40k, col = 0) points(hgdp) points(worldgraph.40k[addis], psize = 3, pch = \"x\", col = \"black\") plot(myPath) ## correlations distance/genetic div. geo.dist <- sapply(myPath[-length(myPath)], function(e) e$length) gen.div <- getData(hgdp)[, \"Genetic.Div\"] plot(gen.div ~ geo.dist) lm1 <- lm(gen.div ~ geo.dist) abline(lm1, col = \"blue\") # this regression is wrong summary(lm1) }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":null,"dir":"Reference","previous_headings":"","what":"Find which nodes fall in a given area — isInArea","title":"Find which nodes fall in a given area — isInArea","text":"generic function isInArea finds nodes fall given area. Nodes can specified different ways, including providing gGraph gData object. Different format output also available.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find which nodes fall in a given area — isInArea","text":"","code":"isInArea(x, ...) # S4 method for matrix isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 ) # S4 method for data.frame isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 ) # S4 method for gGraph isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 ) # S4 method for gData isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find which nodes fall in a given area — isInArea","text":"x matrix, data.frame, valid gGraph, valid gData object. matrix data.frame, input must two columns giving longitudes latitudes locations considered. ... arguments passed specific methods. reg character string list indicating area ('reg' stands 'region'). Character strings can \"current\" (current user window, default) \"zoom\" (current zoom). argument list, two components, numeric vectors length two, giving x y limits area. Note list can produced locator, locator(1) valid value reg. res.type character string indicating kind output produced. See value. buffer numeric value giving buffer adding extra space aroung area, proportion current area's dimensions.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find which nodes fall in a given area — isInArea","text":"output depends value argument res.type: logical: vector logicals one value node input. integer: vector integers corresponding indices nodes falling within area. character: vector characters corresponding names nodes falling within area.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Find which nodes fall in a given area — isInArea","text":"isInArea(matrix): Method matrix isInArea(data.frame): Method data.frame isInArea(gGraph): Method gGraph object isInArea(gData): Method gData object","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find which nodes fall in a given area — isInArea","text":"","code":"plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## different outputs of isInArea head(isInArea(worldgraph.10k)) # logical #> 1 2 3 4 5 6 #> FALSE FALSE FALSE FALSE FALSE FALSE length(isInArea(worldgraph.10k)) #> [1] 10242 sum(isInArea(worldgraph.10k)) #> [1] 359 head(which(isInArea(worldgraph.10k))) # which nodes are TRUE ? #> 707 1027 1028 1347 1348 1667 #> 707 1027 1028 1347 1348 1667 head(isInArea(worldgraph.10k, res.type = \"integer\")) # node indices #> 707 1027 1028 1347 1348 1667 #> 707 1027 1028 1347 1348 1667 head(isInArea(worldgraph.10k, res.type = \"character\")) # node names #> [1] \"707\" \"1027\" \"1028\" \"1347\" \"1348\" \"1667\" ## use isInArea to have a subset of visible nodes x <- worldgraph.10k[isInArea(worldgraph.10k)] plot(x, reset = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a regular grid gGraph — makeGrid","title":"Build a regular grid gGraph — makeGrid","text":"function makeGrid builds gGraph using regular grid given area. area specified, currently plotted area used. Note grid valid small scales, cases curvature surface earth can neglected.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a regular grid gGraph — makeGrid","text":"","code":"makeGrid( size = NULL, n.lon = NULL, n.lat = NULL, lon.range = NULL, lat.range = NULL )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a regular grid gGraph — makeGrid","text":"size integer giving approximate number nodes grid. function attempt make square grid (approximately) size. n.lon number longitude coordinates grid (.e., width grid, number cells) n.lat number latitude coordinates grid (.e., height grid, number cells) lon.range, lat.range vectors length two giving range covered grid, longitude latitude, respectively.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a regular grid gGraph — makeGrid","text":"gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Build a regular grid gGraph — makeGrid","text":"","code":"## zoom in to a smaller area plot(worldgraph.10k) geo.zoomin(c(-10, 0, 50, 54)) ## make a new gGraph newGraph <- makeGrid(1e3) newGraph <- findLand(newGraph) newGraph@meta$colors <- data.frame( habitat = c(\"sea\", \"land\"), color = c(\"blue\", \"green\") ) ## plot the new gGraph plot(newGraph, reset = TRUE, edge = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a gData object. — plot-gData","title":"Plot a gData object. — plot-gData","text":"Various functions plot gData object: plot opens device plots object, points plots object existing device. Plotting gData object relies plotting gGraph object linked, represent locations gData /associated nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a gData object. — plot-gData","text":"","code":"# S4 method for gData,missing plot( x, type = c(\"nodes\", \"original\", \"both\"), pch.ori = 4, pch.nodes = 1, col.ori = \"black\", col.nodes = \"red\", col.gGraph = NULL, reset = FALSE, sticky.points = TRUE, ... ) # S4 method for gData points( x, type = c(\"nodes\", \"original\", \"both\"), pch.ori = 4, pch.nodes = 1, col.ori = \"black\", col.nodes = \"red\", sticky.points = TRUE, ... )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a gData object. — plot-gData","text":"x valid gData object. gData object linked must exist global environment. type character string indicating information plotted: original locations ('original'), associated nodes ('nodes', default), (''). latter case, arrow goes locations nodes. pch.ori numeric character indicating type point locations. pch.nodes numeric character indicating type point nodes. col.ori character string indicating color used locations. col.nodes character string indicating color used nodes. col.gGraph (recycled) color vector associated gGraph object. NULL, default color used. Set NA \"transparent\" avoid plotting gGraph. reset logical stating whether plotting area reset fit gData object (TRUE), conserve previous plotting settings (FALSE, default). sticky.points logical indicating added points kept replotting (TRUE, default), (FALSE). case, reset=TRUE prevent points redrawn. ... arguments passed points.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a gData object. — plot-gData","text":"sticky.points set TRUE, operations performed graphics like zooming sliding window can performed without loosing gData plot.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Plot a gData object. — plot-gData","text":"points(gData): Plot points","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a gData object. — plot-gData","text":"","code":"myLoc <- list(x = c(3, -8, 11, 28), y = c(50, 57, 71, 67)) # some locations obj <- new(\"gData\", coords = myLoc) # new gData object obj #> #> === gData object === #> #> @coords: spatial coordinates of 4 nodes #> lon lat #> 1 3 50 #> 2 -8 57 #> 3 11 71 #> ... #> #> @nodes.id: nodes identifiers #> character(0) #> #> @data: data #> NULL #> ... #> #> Associated gGraph: obj@gGraph.name <- \"worldgraph.10k\" obj <- closestNode(obj, attr.name = \"habitat\", attr.value = \"land\") ## plot the result (original location -> assigned node) plot(obj, type = \"both\", reset = TRUE) title(\"'x'=location, 'o'=assigned node\") ## using different parameters points(obj, type = \"both\", pch.ori = 2, col.ori = \"red\", pch.nodes = 20, col.nodes = \"pink\") ## only nodes, fancy plot plot(obj, col.nodes = \"red\", cex = 1, pch.node = 20) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'x' in selecting a method for function 'points': object 'obj' not found points(obj, col.nodes = \"red\", cex = 2) points(obj, col.nodes = \"orange\", cex = 3) points(obj, col.nodes = \"yellow\", cex = 4)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a gGraph object. — plot-gGraph","title":"Plot a gGraph object. — plot-gGraph","text":"Various functions plot gGraph object: plot opens device plot object, points plots object existing device. plotEdges plots edges graph: can called directly, via arguments passed plot points.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a gGraph object. — plot-gGraph","text":"x gGraph object. shape shapefile used background object. Must class SpatialPolygonsDataFrame (see readShapePoly maptools package import data GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph. psize numeric giving size points. pch numeric character indicating type point. col character string indicating color used. edges logical indicating edges plotted (TRUE) (FALSE). reset logical indicating plotting parameters reset (TRUE) (FALSE). bg.col character string indicating color polygons shapefile used background. border.col character string indicating color polygon borders. lwd numeric indicating width line (used edges). useCosts logical indicating edge width inversely proportionnal edge cost (TRUE) (FALSE). maxLwd numeric indicating maximum edge width (corresponding maximum weight). col.rules data.frame two named columns, first one giving values node attribute, second one stating colors used value. provided, seeked @meta\\$color slot object. sticky.points logical indicating added points kept replotting (TRUE), (FALSE). case, reset=TRUE prevent points redrawn. lty type line (edges). pcol character indicating color used points. sticky.edges logical indicating whether added edges kept replotting (TRUE), (FALSE, default). case, reset=TRUE prevent points redrawn. ... arguments passed generic methods (plot, points, segments, respectively).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a gGraph object. — plot-gGraph","text":"Plotting gGraph object stores parameters R; see details information. able zoom , slide window, previous plotting information stored particular environment (.geoGraphEnv), created loading geoGraph. Users interact directly objects environment. resulting plotting behaviour plotting gGraph object, last plotting parameters re-used. override behaviour, specify reset=TRUE argument plot.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a gGraph object. — plot-gGraph","text":"","code":"## just the background plot(worldgraph.10k, reset = TRUE, type = \"n\") ## basic plot plot(worldgraph.10k) ## zooming and adding edges geo.zoomin(list(x = c(90, 150), y = c(0, -50))) plot(worldgraph.10k, edges = TRUE) ## display edges differently plotEdges(worldgraph.10k, col = \"red\", lwd = 2) ## replot points with different color points(worldgraph.10k, col = \"orange\") ## mask points in the sea inSea <- unlist(getNodesAttr(worldgraph.10k, attr.name = \"habitat\")) == \"sea\" head(inSea) #> [1] TRUE TRUE TRUE TRUE TRUE TRUE points(worldgraph.10k[inSea], col = \"white\", sticky = TRUE) # this will stay ## but better, only draw those on land, and use a fancy setup par(bg = \"blue\") plot(worldgraph.10k[!inSea], bg.col = \"darkgreen\", col = \"purple\", edges = TRUE) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'x' in selecting a method for function 'points': error in evaluating the argument 'i' in selecting a method for function '[': object 'inSea' not found"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Set friction in a gGraph object — setCosts","title":"Set friction in a gGraph object — setCosts","text":"function setCosts define costs edges gGraph object according node attribute rules defined @meta\\$costs slot object. node value chosen attribute, associated costs (friction). cost edge computed function (see argument method) costs nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Set friction in a gGraph object — setCosts","text":"","code":"setCosts( x, attr.name = NULL, node.values = NULL, method = c(\"mean\", \"product\", \"function\"), FUN = NULL, ... )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Set friction in a gGraph object — setCosts","text":"x gGraph object least one node attribute, @meta$costs component (example, see worldgraph.10k dataset). attr.name name node attribute used compute costs (.e., one column @nodes.attr). node.values numeric vector giving costs associated nodes. provided, used instead attr.name. method character string indicating method used compute edge cost nodes costs. Currently available options 'mean', 'prod' 'function', cost associated edge respectively computed mean, product custom function (defined FUN) costs nodes. FUN function used compute cost two nodes (needed method=\"function\"). ... additional parameters passed FUN.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Set friction in a gGraph object — setCosts","text":"gGraph object newly defined costs used weightings edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Set friction in a gGraph object — setCosts","text":"Note costs inversely proportional connectivity edges: larger cost associated edge, lower connectivity two concerned nodes. Also note 'costs' defined geoGraph equivalent 'weights' defined graph RBGL packages.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Set friction in a gGraph object — setCosts","text":"","code":"plot(rawgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## defining a new object restrained to visible nodes x <- rawgraph.10k[isInArea(rawgraph.10k)] ## define weights for edges x <- setCosts(x, attr.name = \"habitat\") plot(x, edges = TRUE) title(\"costs defined by habitat (land/land=1, other=100)\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Set costs associated to edges based on geographic distances — setDistCosts","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"function setDistCosts sets costs gGraph object using geographic distance. cost associated edge defined great circle distance two nodes edge. setDistCosts actually relies rdist.earth fields package.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"","code":"setDistCosts(x, ...) # S4 method for gGraph setDistCosts(x, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"x valid gGraph. ... arguments passed methods (currently unused).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"gGraph method, gGraph object appropriate weights. Note former weights removed object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"notion 'costs' context gGraph objects identical concept 'weights' graph (thus graphNEL) objects. larger edge, less connectivity couple concerned nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"setDistCosts(gGraph): Method gGraph object","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"","code":"if (require(fields)) { ## load data plot(rawgraph.10k, reset = TRUE) geo.zoomin(list(x = c(110, 150), y = c(-10, -40))) plotEdges(rawgraph.10k) ## compute costs x <- rawgraph.10k[isInArea(rawgraph.10k)] x <- setDistCosts(x) ## replot edges plotEdges(x) # no big differences can be seen head(getCosts(x)) } #> Loading required package: fields #> Loading required package: spam #> Spam version 2.10-0 (2023-10-23) is loaded. #> Type 'help( Spam)' or 'demo( spam)' for a short introduction #> and overview of this package. #> Help for individual functions is also obtained by adding the #> suffix '.spam' to the function name, e.g. 'help( chol.spam)'. #> #> Attaching package: ‘spam’ #> The following objects are masked from ‘package:base’: #> #> backsolve, forwardsolve #> Loading required package: viridisLite #> #> Try help(fields) to get started. #> $`150` #> 10038 151 10037 471 #> 153.5122 135.5409 159.0169 159.0779 #> #> $`151` #> 10039 471 152 150 10038 472 #> 152.7608 152.4379 136.0023 135.5409 159.8605 159.9643 #> #> $`152` #> 10040 472 153 151 10039 473 #> 152.0093 151.6441 136.5697 136.0023 160.7123 160.8551 #> #> $`153` #> 10041 473 154 152 10040 474 #> 151.2579 150.8388 137.2289 136.5697 161.5831 161.7623 #> #> $`154` #> 10042 474 155 153 10041 475 #> 150.5036 150.0351 138.0768 137.2289 162.4662 162.6196 #> #> $`155` #> 10043 475 156 154 10042 476 #> 149.6651 149.2157 138.9751 138.0768 163.3113 163.5481 #>"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":null,"dir":"Reference","previous_headings":"","what":"Add and remove edges from a gGraph object — setEdges","title":"Add and remove edges from a gGraph object — setEdges","text":"function setEdges allows one add remove edges gGraph directly specifying relevant nodes, list data.frame. low-level function called geo.add.edges geo.remove.edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add and remove edges from a gGraph object — setEdges","text":"","code":"setEdges(x, ...) # S4 method for gGraph setEdges(x, add = NULL, remove = NULL, costs = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add and remove edges from a gGraph object — setEdges","text":"x valid gGraph object. ... arguments passed methods (currently unused). add list dataframe containing node names edges added. first element list (column data.frame) gives starting nodes edges; second gives ending nodes. Hence, nodes -th edge add[[1]][] add[[2]][] add list, add[,] add data.frame. remove add argument, edges removed. costs numeric vector providing costs edges added. costs[] weight -th edge.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add and remove edges from a gGraph object — setEdges","text":"gGraph object newly added removed edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Add and remove edges from a gGraph object — setEdges","text":"setEdges(gGraph): Method gGraph object","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":null,"dir":"Reference","previous_headings":"","what":"Worldwide geographic graphs — worldgraph","title":"Worldwide geographic graphs — worldgraph","text":"datasets 'rawgraph.10k', 'rawgraph.40k', 'worldgraph.10k', 'worldgraph.40k' geographic graphs (gGraph objects) world, respective resolutions 10,242 40,962 vertices.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Worldwide geographic graphs — worldgraph","text":"worldgraph.10k worldgraph.40k gGraph objects following specificities: @nodes.attr\\$habitat habitat corresponding vertice; currently 'land' 'sea'. @meta\\$color matrix assigning color plotting vertices (second column) different values habitat (first column).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Worldwide geographic graphs — worldgraph","text":"Graph reconstructed Andrea Manica.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Worldwide geographic graphs — worldgraph","text":"'rawgraph's raw graphs obtained directly method provided references. 'worldgraph's 'rawgraph's modified manually rectify connectivity edges places. noticeable change edges involving sea vertices removed. 'worldshape' shapefile countries world (snapshot 1994).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Worldwide geographic graphs — worldgraph","text":"=== construction graph === Randall, D. .; Ringler, T. D.; Heikes, R. P.; Jones, P. & Baumgardner, J. Climate Modeling Spherical Geodesic Grids Computing science & engineering, 2002, 4: 32-41.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Worldwide geographic graphs — worldgraph","text":"","code":"worldgraph.10k #> #> === gGraph object === #> #> @coords: spatial coordinates of 10242 nodes #> lon lat #> 1 -180.0000 90.00000 #> 2 144.0000 -90.00000 #> 3 -33.7806 27.18924 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 sea #> 3 sea #> ... #> #> @meta: list of meta information with 2 items #> [1] \"$colors\" \"$costs\" #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 10242 #> Number of Edges = 6954 ## plotting the object plot(worldgraph.10k, reset = TRUE) title(\"Hello world\") ## zooming in geo.zoomin(list(x = c(-12, 45), y = c(33, 75))) title(\"Europe\") geo.zoomin(list(x = c(-12, 2), y = c(50, 60))) plotEdges(worldgraph.10k) title(\"United Kingdom\") ## zooming out # geo.zoomout() # needs clicking on device geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## defining the subset of visible points x <- worldgraph.10k[isInArea(worldgraph.10k)] plot(x, reset = TRUE, edges = TRUE) title(\"One subsetted object.\") if (FALSE) { ## interactive zooming geo.zoomin() }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":null,"dir":"Reference","previous_headings":"","what":"Navigate in the plot of a gGraph object — zoom","title":"Navigate in the plot of a gGraph object — zoom","text":"functions geo.zoomin, geo.zoomout, geo.slide, geo.back, geo.bookmark geo.goto used navigate interactively plot gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Navigate in the plot of a gGraph object — zoom","text":"reg list length 2, first component new x (longitude) boundaries (vector length 2), second new y (latitude) boundaries (vector length 2). vec numeric vector length 4 giving new coordinates plotting window, order: xmin, xmax, ymin, ymax. name character string giving name bookmark create (geo.bookmark) get back (geo.goto).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Navigate in the plot of a gGraph object — zoom","text":"geo.zoomin geo.zoomout used zoom . zooming , user delimit opposite corner new plotting area; alternatively, set coordinates can provided. zooming , click screen zoom . geo.slide moves window toward direction indicated clicking screen. geo.back redraws previous plots time screen clicked. geo.bookmark sets bookmark current area. name bookmark left NULL, list currently available bookmarks returned. geo.goto allows user get back bookmarked area. .zoomlog.auxiliary function used update zoom log, providing new sets coordinates. Whenever clicking needed, right-click stop function.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Navigate in the plot of a gGraph object — zoom","text":"","code":"plot(worldgraph.10k, reset = TRUE) ## zooming in x.ini <- c(-100, -60) y.ini <- c(-30, 30) for (i in 0:3) { geo.zoomin(list(x = x.ini + i * 60, y = y.ini)) } if (FALSE) { ## going back geo.back() # you have to click ! ## zooming in interactively geo.zoomin() # you have to click ! ## zooming out geo.zoomout() # you have to click ! ## moving window geo.slide() # you have to click ! }"},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/news/index.html","id":"geograph-v10","dir":"Changelog","previous_headings":"","what":"geoGraph v1.0","title":"geoGraph v1.0","text":"First public release full functionality.","code":""}] +[{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"geograph-walking-through-the-geographic-space-using-graphs-","dir":"Articles","previous_headings":"","what":"geoGraph: walking through the geographic space using graphs.","title":"An introduction to geoGraph","text":"document describes geoGraph package R software. geoGraph aims implementing graph approaches geographic data. geoGraph, given geographic area modelled fine regular grid, vertice set spatial coordinates set attributes, can instance habitat descriptors, presence/abundance given species. ‘Travelling’ within geographic area can easily modelled moving connected vertices. cost moving one vertex another can defined according attribute values, allows instance define friction routes based habitat. geoGraph harnesses full power graph algorithms implemented R graph RBGL (R Boost Graph Library) packages. particular, RBGL interface R comprehensive Boost Graph Library C++, provides fast efficient implementations wide range graph algorithms. defined frictions entire geographic area, can easily, instance, find least costs path one location another, find parsimonious way connecting set locations. Interfacing spatial data graphs can complicated task. purpose geoGraph provide tools achieve simplify ‘preliminary’ step. achieved defining new classes objects essentially geo-referenced graphs node attributes (gGraph objects), interfaced spatial data (gData objects). vignette, show install geoGraph, construct handle gGraph/gData objects, illustrate basic features graph algorithms.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"installing-the-package","dir":"Articles","previous_headings":"First steps","what":"Installing the package","title":"An introduction to geoGraph","text":"following instructions entered new R session avoid errors due installing attached packages. devtools also needed install geoGraph: , install geoGraph, simply type: installed, package can loaded using: error regarding missing packages, may need install manually packages graph RBGL Bioconductor: attempt reinstall geoGraph GitHub.","code":"install.packages(\"devtools\") library(devtools) install_github(\"thibautjombart/geoGraph\") library(\"geoGraph\") install.packages(\"BiocManager\") BiocManager::install(c(\"graph\", \"RBGL\"))"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"data-representation","dir":"Articles","previous_headings":"First steps","what":"Data representation","title":"An introduction to geoGraph","text":"Data representation refers way given type data handled computer program. Two types objects used geoGraph: gGraph, gData objects. objects defined formal (S4) classes often methods similar generic function (e.g. getNodes defined objects). Essentially, gGraph objects contain underlying layers informations, including spatial grid possibly node attributes, covering area interest. gData sets locations (like sampled sites, instance) interfaced gGraph object, allow manipulations finding paths grid pairs locations.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"ggraph-objects","dir":"Articles","previous_headings":"First steps > Data representation","what":"gGraph objects","title":"An introduction to geoGraph","text":"definition formal class gGraph can obtained using: new empty object can obtained using constructor: documentation ?gGraph explains basics object’s content. nutshell, objects spatial grids nodes segments connecting neighbouring nodes, additional informations nodes graph . coords matrix longitudes latitudes nodes. nodes.attr data.frame storing attributes nodes, habitat descriptors; row corresponds node grid, column corresponds variable. meta list containing miscellanous informations graph . contraint applying components list, typical components $costs $colors recognised certain functions. instance, can specify plotting rules representing given node attribute given color defining component $colors. Similarly, can associate costs given node attribute defining component $costs. example can found already existing gGraph objects. instance, worldgraph.10k graph world approximately 10,000 nodes, -land connectivity (\\textit{.e.travelling seas). ```{r } worldgraph.10k worldgraph.10k@meta ``` Lastly, thegraphcomponent agraphNEL` object, standard class graphs graph RBGL packages. object contains information connections nodes, weights (costs) connections. Four main gGraph provided geoGraph: rawgraph.10k, rawgraph.40k, worldgraph.10k, worldgraph.40k. datasets available using command data. grid used datasets best geometric approximation regular grid surface sphere. One advantage working grids use projection geographic coordinates, usual issue regular GIS. difference rawgraphs worldgraphs first entirely connected, second connections occur land. Numbers 10k' and40k’ indicate grids consist roughly 10,000 40,000 nodes. illustrative purposes, often use 10k grids, since less heavy handle. large-scale applications, 40k versions provide sufficient resolution. New gGraph can constructed using constructor (new(...)), topic documented vignette.","code":"getClass(\"gGraph\") ## Class \"gGraph\" [package \"geoGraph\"] ## ## Slots: ## ## Name: coords nodes.attr meta graph ## Class: matrix data.frame list graphNEL new(\"gGraph\") ## ## === gGraph object === ## ## @coords: spatial coordinates of 0 nodes ## lon lat ## ## @nodes.attr: 0 nodes attributes ## data frame with 0 columns and 0 rows ## ## @meta: list of meta information with 0 items ## ## @graph: ## A graphNEL graph with undirected edges ## Number of Nodes = 0 ## Number of Edges = 0"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"gdata-objects","dir":"Articles","previous_headings":"First steps > Data representation","what":"gData objects","title":"An introduction to geoGraph","text":"gData essentially sets locations interfaced gGraph object. operation, location assigned closest node grid gGraph, allowing travelling locations using grid. , instance possible find shortest path two locations various types habitats. Like gGraph, content formal class gData can obtained using: new empty object can obtained using constructor: , description content objects can found documentation (?gData). coords matrix xy (longitude/latitude) coordinates row location. nodes.id vector characters giving name vertices matching locations; defined automatically creating new gData, using function closestNode. data slot storing data associated locations; can type object, data.frame cover requirements storing data. Note object subsettable (.e. [ operator defined), data can subsetted subsetting gData object. Lastly, slot gGraph.name contains name gGraph object gData interfaced. Contrary gGraph objects, gData objects frequently constructed user. next sections, illustrate can build use gData objects set locations.","code":"getClass(\"gData\") ## Class \"gData\" [package \"geoGraph\"] ## ## Slots: ## ## Name: coords nodes.id data gGraph.name ## Class: matrix character ANY character new(\"gData\") ## ## === gData object === ## ## @coords: spatial coordinates of 0 nodes ## lon lat ## ## @nodes.id: nodes identifiers ## character(0) ## ## @data: data ## NULL ## ## Associated gGraph:"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"using-geograph","dir":"Articles","previous_headings":"","what":"Using geoGraph","title":"An introduction to geoGraph","text":"overview material implemented package summarized package’s manpage, accessible via: html version manpage may preferred browse easily content geoGraph; accessible typing: revert help back text mode, simply type: following, go various tasks can achieve using geoGraph.","code":"?geoGraph help(\"geoGraph\", package = \"geoGraph\", html = TRUE) options(htmlhelp = FALSE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"importing-geographic-data","dir":"Articles","previous_headings":"Using geoGraph","what":"Importing geographic data","title":"An introduction to geoGraph","text":"GeoGraphic data consist set locations, possibly accompanied additional information. instance, one may want study migrations amongst set biological populations known geographic coordinates. geoGraph, geographic data stored gData objects. objects match locations closest nodes grid (gGraph object), store additional data needed. toy example, let us consider four locations: Bordeaux (France), London (UK), Malaga (Spain), Zagreb (Croatia). Since working crude grid (10,000 nodes), locations need exact. enter longitudes latitudes (order, , xy coordinates) cities decimal degrees, well approximate population sizes: load gGraph object contains grid support data: (use worldgraph.40k better resolution). figure, node represented color depending habitat type, either ‘sea’ (blue) ‘land’ (green). going interface cities data grid; , create gData object using new (see ?gData object): figure illustrates matching original locations (black crosses) nodes grid (red circles). can see, issue occured Bordeaux, assigned node sea (blue). Locations can re-assigned nodes restrictions node attribute values using closestNode; instance, constrain matching nodes habitat value (defined node attribute worldgraph.10k) equalling land (green points): Now, cities assigned land' node grid (, better accuracy gained 40k finer grids - use 10k illustrative purposes ). Content ofcitiescan accessed via various accessors (see?gData`). instance, can retrieve original locations, assigned nodes, stored data using: can also get coordinates matching nodes (, red circle previous figure) using: interestingly, can now retrieve geographic information contained underlying grid (, gGraph object) node attributes: example, information stored worldgraph.10k rather crude: habitat distinguishes land sea. However, complex habitat information incorporated, instance GIS shapefiles (see dedicated section ).","code":"Bordeaux <- c(-1, 45) London <- c(0, 51) Malaga <- c(-4, 37) Zagreb <- c(16, 46) cities.dat <- rbind.data.frame(Bordeaux, London, Malaga, Zagreb) colnames(cities.dat) <- c(\"lon\", \"lat\") cities.dat$pop <- c(1e6, 13e6, 5e5, 1.2e6) row.names(cities.dat) <- c(\"Bordeaux\", \"London\", \"Malaga\", \"Zagreb\") cities.dat ## lon lat pop ## Bordeaux -1 45 1.0e+06 ## London 0 51 1.3e+07 ## Malaga -4 37 5.0e+05 ## Zagreb 16 46 1.2e+06 worldgraph.10k ## ## === gGraph object === ## ## @coords: spatial coordinates of 10242 nodes ## lon lat ## 1 -180.00 90.00 ## 2 144.00 -90.00 ## 3 -33.78 27.19 ## ... ## ## @nodes.attr: 1 nodes attributes ## habitat ## 1 sea ## 2 sea ## 3 sea ## ... ## ## @meta: list of meta information with 2 items ## [1] \"$colors\" \"$costs\" ## ## @graph: ## A graphNEL graph with undirected edges ## Number of Nodes = 10242 ## Number of Edges = 6954 plot(worldgraph.10k) cities <- new(\"gData\", coords = cities.dat[, 1:2], data = cities.dat[, 3, drop = FALSE], gGraph.name = \"worldgraph.10k\") cities ## ## === gData object === ## ## @coords: spatial coordinates of 4 nodes ## lon lat ## 1 -1 45 ## 2 0 51 ## 3 -4 37 ## ... ## ## @nodes.id: nodes identifiers ## 1 2 3 ## \"5774\" \"6413\" \"4815\" ## ... ## ## @data: 4 data ## pop ## Bordeaux 1.0e+06 ## London 1.3e+07 ## Malaga 5.0e+05 ## ... ## ## Associated gGraph: worldgraph.10k plot(cities, type = \"both\", reset = TRUE) plotEdges(worldgraph.10k) cities <- closestNode(cities, attr.name = \"habitat\", attr.value = \"land\") plot(cities, type = \"both\", reset = TRUE) plotEdges(worldgraph.10k) getCoords(cities) ## lon lat ## 5775 -1 45 ## 6413 0 51 ## 4815 -4 37 ## 7699 16 46 getNodes(cities) ## 5774 6413 4815 7699 ## \"5775\" \"6413\" \"4815\" \"7699\" getData(cities) ## pop ## Bordeaux 1.0e+06 ## London 1.3e+07 ## Malaga 5.0e+05 ## Zagreb 1.2e+06 getCoords(cities, original = FALSE) ## lon lat ## 5775 1.002e-05 43.73 ## 6413 1.002e-05 51.38 ## 4815 -3.788e+00 37.75 ## 7699 1.548e+01 46.74 getNodesAttr(cities) ## habitat ## 5775 land ## 6413 land ## 4815 land ## 7699 land"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"visualizing-data","dir":"Articles","previous_headings":"Using geoGraph","what":"Visualizing data","title":"An introduction to geoGraph","text":"essential aspect spatial analysis lies visualizing data. geoGraph, spatial grids (gGraph) spatial data (gData) can plotted browsed using variety functions.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"plotting-ggraph-objects","dir":"Articles","previous_headings":"Using geoGraph > Visualizing data","what":"Plotting gGraph objects","title":"An introduction to geoGraph","text":"Displaying gGraph object done plot points functions. first opens new plotting region, second draws current plotting region; functions otherwise similar arguments (see ?plot.gGraph). default, plotting gGraph displays grid nodes overlaying shapefile (default, landmasses). Edges can plotted time (argument edges), added afterwards using plotEdges. gGraph object possesses adequately formed meta$colors component, colors nodes chosen according node attributes color scheme specified meta$colors. Alternatively, color nodes can specified via col argument plot/points. example using worldgraph.10k: may worth noting plotting gGraph objects involves plotting fairly large number points edges. graphical devices, resulting plotting can slow. instance, one may want disable cairo linux: graphical device yields better graphics Xlib, expense increase computational time. switch Xlib, type: revert cairo, type:","code":"worldgraph.10k@meta$colors ## habitat color ## 1 sea blue ## 2 land green ## 3 mountain brown ## 4 landbridge light green ## 5 oceanic crossing light blue ## 6 deselected land lightgray head(getNodesAttr(worldgraph.10k)) ## habitat ## 1 sea ## 2 sea ## 3 sea ## 4 sea ## 5 sea ## 6 sea table(getNodesAttr(worldgraph.10k)) ## habitat ## deselected land land sea ## 290 2632 7320 plot(worldgraph.10k, reset = TRUE) title(\"Default plotting of worldgraph.10k\") X11.options(type = \"Xlib\") X11.options(type = \"cairo\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"zooming-in-and-out-sliding-etc-","dir":"Articles","previous_headings":"Using geoGraph > Visualizing data","what":"Zooming in and out, sliding, etc.","title":"An introduction to geoGraph","text":"practice, often useful able peer specific regions, generally navigate inside graphical representation data. , can use interactive functions geo.zoomin, geo.zoomout, geo.slide, geo.back, geo.bookmark, geo.goto. zoom slide functions require left-click graphics zoom , zoom , slide adjacent areas; cases, right click ends function. Also note geo.zoomin can accept argument specifying rectangular region, adapted function fit best square area similar position centre, zoom area (see ?geo.zoomin). geo.bookmark geo.goto respectively set go bookmark, .e. tagged area. useful one switch distant areas repeatedly. examples based previous plotting worldgraph.10k: Zooming : Zooming : Sliding east: One important thing makes plotting gGraph objects different plotting R geoGraph keeps changes made plotting area memory. allows undo one several moves using geo.back. Moreover, even graphical device killed, plotting gGraph use old parameters default. disable behavior, set argument reset=TRUE calling upon plot. Technically, ‘plotting memory’ implemented storing plotting information environment defined hidden environment geoGraph:::.geoGraphEnv: can inspect individual variables within environment: However, recommended modify objects directly, unless really know . case, plotting gGraph object argument reset=TRUE remove previous plotting history undo possible wrong manipulations.","code":"geo.zoomin() geo.zoomout() geo.slide() ls(env = geoGraph:::.geoGraphEnv) ## [1] \"bookmarks\" \"last.plot\" \"last.plot.param\" \"last.points\" ## [5] \"psize\" \"sticky.points\" \"usr\" \"zoom.log\" get(\"last.plot.param\", envir = geoGraph:::.geoGraphEnv) ## $psize ## [1] 0.5 ## ## $pch ## [1] 19"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"plotting-gdata-objects","dir":"Articles","previous_headings":"Using geoGraph > Visualizing data","what":"Plotting gData objects","title":"An introduction to geoGraph","text":"gData objects default plotted overlaying corresponding gGraph. instance, using cities example : Note argument reset=TRUE, tells plotting function adapt plotting area geographic extent dataset. plot additional information, can useful extract spatial coordinates data. achieved getCoords. method takes extra argument original, TRUE original spatial coordinates seeked, FALSE coordinates nodes grid. can use represent, instance, population sizes different cities:","code":"plot(cities, reset = TRUE) text(getCoords(cities), rownames(getData(cities))) transp <- function(col, alpha = .5) { res <- apply(col2rgb(col), 2, function(c) rgb(c[1] / 255, c[2] / 255, c[3] / 255, alpha)) return(res) } plot(cities, reset = TRUE) par(xpd = TRUE) text(getCoords(cities) + -.5, rownames(getData(cities))) symbols(getCoords(cities)[, 1], getCoords(cities)[, 2], circ = sqrt(unlist(getData(cities))), inch = .2, bg = transp(\"red\"), add = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"editing-ggraphs","dir":"Articles","previous_headings":"Using geoGraph","what":"Editing gGraphs","title":"An introduction to geoGraph","text":"Editing graphs essential task geoGraph. available gGraph objects provide basis work (see ?worldgraph.10k), one may want adapt graph specific case. instance, connectivity defined according biological knowledge organism study. gGraph can modified different ways: changing connectivity, costs edges, attribute values.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"changing-the-global-connectivity-of-a-ggraph","dir":"Articles","previous_headings":"Using geoGraph > Editing gGraphs","what":"Changing the global connectivity of a gGraph","title":"An introduction to geoGraph","text":"two main ways changing connectivity gGraph, match two different objectives. first approach perform global systematic changes connectivity graph. Typically, one want remove connections given type landscape, uncrossable organism study. Let’s assume interested saltwater fishes. model fish dispersal, define graph connects nodes overlaying sea. load gGraph object rawgraph.10k, zoom smaller area (Madagascar) illustrate changes connectivity: shall set bookmark area, case want get back place later : now want remove sea-sea connections. , easiest approach ) define costs edges based habitat, land given large costs ii) remove edges large costs. Costs given node attribute (, habitat') indicated themeta$costs` slot: just changed costs associated habitat type, change yet effective edges nodes. use setCosts set cost edge average costs nodes: new graph, represent edges width inversely proportional associated cost; , bold lines easy travelling light edges/dotted lines costly mouvement. enough yet, since travelling land still possible. However, can tell geoGraph remove edges associated strong cost, defined given threshold (using dropDeadEdges). , sea-sea connections shall retained, , edges cost 1. : newGraph contains connections sea. Note , although restrained plotting area Madagascar, change effective everywhere. instance, travelling nort-west Australian coasts:","code":"geo.zoomin(c(35, 54, -26, -10)) plotEdges(rawgraph.10k) geo.bookmark(\"madagascar\") ## ## Bookmark ' madagascar 'saved. rawgraph.10k@meta$costs ## habitat cost ## 1 sea 100 ## 2 land 1 ## 3 mountain 10 ## 4 landbridge 5 ## 5 oceanic crossing 20 ## 6 deselected land 100 newGraph <- rawgraph.10k newGraph@meta$costs[2:6, 2] <- 100 newGraph@meta$costs[1, 2] <- 1 newGraph@meta$costs ## habitat cost ## 1 sea 1 ## 2 land 100 ## 3 mountain 100 ## 4 landbridge 100 ## 5 oceanic crossing 100 ## 6 deselected land 100 newGraph <- setCosts(newGraph, attr.name = \"habitat\") plot(newGraph, edge = TRUE) newGraph <- dropDeadEdges(newGraph, thres = 1.1) plot(newGraph, edge = TRUE) geo.zoomin(c(110, 130, -27, -12)) geo.bookmark(\"australia\") ## ## Bookmark ' australia 'saved."},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"changing-local-properties-of-a-ggraph","dir":"Articles","previous_headings":"Using geoGraph > Editing gGraphs","what":"Changing local properties of a gGraph","title":"An introduction to geoGraph","text":"second approach changing gGraph refine graph hand, adding removing locally connections, altering attributes nodes. can necessary connect components islands main landmasses, correct erroneous data. Adding removing edges grid gGraph can achieved geo.add.edges geo.remove.edges, respectively. functions interactive, require user select individual nodes rectangular area edges added removed. See ?geo.add.edges information functions. instance, can remove odd connections previous graph, near Australian coasts (note save changes using <-): img adding connections within area entire graph, node addition based another gGraph,.e. connections existing another gGraph serving reference can added current gGraph. graphs based 10k 40k grids, raw graphs provided geoGraph used, (rawgraph.10k, rawgraph.40k), since fully connected. addition changing grid connectivity, may also want modify attributes specific nodes. done interactively, using function geo.change.attr. instance, , define new value shalowwater (plotted light blue) attribute habitat, selecting affected nodes using ‘area’ mode first, refining changes using ‘point’ mode: , note changes made graph save object (using <-) effective.","code":"geo.goto(\"australia\") newGraph <- geo.remove.edges(newGraph) plot(newGraph, edge = TRUE) temp <- geo.change.attr(newGraph, mode = \"area\", attr.name = \"habitat\", attr.value = \"shallowwater\", newCol = \"deepskyblue\") temp <- geo.change.attr(temp, attr.name = \"habitat\", attr.value = \"shallowwater\", newCol = \"deepskyblue\") newGraph <- temp newGraph@meta$colors ## habitat color ## 1 sea blue ## 2 land green ## 3 mountain brown ## 4 landbridge light green ## 5 oceanic crossing light blue ## 6 deselected land lightgray ## 7 shallowwater deepskyblue plot(newGraph, edge = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"extracting-information-from-gis-shapefiles","dir":"Articles","previous_headings":"Using geoGraph","what":"Extracting information from GIS shapefiles","title":"An introduction to geoGraph","text":"important feature geoGraph serving interface geographic information system (GIS) layers geographic data. currently implemented, geoGraph can extract information shapefiles Arc GIS (http://www.esri.com/software/arcgis/index.html) format, using function extractFromLayer. , illustrate procedure using shapefile world-countries.shp provided package. geoGraph still relies SpatialPolygonDataFrame objects sp package. move sf objects planned, moment use sf::st_read() read GIS shapefile sf object, cast SpatialPolygonDataFrame sf::as_Spatial(): summary world.countries shows data (attributes) stored layer. Let us assume interested retrieving continent country information worldgraph.10k object. Note extractFromLayer can extract information types objects gGraph (see ?extractFromLayer) new object newGraph gGraph now includes, node grid, corresponding continent country retrieved GIS layer. can use newly acquired information plotting newGraph, defining new color rules: information turn used define costs travelling grid. instance, one import habitat descriptors GIS, use values formulate habitat model, derive costs dispersal grid. soon GIS layer extracted gGraph, information becomes also available gData interfaced object. instance, can re-use cities example defined previous section, interface newGraph retrieve continent country information cities dataset:","code":"library(sf) ## Linking to GEOS 3.10.2, GDAL 3.4.1, PROJ 8.2.1; sf_use_s2() is TRUE world.countries <- sf::st_read(system.file(\"files/shapefiles/world-countries.shp\", package = \"geoGraph\")) ## Reading layer `world-countries' from data source ## `/home/runner/work/_temp/Library/geoGraph/files/shapefiles/world-countries.shp' ## using driver `ESRI Shapefile' ## Simple feature collection with 239 features and 8 fields ## Geometry type: MULTIPOLYGON ## Dimension: XY ## Bounding box: xmin: -180 ymin: -89.9 xmax: 181.8 ymax: 84.93 ## CRS: NA world.countries <- sf::as_Spatial(world.countries) class(world.countries) ## [1] \"SpatialPolygonsDataFrame\" ## attr(,\"package\") ## [1] \"sp\" summary(world.countries) ## Length Class Mode ## 239 SpatialPolygonsDataFrame S4 summary(getNodesAttr(worldgraph.10k)) ## habitat ## deselected land: 290 ## land :2632 ## sea :7320 newGraph <- extractFromLayer(worldgraph.10k, layer = world.countries, attr = c(\"CONTINENT\", \"NAME\")) summary(getNodesAttr(newGraph)) ## habitat CONTINENT NAME ## deselected land: 290 Length:10242 Length:10242 ## land :2632 Class :character Class :character ## sea :7320 Mode :character Mode :character temp <- unique(getNodesAttr(newGraph)$\"NAME\") col <- c(\"transparent\", rainbow(length(temp) - 1)) colMat <- data.frame(NAME = temp, color = col) head(colMat) ## NAME color ## 1 transparent ## 2 Antartica #FF0000 ## 3 Saudi Arabia #FF0B00 ## 4 Yemen #FF1500 ## 5 Somalia #FF2000 ## 6 China #FF2B00 tail(colMat) ## NAME color ## 140 Latvia #FF0040 ## 141 Belarus #FF0035 ## 142 Eritrea #FF002A ## 143 Djibouti #FF0020 ## 144 East Timor #FF0015 ## 145 Jordan #FF000B plot(newGraph, col.rules = colMat, reset = TRUE) cities.dat ## lon lat pop ## Bordeaux -1 45 1.0e+06 ## London 0 51 1.3e+07 ## Malaga -4 37 5.0e+05 ## Zagreb 16 46 1.2e+06 cities <- new(\"gData\", coords = cities.dat[, 1:2], data = cities.dat[, 3, drop = FALSE], gGraph.name = \"newGraph\") cities <- closestNode(cities, attr.name = \"habitat\", attr.value = \"land\") getData(cities) ## pop ## Bordeaux 1.0e+06 ## London 1.3e+07 ## Malaga 5.0e+05 ## Zagreb 1.2e+06 getNodesAttr(cities) ## habitat CONTINENT NAME ## 5775 land Europe France, Metropolitan ## 6413 land Europe United Kingdom ## 4815 land Europe Spain ## 7699 land Europe Austria"},{"path":"https://evolecolgroup.github.io/geograph/dev/articles/geograph.html","id":"finding-least-cost-paths","dir":"Articles","previous_headings":"Using geoGraph","what":"Finding least-cost paths","title":"An introduction to geoGraph","text":"One useful applications geoGraph research least-cost paths couples locations. can achieved using functions dijkstraFrom dijkstraBetween gData object contains locations interest. functions return least-cost paths format gPath. dijkstraFrom compute paths given node grid locations gData, dijkstraBetween computes paths pairs locations gData. , detail example documentation functions, uses famous dataset native Human populations, HGDP: Populations dataset shown red circles, underlying grid (worldgraph.40k) represented colors depending habitat (blue: sea; green: land; pink: coasts). Population genetics predicts genetic diversity within populations decay populations located away geographic origin species. , verify relationship theoretical origin Addis abeba, Ethiopia. shall seek paths landmasses HGDP populations. First, check populations connected grid using isConnected: Note practice, may often want assess graphically connectivity underlying grid, especially locations gData connected. can done using connectivityPlot, methods gGraph gData, represents different connected components using different colors. instance, worldgraph.10k: Since locations hgdp connected, can proceed . set costs edges gGraph grid. , can choose ) strictly uniform costs (using dropCosts) ii) distance-based costs – roughly uniform – (using setDistCosts) iii) attribute-driven costs (using setCosts). shall first illustrate strictly uniform costs. setting gGraph uniform costs, use dijkstraFrom find shortest paths Addis abeba populations hgdp: object paths contains identified paths, stored list class gPath (see ?gPath). Paths can plotted easily: graph, path plotted different color, several paths overlap several places. can extract distances origin' usinggPath2dist, examine relationship genetic diversity within populations (stored inhgdp`) distance origin: Alternatively, can use costs based habitat. toy example, consider coasts four times favourable dispersal rest landmasses. define new costs, compute plot corresponding shortest paths: new paths slightly different previous ones. can examine new relationship genetic distance: course, distinction coasts inner landmasses somewhat poor description habitat. practice, complex habitat models can used simply.","code":"hgdp ## ## === gData object === ## ## @coords: spatial coordinates of 52 nodes ## lon lat ## 1 -3 59 ## 2 39 44 ## 3 40 61 ## ... ## ## @nodes.id: nodes identifiers ## 28179 11012 22532 ## \"26898\" \"11652\" \"22532\" ## ... ## ## @data: 52 data ## Population Region Label n Latitude Longitude Genetic.Div ## 1 Orcadian EUROPE 1 15 59 -3 0.7259 ## 2 Adygei EUROPE 2 17 44 39 0.7298 ## 3 Russian EUROPE 3 25 61 40 0.7320 ## ... ## ## Associated gGraph: worldgraph.40k plot(hgdp, reset = TRUE) isConnected(hgdp) ## [1] TRUE connectivityPlot(worldgraph.10k, edges = TRUE, seed = 1) geo.zoomin(c(90, 150, 18, -25)) title(\"Different connected components\\n in worldgraph.10k\") myGraph <- dropCosts(worldgraph.40k) hgdp@gGraph.name <- \"myGraph\" addis <- cbind(38, 9) ori <- closestNode(myGraph, addis) paths <- dijkstraFrom(hgdp, ori) ## Loading required package: RBGL addis <- as.vector(addis) plot(myGraph, col = NA, reset = TRUE) plot(paths) points(addis[1], addis[2], pch = \"x\", cex = 2) text(addis[1] + 35, addis[2], \"Addis abeba\", cex = .8, font = 2) points(hgdp, col.node = \"black\") div <- getData(hgdp)$\"Genetic.Div\" dgeo.unif <- gPath2dist(paths, res.type = \"vector\") plot(div ~ dgeo.unif, xlab = \"GeoGraphic distance (arbitrary units)\", ylab = \"Genetic diversity\") lm.unif <- lm(div ~ dgeo.unif) abline(lm.unif, col = \"red\") summary(lm.unif) ## ## Call: ## lm(formula = div ~ dgeo.unif) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.07327 -0.00660 0.00074 0.01015 0.05449 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 7.70e-01 4.58e-03 168.2 <2e-16 *** ## dgeo.unif -8.39e-04 5.31e-05 -15.8 <2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.0185 on 50 degrees of freedom ## Multiple R-squared: 0.833, Adjusted R-squared: 0.83 ## F-statistic: 250 on 1 and 50 DF, p-value: <2e-16 title(\"Genetic diversity vs geographic distance \\n uniform costs \") myGraph@meta$costs[7, ] <- c(\"coast\", 0.25) myGraph@meta$costs ## habitat cost ## 1 sea 100 ## 2 land 1 ## 3 mountain 10 ## 4 landbridge 5 ## 5 oceanic crossing 20 ## 6 deselected land 100 ## 7 coast 0.25 myGraph <- setCosts(myGraph, attr.name = \"habitat\") paths.2 <- dijkstraFrom(hgdp, ori) plot(newGraph, col = NA, reset = TRUE) plot(paths.2) points(addis[1], addis[2], pch = \"x\", cex = 2) text(addis[1] + 35, addis[2], \"Addis abeba\", cex = .8, font = 2) points(hgdp, col.node = \"black\") dgeo.hab <- gPath2dist(paths.2, res.type = \"vector\") plot(div ~ dgeo.hab, xlab = \"GeoGraphic distance (arbitrary units)\", ylab = \"Genetic diversity\") lm.hab <- lm(div ~ dgeo.hab) abline(lm.hab, col = \"red\") summary(lm.hab) ## ## Call: ## lm(formula = div ~ dgeo.hab) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.11183 -0.00976 0.00133 0.01216 0.06413 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 0.770137 0.007174 107.36 < 2e-16 *** ## dgeo.hab -0.001421 0.000145 -9.79 3.2e-13 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.0265 on 50 degrees of freedom ## Multiple R-squared: 0.657, Adjusted R-squared: 0.651 ## F-statistic: 95.9 on 1 and 50 DF, p-value: 3.21e-13 title(\"Genetic diversity vs geographic distance \\n habitat costs \")"},{"path":"https://evolecolgroup.github.io/geograph/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Thibaut Jombart. Author. Andrea Manica. Author, maintainer.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Jombart T, Manica (2023). geoGraph: Walking geographic space using graphs. R package version 1.1.1.9001, https://evolecolgroup.github.io/geograph/, https://github.com/EvolEcolGroup/geograph.","code":"@Manual{, title = {geoGraph: Walking through the geographic space using graphs}, author = {Thibaut Jombart and Andrea Manica}, year = {2023}, note = {R package version 1.1.1.9001, https://evolecolgroup.github.io/geograph/}, url = {https://github.com/EvolEcolGroup/geograph}, }"},{"path":"https://evolecolgroup.github.io/geograph/dev/index.html","id":"geograph","dir":"","previous_headings":"","what":"Walking through the geographic space using graphs","title":"Walking through the geographic space using graphs","text":"geoGraph aims implementing graph approaches geographic data. geoGraph, given geographic area modelled fine regular grid, vertice set spatial coordinates set attributes, can instance habitat descriptors, presence/abundance given species. ‘Travelling’ within geographic area can easily modelled moving connected vertices. cost moving one vertex another can defined according attribute values, allows instance define friction routes based habitat. geoGraph harnesses full power graph algorithms implemented R graph RBGL (R Boost Graph Library) packages. particular, RBGL interface R comprehensive Boost Graph Library C++, provides fast efficient implementations wide range graph algorithms. defined frictions entire geographic area, can easily, instance, find least costs path one location another, find parsimonious way connecting set locations. Interfacing spatial data graphs can complicated task. purpose geoGraph provide tools achieve simplify ‘preliminary’ step. achieved defining new classes objects essentially geo-referenced graphs node attributes (gGraph objects), interfaced spatial data (gData objects).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Walking through the geographic space using graphs","text":"can install development version geoGraph GitHub :","code":"install.packages(\"devtools\") devtools::install_github(\"EvolEcolGroup/geograph/\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/index.html","id":"how-the-package-works","dir":"","previous_headings":"","what":"How the package works","title":"Walking through the geographic space using graphs","text":"detailed introduction functionalities geoGraph found overview article website.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":null,"dir":"Reference","previous_headings":"","what":"Auxiliary methods for geoGraph — auxiliary","title":"Auxiliary methods for geoGraph — auxiliary","text":"methods low-level functions called procedures geoGraph. can, however, useful . Note unlike functions geoGraph, functions generally test validity provided arguments (speed purposes).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Auxiliary methods for geoGraph — auxiliary","text":"","code":"hasCosts(x) geo.segments( x0, y0, x1, y1, col = graphics::par(\"fg\"), lty = graphics::par(\"lty\"), lwd = graphics::par(\"lwd\"), ... )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Auxiliary methods for geoGraph — auxiliary","text":"x valid gGraph. x0, y0 coordinates points draw. x1, y1 coordinates points draw. col character string integer indicating color segments. lty character string integer indicating type line. lwd integer indicating line width. ... graphical parameters ('par') passed segments function.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Auxiliary methods for geoGraph — auxiliary","text":"hasCost, logical value returned. geo.segments returns NULL.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Auxiliary methods for geoGraph — auxiliary","text":"hasCosts: tests whether gGraph costs associated edges. geo.segments: substitute segments correctly draws segments locations distant 90 degrees longitude. rebuild: development.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/auxiliary.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Auxiliary methods for geoGraph — auxiliary","text":"","code":"hasCosts(worldgraph.10k) #> [1] FALSE"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute buffers around locations for gGraph and gData objects — buffer","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"generic function buffer finds buffers around specified locations gGraph gData object. Different format output available.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"","code":"# S4 method for gGraph buffer(x, nodes, d, res.type = c(\"nodes\", \"gGraph\"), ...) # S4 method for gData buffer(x, d, res.type = c(\"nodes\", \"gData\", \"gGraph\"), ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"x valid gGraph gData object. nodes character vector identifying nodes aournd buffers computed. d radius buffer, km. res.type type result returned (see section value. ... arguments passed specific methods.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"output depends value argument res.type: nodes: vector characters identifying nodes buffers. gGraph: gGraph object new attribute \"buffer\" (TRUE: within buffers; FALSE: outside buffers), new color rules attribute @meta$buf.colors. gData: gData object including nodes buffers.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"computed buffers sets nodes lying within given distance specified locations. nodes buffer need connected location surround.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/buffer.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute buffers around locations for gGraph and gData objects — buffer","text":"","code":"#### gGraph example #### ## zoom in to an area plot(worldgraph.10k, reset = TRUE) geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) ## identify one node oneNodeXY <- c(getCoords(worldgraph.10k)[9299, 1], getCoords(worldgraph.10k)[9299, 2]) points(oneNodeXY[1], oneNodeXY[2], col = \"red\") ## find some buffers buffer(worldgraph.10k, \"9299\", 100) # nothing around 100km #> [1] \"9299\" buffer(worldgraph.10k, \"9299\", 500) #> [1] \"9299\" \"8979\" \"9619\" \"9300\" \"9298\" \"8978\" \"9620\" \"8980\" \"8658\" \"9618\" #> [11] \"9940\" \"9301\" \"9621\" \"9297\" \"8977\" \"8657\" \"9941\" buf500km <- buffer(worldgraph.10k, \"9299\", 500, res = \"gGraph\") plot(buf500km, col.rules = buf500km@meta$buf.colors) buf1000km <- buffer(worldgraph.10k, \"9299\", 1000, res = \"gGraph\") plot(buf1000km, col.rules = buf1000km@meta$buf.colors) #### gData example #### x <- hgdp[27:30] # retain a subset of hgdp plot(x, reset = TRUE, col.g = \"lightgrey\", pch.node = 20) buf.200 <- buffer(x, 200, res = \"gData\") buf.400 <- buffer(x, 400, res = \"gData\") buf.600 <- buffer(x, 600, res = \"gData\") buf.1000 <- buffer(x, 1000, res = \"gData\") points(buf.1000, col.node = \"black\") points(buf.600, col.node = \"yellow\") points(buf.400, col.node = \"gold\") points(buf.200, col.node = \"orange\") title(\"Different buffers for a gData \\n(100km, 200km, 500km)\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":null,"dir":"Reference","previous_headings":"","what":"Find the closest node to a given location — closestNode","title":"Find the closest node to a given location — closestNode","text":"function closestNode searches closest node gGraph gData object given location. possible restrain research given values node attribute. instance, one can search closest node land given location.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find the closest node to a given location — closestNode","text":"","code":"closestNode(x, ...) # S4 method for gGraph closestNode(x, loc, zoneSize = 5, attr.name = NULL, attr.values = NULL) # S4 method for gData closestNode(x, zoneSize = 5, attr.name = NULL, attr.values = NULL)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find the closest node to a given location — closestNode","text":"x valid gGraph gData object. latter case, gGraph gData linked current environment. ... arguments passed specific methods. loc locations, specified list two components indicating longitude latitude locations. Alternatively, can data.frame matrix longitude latitude columns, order. Note locator() can used specify interactively locations. zoneSize numeric value indicating size zone (latitude/longitude units) closest node searched . Note matters speed purpose: closest node found inside given zone, zone expanded nodes found. attr.name optional name node attribute. See details. attr.values optional vector giving values attr.names. See details.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find the closest node to a given location — closestNode","text":"x gGraph object: vector node names. x gData object: gData object matching nodes stored @nodes.id slot. Note previous content @nodes.id erased.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Find the closest node to a given location — closestNode","text":"function also used match locations gData object nodes gGraph object linked. creating gData object, gGraph.name argument provided, locations matched gGraph object automatically, internal call closestNode. Note, however, possible specify node attributes (attr.names attr.values) way.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Find the closest node to a given location — closestNode","text":"closestNode(gGraph): Method gGraph closestNode(gData): Method gData","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/closestNode.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find the closest node to a given location — closestNode","text":"","code":"if (FALSE) { ## interactive example ## plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## click some locations myNodes <- closestNode(worldgraph.10k, locator(), attr.name = \"habitat\", attr.value = \"land\") myNodes ## here are the closestNodes points(getCoords(worldgraph.10k)[myNodes, ], col = \"red\") } ## example with a gData object ## myLoc <- list(x = c(3, -8, 11, 28), y = c(50, 57, 71, 67)) # some locations obj <- new(\"gData\", coords = myLoc) # new gData object obj #> #> === gData object === #> #> @coords: spatial coordinates of 4 nodes #> lon lat #> 1 3 50 #> 2 -8 57 #> 3 11 71 #> ... #> #> @nodes.id: nodes identifiers #> character(0) #> #> @data: data #> NULL #> ... #> #> Associated gGraph: obj@gGraph.name <- \"worldgraph.10k\" # this could be done when creating obj obj <- closestNode(obj, attr.name = \"habitat\", attr.value = \"land\") ## plot the result (original location -> assigned node) plot(obj, method = \"both\", reset = TRUE) #> Warning: \"method\" is not a graphical parameter title(\"'x'=location, 'o'=assigned node\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Combine the costs of two gGraph objects — combineCosts","title":"Combine the costs of two gGraph objects — combineCosts","text":"function combineCosts combines edge costs two gGraph objects. first object used temlate generate objects combined costs. Two two gGraph objects must edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Combine the costs of two gGraph objects — combineCosts","text":"","code":"combineCosts(x1, x2, method = c(\"sum\", \"product\", \"function\"), FUN = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Combine the costs of two gGraph objects — combineCosts","text":"x1 firt gGraph (used template build combined gGraph) x2 second gGraph costs combined method character string indicating method used combined edge cost two gGraph. Currently available options 'sum', 'prod' 'function', combined costs computed sum, product custom function (defined FUN) costs nodes. FUN function used compute cost two nodes (needed method=\"function\"). ... additional parameters passed FUN.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Combine the costs of two gGraph objects — combineCosts","text":"gGraph object newly defined costs, basedd combination two gGraph objects, used weightings edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Combine the costs of two gGraph objects — combineCosts","text":"Note costs inversely proportional connectivity edges: larger cost associated edge, lower connectivity two concerned nodes. Also note 'costs' defined geoGraph equivalent 'weights' defined graph RBGL packages.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/combineCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Combine the costs of two gGraph objects — combineCosts","text":"","code":"data(\"worldgraph.40k\") # new graph with custom cost function exp.cost <- function(x1, x2, cost.coeff) { exp(-abs(x1 - x2) * cost.coeff) } # create a set of node costs worldgraph.40k@nodes.attr$meanProd <- runif(n = 40962) new_costs_graph <- setCosts( worldgraph.40k, node.values = worldgraph.40k@nodes.attr$meanProd, method = \"function\", FUN = exp.cost, cost.coeff = 0.5 ) # combine costs from the original graph with the new costs combine_costs_graph <- combineCosts(worldgraph.40k, new_costs_graph, method = \"sum\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":null,"dir":"Reference","previous_headings":"","what":"Check connectivity of a gGraph object — connectivity","title":"Check connectivity of a gGraph object — connectivity","text":"functions areNeighbours, areConnected method isConnected test connectivity different ways.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check connectivity of a gGraph object — connectivity","text":"","code":"areNeighbours(V1, V2, graph) areConnected(x, nodes) # S4 method for gData isConnected(object, ...) isReachable(x, loc) connectivityPlot(x, ...) # S4 method for gGraph connectivityPlot(x, ..., seed = NULL) # S4 method for gData connectivityPlot(x, col.gGraph = 0, ..., seed = NULL)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check connectivity of a gGraph object — connectivity","text":"V1 vector node names V2 vector node names graph valid graphNEL object. x valid gGraph object. nodes vector node names object valid gData object. ... arguments passed methods. loc location, specified list two components giving respectively longitude latitude. Alternatively, can matrix-like object one row two columns. seed optional integer giving seed used randomizing colors. One given seed always give set colors. NULL default, meaning colors randomized time plot drawn. col.gGraph character string number indicating color nodes used plotting gGraph object. Defaults '0', meaning nodes invisible.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check connectivity of a gGraph object — connectivity","text":"areNeighbours: vector logical, one value couple nodes. areConnected: single logical value, TRUE nodes form connected set. isConnected: single logical value, TRUE nodes object form connected set.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check connectivity of a gGraph object — connectivity","text":"areNeighbours: tests connectivity couples nodes object inheriting graph class (like graphNEL object). areConnected: tests set nodes form connected set gGraph object. isConnected: tests nodes gData object form connected set. Note method gData, generic defined graph package. isReachable: tests one location (actually, closest node ) reachable set nodes gData object. connectivityPlot: plots connected sets gGraph gData object different colors. connectivityPlot, isolated nodes (.e. belonging connected set size > 1) plotted light grey.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/connectivity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check connectivity of a gGraph object — connectivity","text":"","code":"connectivityPlot(rawgraph.10k) connectivityPlot(worldgraph.10k)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":null,"dir":"Reference","previous_headings":"","what":"Shortest path using Dijkstra algorithm — dijkstra-methods","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"methods dijkstraFrom dijkstraBetween wrappers procedures implemented RBGL package, designed gGraph gData object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"","code":"dijkstraBetween(x, ...) # S4 method for gGraph dijkstraBetween(x, from, to) # S4 method for gData dijkstraBetween(x) dijkstraFrom(x, ...) # S4 method for gGraph dijkstraFrom(x, start) # S4 method for gData dijkstraFrom(x, start) # S3 method for gPath plot(x, col = \"rainbow\", lwd = 3, ...) gPath2dist(m, diag = FALSE, upper = FALSE, res.type = c(\"dist\", \"vector\"))"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"x gGraph gData object. plotting method gPath objects, gPath object. ... arguments passed segments method. vector character strings giving node names. vector character strings giving node names. start character string naming 'source' node. col character string indicating color palette colors used plotting edges. lwd numeric value indicating width edges. m gPath object obtained dijkstraBetween. diag, upper unused parameters added consistency .dist. res.type character string indicating type result returned: dist object ('dist'), vector distances ('vector'). Note 'dist' required pairwise data, output dijkstraBetween (opposed dijkstraFrom).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"\"gPath\" object. basically outputs RBGL's sp.function (see ?sp.), class attribute set \"gPath\", additional slot 'xy' containing geographic coordinates nodes involved paths.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"dijkstraFrom finds minimum costs paths nodes given 'source' node. dijkstraBetween finds minimum costs paths possible pairs nodes given two sets nodes. functions return objects S3 class \"gPath\". objects can plotted using plot.gPath. gPath2dist extracts pairwise distances gPath returned dijkstraBetween returns dist object. Note gPath contain pairwise information, warning issued, resulting output likely meaningless. 'dijkstraBetween', paths seeked possible pairs nodes '' ''.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dijkstra-methods.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shortest path using Dijkstra algorithm — dijkstra-methods","text":"","code":"if (FALSE) { ## plotting world <- worldgraph.40k par(mar = rep(.1, 4)) plot(world, reset = TRUE) ## check connectivity isConnected(hgdp) # must be ok ## Lowest cost path from an hypothetical origin ori.coord <- list(33, 10) # one given location long/lat points(data.frame(ori.coord), pch = \"x\", col = \"black\", cex = 3) # an 'x' shows the putative origin ori <- closestNode(world, ori.coord) # assign it the closest node myPath <- dijkstraFrom(hgdp, ori) # compute shortest path ## plotting plot(world, pch = \"\") # plot the world points(hgdp, lwd = 3) # plot populations points(data.frame(ori.coord), pch = \"x\", col = \"black\", cex = 3) # add origin plot(myPath) # plot the path }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":null,"dir":"Reference","previous_headings":"","what":"Get rid of some 'dead' edges or nodes — dropDeadEdges","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"functions dropDeadEdges dropDeadNodes used remove 'dead edges' 'dead nodes'.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"","code":"dropDeadEdges(x, thres)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"x valid gGraph. thres numeric value indicating threshold cost edge removed. costs strictly greater thres removed.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"Dead edges edges associated prohibitive cost, , edges longer imply connectivity two nodes. Dead nodes nodes connected node, thus role connectivity graph.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/dropDeadEdges.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get rid of some 'dead' edges or nodes — dropDeadEdges","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) x <- dropDeadNodes(worldgraph.10k) plot(x) }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieves node attributes from a layer — extractFromLayer","title":"Retrieves node attributes from a layer — extractFromLayer","text":"generic function extractFromLayer uses information GIS shapefile define node attributes. node, information retrieved layer assigned node.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieves node attributes from a layer — extractFromLayer","text":"","code":"extractFromLayer(x, ...) # S4 method for matrix extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for data.frame extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for list extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for gGraph extractFromLayer(x, layer = \"world\", attr = \"all\", ...) # S4 method for gData extractFromLayer(x, layer = \"world\", attr = \"all\", ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieves node attributes from a layer — extractFromLayer","text":"x matrix, data.frame, list, valid gGraph, valid gData object. matrix data.frame, input must two columns giving longitudes latitudes locations considered. list, input must two components vectors giving longitudes latitudes locations. ... arguments passed methds. Currently used. layer shapefile class SpatialPolygonsDataFrame (see readShapePoly maptools package import data GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available (see ?data(worldshape)). attr character vector giving names variables extracted layer. '', available variables extracted. case problem, available names displayed error message. Available data also stored layer@data.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieves node attributes from a layer — extractFromLayer","text":"output depends nature input: - matrix, data.frame, list: data.frame one row per location, many columns requested variables ('attributes'). gGraph: gGraph object new node attributes (@nodes.attr slot). nodes attributes already existed, new attributes added new columns. gData: gData object new data associated locations (@data slot). New information merge older information according type data stored.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieves node attributes from a layer — extractFromLayer","text":"Nodes can specified different ways, including providing gGraph gData object. Outputs match input formats.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/extractFromLayer.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieves node attributes from a layer — extractFromLayer","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) ## see what info is available names(worldshape@data) unique(worldshape@data$CONTINENT) ## retrieve continent info for all nodes ## (might take a few seconds) x <- extractFromLayer(worldgraph.10k, layer = worldshape, attr = \"CONTINENT\") x table(getNodesAttr(x, attr.name = \"CONTINENT\")) ## subset Africa temp <- getNodesAttr(x, attr.name = \"CONTINENT\") == \"Africa\" temp[is.na(temp)] <- FALSE x <- x[temp] plot(x, reset = TRUE) }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":null,"dir":"Reference","previous_headings":"","what":"Find which nodes are on land — findLand","title":"Find which nodes are on land — findLand","text":"generic function findLand uses information GIS shapefile define nodes land, . Strickly speaking, 'land' fact inside polygon shapefile.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find which nodes are on land — findLand","text":"","code":"findLand(x, ...) # S4 method for matrix findLand(x, shape = \"world\", ...) # S4 method for data.frame findLand(x, shape = \"world\", ...) # S4 method for gGraph findLand(x, shape = \"world\", attr.name = \"habitat\", ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find which nodes are on land — findLand","text":"x matrix, data.frame, valid gGraph object. matrix data.frame, input must two columns giving longitudes latitudes locations considered. ... arguments passed methods. Currently used. shape shapefile class SpatialPolygonsDataFrame (see readShapePoly maptools package import data GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available (see ?data(worldshape)). attr.name character string giving name node attribute output stored.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find which nodes are on land — findLand","text":"output depends nature input: - matrix, data.frame: factor two levels 'land' 'sea'. gGraph: gGraph object new node attribute, possibly added previously existing node attributes (@nodes.attr slot).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Find which nodes are on land — findLand","text":"Nodes can specified either matrix geographic coordinates, gGraph object.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/findLand.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find which nodes are on land — findLand","text":"","code":"## create a new gGraph with random coordinates myCoords <- data.frame(long = runif(1000, -180, 180), lat = runif(1000, -90, 90)) obj <- new(\"gGraph\", coords = myCoords) obj # note: no node attribute #> #> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes #> lon lat #> 1 73.10167 80.01679 #> 2 137.55146 -71.65659 #> 3 -162.61384 -15.40920 #> ... #> #> @nodes.attr: 0 nodes attributes #> data frame with 0 columns and 0 rows #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 1000 #> Number of Edges = 0 plot(obj) ## find which points are on land obj <- findLand(obj) obj # note: new node attribute #> #> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes #> lon lat #> 1 73.10167 80.01679 #> 2 137.55146 -71.65659 #> 3 -162.61384 -15.40920 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 land #> 3 sea #> ... #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 1000 #> Number of Edges = 0 ## define rules for colors temp <- data.frame(habitat = c(\"land\", \"sea\"), color = c(\"green\", \"blue\")) temp #> habitat color #> 1 land green #> 2 sea blue obj@meta$color <- temp ## plot object with new colors plot(obj)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":null,"dir":"Reference","previous_headings":"","what":"Formal class ","title":"Formal class ","text":"class gData formal (S4) class storing georeferenced data, consisting set locations (longitude latitude) one several variables measured. data designed matched gGraph object, location assigned closest node gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Formal class ","text":"Note several operations gData object, gGraph object linked present environment.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"Formal class ","text":"coords matrix spatial coordinates two columns, respectively longitude (-180 180) latitude. Positive numbers intended 'east' 'north', respectively. nodes.id vector character strings giving name nodes (gGraph object) associated locations. data kind data associated locations coords. matrix-like objects, rows correspond locations. gGraph.name character string name gGraph object object matched. Note none mandatory: new(\"gData\") work, create empty gGraph object. Also note finer matching locations nodes gGraph object can achieved creating object, instance using closestNode method.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"objects-from-the-class-gdata","dir":"Reference","previous_headings":"","what":"Objects from the class gData","title":"Formal class ","text":"gData objects can created calls new(\"gData\", ...), '...' can following arguments:","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gData-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Formal class ","text":"","code":"hgdp #> #> === gData object === #> #> @coords: spatial coordinates of 52 nodes #> lon lat #> 1 -3 59 #> 2 39 44 #> 3 40 61 #> ... #> #> @nodes.id: nodes identifiers #> 28179 11012 22532 #> \"26898\" \"11652\" \"22532\" #> ... #> #> @data: 52 data #> Population Region Label n Latitude Longitude Genetic.Div #> 1 Orcadian EUROPE 1 15 59 -3 0.7258820 #> 2 Adygei EUROPE 2 17 44 39 0.7297802 #> 3 Russian EUROPE 3 25 61 40 0.7319749 #> ... #> #> Associated gGraph: worldgraph.40k ## plot data plot(worldgraph.40k, pch = \"\") points(hgdp) ## subset and plot data onlyNorth <- hgdp[hgdp@data$Latitude > 0] # only northern populations plot(worldgraph.40k, reset = TRUE) abline(h = 0) # equator points(onlyNorth, pch.node = 20, cex = 2, col.node = \"purple\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":null,"dir":"Reference","previous_headings":"","what":"Formal class ","title":"Formal class ","text":"class gGraph formal (S4) class storing geographic data. data composed set geographic coordinates vertices ('nodes'), graph describing connectivity vertices. Data associated nodes can also stored ('nodes attributes'), well meta-information used plotting object, computing weights associated edges based nodes attributes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Formal class ","text":"slots, nodes uniquely identified name (reference taken row names @coords slot).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"slots","dir":"Reference","previous_headings":"","what":"Slots","title":"Formal class ","text":"coords matrix spatial coordinates two columns, respectively longitude (-180 180) latitude. Positive numbers intended 'east' 'north', respectively. nodes.attr data.frame whose rows nodes, whose columns different variables associated nodes. meta list, likely containing named data.frames (see Slots). graph object class graphNEL, graph package (see class?graphNEL), describing connectivity among nodes. Note none mandatory: new(\"gGraph\") work, create empty gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"objects-from-the-class-ggraph","dir":"Reference","previous_headings":"","what":"Objects from the class gGraph","title":"Formal class ","text":"gGraph objects can created calls new(\"gGraph\", ...), '...' can following arguments:","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/gGraph-class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Formal class ","text":"","code":"## create an empty object new(\"gGraph\") #> #> === gGraph object === #> #> @coords: spatial coordinates of 0 nodes #> lon lat #> #> @nodes.attr: 0 nodes attributes #> data frame with 0 columns and 0 rows #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 0 #> Number of Edges = 0 ## plotting the object plot(rawgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## to play interactively with graphics, use: # geo.zoomin() # geo.zoomout() # geo.slide() # geo.back() ## defining a new object restrained to visible nodes x <- rawgraph.10k[isInArea(rawgraph.10k)] plot(x, reset = TRUE, edges = TRUE) title(\"x does just contain these visible nodes.\") ## define weights for edges x <- setCosts(x, attr.name = \"habitat\", method = \"prod\") plot(x, edges = TRUE) title(\"costs defined by habitat (land/land=1, other=100)\") ## drop 'dead edges' (i.e. with weight 0) x <- dropDeadEdges(x, thres = 10) plot(x, edges = TRUE) title(\"after droping edges with null weight\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":null,"dir":"Reference","previous_headings":"","what":"Add and remove edges from a gGraph object — geo.add.edges","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"functions geo.add.edges geo.remove.edges allow one add remove edges interactively gGraph object. adding edges, two approaches possible: - click vertices defining new edges (mode=\"points\") - select area edges reference graph added (mode=\"area\").","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"","code":"geo.add.edges(x, mode = c(\"points\", \"area\", \"all\"), refObj = \"rawgraph.40k\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"x valid gGraph object. mode character string indicating mode addition removal edges. 'points': user expected click vertices indicate edges. 'area': user expected click two points defining rectangular area within edges selected. '': edges reference graph added current object. refObj valid gGraph object, used reference adding edges. selecting area inside edges added, edges existing area refObj added x. Alternatively, character string can provided, corresponding one following datasets: 'rawgraph.10k', rawgraph.40k'.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"gGraph object newly added removed edges.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.add.edges.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add and remove edges from a gGraph object — geo.add.edges","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## remove edges geo.remove.edges(worldgraph.10k) # points mode geo.remove.edges(worldgraph.10k, mode = \"area\") # area mode ## add edges geo.add.edges(worldgraph.10k) # points mode geo.add.edges(worldgraph.10k, mode = \"area\") # area mode }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":null,"dir":"Reference","previous_headings":"","what":"Change values of a node attribute — geo.change.attr","title":"Change values of a node attribute — geo.change.attr","text":"functions geo.change.attr changes values given node attribute set selected nodes gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Change values of a node attribute — geo.change.attr","text":"","code":"geo.change.attr( x, mode = c(\"points\", \"area\"), attr.name, attr.value, only.name = NULL, only.value = NULL, newCol = \"black\", restore.edges = FALSE, refObj = \"rawgraph.40k\" )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Change values of a node attribute — geo.change.attr","text":"x valid gGraph object. mode character string indicating whether selected nodes clicked one one ('points') defining rectangular area ('area'). attr.name name node attribute modified. attr.value new value attribute assigned selected nodes. .name (optional) area mode, name node attribute add extra selection criterion. See details. .value (optional) area mode, .name specified, values .name can selected. See details. newCol character string giving new color attribute value. restore.edges logical indicating whether edges stemming modified nodes re-added graph, using refObj reference. useful connectivity redefined using setCosts nodes previously disconnected. refObj character string gGraph object, used reference re-adding edges. character string provided, must match one following dataset: 'rawgraph.10k', 'rawgraph.40k'.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Change values of a node attribute — geo.change.attr","text":"gGraph object modified node attributes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Change values of a node attribute — geo.change.attr","text":"argument .name allows one perform accurate selection nodes whose attribute changed, specifying values (.value) attribute (.name) can selected. instance, one may want define new attributes nodes worldgraph.10k exclusively land: done specifying .name=\"habitat\" .value=\"land\".","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geo.change.attr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Change values of a node attribute — geo.change.attr","text":"","code":"if (FALSE) { plot(worldgraph.10k, reset = TRUE) ## have to click here for an area ## all nodes are modified in the area x <- geo.change.attr(worldgraph.10k, mode = \"area\", attr.name = \"habitat\", attr.value = \"fancy habitat\", newCol = \"pink\") # modify selected area plot(x, reset = TRUE) # modification in the whole selected area ## have to click here for an area ## only nodes on land are modified x <- geo.change.attr(x, mode = \"area\", attr.name = \"habitat\", attr.value = \"fancy2 habitat\", newCol = \"purple\", only.name = \"habitat\", only.value = \"land\") plot(x, reset = TRUE) # modification in the whole selected area }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geoGraph-package.html","id":null,"dir":"Reference","previous_headings":"","what":"The geoGraph package — geoGraph-package","title":"The geoGraph package — geoGraph-package","text":"package implements classes methods large-scale georeferenced data handled spatial graphs.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geoGraph-package.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"The geoGraph package — geoGraph-package","text":"Main functionalities geoGraph summarized . === DATA HANDLING === geoGraph, data stored particular formal class named gGraph. class contains spatial coordinates set nodes (@coords), attributes nodes (@nodes.attr), meta-information nodes attributes (@meta), graph connections nodes class graphNEL (@graph). Several functions available handling gGraph data: accessors allow access slots object, sometimes additional treatment information: getGraph, getNodesAttr, getCoords, getNodes, getEdges, getCosts. setEdges: add/remove edges specified edges. setCosts: set costs edges. hasCosts: tests graph weighted (.e., non-uniform costs). isInArea: finds nodes currently plotted area. areConnected: tests nodes directly connected. connectivityPlot: plot connected components different colors. dropDeadEdges: suppress edges whose weight null. closestNode: given longitude latitude, finds closest node; specific values node attribute can provided, instance, find closest node land. show: printing gGraph objects. extractFromLayer: extract information GIS layers. findLand: checks nodes land. setCosts: define edges weights accoring rules specified @meta slot. geo.add.edges, geo.remove.edges: graphical functions adding removing edges. geo.change.attr: graphical functions changing attributes nodes. === GRAPHICS ===geoGraph aims providing advanced graphical facilities, zooming particular area, moving plotted area, visualizing connectivity nodes. plot: plot method various options, allowing display shapefile (default, map world), using color according attributes, showing connectivity nodes, etc. points: similar plot method, except new plot created. plotEdges: specific function plotting edges. detects object weighted graph, plots edges accordingly. geo.zoomin, geo.zoomout: zoom plot. geo.back: replot previous screens. geo.slide: slide plotted area toward indicated direction. geo.bookmark, geo.goto: set goto bookmarked area. === DATASETS === Datasets occupy central place geoGraph, since provide spatial models used later operations. Two main datasets proposed, gGraph resulting spliting earth cells (allmost perfectly) equal sizes. Two different resolutions provided: - worldgraph.10k: coverage using 10,000 nodes - worldgraph.40k: coverage using 40,000 nodes datasets : - worldshape: shapefile containing world countries. cite geoGraph, please use reference given citation(\"geoGraph\").","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/geoGraph-package.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"The geoGraph package — geoGraph-package","text":"","code":"## the class gGraph worldgraph.10k #> #> === gGraph object === #> #> @coords: spatial coordinates of 10242 nodes #> lon lat #> 1 -180.0000 90.00000 #> 2 144.0000 -90.00000 #> 3 -33.7806 27.18924 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 sea #> 3 sea #> ... #> #> @meta: list of meta information with 2 items #> [1] \"$colors\" \"$costs\" #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 10242 #> Number of Edges = 6954 ## plotting the object plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## to play interactively with graphics, use: # geo.zoomin() # geo.zoomout() # geo.slide() # geo.back() ## defining a new object restrained to visible nodes x <- worldgraph.10k[isInArea(worldgraph.10k)] plot(x, reset = TRUE, edges = TRUE) title(\"x does just contain these visible nodes.\") ## define weights for edges x <- setCosts(x, attr.name = \"habitat\", method = \"prod\") plot(x, edges = TRUE) title(\"connectivity defined by habitat (land/land=1, other=0)\") ## drop 'dead edges' (i.e. with weight 0) x <- dropDeadEdges(x) plot(x, edges = TRUE) title(\"after droping edges with null weight\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":null,"dir":"Reference","previous_headings":"","what":"Get colors associated to edges of a gGraph object — getColors","title":"Get colors associated to edges of a gGraph object — getColors","text":"function getColors returns colors associated nodes gGraph object, based specified node attribute.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get colors associated to edges of a gGraph object — getColors","text":"","code":"getColors(x, ...) # S4 method for gGraph getColors(x, nodes = \"all\", attr.name, col.rules = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get colors associated to edges of a gGraph object — getColors","text":"x valid gGraph. ... arguments passed methods. nodes vector character strings integers identifying nodes name index. Can \"\", case nodes considered. attr.name character string indicating name node attribute used define colors. col.rules matrix giving rules plotting attribute values different colors. See details.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get colors associated to edges of a gGraph object — getColors","text":"vector characters valid colors.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get colors associated to edges of a gGraph object — getColors","text":"Colors based node attribute, , column nodes.attr data.frame. attribute finite number values, likely factor. Correspondence values variable colors must provided @meta\\$color slot, col.rules argument. Color rules mus provided two-column matrix; first column contains values node attribute, named attribute; second must named \"color\", contain valid colors. See example section know slot designed.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get colors associated to edges of a gGraph object — getColors","text":"getColors(gGraph): Method gGraph objects","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getColors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get colors associated to edges of a gGraph object — getColors","text":"","code":"worldgraph.10k # there is a node attribute 'habitat' #> #> === gGraph object === #> #> @coords: spatial coordinates of 10242 nodes #> lon lat #> 1 -180.0000 90.00000 #> 2 144.0000 -90.00000 #> 3 -33.7806 27.18924 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 sea #> 3 sea #> ... #> #> @meta: list of meta information with 2 items #> [1] \"$colors\" \"$costs\" #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 10242 #> Number of Edges = 6954 worldgraph.10k@meta$color #> habitat color #> 1 sea blue #> 2 land green #> 3 mountain brown #> 4 landbridge light green #> 5 oceanic crossing light blue #> 6 deselected land lightgray head(getNodes(worldgraph.10k)) #> [1] \"1\" \"2\" \"3\" \"4\" \"5\" \"6\" head(getColors(worldgraph.10k, res.type = \"vector\", attr.name = \"habitat\")) #> 1 2 3 4 5 6 #> \"blue\" \"blue\" \"blue\" \"blue\" \"blue\" \"blue\""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Get costs associated to edges of a gGraph object — getCosts","title":"Get costs associated to edges of a gGraph object — getCosts","text":"function getCosts returns costs associated edges gGraph object using different possible outputs. outputs designed match possible outputs getEdges function.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get costs associated to edges of a gGraph object — getCosts","text":"","code":"getCosts(x, ...) # S4 method for gGraph getCosts(x, res.type = c(\"asIs\", \"vector\"), unique = FALSE, ...) getNodeCosts(x, ...) # S4 method for gGraph getNodeCosts(x, attr.name, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get costs associated to edges of a gGraph object — getCosts","text":"x valid gGraph. ... arguments passed methods (currently unused). res.type character string indicating kind output used. See value. unique logical indicating whether costs returned unique edges (TRUE), duplicate edges considered well (TRUE, default). attr.name name node attribute used define node costs.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get costs associated to edges of a gGraph object — getCosts","text":"output depends value argument res.type: asIs: output named list weights, slot containing weights associated edges stemming one given node. format weights accessor graphNEL objects. vector: vector weights; output matches matrix outputs getEdges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get costs associated to edges of a gGraph object — getCosts","text":"getNodeCosts returns costs associated nodes based one node attribute. notion 'costs' context gGraph objects identical concept 'weights' graph (thus graphNEL) objects. larger edge, less connectivity couple concerned nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get costs associated to edges of a gGraph object — getCosts","text":"getCosts(gGraph): Method gGraph object getNodeCosts(): Function get costs values nodes getNodeCosts(gGraph): Method get node costs gGraph object","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get costs associated to edges of a gGraph object — getCosts","text":"","code":"head(getEdges(worldgraph.10k, res.type = \"matNames\", unique = TRUE)) #> Vi Vj #> [1,] \"67\" \"9955\" #> [2,] \"67\" \"68\" #> [3,] \"67\" \"9953\" #> [4,] \"68\" \"69\" #> [5,] \"68\" \"9955\" #> [6,] \"69\" \"9957\" head(getCosts(worldgraph.10k, res.type = \"vector\", unique = TRUE)) #> 67.9955 67.68 67.9953 68.69 68.9955 69.9957 #> 1 1 1 1 1 1"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":null,"dir":"Reference","previous_headings":"","what":"Get edges from a gGraph object — getEdges","title":"Get edges from a gGraph object — getEdges","text":"function getEdges returns edges gGraph object using different possible outputs.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get edges from a gGraph object — getEdges","text":"","code":"getEdges(x, ...) # S4 method for gGraph getEdges(x, res.type = c(\"asIs\", \"matNames\", \"matId\"), unique = FALSE, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get edges from a gGraph object — getEdges","text":"x valid gGraph. ... arguments passed methods (currently unused). res.type character string indicating kind output used. See value. unique logical indicating whether returned edges unique (TRUE) duplicated edges allowed (TRUE, default).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get edges from a gGraph object — getEdges","text":"output depends value argument res.type: asIs: output named list nodes, slot containing nodes forming edge one given node. format edges accessor graphNEL objects. matNames: matrix two columns giving couples node names forming edges. matId: matrix two columns giving couples node indices forming edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get edges from a gGraph object — getEdges","text":"getEdges(gGraph): Method gGraph objects","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getEdges.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get edges from a gGraph object — getEdges","text":"","code":"example(gGraph) #> #> gGraph> ## create an empty object #> gGraph> new(\"gGraph\") #> #> === gGraph object === #> #> @coords: spatial coordinates of 0 nodes #> lon lat #> #> @nodes.attr: 0 nodes attributes #> data frame with 0 columns and 0 rows #> #> @meta: list of meta information with 0 items #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 0 #> Number of Edges = 0 #> #> gGraph> ## plotting the object #> gGraph> plot(rawgraph.10k, reset = TRUE) #> #> gGraph> ## zooming in #> gGraph> geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) #> #> gGraph> title(\"Europe\") #> #> gGraph> ## to play interactively with graphics, use: #> gGraph> # geo.zoomin() #> gGraph> # geo.zoomout() #> gGraph> # geo.slide() #> gGraph> # geo.back() #> gGraph> #> gGraph> ## defining a new object restrained to visible nodes #> gGraph> x <- rawgraph.10k[isInArea(rawgraph.10k)] #> #> gGraph> plot(x, reset = TRUE, edges = TRUE) #> #> gGraph> title(\"x does just contain these visible nodes.\") #> #> gGraph> ## define weights for edges #> gGraph> x <- setCosts(x, attr.name = \"habitat\", method = \"prod\") #> #> gGraph> plot(x, edges = TRUE) #> #> gGraph> title(\"costs defined by habitat (land/land=1, other=100)\") #> #> gGraph> ## drop 'dead edges' (i.e. with weight 0) #> gGraph> x <- dropDeadEdges(x, thres = 10) #> #> gGraph> plot(x, edges = TRUE) #> #> gGraph> title(\"after droping edges with null weight\") getEdges(x) #> $`707` #> [1] \"1027\" \"9951\" \"9952\" \"1028\" #> #> $`1027` #> [1] \"707\" \"1347\" \"1028\" \"9950\" \"9951\" \"1348\" #> #> $`1028` #> [1] \"1348\" \"1027\" \"707\" #> #> $`1347` #> [1] \"1027\" \"1667\" \"1348\" \"9950\" \"1668\" #> #> $`1348` #> [1] \"1028\" \"1668\" \"1347\" \"1027\" #> #> $`1667` #> [1] \"1347\" \"1987\" \"1668\" \"9948\" \"1988\" #> #> $`1668` #> [1] \"1348\" \"1988\" \"1667\" \"1347\" #> #> $`1987` #> [1] \"1667\" \"1988\" \"9947\" \"9948\" \"2308\" #> #> $`1988` #> [1] \"1668\" \"2308\" \"1987\" \"1667\" #> #> $`2307` #> character(0) #> #> $`2308` #> [1] \"1988\" \"1987\" #> #> $`2627` #> character(0) #> #> $`2628` #> character(0) #> #> $`2947` #> [1] \"3267\" \"2948\" \"3268\" #> #> $`2948` #> [1] \"3268\" \"2947\" #> #> $`3267` #> [1] \"2947\" \"3587\" \"3268\" \"9943\" \"3588\" #> #> $`3268` #> [1] \"2948\" \"3588\" \"3267\" \"2947\" #> #> $`3533` #> character(0) #> #> $`3534` #> [1] \"3855\" #> #> $`3587` #> [1] \"3267\" \"3907\" \"3588\" \"9942\" \"9943\" \"3908\" #> #> $`3588` #> [1] \"3268\" \"3908\" \"3587\" \"3267\" #> #> $`3853` #> character(0) #> #> $`3854` #> character(0) #> #> $`3855` #> [1] \"4175\" \"3534\" \"4176\" #> #> $`3907` #> [1] \"3587\" \"4227\" \"3908\" \"9941\" \"9942\" \"4228\" #> #> $`3908` #> [1] \"3588\" \"4228\" \"3907\" \"3587\" #> #> $`4172` #> character(0) #> #> $`4173` #> character(0) #> #> $`4174` #> character(0) #> #> $`4175` #> [1] \"3855\" \"4176\" \"4496\" #> #> $`4176` #> [1] \"4496\" \"4175\" \"3855\" \"4497\" #> #> $`4227` #> [1] \"3907\" \"4547\" \"4228\" \"9940\" \"9941\" #> #> $`4228` #> [1] \"3908\" \"4227\" \"3907\" #> #> $`4492` #> character(0) #> #> $`4493` #> [1] \"4813\" \"4494\" \"4814\" #> #> $`4494` #> [1] \"4814\" \"4493\" \"4815\" #> #> $`4495` #> character(0) #> #> $`4496` #> [1] \"4176\" \"4497\" \"4175\" \"4817\" #> #> $`4497` #> [1] \"4817\" \"4496\" \"4176\" \"4818\" #> #> $`4547` #> [1] \"4227\" \"4867\" \"9939\" \"9940\" #> #> $`4811` #> character(0) #> #> $`4812` #> character(0) #> #> $`4813` #> [1] \"4493\" \"4814\" \"5134\" #> #> $`4814` #> [1] \"4494\" \"5134\" \"4815\" \"4813\" \"4493\" \"5135\" #> #> $`4815` #> [1] \"5135\" \"4814\" \"4494\" \"5136\" #> #> $`4816` #> character(0) #> #> $`4817` #> [1] \"4497\" \"5137\" \"4818\" \"4496\" \"5138\" #> #> $`4818` #> [1] \"5138\" \"4817\" \"4497\" \"5139\" #> #> $`4867` #> [1] \"4547\" \"5187\" \"9938\" \"9939\" #> #> $`5131` #> character(0) #> #> $`5132` #> character(0) #> #> $`5133` #> character(0) #> #> $`5134` #> [1] \"4814\" \"5135\" \"4813\" \"5455\" #> #> $`5135` #> [1] \"4815\" \"5455\" \"5136\" \"5134\" \"4814\" #> #> $`5136` #> [1] \"5137\" \"5135\" \"4815\" #> #> $`5137` #> [1] \"4817\" \"5138\" \"5136\" \"5458\" #> #> $`5138` #> [1] \"4818\" \"5458\" \"5139\" \"5137\" \"4817\" \"5459\" #> #> $`5139` #> [1] \"5459\" \"5138\" \"4818\" \"5460\" #> #> $`5187` #> [1] \"4867\" \"5507\" \"9937\" \"9938\" #> #> $`5450` #> character(0) #> #> $`5451` #> character(0) #> #> $`5452` #> character(0) #> #> $`5453` #> character(0) #> #> $`5454` #> character(0) #> #> $`5455` #> [1] \"5135\" \"5775\" \"5134\" \"5776\" #> #> $`5456` #> character(0) #> #> $`5457` #> character(0) #> #> $`5458` #> [1] \"5138\" \"5459\" \"5137\" \"5779\" #> #> $`5459` #> [1] \"5139\" \"5779\" \"5460\" \"5458\" \"5138\" \"5780\" #> #> $`5460` #> [1] \"5780\" \"5459\" \"5139\" \"5781\" #> #> $`5507` #> [1] \"5187\" \"5827\" \"9936\" \"9937\" #> #> $`5770` #> [1] \"6090\" #> #> $`5771` #> character(0) #> #> $`5772` #> character(0) #> #> $`5773` #> character(0) #> #> $`5774` #> character(0) #> #> $`5775` #> [1] \"5455\" \"6095\" \"5776\" \"6096\" #> #> $`5776` #> [1] \"6096\" \"5775\" \"5455\" #> #> $`5777` #> character(0) #> #> $`5778` #> character(0) #> #> $`5779` #> [1] \"5459\" \"5780\" \"5458\" \"6100\" #> #> $`5780` #> [1] \"5460\" \"6100\" \"5781\" \"5779\" \"5459\" \"6101\" #> #> $`5781` #> [1] \"6101\" \"5780\" \"5460\" \"6102\" #> #> $`5827` #> [1] \"5507\" \"6147\" \"9935\" \"9936\" #> #> $`6089` #> character(0) #> #> $`6090` #> [1] \"5770\" \"6411\" #> #> $`6091` #> character(0) #> #> $`6092` #> character(0) #> #> $`6093` #> [1] \"6413\" \"6094\" \"6414\" #> #> $`6094` #> [1] \"6414\" \"6095\" \"6093\" \"6415\" #> #> $`6095` #> [1] \"5775\" \"6415\" \"6096\" \"6094\" \"6416\" #> #> $`6096` #> [1] \"5776\" \"6416\" \"6095\" \"5775\" \"6417\" #> #> $`6097` #> character(0) #> #> $`6098` #> character(0) #> #> $`6099` #> character(0) #> #> $`6100` #> [1] \"5780\" \"6101\" \"5779\" \"6421\" #> #> $`6101` #> [1] \"5781\" \"6421\" \"6102\" \"6100\" \"5780\" \"6422\" #> #> $`6102` #> [1] \"6422\" \"6101\" \"5781\" \"6423\" #> #> $`6147` #> [1] \"5827\" \"6467\" \"9935\" #> #> $`6409` #> character(0) #> #> $`6410` #> character(0) #> #> $`6411` #> [1] \"6412\" \"6090\" #> #> $`6412` #> [1] \"6413\" \"6411\" #> #> $`6413` #> [1] \"6093\" \"6414\" \"6412\" #> #> $`6414` #> [1] \"6094\" \"6415\" \"6413\" \"6093\" \"6735\" #> #> $`6415` #> [1] \"6095\" \"6735\" \"6416\" \"6414\" \"6094\" \"6736\" #> #> $`6416` #> [1] \"6096\" \"6736\" \"6417\" \"6415\" \"6095\" \"6737\" #> #> $`6417` #> [1] \"6737\" \"6416\" \"6096\" #> #> $`6418` #> character(0) #> #> $`6419` #> character(0) #> #> $`6420` #> character(0) #> #> $`6421` #> [1] \"6101\" \"6422\" \"6100\" #> #> $`6422` #> [1] \"6102\" \"6423\" \"6421\" \"6101\" #> #> $`6423` #> [1] \"6422\" \"6102\" \"6744\" #> #> $`6467` #> [1] \"6147\" \"9933\" #> #> $`6728` #> character(0) #> #> $`6729` #> character(0) #> #> $`6730` #> character(0) #> #> $`6731` #> character(0) #> #> $`6732` #> character(0) #> #> $`6733` #> character(0) #> #> $`6734` #> character(0) #> #> $`6735` #> [1] \"6415\" \"7055\" \"6736\" \"6414\" \"7056\" #> #> $`6736` #> [1] \"6416\" \"7056\" \"6737\" \"6735\" \"6415\" \"7057\" #> #> $`6737` #> [1] \"6417\" \"7057\" \"6736\" \"6416\" \"7058\" #> #> $`6738` #> character(0) #> #> $`6739` #> character(0) #> #> $`6740` #> character(0) #> #> $`6741` #> character(0) #> #> $`6742` #> character(0) #> #> $`6743` #> character(0) #> #> $`6744` #> [1] \"6423\" \"7065\" #> #> $`6787` #> character(0) #> #> $`7048` #> character(0) #> #> $`7049` #> character(0) #> #> $`7050` #> character(0) #> #> $`7051` #> character(0) #> #> $`7052` #> character(0) #> #> $`7053` #> character(0) #> #> $`7054` #> character(0) #> #> $`7055` #> [1] \"6735\" \"7375\" \"7056\" \"7376\" #> #> $`7056` #> [1] \"6736\" \"7376\" \"7057\" \"7055\" \"6735\" \"7377\" #> #> $`7057` #> [1] \"6737\" \"7377\" \"7058\" \"7056\" \"6736\" \"7378\" #> #> $`7058` #> [1] \"7378\" \"7059\" \"7057\" \"6737\" #> #> $`7059` #> [1] \"7058\" #> #> $`7060` #> character(0) #> #> $`7061` #> character(0) #> #> $`7062` #> character(0) #> #> $`7063` #> character(0) #> #> $`7064` #> character(0) #> #> $`7065` #> [1] \"6744\" \"7386\" #> #> $`7107` #> character(0) #> #> $`7367` #> character(0) #> #> $`7368` #> character(0) #> #> $`7369` #> character(0) #> #> $`7370` #> character(0) #> #> $`7371` #> character(0) #> #> $`7372` #> character(0) #> #> $`7373` #> character(0) #> #> $`7374` #> character(0) #> #> $`7375` #> [1] \"7055\" \"7695\" \"7376\" \"7696\" #> #> $`7376` #> [1] \"7056\" \"7696\" \"7377\" \"7375\" \"7055\" \"7697\" #> #> $`7377` #> [1] \"7057\" \"7697\" \"7378\" \"7376\" \"7056\" \"7698\" #> #> $`7378` #> [1] \"7058\" \"7698\" \"7377\" \"7057\" \"7699\" #> #> $`7379` #> character(0) #> #> $`7380` #> character(0) #> #> $`7381` #> [1] \"7702\" #> #> $`7382` #> character(0) #> #> $`7383` #> character(0) #> #> $`7384` #> character(0) #> #> $`7385` #> character(0) #> #> $`7386` #> [1] \"7065\" #> #> $`7687` #> character(0) #> #> $`7688` #> character(0) #> #> $`7689` #> character(0) #> #> $`7690` #> character(0) #> #> $`7691` #> character(0) #> #> $`7692` #> [1] \"8012\" \"7693\" \"8013\" #> #> $`7693` #> [1] \"8013\" \"7694\" \"7692\" \"8014\" #> #> $`7694` #> [1] \"8014\" \"7695\" \"7693\" \"8015\" #> #> $`7695` #> [1] \"7375\" \"8015\" \"7696\" \"7694\" #> #> $`7696` #> [1] \"7376\" \"7697\" \"7695\" \"7375\" \"8017\" #> #> $`7697` #> [1] \"7377\" \"8017\" \"7698\" \"7696\" \"7376\" \"8018\" #> #> $`7698` #> [1] \"7378\" \"8018\" \"7699\" \"7697\" \"7377\" \"8019\" #> #> $`7699` #> [1] \"8019\" \"7700\" \"7698\" \"7378\" \"8020\" #> #> $`7700` #> [1] \"8020\" \"7699\" \"8021\" #> #> $`7701` #> character(0) #> #> $`7702` #> [1] \"8022\" \"7381\" \"8023\" #> #> $`7703` #> character(0) #> #> $`7704` #> character(0) #> #> $`7705` #> character(0) #> #> $`7706` #> character(0) #> #> $`8006` #> character(0) #> #> $`8007` #> character(0) #> #> $`8008` #> character(0) #> #> $`8009` #> character(0) #> #> $`8010` #> character(0) #> #> $`8011` #> character(0) #> #> $`8012` #> [1] \"7692\" \"8332\" \"8013\" \"8333\" #> #> $`8013` #> [1] \"7693\" \"8333\" \"8014\" \"8012\" \"7692\" \"8334\" #> #> $`8014` #> [1] \"7694\" \"8334\" \"8015\" \"8013\" \"7693\" #> #> $`8015` #> [1] \"7695\" \"8014\" \"7694\" #> #> $`8016` #> character(0) #> #> $`8017` #> [1] \"7697\" \"8337\" \"8018\" \"7696\" \"8338\" #> #> $`8018` #> [1] \"7698\" \"8338\" \"8019\" \"8017\" \"7697\" \"8339\" #> #> $`8019` #> [1] \"7699\" \"8339\" \"8020\" \"8018\" \"7698\" \"8340\" #> #> $`8020` #> [1] \"7700\" \"8340\" \"8021\" \"8019\" \"7699\" \"8341\" #> #> $`8021` #> [1] \"8341\" \"8022\" \"8020\" \"7700\" \"8342\" #> #> $`8022` #> [1] \"7702\" \"8342\" \"8023\" \"8021\" \"8343\" #> #> $`8023` #> [1] \"8343\" \"8022\" \"7702\" #> #> $`8024` #> character(0) #> #> $`8025` #> character(0) #> #> $`8026` #> character(0) #> #> $`8027` #> [1] \"8348\" #> #> $`8325` #> character(0) #> #> $`8326` #> character(0) #> #> $`8327` #> character(0) #> #> $`8328` #> character(0) #> #> $`8329` #> character(0) #> #> $`8330` #> character(0) #> #> $`8331` #> character(0) #> #> $`8332` #> [1] \"8012\" \"8652\" \"8333\" \"8653\" #> #> $`8333` #> [1] \"8013\" \"8653\" \"8334\" \"8332\" \"8012\" #> #> $`8334` #> [1] \"8014\" \"8333\" \"8013\" #> #> $`8335` #> character(0) #> #> $`8336` #> character(0) #> #> $`8337` #> [1] \"8017\" \"8657\" \"8338\" \"8658\" #> #> $`8338` #> [1] \"8018\" \"8658\" \"8339\" \"8337\" \"8017\" \"8659\" #> #> $`8339` #> [1] \"8019\" \"8659\" \"8340\" \"8338\" \"8018\" \"8660\" #> #> $`8340` #> [1] \"8020\" \"8660\" \"8341\" \"8339\" \"8019\" \"8661\" #> #> $`8341` #> [1] \"8021\" \"8661\" \"8342\" \"8340\" \"8020\" \"8662\" #> #> $`8342` #> [1] \"8022\" \"8662\" \"8343\" \"8341\" \"8021\" \"8663\" #> #> $`8343` #> [1] \"8023\" \"8663\" \"8342\" \"8022\" \"8664\" #> #> $`8344` #> character(0) #> #> $`8345` #> character(0) #> #> $`8346` #> character(0) #> #> $`8347` #> character(0) #> #> $`8348` #> [1] \"8027\" \"8669\" #> #> $`8646` #> character(0) #> #> $`8647` #> character(0) #> #> $`8648` #> character(0) #> #> $`8649` #> character(0) #> #> $`8650` #> character(0) #> #> $`8651` #> [1] \"8971\" \"8652\" \"8972\" #> #> $`8652` #> [1] \"8332\" \"8972\" \"8653\" \"8651\" #> #> $`8653` #> [1] \"8333\" \"8652\" \"8332\" \"8974\" #> #> $`8654` #> character(0) #> #> $`8655` #> character(0) #> #> $`8656` #> character(0) #> #> $`8657` #> [1] \"8337\" \"8977\" \"8658\" \"8978\" #> #> $`8658` #> [1] \"8338\" \"8978\" \"8659\" \"8657\" \"8337\" \"8979\" #> #> $`8659` #> [1] \"8339\" \"8979\" \"8660\" \"8658\" \"8338\" \"8980\" #> #> $`8660` #> [1] \"8340\" \"8980\" \"8661\" \"8659\" \"8339\" \"8981\" #> #> $`8661` #> [1] \"8341\" \"8981\" \"8662\" \"8660\" \"8340\" \"8982\" #> #> $`8662` #> [1] \"8342\" \"8982\" \"8663\" \"8661\" \"8341\" \"8983\" #> #> $`8663` #> [1] \"8343\" \"8983\" \"8664\" \"8662\" \"8342\" \"8984\" #> #> $`8664` #> [1] \"8984\" \"8663\" \"8343\" #> #> $`8665` #> character(0) #> #> $`8666` #> character(0) #> #> $`8667` #> character(0) #> #> $`8668` #> character(0) #> #> $`8669` #> [1] \"8348\" \"8990\" #> #> $`8967` #> character(0) #> #> $`8968` #> character(0) #> #> $`8969` #> character(0) #> #> $`8970` #> character(0) #> #> $`8971` #> [1] \"8651\" \"9291\" \"8972\" \"9292\" #> #> $`8972` #> [1] \"8652\" \"9292\" \"8971\" \"8651\" \"9293\" #> #> $`8973` #> character(0) #> #> $`8974` #> [1] \"9294\" \"8975\" \"8653\" \"9295\" #> #> $`8975` #> [1] \"9295\" \"8976\" \"8974\" #> #> $`8976` #> [1] \"8977\" \"8975\" \"9297\" #> #> $`8977` #> [1] \"8657\" \"9297\" \"8978\" \"8976\" \"9298\" #> #> $`8978` #> [1] \"8658\" \"9298\" \"8979\" \"8977\" \"8657\" \"9299\" #> #> $`8979` #> [1] \"8659\" \"9299\" \"8980\" \"8978\" \"8658\" \"9300\" #> #> $`8980` #> [1] \"8660\" \"9300\" \"8981\" \"8979\" \"8659\" \"9301\" #> #> $`8981` #> [1] \"8661\" \"9301\" \"8982\" \"8980\" \"8660\" \"9302\" #> #> $`8982` #> [1] \"8662\" \"9302\" \"8983\" \"8981\" \"8661\" \"9303\" #> #> $`8983` #> [1] \"8663\" \"9303\" \"8984\" \"8982\" \"8662\" #> #> $`8984` #> [1] \"8664\" \"8983\" \"8663\" #> #> $`8985` #> character(0) #> #> $`8986` #> [1] \"9306\" \"9307\" #> #> $`8987` #> character(0) #> #> $`8988` #> character(0) #> #> $`8989` #> character(0) #> #> $`8990` #> [1] \"8669\" #> #> $`9287` #> character(0) #> #> $`9288` #> character(0) #> #> $`9289` #> character(0) #> #> $`9290` #> character(0) #> #> $`9291` #> [1] \"8971\" \"9292\" \"9612\" #> #> $`9292` #> [1] \"8972\" \"9612\" \"9293\" \"9291\" \"8971\" \"9613\" #> #> $`9293` #> [1] \"9613\" \"9294\" \"9292\" \"8972\" \"9614\" #> #> $`9294` #> [1] \"8974\" \"9614\" \"9295\" \"9293\" \"9615\" #> #> $`9295` #> [1] \"8975\" \"9615\" \"9294\" \"8974\" \"9616\" #> #> $`9296` #> character(0) #> #> $`9297` #> [1] \"8977\" \"9617\" \"9298\" \"8976\" \"9618\" #> #> $`9298` #> [1] \"8978\" \"9618\" \"9299\" \"9297\" \"8977\" \"9619\" #> #> $`9299` #> [1] \"8979\" \"9619\" \"9300\" \"9298\" \"8978\" \"9620\" #> #> $`9300` #> [1] \"8980\" \"9620\" \"9301\" \"9299\" \"8979\" \"9621\" #> #> $`9301` #> [1] \"8981\" \"9621\" \"9302\" \"9300\" \"8980\" \"9622\" #> #> $`9302` #> [1] \"8982\" \"9622\" \"9303\" \"9301\" \"8981\" \"9623\" #> #> $`9303` #> [1] \"8983\" \"9623\" \"9302\" \"8982\" \"9624\" #> #> $`9304` #> character(0) #> #> $`9305` #> character(0) #> #> $`9306` #> [1] \"8986\" \"9626\" \"9307\" \"9627\" #> #> $`9307` #> [1] \"9627\" \"9306\" \"8986\" \"9628\" #> #> $`9308` #> character(0) #> #> $`9309` #> character(0) #> #> $`9310` #> character(0) #> #> $`9608` #> character(0) #> #> $`9609` #> character(0) #> #> $`9610` #> character(0) #> #> $`9611` #> character(0) #> #> $`9612` #> [1] \"9292\" \"9613\" \"9291\" \"9933\" #> #> $`9613` #> [1] \"9293\" \"9933\" \"9614\" \"9612\" \"9292\" #> #> $`9614` #> [1] \"9294\" \"9615\" \"9613\" \"9293\" \"9935\" #> #> $`9615` #> [1] \"9295\" \"9935\" \"9616\" \"9614\" \"9294\" \"9936\" #> #> $`9616` #> [1] \"9936\" \"9617\" \"9615\" \"9295\" \"9937\" #> #> $`9617` #> [1] \"9297\" \"9937\" \"9618\" \"9616\" \"9938\" #> #> $`9618` #> [1] \"9298\" \"9938\" \"9619\" \"9617\" \"9297\" \"9939\" #> #> $`9619` #> [1] \"9299\" \"9939\" \"9620\" \"9618\" \"9298\" \"9940\" #> #> $`9620` #> [1] \"9300\" \"9940\" \"9621\" \"9619\" \"9299\" \"9941\" #> #> $`9621` #> [1] \"9301\" \"9941\" \"9622\" \"9620\" \"9300\" \"9942\" #> #> $`9622` #> [1] \"9302\" \"9942\" \"9623\" \"9621\" \"9301\" \"9943\" #> #> $`9623` #> [1] \"9303\" \"9943\" \"9624\" \"9622\" \"9302\" #> #> $`9624` #> [1] \"9623\" \"9303\" #> #> $`9625` #> character(0) #> #> $`9626` #> [1] \"9306\" \"9627\" \"9947\" #> #> $`9627` #> [1] \"9307\" \"9947\" \"9628\" \"9626\" \"9306\" \"9948\" #> #> $`9628` #> [1] \"9948\" \"9627\" \"9307\" #> #> $`9629` #> character(0) #> #> $`9630` #> character(0) #> #> $`9631` #> character(0) #> #> $`9928` #> character(0) #> #> $`9929` #> character(0) #> #> $`9930` #> character(0) #> #> $`9931` #> character(0) #> #> $`9932` #> character(0) #> #> $`9933` #> [1] \"9613\" \"9612\" \"6467\" #> #> $`9934` #> character(0) #> #> $`9935` #> [1] \"9615\" \"6147\" \"9936\" \"9614\" \"5827\" #> #> $`9936` #> [1] \"9616\" \"5827\" \"9937\" \"9935\" \"9615\" \"5507\" #> #> $`9937` #> [1] \"9617\" \"5507\" \"9938\" \"9936\" \"9616\" \"5187\" #> #> $`9938` #> [1] \"9618\" \"5187\" \"9939\" \"9937\" \"9617\" \"4867\" #> #> $`9939` #> [1] \"9619\" \"4867\" \"9940\" \"9938\" \"9618\" \"4547\" #> #> $`9940` #> [1] \"9620\" \"4547\" \"9941\" \"9939\" \"9619\" \"4227\" #> #> $`9941` #> [1] \"9621\" \"4227\" \"9942\" \"9940\" \"9620\" \"3907\" #> #> $`9942` #> [1] \"9622\" \"3907\" \"9943\" \"9941\" \"9621\" \"3587\" #> #> $`9943` #> [1] \"9623\" \"3587\" \"9942\" \"9622\" \"3267\" #> #> $`9944` #> character(0) #> #> $`9945` #> character(0) #> #> $`9946` #> character(0) #> #> $`9947` #> [1] \"9627\" \"9948\" \"9626\" \"1987\" #> #> $`9948` #> [1] \"9628\" \"1987\" \"9947\" \"9627\" \"1667\" #> #> $`9949` #> character(0) #> #> $`9950` #> [1] \"1347\" \"9951\" \"1027\" #> #> $`9951` #> [1] \"1027\" \"9952\" \"9950\" \"707\" #> #> $`9952` #> [1] \"707\" \"9951\" #> getEdges(x, res.type = \"matNames\") #> Vi Vj #> [1,] \"707\" \"1027\" #> [2,] \"707\" \"9951\" #> [3,] \"707\" \"9952\" #> [4,] \"707\" \"1028\" #> [5,] \"1027\" \"707\" #> [6,] \"1027\" \"1347\" #> [7,] \"1027\" \"1028\" #> [8,] \"1027\" \"9950\" #> [9,] \"1027\" \"9951\" #> [10,] \"1027\" \"1348\" #> [11,] \"1028\" \"1348\" #> [12,] \"1028\" \"1027\" #> [13,] \"1028\" \"707\" #> [14,] \"1347\" \"1027\" #> [15,] \"1347\" \"1667\" #> [16,] \"1347\" \"1348\" #> [17,] \"1347\" \"9950\" #> [18,] \"1347\" \"1668\" #> [19,] \"1348\" \"1028\" #> [20,] \"1348\" \"1668\" #> [21,] \"1348\" \"1347\" #> [22,] \"1348\" \"1027\" #> [23,] \"1667\" \"1347\" #> [24,] \"1667\" \"1987\" #> [25,] \"1667\" \"1668\" #> [26,] \"1667\" \"9948\" #> [27,] \"1667\" \"1988\" #> [28,] \"1668\" \"1348\" #> [29,] \"1668\" \"1988\" #> [30,] \"1668\" \"1667\" #> [31,] \"1668\" \"1347\" #> [32,] \"1987\" \"1667\" #> [33,] \"1987\" \"1988\" #> [34,] \"1987\" \"9947\" #> [35,] \"1987\" \"9948\" #> [36,] \"1987\" \"2308\" #> [37,] \"1988\" \"1668\" #> [38,] \"1988\" \"2308\" #> [39,] \"1988\" \"1987\" #> [40,] \"1988\" \"1667\" #> [41,] \"2308\" \"1988\" #> [42,] \"2308\" \"1987\" #> [43,] \"2947\" \"3267\" #> [44,] \"2947\" \"2948\" #> [45,] \"2947\" \"3268\" #> [46,] \"2948\" \"3268\" #> [47,] \"2948\" \"2947\" #> [48,] \"3267\" \"2947\" #> [49,] \"3267\" \"3587\" #> [50,] \"3267\" \"3268\" #> [51,] \"3267\" \"9943\" #> [52,] \"3267\" \"3588\" #> [53,] \"3268\" \"2948\" #> [54,] \"3268\" \"3588\" #> [55,] \"3268\" \"3267\" #> [56,] \"3268\" \"2947\" #> [57,] \"3534\" \"3855\" #> [58,] \"3587\" \"3267\" #> [59,] \"3587\" \"3907\" #> [60,] \"3587\" \"3588\" #> [61,] \"3587\" \"9942\" #> [62,] \"3587\" \"9943\" #> [63,] \"3587\" \"3908\" #> [64,] \"3588\" \"3268\" #> [65,] \"3588\" \"3908\" #> [66,] \"3588\" \"3587\" #> [67,] \"3588\" \"3267\" #> [68,] \"3855\" \"4175\" #> [69,] \"3855\" \"3534\" #> [70,] \"3855\" \"4176\" #> [71,] \"3907\" \"3587\" #> [72,] \"3907\" \"4227\" #> [73,] \"3907\" \"3908\" #> [74,] \"3907\" \"9941\" #> [75,] \"3907\" \"9942\" #> [76,] \"3907\" \"4228\" #> [77,] \"3908\" \"3588\" #> [78,] \"3908\" \"4228\" #> [79,] \"3908\" \"3907\" #> [80,] \"3908\" \"3587\" #> [81,] \"4175\" \"3855\" #> [82,] \"4175\" \"4176\" #> [83,] \"4175\" \"4496\" #> [84,] \"4176\" \"4496\" #> [85,] \"4176\" \"4175\" #> [86,] \"4176\" \"3855\" #> [87,] \"4176\" \"4497\" #> [88,] \"4227\" \"3907\" #> [89,] \"4227\" \"4547\" #> [90,] \"4227\" \"4228\" #> [91,] \"4227\" \"9940\" #> [92,] \"4227\" \"9941\" #> [93,] \"4228\" \"3908\" #> [94,] \"4228\" \"4227\" #> [95,] \"4228\" \"3907\" #> [96,] \"4493\" \"4813\" #> [97,] \"4493\" \"4494\" #> [98,] \"4493\" \"4814\" #> [99,] \"4494\" \"4814\" #> [100,] \"4494\" \"4493\" #> [101,] \"4494\" \"4815\" #> [102,] \"4496\" \"4176\" #> [103,] \"4496\" \"4497\" #> [104,] \"4496\" \"4175\" #> [105,] \"4496\" \"4817\" #> [106,] \"4497\" \"4817\" #> [107,] \"4497\" \"4496\" #> [108,] \"4497\" \"4176\" #> [109,] \"4497\" \"4818\" #> [110,] \"4547\" \"4227\" #> [111,] \"4547\" \"4867\" #> [112,] \"4547\" \"9939\" #> [113,] \"4547\" \"9940\" #> [114,] \"4813\" \"4493\" #> [115,] \"4813\" \"4814\" #> [116,] \"4813\" \"5134\" #> [117,] \"4814\" \"4494\" #> [118,] \"4814\" \"5134\" #> [119,] \"4814\" \"4815\" #> [120,] \"4814\" \"4813\" #> [121,] \"4814\" \"4493\" #> [122,] \"4814\" \"5135\" #> [123,] \"4815\" \"5135\" #> [124,] \"4815\" \"4814\" #> [125,] \"4815\" \"4494\" #> [126,] \"4815\" \"5136\" #> [127,] \"4817\" \"4497\" #> [128,] \"4817\" \"5137\" #> [129,] \"4817\" \"4818\" #> [130,] \"4817\" \"4496\" #> [131,] \"4817\" \"5138\" #> [132,] \"4818\" \"5138\" #> [133,] \"4818\" \"4817\" #> [134,] \"4818\" \"4497\" #> [135,] \"4818\" \"5139\" #> [136,] \"4867\" \"4547\" #> [137,] \"4867\" \"5187\" #> [138,] \"4867\" \"9938\" #> [139,] \"4867\" \"9939\" #> [140,] \"5134\" \"4814\" #> [141,] \"5134\" \"5135\" #> [142,] \"5134\" \"4813\" #> [143,] \"5134\" \"5455\" #> [144,] \"5135\" \"4815\" #> [145,] \"5135\" \"5455\" #> [146,] \"5135\" \"5136\" #> [147,] \"5135\" \"5134\" #> [148,] \"5135\" \"4814\" #> [149,] \"5136\" \"5137\" #> [150,] \"5136\" \"5135\" #> [151,] \"5136\" \"4815\" #> [152,] \"5137\" \"4817\" #> [153,] \"5137\" \"5138\" #> [154,] \"5137\" \"5136\" #> [155,] \"5137\" \"5458\" #> [156,] \"5138\" \"4818\" #> [157,] \"5138\" \"5458\" #> [158,] \"5138\" \"5139\" #> [159,] \"5138\" \"5137\" #> [160,] \"5138\" \"4817\" #> [161,] \"5138\" \"5459\" #> [162,] \"5139\" \"5459\" #> [163,] \"5139\" \"5138\" #> [164,] \"5139\" \"4818\" #> [165,] \"5139\" \"5460\" #> [166,] \"5187\" \"4867\" #> [167,] \"5187\" \"5507\" #> [168,] \"5187\" \"9937\" #> [169,] \"5187\" \"9938\" #> [170,] \"5455\" \"5135\" #> [171,] \"5455\" \"5775\" #> [172,] \"5455\" \"5134\" #> [173,] \"5455\" \"5776\" #> [174,] \"5458\" \"5138\" #> [175,] \"5458\" \"5459\" #> [176,] \"5458\" \"5137\" #> [177,] \"5458\" \"5779\" #> [178,] \"5459\" \"5139\" #> [179,] \"5459\" \"5779\" #> [180,] \"5459\" \"5460\" #> [181,] \"5459\" \"5458\" #> [182,] \"5459\" \"5138\" #> [183,] \"5459\" \"5780\" #> [184,] \"5460\" \"5780\" #> [185,] \"5460\" \"5459\" #> [186,] \"5460\" \"5139\" #> [187,] \"5460\" \"5781\" #> [188,] \"5507\" \"5187\" #> [189,] \"5507\" \"5827\" #> [190,] \"5507\" \"9936\" #> [191,] \"5507\" \"9937\" #> [192,] \"5770\" \"6090\" #> [193,] \"5775\" \"5455\" #> [194,] \"5775\" \"6095\" #> [195,] \"5775\" \"5776\" #> [196,] \"5775\" \"6096\" #> [197,] \"5776\" \"6096\" #> [198,] \"5776\" \"5775\" #> [199,] \"5776\" \"5455\" #> [200,] \"5779\" \"5459\" #> [201,] \"5779\" \"5780\" #> [202,] \"5779\" \"5458\" #> [203,] \"5779\" \"6100\" #> [204,] \"5780\" \"5460\" #> [205,] \"5780\" \"6100\" #> [206,] \"5780\" \"5781\" #> [207,] \"5780\" \"5779\" #> [208,] \"5780\" \"5459\" #> [209,] \"5780\" \"6101\" #> [210,] \"5781\" \"6101\" #> [211,] \"5781\" \"5780\" #> [212,] \"5781\" \"5460\" #> [213,] \"5781\" \"6102\" #> [214,] \"5827\" \"5507\" #> [215,] \"5827\" \"6147\" #> [216,] \"5827\" \"9935\" #> [217,] \"5827\" \"9936\" #> [218,] \"6090\" \"5770\" #> [219,] \"6090\" \"6411\" #> [220,] \"6093\" \"6413\" #> [221,] \"6093\" \"6094\" #> [222,] \"6093\" \"6414\" #> [223,] \"6094\" \"6414\" #> [224,] \"6094\" \"6095\" #> [225,] \"6094\" \"6093\" #> [226,] \"6094\" \"6415\" #> [227,] \"6095\" \"5775\" #> [228,] \"6095\" \"6415\" #> [229,] \"6095\" \"6096\" #> [230,] \"6095\" \"6094\" #> [231,] \"6095\" \"6416\" #> [232,] \"6096\" \"5776\" #> [233,] \"6096\" \"6416\" #> [234,] \"6096\" \"6095\" #> [235,] \"6096\" \"5775\" #> [236,] \"6096\" \"6417\" #> [237,] \"6100\" \"5780\" #> [238,] \"6100\" \"6101\" #> [239,] \"6100\" \"5779\" #> [240,] \"6100\" \"6421\" #> [241,] \"6101\" \"5781\" #> [242,] \"6101\" \"6421\" #> [243,] \"6101\" \"6102\" #> [244,] \"6101\" \"6100\" #> [245,] \"6101\" \"5780\" #> [246,] \"6101\" \"6422\" #> [247,] \"6102\" \"6422\" #> [248,] \"6102\" \"6101\" #> [249,] \"6102\" \"5781\" #> [250,] \"6102\" \"6423\" #> [251,] \"6147\" \"5827\" #> [252,] \"6147\" \"6467\" #> [253,] \"6147\" \"9935\" #> [254,] \"6411\" \"6412\" #> [255,] \"6411\" \"6090\" #> [256,] \"6412\" \"6413\" #> [257,] \"6412\" \"6411\" #> [258,] \"6413\" \"6093\" #> [259,] \"6413\" \"6414\" #> [260,] \"6413\" \"6412\" #> [261,] \"6414\" \"6094\" #> [262,] \"6414\" \"6415\" #> [263,] \"6414\" \"6413\" #> [264,] \"6414\" \"6093\" #> [265,] \"6414\" \"6735\" #> [266,] \"6415\" \"6095\" #> [267,] \"6415\" \"6735\" #> [268,] \"6415\" \"6416\" #> [269,] \"6415\" \"6414\" #> [270,] \"6415\" \"6094\" #> [271,] \"6415\" \"6736\" #> [272,] \"6416\" \"6096\" #> [273,] \"6416\" \"6736\" #> [274,] \"6416\" \"6417\" #> [275,] \"6416\" \"6415\" #> [276,] \"6416\" \"6095\" #> [277,] \"6416\" \"6737\" #> [278,] \"6417\" \"6737\" #> [279,] \"6417\" \"6416\" #> [280,] \"6417\" \"6096\" #> [281,] \"6421\" \"6101\" #> [282,] \"6421\" \"6422\" #> [283,] \"6421\" \"6100\" #> [284,] \"6422\" \"6102\" #> [285,] \"6422\" \"6423\" #> [286,] \"6422\" \"6421\" #> [287,] \"6422\" \"6101\" #> [288,] \"6423\" \"6422\" #> [289,] \"6423\" \"6102\" #> [290,] \"6423\" \"6744\" #> [291,] \"6467\" \"6147\" #> [292,] \"6467\" \"9933\" #> [293,] \"6735\" \"6415\" #> [294,] \"6735\" \"7055\" #> [295,] \"6735\" \"6736\" #> [296,] \"6735\" \"6414\" #> [297,] \"6735\" \"7056\" #> [298,] \"6736\" \"6416\" #> [299,] \"6736\" \"7056\" #> [300,] \"6736\" \"6737\" #> [301,] \"6736\" \"6735\" #> [302,] \"6736\" \"6415\" #> [303,] \"6736\" \"7057\" #> [304,] \"6737\" \"6417\" #> [305,] \"6737\" \"7057\" #> [306,] \"6737\" \"6736\" #> [307,] \"6737\" \"6416\" #> [308,] \"6737\" \"7058\" #> [309,] \"6744\" \"6423\" #> [310,] \"6744\" \"7065\" #> [311,] \"7055\" \"6735\" #> [312,] \"7055\" \"7375\" #> [313,] \"7055\" \"7056\" #> [314,] \"7055\" \"7376\" #> [315,] \"7056\" \"6736\" #> [316,] \"7056\" \"7376\" #> [317,] \"7056\" \"7057\" #> [318,] \"7056\" \"7055\" #> [319,] \"7056\" \"6735\" #> [320,] \"7056\" \"7377\" #> [321,] \"7057\" \"6737\" #> [322,] \"7057\" \"7377\" #> [323,] \"7057\" \"7058\" #> [324,] \"7057\" \"7056\" #> [325,] \"7057\" \"6736\" #> [326,] \"7057\" \"7378\" #> [327,] \"7058\" \"7378\" #> [328,] \"7058\" \"7059\" #> [329,] \"7058\" \"7057\" #> [330,] \"7058\" \"6737\" #> [331,] \"7059\" \"7058\" #> [332,] \"7065\" \"6744\" #> [333,] \"7065\" \"7386\" #> [334,] \"7375\" \"7055\" #> [335,] \"7375\" \"7695\" #> [336,] \"7375\" \"7376\" #> [337,] \"7375\" \"7696\" #> [338,] \"7376\" \"7056\" #> [339,] \"7376\" \"7696\" #> [340,] \"7376\" \"7377\" #> [341,] \"7376\" \"7375\" #> [342,] \"7376\" \"7055\" #> [343,] \"7376\" \"7697\" #> [344,] \"7377\" \"7057\" #> [345,] \"7377\" \"7697\" #> [346,] \"7377\" \"7378\" #> [347,] \"7377\" \"7376\" #> [348,] \"7377\" \"7056\" #> [349,] \"7377\" \"7698\" #> [350,] \"7378\" \"7058\" #> [351,] \"7378\" \"7698\" #> [352,] \"7378\" \"7377\" #> [353,] \"7378\" \"7057\" #> [354,] \"7378\" \"7699\" #> [355,] \"7381\" \"7702\" #> [356,] \"7386\" \"7065\" #> [357,] \"7692\" \"8012\" #> [358,] \"7692\" \"7693\" #> [359,] \"7692\" \"8013\" #> [360,] \"7693\" \"8013\" #> [361,] \"7693\" \"7694\" #> [362,] \"7693\" \"7692\" #> [363,] \"7693\" \"8014\" #> [364,] \"7694\" \"8014\" #> [365,] \"7694\" \"7695\" #> [366,] \"7694\" \"7693\" #> [367,] \"7694\" \"8015\" #> [368,] \"7695\" \"7375\" #> [369,] \"7695\" \"8015\" #> [370,] \"7695\" \"7696\" #> [371,] \"7695\" \"7694\" #> [372,] \"7696\" \"7376\" #> [373,] \"7696\" \"7697\" #> [374,] \"7696\" \"7695\" #> [375,] \"7696\" \"7375\" #> [376,] \"7696\" \"8017\" #> [377,] \"7697\" \"7377\" #> [378,] \"7697\" \"8017\" #> [379,] \"7697\" \"7698\" #> [380,] \"7697\" \"7696\" #> [381,] \"7697\" \"7376\" #> [382,] \"7697\" \"8018\" #> [383,] \"7698\" \"7378\" #> [384,] \"7698\" \"8018\" #> [385,] \"7698\" \"7699\" #> [386,] \"7698\" \"7697\" #> [387,] \"7698\" \"7377\" #> [388,] \"7698\" \"8019\" #> [389,] \"7699\" \"8019\" #> [390,] \"7699\" \"7700\" #> [391,] \"7699\" \"7698\" #> [392,] \"7699\" \"7378\" #> [393,] \"7699\" \"8020\" #> [394,] \"7700\" \"8020\" #> [395,] \"7700\" \"7699\" #> [396,] \"7700\" \"8021\" #> [397,] \"7702\" \"8022\" #> [398,] \"7702\" \"7381\" #> [399,] \"7702\" \"8023\" #> [400,] \"8012\" \"7692\" #> [401,] \"8012\" \"8332\" #> [402,] \"8012\" \"8013\" #> [403,] \"8012\" \"8333\" #> [404,] \"8013\" \"7693\" #> [405,] \"8013\" \"8333\" #> [406,] \"8013\" \"8014\" #> [407,] \"8013\" \"8012\" #> [408,] \"8013\" \"7692\" #> [409,] \"8013\" \"8334\" #> [410,] \"8014\" \"7694\" #> [411,] \"8014\" \"8334\" #> [412,] \"8014\" \"8015\" #> [413,] \"8014\" \"8013\" #> [414,] \"8014\" \"7693\" #> [415,] \"8015\" \"7695\" #> [416,] \"8015\" \"8014\" #> [417,] \"8015\" \"7694\" #> [418,] \"8017\" \"7697\" #> [419,] \"8017\" \"8337\" #> [420,] \"8017\" \"8018\" #> [421,] \"8017\" \"7696\" #> [422,] \"8017\" \"8338\" #> [423,] \"8018\" \"7698\" #> [424,] \"8018\" \"8338\" #> [425,] \"8018\" \"8019\" #> [426,] \"8018\" \"8017\" #> [427,] \"8018\" \"7697\" #> [428,] \"8018\" \"8339\" #> [429,] \"8019\" \"7699\" #> [430,] \"8019\" \"8339\" #> [431,] \"8019\" \"8020\" #> [432,] \"8019\" \"8018\" #> [433,] \"8019\" \"7698\" #> [434,] \"8019\" \"8340\" #> [435,] \"8020\" \"7700\" #> [436,] \"8020\" \"8340\" #> [437,] \"8020\" \"8021\" #> [438,] \"8020\" \"8019\" #> [439,] \"8020\" \"7699\" #> [440,] \"8020\" \"8341\" #> [441,] \"8021\" \"8341\" #> [442,] \"8021\" \"8022\" #> [443,] \"8021\" \"8020\" #> [444,] \"8021\" \"7700\" #> [445,] \"8021\" \"8342\" #> [446,] \"8022\" \"7702\" #> [447,] \"8022\" \"8342\" #> [448,] \"8022\" \"8023\" #> [449,] \"8022\" \"8021\" #> [450,] \"8022\" \"8343\" #> [451,] \"8023\" \"8343\" #> [452,] \"8023\" \"8022\" #> [453,] \"8023\" \"7702\" #> [454,] \"8027\" \"8348\" #> [455,] \"8332\" \"8012\" #> [456,] \"8332\" \"8652\" #> [457,] \"8332\" \"8333\" #> [458,] \"8332\" \"8653\" #> [459,] \"8333\" \"8013\" #> [460,] \"8333\" \"8653\" #> [461,] \"8333\" \"8334\" #> [462,] \"8333\" \"8332\" #> [463,] \"8333\" \"8012\" #> [464,] \"8334\" \"8014\" #> [465,] \"8334\" \"8333\" #> [466,] \"8334\" \"8013\" #> [467,] \"8337\" \"8017\" #> [468,] \"8337\" \"8657\" #> [469,] \"8337\" \"8338\" #> [470,] \"8337\" \"8658\" #> [471,] \"8338\" \"8018\" #> [472,] \"8338\" \"8658\" #> [473,] \"8338\" \"8339\" #> [474,] \"8338\" \"8337\" #> [475,] \"8338\" \"8017\" #> [476,] \"8338\" \"8659\" #> [477,] \"8339\" \"8019\" #> [478,] \"8339\" \"8659\" #> [479,] \"8339\" \"8340\" #> [480,] \"8339\" \"8338\" #> [481,] \"8339\" \"8018\" #> [482,] \"8339\" \"8660\" #> [483,] \"8340\" \"8020\" #> [484,] \"8340\" \"8660\" #> [485,] \"8340\" \"8341\" #> [486,] \"8340\" \"8339\" #> [487,] \"8340\" \"8019\" #> [488,] \"8340\" \"8661\" #> [489,] \"8341\" \"8021\" #> [490,] \"8341\" \"8661\" #> [491,] \"8341\" \"8342\" #> [492,] \"8341\" \"8340\" #> [493,] \"8341\" \"8020\" #> [494,] \"8341\" \"8662\" #> [495,] \"8342\" \"8022\" #> [496,] \"8342\" \"8662\" #> [497,] \"8342\" \"8343\" #> [498,] \"8342\" \"8341\" #> [499,] \"8342\" \"8021\" #> [500,] \"8342\" \"8663\" #> [501,] \"8343\" \"8023\" #> [502,] \"8343\" \"8663\" #> [503,] \"8343\" \"8342\" #> [504,] \"8343\" \"8022\" #> [505,] \"8343\" \"8664\" #> [506,] \"8348\" \"8027\" #> [507,] \"8348\" \"8669\" #> [508,] \"8651\" \"8971\" #> [509,] \"8651\" \"8652\" #> [510,] \"8651\" \"8972\" #> [511,] \"8652\" \"8332\" #> [512,] \"8652\" \"8972\" #> [513,] \"8652\" \"8653\" #> [514,] \"8652\" \"8651\" #> [515,] \"8653\" \"8333\" #> [516,] \"8653\" \"8652\" #> [517,] \"8653\" \"8332\" #> [518,] \"8653\" \"8974\" #> [519,] \"8657\" \"8337\" #> [520,] \"8657\" \"8977\" #> [521,] \"8657\" \"8658\" #> [522,] \"8657\" \"8978\" #> [523,] \"8658\" \"8338\" #> [524,] \"8658\" \"8978\" #> [525,] \"8658\" \"8659\" #> [526,] \"8658\" \"8657\" #> [527,] \"8658\" \"8337\" #> [528,] \"8658\" \"8979\" #> [529,] \"8659\" \"8339\" #> [530,] \"8659\" \"8979\" #> [531,] \"8659\" \"8660\" #> [532,] \"8659\" \"8658\" #> [533,] \"8659\" \"8338\" #> [534,] \"8659\" \"8980\" #> [535,] \"8660\" \"8340\" #> [536,] \"8660\" \"8980\" #> [537,] \"8660\" \"8661\" #> [538,] \"8660\" \"8659\" #> [539,] \"8660\" \"8339\" #> [540,] \"8660\" \"8981\" #> [541,] \"8661\" \"8341\" #> [542,] \"8661\" \"8981\" #> [543,] \"8661\" \"8662\" #> [544,] \"8661\" \"8660\" #> [545,] \"8661\" \"8340\" #> [546,] \"8661\" \"8982\" #> [547,] \"8662\" \"8342\" #> [548,] \"8662\" \"8982\" #> [549,] \"8662\" \"8663\" #> [550,] \"8662\" \"8661\" #> [551,] \"8662\" \"8341\" #> [552,] \"8662\" \"8983\" #> [553,] \"8663\" \"8343\" #> [554,] \"8663\" \"8983\" #> [555,] \"8663\" \"8664\" #> [556,] \"8663\" \"8662\" #> [557,] \"8663\" \"8342\" #> [558,] \"8663\" \"8984\" #> [559,] \"8664\" \"8984\" #> [560,] \"8664\" \"8663\" #> [561,] \"8664\" \"8343\" #> [562,] \"8669\" \"8348\" #> [563,] \"8669\" \"8990\" #> [564,] \"8971\" \"8651\" #> [565,] \"8971\" \"9291\" #> [566,] \"8971\" \"8972\" #> [567,] \"8971\" \"9292\" #> [568,] \"8972\" \"8652\" #> [569,] \"8972\" \"9292\" #> [570,] \"8972\" \"8971\" #> [571,] \"8972\" \"8651\" #> [572,] \"8972\" \"9293\" #> [573,] \"8974\" \"9294\" #> [574,] \"8974\" \"8975\" #> [575,] \"8974\" \"8653\" #> [576,] \"8974\" \"9295\" #> [577,] \"8975\" \"9295\" #> [578,] \"8975\" \"8976\" #> [579,] \"8975\" \"8974\" #> [580,] \"8976\" \"8977\" #> [581,] \"8976\" \"8975\" #> [582,] \"8976\" \"9297\" #> [583,] \"8977\" \"8657\" #> [584,] \"8977\" \"9297\" #> [585,] \"8977\" \"8978\" #> [586,] \"8977\" \"8976\" #> [587,] \"8977\" \"9298\" #> [588,] \"8978\" \"8658\" #> [589,] \"8978\" \"9298\" #> [590,] \"8978\" \"8979\" #> [591,] \"8978\" \"8977\" #> [592,] \"8978\" \"8657\" #> [593,] \"8978\" \"9299\" #> [594,] \"8979\" \"8659\" #> [595,] \"8979\" \"9299\" #> [596,] \"8979\" \"8980\" #> [597,] \"8979\" \"8978\" #> [598,] \"8979\" \"8658\" #> [599,] \"8979\" \"9300\" #> [600,] \"8980\" \"8660\" #> [601,] \"8980\" \"9300\" #> [602,] \"8980\" \"8981\" #> [603,] \"8980\" \"8979\" #> [604,] \"8980\" \"8659\" #> [605,] \"8980\" \"9301\" #> [606,] \"8981\" \"8661\" #> [607,] \"8981\" \"9301\" #> [608,] \"8981\" \"8982\" #> [609,] \"8981\" \"8980\" #> [610,] \"8981\" \"8660\" #> [611,] \"8981\" \"9302\" #> [612,] \"8982\" \"8662\" #> [613,] \"8982\" \"9302\" #> [614,] \"8982\" \"8983\" #> [615,] \"8982\" \"8981\" #> [616,] \"8982\" \"8661\" #> [617,] \"8982\" \"9303\" #> [618,] \"8983\" \"8663\" #> [619,] \"8983\" \"9303\" #> [620,] \"8983\" \"8984\" #> [621,] \"8983\" \"8982\" #> [622,] \"8983\" \"8662\" #> [623,] \"8984\" \"8664\" #> [624,] \"8984\" \"8983\" #> [625,] \"8984\" \"8663\" #> [626,] \"8986\" \"9306\" #> [627,] \"8986\" \"9307\" #> [628,] \"8990\" \"8669\" #> [629,] \"9291\" \"8971\" #> [630,] \"9291\" \"9292\" #> [631,] \"9291\" \"9612\" #> [632,] \"9292\" \"8972\" #> [633,] \"9292\" \"9612\" #> [634,] \"9292\" \"9293\" #> [635,] \"9292\" \"9291\" #> [636,] \"9292\" \"8971\" #> [637,] \"9292\" \"9613\" #> [638,] \"9293\" \"9613\" #> [639,] \"9293\" \"9294\" #> [640,] \"9293\" \"9292\" #> [641,] \"9293\" \"8972\" #> [642,] \"9293\" \"9614\" #> [643,] \"9294\" \"8974\" #> [644,] \"9294\" \"9614\" #> [645,] \"9294\" \"9295\" #> [646,] \"9294\" \"9293\" #> [647,] \"9294\" \"9615\" #> [648,] \"9295\" \"8975\" #> [649,] \"9295\" \"9615\" #> [650,] \"9295\" \"9294\" #> [651,] \"9295\" \"8974\" #> [652,] \"9295\" \"9616\" #> [653,] \"9297\" \"8977\" #> [654,] \"9297\" \"9617\" #> [655,] \"9297\" \"9298\" #> [656,] \"9297\" \"8976\" #> [657,] \"9297\" \"9618\" #> [658,] \"9298\" \"8978\" #> [659,] \"9298\" \"9618\" #> [660,] \"9298\" \"9299\" #> [661,] \"9298\" \"9297\" #> [662,] \"9298\" \"8977\" #> [663,] \"9298\" \"9619\" #> [664,] \"9299\" \"8979\" #> [665,] \"9299\" \"9619\" #> [666,] \"9299\" \"9300\" #> [667,] \"9299\" \"9298\" #> [668,] \"9299\" \"8978\" #> [669,] \"9299\" \"9620\" #> [670,] \"9300\" \"8980\" #> [671,] \"9300\" \"9620\" #> [672,] \"9300\" \"9301\" #> [673,] \"9300\" \"9299\" #> [674,] \"9300\" \"8979\" #> [675,] \"9300\" \"9621\" #> [676,] \"9301\" \"8981\" #> [677,] \"9301\" \"9621\" #> [678,] \"9301\" \"9302\" #> [679,] \"9301\" \"9300\" #> [680,] \"9301\" \"8980\" #> [681,] \"9301\" \"9622\" #> [682,] \"9302\" \"8982\" #> [683,] \"9302\" \"9622\" #> [684,] \"9302\" \"9303\" #> [685,] \"9302\" \"9301\" #> [686,] \"9302\" \"8981\" #> [687,] \"9302\" \"9623\" #> [688,] \"9303\" \"8983\" #> [689,] \"9303\" \"9623\" #> [690,] \"9303\" \"9302\" #> [691,] \"9303\" \"8982\" #> [692,] \"9303\" \"9624\" #> [693,] \"9306\" \"8986\" #> [694,] \"9306\" \"9626\" #> [695,] \"9306\" \"9307\" #> [696,] \"9306\" \"9627\" #> [697,] \"9307\" \"9627\" #> [698,] \"9307\" \"9306\" #> [699,] \"9307\" \"8986\" #> [700,] \"9307\" \"9628\" #> [701,] \"9612\" \"9292\" #> [702,] \"9612\" \"9613\" #> [703,] \"9612\" \"9291\" #> [704,] \"9612\" \"9933\" #> [705,] \"9613\" \"9293\" #> [706,] \"9613\" \"9933\" #> [707,] \"9613\" \"9614\" #> [708,] \"9613\" \"9612\" #> [709,] \"9613\" \"9292\" #> [710,] \"9614\" \"9294\" #> [711,] \"9614\" \"9615\" #> [712,] \"9614\" \"9613\" #> [713,] \"9614\" \"9293\" #> [714,] \"9614\" \"9935\" #> [715,] \"9615\" \"9295\" #> [716,] \"9615\" \"9935\" #> [717,] \"9615\" \"9616\" #> [718,] \"9615\" \"9614\" #> [719,] \"9615\" \"9294\" #> [720,] \"9615\" \"9936\" #> [721,] \"9616\" \"9936\" #> [722,] \"9616\" \"9617\" #> [723,] \"9616\" \"9615\" #> [724,] \"9616\" \"9295\" #> [725,] \"9616\" \"9937\" #> [726,] \"9617\" \"9297\" #> [727,] \"9617\" \"9937\" #> [728,] \"9617\" \"9618\" #> [729,] \"9617\" \"9616\" #> [730,] \"9617\" \"9938\" #> [731,] \"9618\" \"9298\" #> [732,] \"9618\" \"9938\" #> [733,] \"9618\" \"9619\" #> [734,] \"9618\" \"9617\" #> [735,] \"9618\" \"9297\" #> [736,] \"9618\" \"9939\" #> [737,] \"9619\" \"9299\" #> [738,] \"9619\" \"9939\" #> [739,] \"9619\" \"9620\" #> [740,] \"9619\" \"9618\" #> [741,] \"9619\" \"9298\" #> [742,] \"9619\" \"9940\" #> [743,] \"9620\" \"9300\" #> [744,] \"9620\" \"9940\" #> [745,] \"9620\" \"9621\" #> [746,] \"9620\" \"9619\" #> [747,] \"9620\" \"9299\" #> [748,] \"9620\" \"9941\" #> [749,] \"9621\" \"9301\" #> [750,] \"9621\" \"9941\" #> [751,] \"9621\" \"9622\" #> [752,] \"9621\" \"9620\" #> [753,] \"9621\" \"9300\" #> [754,] \"9621\" \"9942\" #> [755,] \"9622\" \"9302\" #> [756,] \"9622\" \"9942\" #> [757,] \"9622\" \"9623\" #> [758,] \"9622\" \"9621\" #> [759,] \"9622\" \"9301\" #> [760,] \"9622\" \"9943\" #> [761,] \"9623\" \"9303\" #> [762,] \"9623\" \"9943\" #> [763,] \"9623\" \"9624\" #> [764,] \"9623\" \"9622\" #> [765,] \"9623\" \"9302\" #> [766,] \"9624\" \"9623\" #> [767,] \"9624\" \"9303\" #> [768,] \"9626\" \"9306\" #> [769,] \"9626\" \"9627\" #> [770,] \"9626\" \"9947\" #> [771,] \"9627\" \"9307\" #> [772,] \"9627\" \"9947\" #> [773,] \"9627\" \"9628\" #> [774,] \"9627\" \"9626\" #> [775,] \"9627\" \"9306\" #> [776,] \"9627\" \"9948\" #> [777,] \"9628\" \"9948\" #> [778,] \"9628\" \"9627\" #> [779,] \"9628\" \"9307\" #> [780,] \"9933\" \"9613\" #> [781,] \"9933\" \"9612\" #> [782,] \"9933\" \"6467\" #> [783,] \"9935\" \"9615\" #> [784,] \"9935\" \"6147\" #> [785,] \"9935\" \"9936\" #> [786,] \"9935\" \"9614\" #> [787,] \"9935\" \"5827\" #> [788,] \"9936\" \"9616\" #> [789,] \"9936\" \"5827\" #> [790,] \"9936\" \"9937\" #> [791,] \"9936\" \"9935\" #> [792,] \"9936\" \"9615\" #> [793,] \"9936\" \"5507\" #> [794,] \"9937\" \"9617\" #> [795,] \"9937\" \"5507\" #> [796,] \"9937\" \"9938\" #> [797,] \"9937\" \"9936\" #> [798,] \"9937\" \"9616\" #> [799,] \"9937\" \"5187\" #> [800,] \"9938\" \"9618\" #> [801,] \"9938\" \"5187\" #> [802,] \"9938\" \"9939\" #> [803,] \"9938\" \"9937\" #> [804,] \"9938\" \"9617\" #> [805,] \"9938\" \"4867\" #> [806,] \"9939\" \"9619\" #> [807,] \"9939\" \"4867\" #> [808,] \"9939\" \"9940\" #> [809,] \"9939\" \"9938\" #> [810,] \"9939\" \"9618\" #> [811,] \"9939\" \"4547\" #> [812,] \"9940\" \"9620\" #> [813,] \"9940\" \"4547\" #> [814,] \"9940\" \"9941\" #> [815,] \"9940\" \"9939\" #> [816,] \"9940\" \"9619\" #> [817,] \"9940\" \"4227\" #> [818,] \"9941\" \"9621\" #> [819,] \"9941\" \"4227\" #> [820,] \"9941\" \"9942\" #> [821,] \"9941\" \"9940\" #> [822,] \"9941\" \"9620\" #> [823,] \"9941\" \"3907\" #> [824,] \"9942\" \"9622\" #> [825,] \"9942\" \"3907\" #> [826,] \"9942\" \"9943\" #> [827,] \"9942\" \"9941\" #> [828,] \"9942\" \"9621\" #> [829,] \"9942\" \"3587\" #> [830,] \"9943\" \"9623\" #> [831,] \"9943\" \"3587\" #> [832,] \"9943\" \"9942\" #> [833,] \"9943\" \"9622\" #> [834,] \"9943\" \"3267\" #> [835,] \"9947\" \"9627\" #> [836,] \"9947\" \"9948\" #> [837,] \"9947\" \"9626\" #> [838,] \"9947\" \"1987\" #> [839,] \"9948\" \"9628\" #> [840,] \"9948\" \"1987\" #> [841,] \"9948\" \"9947\" #> [842,] \"9948\" \"9627\" #> [843,] \"9948\" \"1667\" #> [844,] \"9950\" \"1347\" #> [845,] \"9950\" \"9951\" #> [846,] \"9950\" \"1027\" #> [847,] \"9951\" \"1027\" #> [848,] \"9951\" \"9952\" #> [849,] \"9951\" \"9950\" #> [850,] \"9951\" \"707\" #> [851,] \"9952\" \"707\" #> [852,] \"9952\" \"9951\" getEdges(x, res.type = \"matId\") #> Vi Vj #> [1,] 1 2 #> [2,] 1 358 #> [3,] 1 359 #> [4,] 1 3 #> [5,] 2 1 #> [6,] 2 4 #> [7,] 2 3 #> [8,] 2 357 #> [9,] 2 358 #> [10,] 2 5 #> [11,] 3 5 #> [12,] 3 2 #> [13,] 3 1 #> [14,] 4 2 #> [15,] 4 6 #> [16,] 4 5 #> [17,] 4 357 #> [18,] 4 7 #> [19,] 5 3 #> [20,] 5 7 #> [21,] 5 4 #> [22,] 5 2 #> [23,] 6 4 #> [24,] 6 8 #> [25,] 6 7 #> [26,] 6 355 #> [27,] 6 9 #> [28,] 7 5 #> [29,] 7 9 #> [30,] 7 6 #> [31,] 7 4 #> [32,] 8 6 #> [33,] 8 9 #> [34,] 8 354 #> [35,] 8 355 #> [36,] 8 11 #> [37,] 9 7 #> [38,] 9 11 #> [39,] 9 8 #> [40,] 9 6 #> [41,] 11 9 #> [42,] 11 8 #> [43,] 14 16 #> [44,] 14 15 #> [45,] 14 17 #> [46,] 15 17 #> [47,] 15 14 #> [48,] 16 14 #> [49,] 16 20 #> [50,] 16 17 #> [51,] 16 350 #> [52,] 16 21 #> [53,] 17 15 #> [54,] 17 21 #> [55,] 17 16 #> [56,] 17 14 #> [57,] 19 24 #> [58,] 20 16 #> [59,] 20 25 #> [60,] 20 21 #> [61,] 20 349 #> [62,] 20 350 #> [63,] 20 26 #> [64,] 21 17 #> [65,] 21 26 #> [66,] 21 20 #> [67,] 21 16 #> [68,] 24 30 #> [69,] 24 19 #> [70,] 24 31 #> [71,] 25 20 #> [72,] 25 32 #> [73,] 25 26 #> [74,] 25 348 #> [75,] 25 349 #> [76,] 25 33 #> [77,] 26 21 #> [78,] 26 33 #> [79,] 26 25 #> [80,] 26 20 #> [81,] 30 24 #> [82,] 30 31 #> [83,] 30 38 #> [84,] 31 38 #> [85,] 31 30 #> [86,] 31 24 #> [87,] 31 39 #> [88,] 32 25 #> [89,] 32 40 #> [90,] 32 33 #> [91,] 32 347 #> [92,] 32 348 #> [93,] 33 26 #> [94,] 33 32 #> [95,] 33 25 #> [96,] 35 43 #> [97,] 35 36 #> [98,] 35 44 #> [99,] 36 44 #> [100,] 36 35 #> [101,] 36 45 #> [102,] 38 31 #> [103,] 38 39 #> [104,] 38 30 #> [105,] 38 47 #> [106,] 39 47 #> [107,] 39 38 #> [108,] 39 31 #> [109,] 39 48 #> [110,] 40 32 #> [111,] 40 49 #> [112,] 40 346 #> [113,] 40 347 #> [114,] 43 35 #> [115,] 43 44 #> [116,] 43 53 #> [117,] 44 36 #> [118,] 44 53 #> [119,] 44 45 #> [120,] 44 43 #> [121,] 44 35 #> [122,] 44 54 #> [123,] 45 54 #> [124,] 45 44 #> [125,] 45 36 #> [126,] 45 55 #> [127,] 47 39 #> [128,] 47 56 #> [129,] 47 48 #> [130,] 47 38 #> [131,] 47 57 #> [132,] 48 57 #> [133,] 48 47 #> [134,] 48 39 #> [135,] 48 58 #> [136,] 49 40 #> [137,] 49 59 #> [138,] 49 345 #> [139,] 49 346 #> [140,] 53 44 #> [141,] 53 54 #> [142,] 53 43 #> [143,] 53 65 #> [144,] 54 45 #> [145,] 54 65 #> [146,] 54 55 #> [147,] 54 53 #> [148,] 54 44 #> [149,] 55 56 #> [150,] 55 54 #> [151,] 55 45 #> [152,] 56 47 #> [153,] 56 57 #> [154,] 56 55 #> [155,] 56 68 #> [156,] 57 48 #> [157,] 57 68 #> [158,] 57 58 #> [159,] 57 56 #> [160,] 57 47 #> [161,] 57 69 #> [162,] 58 69 #> [163,] 58 57 #> [164,] 58 48 #> [165,] 58 70 #> [166,] 59 49 #> [167,] 59 71 #> [168,] 59 344 #> [169,] 59 345 #> [170,] 65 54 #> [171,] 65 77 #> [172,] 65 53 #> [173,] 65 78 #> [174,] 68 57 #> [175,] 68 69 #> [176,] 68 56 #> [177,] 68 81 #> [178,] 69 58 #> [179,] 69 81 #> [180,] 69 70 #> [181,] 69 68 #> [182,] 69 57 #> [183,] 69 82 #> [184,] 70 82 #> [185,] 70 69 #> [186,] 70 58 #> [187,] 70 83 #> [188,] 71 59 #> [189,] 71 84 #> [190,] 71 343 #> [191,] 71 344 #> [192,] 72 86 #> [193,] 77 65 #> [194,] 77 91 #> [195,] 77 78 #> [196,] 77 92 #> [197,] 78 92 #> [198,] 78 77 #> [199,] 78 65 #> [200,] 81 69 #> [201,] 81 82 #> [202,] 81 68 #> [203,] 81 96 #> [204,] 82 70 #> [205,] 82 96 #> [206,] 82 83 #> [207,] 82 81 #> [208,] 82 69 #> [209,] 82 97 #> [210,] 83 97 #> [211,] 83 82 #> [212,] 83 70 #> [213,] 83 98 #> [214,] 84 71 #> [215,] 84 99 #> [216,] 84 342 #> [217,] 84 343 #> [218,] 86 72 #> [219,] 86 102 #> [220,] 89 104 #> [221,] 89 90 #> [222,] 89 105 #> [223,] 90 105 #> [224,] 90 91 #> [225,] 90 89 #> [226,] 90 106 #> [227,] 91 77 #> [228,] 91 106 #> [229,] 91 92 #> [230,] 91 90 #> [231,] 91 107 #> [232,] 92 78 #> [233,] 92 107 #> [234,] 92 91 #> [235,] 92 77 #> [236,] 92 108 #> [237,] 96 82 #> [238,] 96 97 #> [239,] 96 81 #> [240,] 96 112 #> [241,] 97 83 #> [242,] 97 112 #> [243,] 97 98 #> [244,] 97 96 #> [245,] 97 82 #> [246,] 97 113 #> [247,] 98 113 #> [248,] 98 97 #> [249,] 98 83 #> [250,] 98 114 #> [251,] 99 84 #> [252,] 99 115 #> [253,] 99 342 #> [254,] 102 103 #> [255,] 102 86 #> [256,] 103 104 #> [257,] 103 102 #> [258,] 104 89 #> [259,] 104 105 #> [260,] 104 103 #> [261,] 105 90 #> [262,] 105 106 #> [263,] 105 104 #> [264,] 105 89 #> [265,] 105 123 #> [266,] 106 91 #> [267,] 106 123 #> [268,] 106 107 #> [269,] 106 105 #> [270,] 106 90 #> [271,] 106 124 #> [272,] 107 92 #> [273,] 107 124 #> [274,] 107 108 #> [275,] 107 106 #> [276,] 107 91 #> [277,] 107 125 #> [278,] 108 125 #> [279,] 108 107 #> [280,] 108 92 #> [281,] 112 97 #> [282,] 112 113 #> [283,] 112 96 #> [284,] 113 98 #> [285,] 113 114 #> [286,] 113 112 #> [287,] 113 97 #> [288,] 114 113 #> [289,] 114 98 #> [290,] 114 132 #> [291,] 115 99 #> [292,] 115 340 #> [293,] 123 106 #> [294,] 123 141 #> [295,] 123 124 #> [296,] 123 105 #> [297,] 123 142 #> [298,] 124 107 #> [299,] 124 142 #> [300,] 124 125 #> [301,] 124 123 #> [302,] 124 106 #> [303,] 124 143 #> [304,] 125 108 #> [305,] 125 143 #> [306,] 125 124 #> [307,] 125 107 #> [308,] 125 144 #> [309,] 132 114 #> [310,] 132 151 #> [311,] 141 123 #> [312,] 141 161 #> [313,] 141 142 #> [314,] 141 162 #> [315,] 142 124 #> [316,] 142 162 #> [317,] 142 143 #> [318,] 142 141 #> [319,] 142 123 #> [320,] 142 163 #> [321,] 143 125 #> [322,] 143 163 #> [323,] 143 144 #> [324,] 143 142 #> [325,] 143 124 #> [326,] 143 164 #> [327,] 144 164 #> [328,] 144 145 #> [329,] 144 143 #> [330,] 144 125 #> [331,] 145 144 #> [332,] 151 132 #> [333,] 151 172 #> [334,] 161 141 #> [335,] 161 181 #> [336,] 161 162 #> [337,] 161 182 #> [338,] 162 142 #> [339,] 162 182 #> [340,] 162 163 #> [341,] 162 161 #> [342,] 162 141 #> [343,] 162 183 #> [344,] 163 143 #> [345,] 163 183 #> [346,] 163 164 #> [347,] 163 162 #> [348,] 163 142 #> [349,] 163 184 #> [350,] 164 144 #> [351,] 164 184 #> [352,] 164 163 #> [353,] 164 143 #> [354,] 164 185 #> [355,] 167 188 #> [356,] 172 151 #> [357,] 178 199 #> [358,] 178 179 #> [359,] 178 200 #> [360,] 179 200 #> [361,] 179 180 #> [362,] 179 178 #> [363,] 179 201 #> [364,] 180 201 #> [365,] 180 181 #> [366,] 180 179 #> [367,] 180 202 #> [368,] 181 161 #> [369,] 181 202 #> [370,] 181 182 #> [371,] 181 180 #> [372,] 182 162 #> [373,] 182 183 #> [374,] 182 181 #> [375,] 182 161 #> [376,] 182 204 #> [377,] 183 163 #> [378,] 183 204 #> [379,] 183 184 #> [380,] 183 182 #> [381,] 183 162 #> [382,] 183 205 #> [383,] 184 164 #> [384,] 184 205 #> [385,] 184 185 #> [386,] 184 183 #> [387,] 184 163 #> [388,] 184 206 #> [389,] 185 206 #> [390,] 185 186 #> [391,] 185 184 #> [392,] 185 164 #> [393,] 185 207 #> [394,] 186 207 #> [395,] 186 185 #> [396,] 186 208 #> [397,] 188 209 #> [398,] 188 167 #> [399,] 188 210 #> [400,] 199 178 #> [401,] 199 222 #> [402,] 199 200 #> [403,] 199 223 #> [404,] 200 179 #> [405,] 200 223 #> [406,] 200 201 #> [407,] 200 199 #> [408,] 200 178 #> [409,] 200 224 #> [410,] 201 180 #> [411,] 201 224 #> [412,] 201 202 #> [413,] 201 200 #> [414,] 201 179 #> [415,] 202 181 #> [416,] 202 201 #> [417,] 202 180 #> [418,] 204 183 #> [419,] 204 227 #> [420,] 204 205 #> [421,] 204 182 #> [422,] 204 228 #> [423,] 205 184 #> [424,] 205 228 #> [425,] 205 206 #> [426,] 205 204 #> [427,] 205 183 #> [428,] 205 229 #> [429,] 206 185 #> [430,] 206 229 #> [431,] 206 207 #> [432,] 206 205 #> [433,] 206 184 #> [434,] 206 230 #> [435,] 207 186 #> [436,] 207 230 #> [437,] 207 208 #> [438,] 207 206 #> [439,] 207 185 #> [440,] 207 231 #> [441,] 208 231 #> [442,] 208 209 #> [443,] 208 207 #> [444,] 208 186 #> [445,] 208 232 #> [446,] 209 188 #> [447,] 209 232 #> [448,] 209 210 #> [449,] 209 208 #> [450,] 209 233 #> [451,] 210 233 #> [452,] 210 209 #> [453,] 210 188 #> [454,] 214 238 #> [455,] 222 199 #> [456,] 222 245 #> [457,] 222 223 #> [458,] 222 246 #> [459,] 223 200 #> [460,] 223 246 #> [461,] 223 224 #> [462,] 223 222 #> [463,] 223 199 #> [464,] 224 201 #> [465,] 224 223 #> [466,] 224 200 #> [467,] 227 204 #> [468,] 227 250 #> [469,] 227 228 #> [470,] 227 251 #> [471,] 228 205 #> [472,] 228 251 #> [473,] 228 229 #> [474,] 228 227 #> [475,] 228 204 #> [476,] 228 252 #> [477,] 229 206 #> [478,] 229 252 #> [479,] 229 230 #> [480,] 229 228 #> [481,] 229 205 #> [482,] 229 253 #> [483,] 230 207 #> [484,] 230 253 #> [485,] 230 231 #> [486,] 230 229 #> [487,] 230 206 #> [488,] 230 254 #> [489,] 231 208 #> [490,] 231 254 #> [491,] 231 232 #> [492,] 231 230 #> [493,] 231 207 #> [494,] 231 255 #> [495,] 232 209 #> [496,] 232 255 #> [497,] 232 233 #> [498,] 232 231 #> [499,] 232 208 #> [500,] 232 256 #> [501,] 233 210 #> [502,] 233 256 #> [503,] 233 232 #> [504,] 233 209 #> [505,] 233 257 #> [506,] 238 214 #> [507,] 238 262 #> [508,] 244 267 #> [509,] 244 245 #> [510,] 244 268 #> [511,] 245 222 #> [512,] 245 268 #> [513,] 245 246 #> [514,] 245 244 #> [515,] 246 223 #> [516,] 246 245 #> [517,] 246 222 #> [518,] 246 270 #> [519,] 250 227 #> [520,] 250 273 #> [521,] 250 251 #> [522,] 250 274 #> [523,] 251 228 #> [524,] 251 274 #> [525,] 251 252 #> [526,] 251 250 #> [527,] 251 227 #> [528,] 251 275 #> [529,] 252 229 #> [530,] 252 275 #> [531,] 252 253 #> [532,] 252 251 #> [533,] 252 228 #> [534,] 252 276 #> [535,] 253 230 #> [536,] 253 276 #> [537,] 253 254 #> [538,] 253 252 #> [539,] 253 229 #> [540,] 253 277 #> [541,] 254 231 #> [542,] 254 277 #> [543,] 254 255 #> [544,] 254 253 #> [545,] 254 230 #> [546,] 254 278 #> [547,] 255 232 #> [548,] 255 278 #> [549,] 255 256 #> [550,] 255 254 #> [551,] 255 231 #> [552,] 255 279 #> [553,] 256 233 #> [554,] 256 279 #> [555,] 256 257 #> [556,] 256 255 #> [557,] 256 232 #> [558,] 256 280 #> [559,] 257 280 #> [560,] 257 256 #> [561,] 257 233 #> [562,] 262 238 #> [563,] 262 286 #> [564,] 267 244 #> [565,] 267 291 #> [566,] 267 268 #> [567,] 267 292 #> [568,] 268 245 #> [569,] 268 292 #> [570,] 268 267 #> [571,] 268 244 #> [572,] 268 293 #> [573,] 270 294 #> [574,] 270 271 #> [575,] 270 246 #> [576,] 270 295 #> [577,] 271 295 #> [578,] 271 272 #> [579,] 271 270 #> [580,] 272 273 #> [581,] 272 271 #> [582,] 272 297 #> [583,] 273 250 #> [584,] 273 297 #> [585,] 273 274 #> [586,] 273 272 #> [587,] 273 298 #> [588,] 274 251 #> [589,] 274 298 #> [590,] 274 275 #> [591,] 274 273 #> [592,] 274 250 #> [593,] 274 299 #> [594,] 275 252 #> [595,] 275 299 #> [596,] 275 276 #> [597,] 275 274 #> [598,] 275 251 #> [599,] 275 300 #> [600,] 276 253 #> [601,] 276 300 #> [602,] 276 277 #> [603,] 276 275 #> [604,] 276 252 #> [605,] 276 301 #> [606,] 277 254 #> [607,] 277 301 #> [608,] 277 278 #> [609,] 277 276 #> [610,] 277 253 #> [611,] 277 302 #> [612,] 278 255 #> [613,] 278 302 #> [614,] 278 279 #> [615,] 278 277 #> [616,] 278 254 #> [617,] 278 303 #> [618,] 279 256 #> [619,] 279 303 #> [620,] 279 280 #> [621,] 279 278 #> [622,] 279 255 #> [623,] 280 257 #> [624,] 280 279 #> [625,] 280 256 #> [626,] 282 306 #> [627,] 282 307 #> [628,] 286 262 #> [629,] 291 267 #> [630,] 291 292 #> [631,] 291 315 #> [632,] 292 268 #> [633,] 292 315 #> [634,] 292 293 #> [635,] 292 291 #> [636,] 292 267 #> [637,] 292 316 #> [638,] 293 316 #> [639,] 293 294 #> [640,] 293 292 #> [641,] 293 268 #> [642,] 293 317 #> [643,] 294 270 #> [644,] 294 317 #> [645,] 294 295 #> [646,] 294 293 #> [647,] 294 318 #> [648,] 295 271 #> [649,] 295 318 #> [650,] 295 294 #> [651,] 295 270 #> [652,] 295 319 #> [653,] 297 273 #> [654,] 297 320 #> [655,] 297 298 #> [656,] 297 272 #> [657,] 297 321 #> [658,] 298 274 #> [659,] 298 321 #> [660,] 298 299 #> [661,] 298 297 #> [662,] 298 273 #> [663,] 298 322 #> [664,] 299 275 #> [665,] 299 322 #> [666,] 299 300 #> [667,] 299 298 #> [668,] 299 274 #> [669,] 299 323 #> [670,] 300 276 #> [671,] 300 323 #> [672,] 300 301 #> [673,] 300 299 #> [674,] 300 275 #> [675,] 300 324 #> [676,] 301 277 #> [677,] 301 324 #> [678,] 301 302 #> [679,] 301 300 #> [680,] 301 276 #> [681,] 301 325 #> [682,] 302 278 #> [683,] 302 325 #> [684,] 302 303 #> [685,] 302 301 #> [686,] 302 277 #> [687,] 302 326 #> [688,] 303 279 #> [689,] 303 326 #> [690,] 303 302 #> [691,] 303 278 #> [692,] 303 327 #> [693,] 306 282 #> [694,] 306 329 #> [695,] 306 307 #> [696,] 306 330 #> [697,] 307 330 #> [698,] 307 306 #> [699,] 307 282 #> [700,] 307 331 #> [701,] 315 292 #> [702,] 315 316 #> [703,] 315 291 #> [704,] 315 340 #> [705,] 316 293 #> [706,] 316 340 #> [707,] 316 317 #> [708,] 316 315 #> [709,] 316 292 #> [710,] 317 294 #> [711,] 317 318 #> [712,] 317 316 #> [713,] 317 293 #> [714,] 317 342 #> [715,] 318 295 #> [716,] 318 342 #> [717,] 318 319 #> [718,] 318 317 #> [719,] 318 294 #> [720,] 318 343 #> [721,] 319 343 #> [722,] 319 320 #> [723,] 319 318 #> [724,] 319 295 #> [725,] 319 344 #> [726,] 320 297 #> [727,] 320 344 #> [728,] 320 321 #> [729,] 320 319 #> [730,] 320 345 #> [731,] 321 298 #> [732,] 321 345 #> [733,] 321 322 #> [734,] 321 320 #> [735,] 321 297 #> [736,] 321 346 #> [737,] 322 299 #> [738,] 322 346 #> [739,] 322 323 #> [740,] 322 321 #> [741,] 322 298 #> [742,] 322 347 #> [743,] 323 300 #> [744,] 323 347 #> [745,] 323 324 #> [746,] 323 322 #> [747,] 323 299 #> [748,] 323 348 #> [749,] 324 301 #> [750,] 324 348 #> [751,] 324 325 #> [752,] 324 323 #> [753,] 324 300 #> [754,] 324 349 #> [755,] 325 302 #> [756,] 325 349 #> [757,] 325 326 #> [758,] 325 324 #> [759,] 325 301 #> [760,] 325 350 #> [761,] 326 303 #> [762,] 326 350 #> [763,] 326 327 #> [764,] 326 325 #> [765,] 326 302 #> [766,] 327 326 #> [767,] 327 303 #> [768,] 329 306 #> [769,] 329 330 #> [770,] 329 354 #> [771,] 330 307 #> [772,] 330 354 #> [773,] 330 331 #> [774,] 330 329 #> [775,] 330 306 #> [776,] 330 355 #> [777,] 331 355 #> [778,] 331 330 #> [779,] 331 307 #> [780,] 340 316 #> [781,] 340 315 #> [782,] 340 115 #> [783,] 342 318 #> [784,] 342 99 #> [785,] 342 343 #> [786,] 342 317 #> [787,] 342 84 #> [788,] 343 319 #> [789,] 343 84 #> [790,] 343 344 #> [791,] 343 342 #> [792,] 343 318 #> [793,] 343 71 #> [794,] 344 320 #> [795,] 344 71 #> [796,] 344 345 #> [797,] 344 343 #> [798,] 344 319 #> [799,] 344 59 #> [800,] 345 321 #> [801,] 345 59 #> [802,] 345 346 #> [803,] 345 344 #> [804,] 345 320 #> [805,] 345 49 #> [806,] 346 322 #> [807,] 346 49 #> [808,] 346 347 #> [809,] 346 345 #> [810,] 346 321 #> [811,] 346 40 #> [812,] 347 323 #> [813,] 347 40 #> [814,] 347 348 #> [815,] 347 346 #> [816,] 347 322 #> [817,] 347 32 #> [818,] 348 324 #> [819,] 348 32 #> [820,] 348 349 #> [821,] 348 347 #> [822,] 348 323 #> [823,] 348 25 #> [824,] 349 325 #> [825,] 349 25 #> [826,] 349 350 #> [827,] 349 348 #> [828,] 349 324 #> [829,] 349 20 #> [830,] 350 326 #> [831,] 350 20 #> [832,] 350 349 #> [833,] 350 325 #> [834,] 350 16 #> [835,] 354 330 #> [836,] 354 355 #> [837,] 354 329 #> [838,] 354 8 #> [839,] 355 331 #> [840,] 355 8 #> [841,] 355 354 #> [842,] 355 330 #> [843,] 355 6 #> [844,] 357 4 #> [845,] 357 358 #> [846,] 357 2 #> [847,] 358 2 #> [848,] 358 359 #> [849,] 358 357 #> [850,] 358 1 #> [851,] 359 1 #> [852,] 359 358"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":null,"dir":"Reference","previous_headings":"","what":"Get nodes attributes from gGraph/gData object — getNodesAttr","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"function getNodesAttr returns values set variables associated nodes (.e. node attributes) gGraph gData object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"","code":"getNodesAttr(x, ...) # S4 method for gGraph getNodesAttr(x, nodes = NULL, attr.name = NULL, ...) # S4 method for gData getNodesAttr(x, attr.name = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"x valid gGraph gData object. ... arguments passed methods (currently unused). nodes optional integer, logical, character string indicating subset nodes used. NULL, nodes used. attr.name optional character string indicating node attributes returned. provided, must match least one columns x@nodes.attr.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"data.frame requested nodes attributes. Nodes displayed rows, variables columns.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"getNodesAttr(gGraph): Method gGraph objects getNodesAttr(gData): Method gData objects","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/getNodesAttr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get nodes attributes from gGraph/gData object — getNodesAttr","text":"","code":"## gGraph method head(getNodesAttr(worldgraph.40k)) #> habitat #> 1 sea #> 2 sea #> 3 sea #> 4 sea #> 5 sea #> 6 sea ## gData method getNodesAttr(hgdp) #> habitat #> 26898 coast #> 11652 coast #> 22532 land #> 23709 land #> 24988 land #> 28833 land #> 26917 coast #> 28836 coast #> 21797 land #> 39741 coast #> 39740 coast #> 39740.1 coast #> 16798 land #> 16798.1 land #> 22561 land #> 19359 land #> 21280 land #> 13597 coast #> 20000 land #> 16162 land #> 13760 coast #> 7348 coast #> 13365 land #> 10816 land #> 5655 coast #> 40768 land #> 30164 land #> 6433 land #> 15411 land #> 20543 land #> 26955 land #> 13518 land #> 8583 land #> 34111 land #> 18189 land #> 20755 land #> 34111.1 land #> 899 land #> 20110 land #> 5389 land #> 1539 land #> 36661 land #> 28323 land #> 37309 land #> 16265 land #> 35388 land #> 28322 land #> 33480 land #> 19483 coast #> 27148 land #> 11457 land #> 30221 land"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":null,"dir":"Reference","previous_headings":"","what":"Human genome diversity panel - georeferenced data — hgdp","title":"Human genome diversity panel - georeferenced data — hgdp","text":"datasets hgdp hgdpPlus provides genetic diversity several human populations worldwide. datasets gData objects, interfaced gGraph object worldgraph.40k.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Human genome diversity panel - georeferenced data — hgdp","text":"hgdp gGraph object following data: % @nodes.attr$habitat habitat corresponding % vertice; currently 'land' 'sea'. @meta$color matrix assigning color plotting % vertices (second column) different values habitat (first % column).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Human genome diversity panel - georeferenced data — hgdp","text":"hgdp describes 52 populations original Human Genome Diversity Panel. hgdpPlus describes hgdp populations plus 24 native American populations.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Human genome diversity panel - georeferenced data — hgdp","text":"Authors Journal, YEAR, nb: pp-pp.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/hgdp.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Human genome diversity panel - georeferenced data — hgdp","text":"","code":"## check object hgdp #> #> === gData object === #> #> @coords: spatial coordinates of 52 nodes #> lon lat #> 1 -3 59 #> 2 39 44 #> 3 40 61 #> ... #> #> @nodes.id: nodes identifiers #> 28179 11012 22532 #> \"26898\" \"11652\" \"22532\" #> ... #> #> @data: 52 data #> Population Region Label n Latitude Longitude Genetic.Div #> 1 Orcadian EUROPE 1 15 59 -3 0.7258820 #> 2 Adygei EUROPE 2 17 44 39 0.7297802 #> 3 Russian EUROPE 3 25 61 40 0.7319749 #> ... #> #> Associated gGraph: worldgraph.40k ## plotting the object plot(hgdp) ## results from Handley et al. if (FALSE) { ## Addis Ababa addis <- list(lon = 38.74, lat = 9.03) addis <- closestNode(worldgraph.40k, addis) # this takes a while ## shortest path from Addis Ababa myPath <- dijkstraFrom(hgdp, addis) ## plot results plot(worldgraph.40k, col = 0) points(hgdp) points(worldgraph.40k[addis], psize = 3, pch = \"x\", col = \"black\") plot(myPath) ## correlations distance/genetic div. geo.dist <- sapply(myPath[-length(myPath)], function(e) e$length) gen.div <- getData(hgdp)[, \"Genetic.Div\"] plot(gen.div ~ geo.dist) lm1 <- lm(gen.div ~ geo.dist) abline(lm1, col = \"blue\") # this regression is wrong summary(lm1) }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":null,"dir":"Reference","previous_headings":"","what":"Find which nodes fall in a given area — isInArea","title":"Find which nodes fall in a given area — isInArea","text":"generic function isInArea finds nodes fall given area. Nodes can specified different ways, including providing gGraph gData object. Different format output also available.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find which nodes fall in a given area — isInArea","text":"","code":"isInArea(x, ...) # S4 method for matrix isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 ) # S4 method for data.frame isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 ) # S4 method for gGraph isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 ) # S4 method for gData isInArea( x, reg = \"current\", res.type = c(\"logical\", \"integer\", \"character\"), buffer = 0 )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find which nodes fall in a given area — isInArea","text":"x matrix, data.frame, valid gGraph, valid gData object. matrix data.frame, input must two columns giving longitudes latitudes locations considered. ... arguments passed specific methods. reg character string list indicating area ('reg' stands 'region'). Character strings can \"current\" (current user window, default) \"zoom\" (current zoom). argument list, two components, numeric vectors length two, giving x y limits area. Note list can produced locator, locator(1) valid value reg. res.type character string indicating kind output produced. See value. buffer numeric value giving buffer adding extra space aroung area, proportion current area's dimensions.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find which nodes fall in a given area — isInArea","text":"output depends value argument res.type: logical: vector logicals one value node input. integer: vector integers corresponding indices nodes falling within area. character: vector characters corresponding names nodes falling within area.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Find which nodes fall in a given area — isInArea","text":"isInArea(matrix): Method matrix isInArea(data.frame): Method data.frame isInArea(gGraph): Method gGraph object isInArea(gData): Method gData object","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/isInArea.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find which nodes fall in a given area — isInArea","text":"","code":"plot(worldgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## different outputs of isInArea head(isInArea(worldgraph.10k)) # logical #> 1 2 3 4 5 6 #> FALSE FALSE FALSE FALSE FALSE FALSE length(isInArea(worldgraph.10k)) #> [1] 10242 sum(isInArea(worldgraph.10k)) #> [1] 359 head(which(isInArea(worldgraph.10k))) # which nodes are TRUE ? #> 707 1027 1028 1347 1348 1667 #> 707 1027 1028 1347 1348 1667 head(isInArea(worldgraph.10k, res.type = \"integer\")) # node indices #> 707 1027 1028 1347 1348 1667 #> 707 1027 1028 1347 1348 1667 head(isInArea(worldgraph.10k, res.type = \"character\")) # node names #> [1] \"707\" \"1027\" \"1028\" \"1347\" \"1348\" \"1667\" ## use isInArea to have a subset of visible nodes x <- worldgraph.10k[isInArea(worldgraph.10k)] plot(x, reset = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a regular grid gGraph — makeGrid","title":"Build a regular grid gGraph — makeGrid","text":"function makeGrid builds gGraph using regular grid given area. area specified, currently plotted area used. Note grid valid small scales, cases curvature surface earth can neglected.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a regular grid gGraph — makeGrid","text":"","code":"makeGrid( size = NULL, n.lon = NULL, n.lat = NULL, lon.range = NULL, lat.range = NULL )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a regular grid gGraph — makeGrid","text":"size integer giving approximate number nodes grid. function attempt make square grid (approximately) size. n.lon number longitude coordinates grid (.e., width grid, number cells) n.lat number latitude coordinates grid (.e., height grid, number cells) lon.range, lat.range vectors length two giving range covered grid, longitude latitude, respectively.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a regular grid gGraph — makeGrid","text":"gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/makeGrid.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Build a regular grid gGraph — makeGrid","text":"","code":"## zoom in to a smaller area plot(worldgraph.10k) geo.zoomin(c(-10, 0, 50, 54)) ## make a new gGraph newGraph <- makeGrid(1e3) newGraph <- findLand(newGraph) newGraph@meta$colors <- data.frame( habitat = c(\"sea\", \"land\"), color = c(\"blue\", \"green\") ) ## plot the new gGraph plot(newGraph, reset = TRUE, edge = TRUE)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a gData object. — plot-gData","title":"Plot a gData object. — plot-gData","text":"Various functions plot gData object: plot opens device plots object, points plots object existing device. Plotting gData object relies plotting gGraph object linked, represent locations gData /associated nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a gData object. — plot-gData","text":"","code":"# S4 method for gData,missing plot( x, type = c(\"nodes\", \"original\", \"both\"), pch.ori = 4, pch.nodes = 1, col.ori = \"black\", col.nodes = \"red\", col.gGraph = NULL, reset = FALSE, sticky.points = TRUE, ... ) # S4 method for gData points( x, type = c(\"nodes\", \"original\", \"both\"), pch.ori = 4, pch.nodes = 1, col.ori = \"black\", col.nodes = \"red\", sticky.points = TRUE, ... )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a gData object. — plot-gData","text":"x valid gData object. gData object linked must exist global environment. type character string indicating information plotted: original locations ('original'), associated nodes ('nodes', default), (''). latter case, arrow goes locations nodes. pch.ori numeric character indicating type point locations. pch.nodes numeric character indicating type point nodes. col.ori character string indicating color used locations. col.nodes character string indicating color used nodes. col.gGraph (recycled) color vector associated gGraph object. NULL, default color used. Set NA \"transparent\" avoid plotting gGraph. reset logical stating whether plotting area reset fit gData object (TRUE), conserve previous plotting settings (FALSE, default). sticky.points logical indicating added points kept replotting (TRUE, default), (FALSE). case, reset=TRUE prevent points redrawn. ... arguments passed points.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a gData object. — plot-gData","text":"sticky.points set TRUE, operations performed graphics like zooming sliding window can performed without loosing gData plot.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Plot a gData object. — plot-gData","text":"points(gData): Plot points","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gData.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a gData object. — plot-gData","text":"","code":"myLoc <- list(x = c(3, -8, 11, 28), y = c(50, 57, 71, 67)) # some locations obj <- new(\"gData\", coords = myLoc) # new gData object obj #> #> === gData object === #> #> @coords: spatial coordinates of 4 nodes #> lon lat #> 1 3 50 #> 2 -8 57 #> 3 11 71 #> ... #> #> @nodes.id: nodes identifiers #> character(0) #> #> @data: data #> NULL #> ... #> #> Associated gGraph: obj@gGraph.name <- \"worldgraph.10k\" obj <- closestNode(obj, attr.name = \"habitat\", attr.value = \"land\") ## plot the result (original location -> assigned node) plot(obj, type = \"both\", reset = TRUE) title(\"'x'=location, 'o'=assigned node\") ## using different parameters points(obj, type = \"both\", pch.ori = 2, col.ori = \"red\", pch.nodes = 20, col.nodes = \"pink\") ## only nodes, fancy plot plot(obj, col.nodes = \"red\", cex = 1, pch.node = 20) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'x' in selecting a method for function 'points': object 'obj' not found points(obj, col.nodes = \"red\", cex = 2) points(obj, col.nodes = \"orange\", cex = 3) points(obj, col.nodes = \"yellow\", cex = 4)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a gGraph object. — plot-gGraph","title":"Plot a gGraph object. — plot-gGraph","text":"Various functions plot gGraph object: plot opens device plot object, points plots object existing device. plotEdges plots edges graph: can called directly, via arguments passed plot points.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a gGraph object. — plot-gGraph","text":"x gGraph object. shape shapefile used background object. Must class SpatialPolygonsDataFrame (see readShapePoly maptools package import data GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph. psize numeric giving size points. pch numeric character indicating type point. col character string indicating color used. edges logical indicating edges plotted (TRUE) (FALSE). reset logical indicating plotting parameters reset (TRUE) (FALSE). bg.col character string indicating color polygons shapefile used background. border.col character string indicating color polygon borders. lwd numeric indicating width line (used edges). useCosts logical indicating edge width inversely proportionnal edge cost (TRUE) (FALSE). maxLwd numeric indicating maximum edge width (corresponding maximum weight). col.rules data.frame two named columns, first one giving values node attribute, second one stating colors used value. provided, seeked @meta\\$color slot object. sticky.points logical indicating added points kept replotting (TRUE), (FALSE). case, reset=TRUE prevent points redrawn. lty type line (edges). pcol character indicating color used points. sticky.edges logical indicating whether added edges kept replotting (TRUE), (FALSE, default). case, reset=TRUE prevent points redrawn. ... arguments passed generic methods (plot, points, segments, respectively).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a gGraph object. — plot-gGraph","text":"Plotting gGraph object stores parameters R; see details information. able zoom , slide window, previous plotting information stored particular environment (.geoGraphEnv), created loading geoGraph. Users interact directly objects environment. resulting plotting behaviour plotting gGraph object, last plotting parameters re-used. override behaviour, specify reset=TRUE argument plot.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/plot-gGraph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a gGraph object. — plot-gGraph","text":"","code":"## just the background plot(worldgraph.10k, reset = TRUE, type = \"n\") ## basic plot plot(worldgraph.10k) ## zooming and adding edges geo.zoomin(list(x = c(90, 150), y = c(0, -50))) plot(worldgraph.10k, edges = TRUE) ## display edges differently plotEdges(worldgraph.10k, col = \"red\", lwd = 2) ## replot points with different color points(worldgraph.10k, col = \"orange\") ## mask points in the sea inSea <- unlist(getNodesAttr(worldgraph.10k, attr.name = \"habitat\")) == \"sea\" head(inSea) #> [1] TRUE TRUE TRUE TRUE TRUE TRUE points(worldgraph.10k[inSea], col = \"white\", sticky = TRUE) # this will stay ## but better, only draw those on land, and use a fancy setup par(bg = \"blue\") plot(worldgraph.10k[!inSea], bg.col = \"darkgreen\", col = \"purple\", edges = TRUE) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'x' in selecting a method for function 'points': error in evaluating the argument 'i' in selecting a method for function '[': object 'inSea' not found"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Set friction in a gGraph object — setCosts","title":"Set friction in a gGraph object — setCosts","text":"function setCosts define costs edges gGraph object according node attribute rules defined @meta\\$costs slot object. node value chosen attribute, associated costs (friction). cost edge computed function (see argument method) costs nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Set friction in a gGraph object — setCosts","text":"","code":"setCosts( x, attr.name = NULL, node.values = NULL, method = c(\"mean\", \"product\", \"function\"), FUN = NULL, ... )"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Set friction in a gGraph object — setCosts","text":"x gGraph object least one node attribute, @meta$costs component (example, see worldgraph.10k dataset). attr.name name node attribute used compute costs (.e., one column @nodes.attr). node.values numeric vector giving costs associated nodes. provided, used instead attr.name. method character string indicating method used compute edge cost nodes costs. Currently available options 'mean', 'prod' 'function', cost associated edge respectively computed mean, product custom function (defined FUN) costs nodes. FUN function used compute cost two nodes (needed method=\"function\"). ... additional parameters passed FUN.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Set friction in a gGraph object — setCosts","text":"gGraph object newly defined costs used weightings edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Set friction in a gGraph object — setCosts","text":"Note costs inversely proportional connectivity edges: larger cost associated edge, lower connectivity two concerned nodes. Also note 'costs' defined geoGraph equivalent 'weights' defined graph RBGL packages.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Set friction in a gGraph object — setCosts","text":"","code":"plot(rawgraph.10k, reset = TRUE) ## zooming in geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## defining a new object restrained to visible nodes x <- rawgraph.10k[isInArea(rawgraph.10k)] ## define weights for edges x <- setCosts(x, attr.name = \"habitat\") plot(x, edges = TRUE) title(\"costs defined by habitat (land/land=1, other=100)\")"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":null,"dir":"Reference","previous_headings":"","what":"Set costs associated to edges based on geographic distances — setDistCosts","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"function setDistCosts sets costs gGraph object using geographic distance. cost associated edge defined great circle distance two nodes edge. setDistCosts actually relies rdist.earth fields package.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"","code":"setDistCosts(x, ...) # S4 method for gGraph setDistCosts(x, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"x valid gGraph. ... arguments passed methods (currently unused).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"gGraph method, gGraph object appropriate weights. Note former weights removed object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"notion 'costs' context gGraph objects identical concept 'weights' graph (thus graphNEL) objects. larger edge, less connectivity couple concerned nodes.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"setDistCosts(gGraph): Method gGraph object","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setDistCosts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Set costs associated to edges based on geographic distances — setDistCosts","text":"","code":"if (require(fields)) { ## load data plot(rawgraph.10k, reset = TRUE) geo.zoomin(list(x = c(110, 150), y = c(-10, -40))) plotEdges(rawgraph.10k) ## compute costs x <- rawgraph.10k[isInArea(rawgraph.10k)] x <- setDistCosts(x) ## replot edges plotEdges(x) # no big differences can be seen head(getCosts(x)) } #> Loading required package: fields #> Loading required package: spam #> Spam version 2.10-0 (2023-10-23) is loaded. #> Type 'help( Spam)' or 'demo( spam)' for a short introduction #> and overview of this package. #> Help for individual functions is also obtained by adding the #> suffix '.spam' to the function name, e.g. 'help( chol.spam)'. #> #> Attaching package: ‘spam’ #> The following objects are masked from ‘package:base’: #> #> backsolve, forwardsolve #> Loading required package: viridisLite #> #> Try help(fields) to get started. #> $`150` #> 10038 151 10037 471 #> 153.5122 135.5409 159.0169 159.0779 #> #> $`151` #> 10039 471 152 150 10038 472 #> 152.7608 152.4379 136.0023 135.5409 159.8605 159.9643 #> #> $`152` #> 10040 472 153 151 10039 473 #> 152.0093 151.6441 136.5697 136.0023 160.7123 160.8551 #> #> $`153` #> 10041 473 154 152 10040 474 #> 151.2579 150.8388 137.2289 136.5697 161.5831 161.7623 #> #> $`154` #> 10042 474 155 153 10041 475 #> 150.5036 150.0351 138.0768 137.2289 162.4662 162.6196 #> #> $`155` #> 10043 475 156 154 10042 476 #> 149.6651 149.2157 138.9751 138.0768 163.3113 163.5481 #>"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":null,"dir":"Reference","previous_headings":"","what":"Add and remove edges from a gGraph object — setEdges","title":"Add and remove edges from a gGraph object — setEdges","text":"function setEdges allows one add remove edges gGraph directly specifying relevant nodes, list data.frame. low-level function called geo.add.edges geo.remove.edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add and remove edges from a gGraph object — setEdges","text":"","code":"setEdges(x, ...) # S4 method for gGraph setEdges(x, add = NULL, remove = NULL, costs = NULL, ...)"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add and remove edges from a gGraph object — setEdges","text":"x valid gGraph object. ... arguments passed methods (currently unused). add list dataframe containing node names edges added. first element list (column data.frame) gives starting nodes edges; second gives ending nodes. Hence, nodes -th edge add[[1]][] add[[2]][] add list, add[,] add data.frame. remove add argument, edges removed. costs numeric vector providing costs edges added. costs[] weight -th edge.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add and remove edges from a gGraph object — setEdges","text":"gGraph object newly added removed edges.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/setEdges.html","id":"functions","dir":"Reference","previous_headings":"","what":"Functions","title":"Add and remove edges from a gGraph object — setEdges","text":"setEdges(gGraph): Method gGraph object","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":null,"dir":"Reference","previous_headings":"","what":"Worldwide geographic graphs — worldgraph","title":"Worldwide geographic graphs — worldgraph","text":"datasets 'rawgraph.10k', 'rawgraph.40k', 'worldgraph.10k', 'worldgraph.40k' geographic graphs (gGraph objects) world, respective resolutions 10,242 40,962 vertices.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Worldwide geographic graphs — worldgraph","text":"worldgraph.10k worldgraph.40k gGraph objects following specificities: @nodes.attr\\$habitat habitat corresponding vertice; currently 'land' 'sea'. @meta\\$color matrix assigning color plotting vertices (second column) different values habitat (first column).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Worldwide geographic graphs — worldgraph","text":"Graph reconstructed Andrea Manica.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Worldwide geographic graphs — worldgraph","text":"'rawgraph's raw graphs obtained directly method provided references. 'worldgraph's 'rawgraph's modified manually rectify connectivity edges places. noticeable change edges involving sea vertices removed. 'worldshape' shapefile countries world (snapshot 1994).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Worldwide geographic graphs — worldgraph","text":"=== construction graph === Randall, D. .; Ringler, T. D.; Heikes, R. P.; Jones, P. & Baumgardner, J. Climate Modeling Spherical Geodesic Grids Computing science & engineering, 2002, 4: 32-41.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/worldgraph.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Worldwide geographic graphs — worldgraph","text":"","code":"worldgraph.10k #> #> === gGraph object === #> #> @coords: spatial coordinates of 10242 nodes #> lon lat #> 1 -180.0000 90.00000 #> 2 144.0000 -90.00000 #> 3 -33.7806 27.18924 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 sea #> 3 sea #> ... #> #> @meta: list of meta information with 2 items #> [1] \"$colors\" \"$costs\" #> #> @graph: #> A graphNEL graph with undirected edges #> Number of Nodes = 10242 #> Number of Edges = 6954 ## plotting the object plot(worldgraph.10k, reset = TRUE) title(\"Hello world\") ## zooming in geo.zoomin(list(x = c(-12, 45), y = c(33, 75))) title(\"Europe\") geo.zoomin(list(x = c(-12, 2), y = c(50, 60))) plotEdges(worldgraph.10k) title(\"United Kingdom\") ## zooming out # geo.zoomout() # needs clicking on device geo.zoomin(list(x = c(-6, 38), y = c(35, 73))) title(\"Europe\") ## defining the subset of visible points x <- worldgraph.10k[isInArea(worldgraph.10k)] plot(x, reset = TRUE, edges = TRUE) title(\"One subsetted object.\") if (FALSE) { ## interactive zooming geo.zoomin() }"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":null,"dir":"Reference","previous_headings":"","what":"Navigate in the plot of a gGraph object — zoom","title":"Navigate in the plot of a gGraph object — zoom","text":"functions geo.zoomin, geo.zoomout, geo.slide, geo.back, geo.bookmark geo.goto used navigate interactively plot gGraph object.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Navigate in the plot of a gGraph object — zoom","text":"reg list length 2, first component new x (longitude) boundaries (vector length 2), second new y (latitude) boundaries (vector length 2). vec numeric vector length 4 giving new coordinates plotting window, order: xmin, xmax, ymin, ymax. name character string giving name bookmark create (geo.bookmark) get back (geo.goto).","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Navigate in the plot of a gGraph object — zoom","text":"geo.zoomin geo.zoomout used zoom . zooming , user delimit opposite corner new plotting area; alternatively, set coordinates can provided. zooming , click screen zoom . geo.slide moves window toward direction indicated clicking screen. geo.back redraws previous plots time screen clicked. geo.bookmark sets bookmark current area. name bookmark left NULL, list currently available bookmarks returned. geo.goto allows user get back bookmarked area. .zoomlog.auxiliary function used update zoom log, providing new sets coordinates. Whenever clicking needed, right-click stop function.","code":""},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/zoom.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Navigate in the plot of a gGraph object — zoom","text":"","code":"plot(worldgraph.10k, reset = TRUE) ## zooming in x.ini <- c(-100, -60) y.ini <- c(-30, 30) for (i in 0:3) { geo.zoomin(list(x = x.ini + i * 60, y = y.ini)) } if (FALSE) { ## going back geo.back() # you have to click ! ## zooming in interactively geo.zoomin() # you have to click ! ## zooming out geo.zoomout() # you have to click ! ## moving window geo.slide() # you have to click ! }"},{"path":[]},{"path":"https://evolecolgroup.github.io/geograph/dev/news/index.html","id":"geograph-v10","dir":"Changelog","previous_headings":"","what":"geoGraph v1.0","title":"geoGraph v1.0","text":"First public release full functionality.","code":""}]