diff --git a/dev/pkgdown.yml b/dev/pkgdown.yml index 425e8d5..589540e 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: 2024-01-09T15:38Z +last_built: 2024-01-09T16:21Z 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 8d11b0b..f5ce919 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 475d262..afb1fb9 100644 Binary files a/dev/reference/findLand-1.png and b/dev/reference/findLand-1.png differ diff --git a/dev/reference/findLand-2.png b/dev/reference/findLand-2.png index 5c94d43..dd7c48c 100644 Binary files a/dev/reference/findLand-2.png and b/dev/reference/findLand-2.png differ diff --git a/dev/reference/findLand.html b/dev/reference/findLand.html index c50c910..b7d7307 100644 --- a/dev/reference/findLand.html +++ b/dev/reference/findLand.html @@ -135,10 +135,10 @@

Examples#> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes -#> lon lat -#> 1 12.13412 15.06188 -#> 2 113.95975 13.63283 -#> 3 -124.85506 -64.32546 +#> lon lat +#> 1 117.05967 11.48939 +#> 2 61.37771 25.38330 +#> 3 -13.07482 14.99895 #> ... #> #> @nodes.attr: 0 nodes attributes @@ -162,17 +162,17 @@

Examples#> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes -#> lon lat -#> 1 12.13412 15.06188 -#> 2 113.95975 13.63283 -#> 3 -124.85506 -64.32546 +#> lon lat +#> 1 117.05967 11.48939 +#> 2 61.37771 25.38330 +#> 3 -13.07482 14.99895 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat -#> 1 land -#> 2 sea -#> 3 sea +#> 1 sea +#> 2 land +#> 3 land #> ... #> #> @meta: list of meta information with 0 items diff --git a/dev/search.json b/dev/search.json index b2657b8..643aa37 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(\"EvolEcolGroup/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) ## Spherical geometry (s2) switched off 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 ne_countries datasets rnaturalearth, possible also load custom GIS shapefilew sf::st_read(). Note turn spherical trigonometry functions, naturalearth dataset compatible functionality. 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 FALSE world.countries <- rnaturalearth::ne_countries(scale=\"medium\", returnclass = \"sf\") sf::sf_use_s2(FALSE) class(world.countries) ## [1] \"sf\" \"data.frame\" summary(world.countries) ## scalerank featurecla labelrank sovereignt ## Min. :1.00 Length:241 Min. :2.00 Length:241 ## 1st Qu.:1.00 Class :character 1st Qu.:3.00 Class :character ## Median :1.00 Mode :character Median :4.00 Mode :character ## Mean :1.45 Mean :4.15 ## 3rd Qu.:1.00 3rd Qu.:6.00 ## Max. :6.00 Max. :7.00 ## ## sov_a3 adm0_dif level type ## Length:241 Min. :0.000 Min. :2 Length:241 ## Class :character 1st Qu.:0.000 1st Qu.:2 Class :character ## Mode :character Median :0.000 Median :2 Mode :character ## Mean :0.207 Mean :2 ## 3rd Qu.:0.000 3rd Qu.:2 ## Max. :1.000 Max. :2 ## ## admin adm0_a3 geou_dif geounit ## Length:241 Length:241 Min. :0 Length:241 ## Class :character Class :character 1st Qu.:0 Class :character ## Mode :character Mode :character Median :0 Mode :character ## Mean :0 ## 3rd Qu.:0 ## Max. :0 ## ## gu_a3 su_dif subunit su_a3 ## Length:241 Min. :0.0000 Length:241 Length:241 ## Class :character 1st Qu.:0.0000 Class :character Class :character ## Mode :character Median :0.0000 Mode :character Mode :character ## Mean :0.0083 ## 3rd Qu.:0.0000 ## Max. :1.0000 ## ## brk_diff name name_long brk_a3 ## Min. :0.0000 Length:241 Length:241 Length:241 ## 1st Qu.:0.0000 Class :character Class :character Class :character ## Median :0.0000 Mode :character Mode :character Mode :character ## Mean :0.0332 ## 3rd Qu.:0.0000 ## Max. :1.0000 ## ## brk_name brk_group abbrev postal ## Length:241 Length:241 Length:241 Length:241 ## Class :character Class :character Class :character Class :character ## Mode :character Mode :character Mode :character Mode :character ## ## ## ## ## formal_en formal_fr note_adm0 note_brk ## Length:241 Length:241 Length:241 Length:241 ## Class :character Class :character Class :character Class :character ## Mode :character Mode :character Mode :character Mode :character ## ## ## ## ## name_sort name_alt mapcolor7 mapcolor8 ## Length:241 Length:241 Min. :1.00 Min. :1.00 ## Class :character Class :character 1st Qu.:2.00 1st Qu.:2.00 ## Mode :character Mode :character Median :3.00 Median :4.00 ## Mean :3.35 Mean :3.62 ## 3rd Qu.:5.00 3rd Qu.:5.00 ## Max. :7.00 Max. :8.00 ## ## mapcolor9 mapcolor13 pop_est gdp_md_est ## Min. :1.00 Min. : 1.0 Min. :3.00e+01 Min. : 0 ## 1st Qu.:2.00 1st Qu.: 3.0 1st Qu.:2.92e+05 1st Qu.: 2725 ## Median :4.00 Median : 6.0 Median :4.61e+06 Median : 20445 ## Mean :3.86 Mean : 6.3 Mean :2.85e+07 Mean : 295541 ## 3rd Qu.:6.00 3rd Qu.: 9.0 3rd Qu.:1.64e+07 3rd Qu.: 116050 ## Max. :9.00 Max. :13.0 Max. :1.34e+09 Max. :15094000 ## NA's :2 NA's :3 NA's :3 ## pop_year lastcensus gdp_year economy ## Min. : 0 Min. :1970 Min. : 0 Length:241 ## 1st Qu.: 0 1st Qu.:2002 1st Qu.: 0 Class :character ## Median : 0 Median :2008 Median : 0 Mode :character ## Mean : 574 Mean :2006 Mean : 752 ## 3rd Qu.:1004 3rd Qu.:2010 3rd Qu.:2002 ## Max. :2010 Max. :2012 Max. :2011 ## NA's :234 NA's :33 NA's :233 ## income_grp wikipedia fips_10 iso_a2 ## Length:241 Min. :0 Length:241 Length:241 ## Class :character 1st Qu.:0 Class :character Class :character ## Mode :character Median :0 Mode :character Mode :character ## Mean :0 ## 3rd Qu.:0 ## Max. :0 ## NA's :237 ## iso_a3 iso_n3 un_a3 wb_a2 ## Length:241 Length:241 Length:241 Length:241 ## Class :character Class :character Class :character Class :character ## Mode :character Mode :character Mode :character Mode :character ## ## ## ## ## wb_a3 woe_id adm0_a3_is adm0_a3_us ## Length:241 Min. : NA Length:241 Length:241 ## Class :character 1st Qu.: NA Class :character Class :character ## Mode :character Median : NA Mode :character Mode :character ## Mean :NaN ## 3rd Qu.: NA ## Max. : NA ## NA's :241 ## adm0_a3_un adm0_a3_wb continent region_un ## Min. : NA Min. : NA Length:241 Length:241 ## 1st Qu.: NA 1st Qu.: NA Class :character Class :character ## Median : NA Median : NA Mode :character Mode :character ## Mean :NaN Mean :NaN ## 3rd Qu.: NA 3rd Qu.: NA ## Max. : NA Max. : NA ## NA's :241 NA's :241 ## subregion region_wb name_len long_len ## Length:241 Length:241 Min. : 4.00 Min. : 4.0 ## Class :character Class :character 1st Qu.: 6.00 1st Qu.: 6.0 ## Mode :character Mode :character Median : 8.00 Median : 8.0 ## Mean : 8.91 Mean :10.1 ## 3rd Qu.:10.00 3rd Qu.:11.0 ## Max. :25.00 Max. :40.0 ## ## abbrev_len tiny homepart geometry ## Min. : 3.00 Min. :2.00 Min. :1 MULTIPOLYGON :241 ## 1st Qu.: 4.00 1st Qu.:2.00 1st Qu.:1 epsg:NA : 0 ## Median : 5.00 Median :3.00 Median :1 +proj=long...: 0 ## Mean : 5.08 Mean :3.31 Mean :1 ## 3rd Qu.: 6.00 3rd Qu.:4.00 3rd Qu.:1 ## Max. :13.00 Max. :6.00 Max. :1 ## NA's :186 NA's :41 summary(getNodesAttr(worldgraph.10k)) ## habitat ## deselected land: 290 ## land :2632 ## sea :7320 newGraph <- extractFromLayer(worldgraph.10k, layer = world.countries, attr = c(\"continent\", \"name\")) ## although coordinates are longitude/latitude, st_intersects assumes that they ## are planar 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 Antarctica #FF0000 ## 3 Saudi Arabia #FF0B00 ## 4 Yemen #FF1500 ## 5 Somalia #FF2000 ## 6 China #FF2A00 tail(colMat) ## name color ## 141 Latvia #FF003F ## 142 Belarus #FF0035 ## 143 Eritrea #FF002A ## 144 Djibouti #FF0020 ## 145 Somaliland #FF0015 ## 146 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 ## 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 Ababa, 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 Ababa 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 Ababa\", 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 Ababa\", 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 (2024). geoGraph: Walking geographic space using graphs. R package version 1.1.1.9003, 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 = {2024}, note = {R package version 1.1.1.9003, 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, vertex 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 around 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) #> Spherical geometry (s2) switched off 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 template 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, based 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 sf (see sf::st_read() import GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available. attr character vector giving names variables extracted layer. '', available variables extracted. case problem, available names displayed error message.","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) ## retrieve continent info for all nodes ## (might take a few seconds) x <- extractFromLayer(worldgraph.10k, layer = \"world\", 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 sf (see sf::st_read() import GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available. 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 12.13412 15.06188 #> 2 113.95975 13.63283 #> 3 -124.85506 -64.32546 #> ... #> #> @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) #> although coordinates are longitude/latitude, st_intersects assumes that they #> are planar obj # note: new node attribute #> #> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes #> lon lat #> 1 12.13412 15.06188 #> 2 113.95975 13.63283 #> 3 -124.85506 -64.32546 #> ... #> #> @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$colors <- 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 according 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 (almost perfectly) equal sizes. Two different resolutions provided: - worldgraph.10k: coverage using 10,000 nodes - worldgraph.40k: coverage using 40,000 nodes 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\" #> #> $`965` #> character(0) #> #> $`1027` #> [1] \"707\" \"1347\" \"1028\" \"9950\" \"9951\" \"1348\" #> #> $`1028` #> [1] \"1348\" \"1029\" \"1027\" \"707\" \"1349\" #> #> $`1029` #> [1] \"1349\" \"1028\" \"1350\" #> #> $`1285` #> character(0) #> #> $`1286` #> character(0) #> #> $`1347` #> [1] \"1027\" \"1667\" \"1348\" \"9950\" \"1668\" #> #> $`1348` #> [1] \"1028\" \"1668\" \"1349\" \"1347\" \"1027\" \"1669\" #> #> $`1349` #> [1] \"1029\" \"1669\" \"1350\" \"1348\" \"1028\" \"1670\" #> #> $`1350` #> [1] \"1670\" \"1349\" \"1029\" \"1671\" #> #> $`1605` #> character(0) #> #> $`1606` #> character(0) #> #> $`1607` #> character(0) #> #> $`1667` #> [1] \"1347\" \"1987\" \"1668\" \"9948\" \"1988\" #> #> $`1668` #> [1] \"1348\" \"1988\" \"1669\" \"1667\" \"1347\" \"1989\" #> #> $`1669` #> [1] \"1349\" \"1989\" \"1670\" \"1668\" \"1348\" \"1990\" #> #> $`1670` #> [1] \"1350\" \"1990\" \"1671\" \"1669\" \"1349\" \"1991\" #> #> $`1671` #> [1] \"1991\" \"1670\" \"1350\" \"1992\" #> #> $`1925` #> character(0) #> #> $`1926` #> character(0) #> #> $`1927` #> character(0) #> #> $`1928` #> character(0) #> #> $`1987` #> [1] \"1667\" \"1988\" \"9947\" \"9948\" \"2308\" #> #> $`1988` #> [1] \"1668\" \"2308\" \"1989\" \"1987\" \"1667\" \"2309\" #> #> $`1989` #> [1] \"1669\" \"2309\" \"1990\" \"1988\" \"1668\" \"2310\" #> #> $`1990` #> [1] \"1670\" \"2310\" \"1991\" \"1989\" \"1669\" \"2311\" #> #> $`1991` #> [1] \"1671\" \"2311\" \"1992\" \"1990\" \"1670\" \"2312\" #> #> $`1992` #> [1] \"2312\" \"1991\" \"1671\" \"2313\" #> #> $`2245` #> character(0) #> #> $`2246` #> character(0) #> #> $`2247` #> character(0) #> #> $`2248` #> character(0) #> #> $`2249` #> character(0) #> #> $`2250` #> character(0) #> #> $`2307` #> character(0) #> #> $`2308` #> [1] \"1988\" \"2309\" \"1987\" \"2629\" #> #> $`2309` #> [1] \"1989\" \"2629\" \"2310\" \"2308\" \"1988\" \"2630\" #> #> $`2310` #> [1] \"1990\" \"2630\" \"2311\" \"2309\" \"1989\" \"2631\" #> #> $`2311` #> [1] \"1991\" \"2631\" \"2312\" \"2310\" \"1990\" \"2632\" #> #> $`2312` #> [1] \"1992\" \"2632\" \"2313\" \"2311\" \"1991\" \"2633\" #> #> $`2313` #> [1] \"2633\" \"2314\" \"2312\" \"1992\" \"2634\" #> #> $`2314` #> [1] \"2634\" \"2313\" \"2635\" #> #> $`2565` #> character(0) #> #> $`2566` #> character(0) #> #> $`2567` #> character(0) #> #> $`2568` #> character(0) #> #> $`2569` #> character(0) #> #> $`2570` #> character(0) #> #> $`2571` #> character(0) #> #> $`2627` #> character(0) #> #> $`2628` #> character(0) #> #> $`2629` #> [1] \"2309\" \"2949\" \"2630\" \"2308\" \"2950\" #> #> $`2630` #> [1] \"2310\" \"2950\" \"2631\" \"2629\" \"2309\" \"2951\" #> #> $`2631` #> [1] \"2311\" \"2951\" \"2632\" \"2630\" \"2310\" #> #> $`2632` #> [1] \"2312\" \"2633\" \"2631\" \"2311\" \"2953\" #> #> $`2633` #> [1] \"2313\" \"2953\" \"2634\" \"2632\" \"2312\" \"2954\" #> #> $`2634` #> [1] \"2314\" \"2954\" \"2635\" \"2633\" \"2313\" \"2955\" #> #> $`2635` #> [1] \"2955\" \"2634\" \"2314\" \"2956\" #> #> $`2885` #> character(0) #> #> $`2886` #> character(0) #> #> $`2887` #> character(0) #> #> $`2888` #> character(0) #> #> $`2889` #> character(0) #> #> $`2890` #> character(0) #> #> $`2891` #> character(0) #> #> $`2892` #> character(0) #> #> $`2947` #> [1] \"3267\" \"2948\" \"3268\" #> #> $`2948` #> [1] \"3268\" \"2949\" \"2947\" \"3269\" #> #> $`2949` #> [1] \"2629\" \"3269\" \"2950\" \"2948\" \"3270\" #> #> $`2950` #> [1] \"2630\" \"3270\" \"2951\" \"2949\" \"2629\" #> #> $`2951` #> [1] \"2631\" \"2950\" \"2630\" #> #> $`2952` #> character(0) #> #> $`2953` #> [1] \"2633\" \"2954\" \"2632\" \"3274\" #> #> $`2954` #> [1] \"2634\" \"3274\" \"2955\" \"2953\" \"2633\" \"3275\" #> #> $`2955` #> [1] \"2635\" \"3275\" \"2956\" \"2954\" \"2634\" \"3276\" #> #> $`2956` #> [1] \"3276\" \"2955\" \"2635\" \"3277\" #> #> $`3205` #> character(0) #> #> $`3206` #> character(0) #> #> $`3207` #> character(0) #> #> $`3208` #> character(0) #> #> $`3209` #> character(0) #> #> $`3210` #> character(0) #> #> $`3211` #> character(0) #> #> $`3212` #> character(0) #> #> $`3213` #> character(0) #> #> $`3267` #> [1] \"2947\" \"3587\" \"3268\" \"9943\" \"3588\" #> #> $`3268` #> [1] \"2948\" \"3588\" \"3269\" \"3267\" \"2947\" \"3589\" #> #> $`3269` #> [1] \"2949\" \"3589\" \"3270\" \"3268\" \"2948\" #> #> $`3270` #> [1] \"2950\" \"3269\" \"2949\" #> #> $`3271` #> character(0) #> #> $`3272` #> character(0) #> #> $`3273` #> character(0) #> #> $`3274` #> [1] \"2954\" \"3594\" \"3275\" \"2953\" \"3595\" #> #> $`3275` #> [1] \"2955\" \"3595\" \"3276\" \"3274\" \"2954\" \"3596\" #> #> $`3276` #> [1] \"2956\" \"3596\" \"3277\" \"3275\" \"2955\" #> #> $`3277` #> [1] \"3276\" \"2956\" #> #> $`3525` #> character(0) #> #> $`3526` #> character(0) #> #> $`3527` #> character(0) #> #> $`3528` #> character(0) #> #> $`3529` #> character(0) #> #> $`3530` #> character(0) #> #> $`3531` #> character(0) #> #> $`3532` #> character(0) #> #> $`3533` #> character(0) #> #> $`3534` #> [1] \"3855\" #> #> $`3587` #> [1] \"3267\" \"3907\" \"3588\" \"9942\" \"9943\" \"3908\" #> #> $`3588` #> [1] \"3268\" \"3908\" \"3589\" \"3587\" \"3267\" \"3909\" #> #> $`3589` #> [1] \"3269\" \"3909\" \"3588\" \"3268\" \"3910\" #> #> $`3590` #> character(0) #> #> $`3591` #> character(0) #> #> $`3592` #> character(0) #> #> $`3593` #> [1] \"3913\" \"3594\" \"3914\" #> #> $`3594` #> [1] \"3274\" \"3914\" \"3595\" \"3593\" \"3915\" #> #> $`3595` #> [1] \"3275\" \"3915\" \"3596\" \"3594\" \"3274\" \"3916\" #> #> $`3596` #> [1] \"3276\" \"3916\" \"3595\" \"3275\" #> #> $`3845` #> character(0) #> #> $`3846` #> character(0) #> #> $`3847` #> character(0) #> #> $`3848` #> character(0) #> #> $`3849` #> character(0) #> #> $`3850` #> character(0) #> #> $`3851` #> character(0) #> #> $`3852` #> character(0) #> #> $`3853` #> character(0) #> #> $`3854` #> character(0) #> #> $`3855` #> [1] \"4175\" \"3534\" \"4176\" #> #> $`3907` #> [1] \"3587\" \"4227\" \"3908\" \"9941\" \"9942\" \"4228\" #> #> $`3908` #> [1] \"3588\" \"4228\" \"3909\" \"3907\" \"3587\" \"4229\" #> #> $`3909` #> [1] \"3589\" \"4229\" \"3910\" \"3908\" \"3588\" \"4230\" #> #> $`3910` #> [1] \"4230\" \"3909\" \"3589\" \"4231\" #> #> $`3911` #> character(0) #> #> $`3912` #> [1] \"4232\" \"3913\" \"4233\" #> #> $`3913` #> [1] \"3593\" \"4233\" \"3914\" \"3912\" \"4234\" #> #> $`3914` #> [1] \"3594\" \"4234\" \"3915\" \"3913\" \"3593\" \"4235\" #> #> $`3915` #> [1] \"3595\" \"4235\" \"3916\" \"3914\" \"3594\" #> #> $`3916` #> [1] \"3596\" \"3915\" \"3595\" #> #> $`4164` #> character(0) #> #> $`4165` #> character(0) #> #> $`4166` #> character(0) #> #> $`4167` #> character(0) #> #> $`4168` #> character(0) #> #> $`4169` #> character(0) #> #> $`4170` #> character(0) #> #> $`4171` #> character(0) #> #> $`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\" \"4548\" #> #> $`4228` #> [1] \"3908\" \"4548\" \"4229\" \"4227\" \"3907\" \"4549\" #> #> $`4229` #> [1] \"3909\" \"4549\" \"4230\" \"4228\" \"3908\" \"4550\" #> #> $`4230` #> [1] \"3910\" \"4550\" \"4231\" \"4229\" \"3909\" \"4551\" #> #> $`4231` #> [1] \"4551\" \"4232\" \"4230\" \"3910\" \"4552\" #> #> $`4232` #> [1] \"3912\" \"4552\" \"4233\" \"4231\" \"4553\" #> #> $`4233` #> [1] \"3913\" \"4553\" \"4234\" \"4232\" \"3912\" \"4554\" #> #> $`4234` #> [1] \"3914\" \"4554\" \"4235\" \"4233\" \"3913\" \"4555\" #> #> $`4235` #> [1] \"3915\" \"4555\" \"4234\" \"3914\" #> #> $`4484` #> character(0) #> #> $`4485` #> character(0) #> #> $`4486` #> character(0) #> #> $`4487` #> character(0) #> #> $`4488` #> character(0) #> #> $`4489` #> character(0) #> #> $`4490` #> character(0) #> #> $`4491` #> character(0) #> #> $`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\" \"4548\" \"9939\" \"9940\" \"4868\" #> #> $`4548` #> [1] \"4228\" \"4868\" \"4549\" \"4547\" \"4227\" \"4869\" #> #> $`4549` #> [1] \"4229\" \"4869\" \"4550\" \"4548\" \"4228\" \"4870\" #> #> $`4550` #> [1] \"4230\" \"4870\" \"4551\" \"4549\" \"4229\" \"4871\" #> #> $`4551` #> [1] \"4231\" \"4871\" \"4552\" \"4550\" \"4230\" \"4872\" #> #> $`4552` #> [1] \"4232\" \"4872\" \"4553\" \"4551\" \"4231\" \"4873\" #> #> $`4553` #> [1] \"4233\" \"4873\" \"4554\" \"4552\" \"4232\" \"4874\" #> #> $`4554` #> [1] \"4234\" \"4874\" \"4555\" \"4553\" \"4233\" #> #> $`4555` #> [1] \"4235\" \"4554\" \"4234\" #> #> $`4804` #> character(0) #> #> $`4805` #> character(0) #> #> $`4806` #> character(0) #> #> $`4807` #> character(0) #> #> $`4808` #> character(0) #> #> $`4809` #> character(0) #> #> $`4810` #> character(0) #> #> $`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\" \"4868\" \"9938\" \"9939\" \"5188\" #> #> $`4868` #> [1] \"4548\" \"5188\" \"4869\" \"4867\" \"4547\" \"5189\" #> #> $`4869` #> [1] \"4549\" \"5189\" \"4870\" \"4868\" \"4548\" \"5190\" #> #> $`4870` #> [1] \"4550\" \"5190\" \"4871\" \"4869\" \"4549\" \"5191\" #> #> $`4871` #> [1] \"4551\" \"5191\" \"4872\" \"4870\" \"4550\" \"5192\" #> #> $`4872` #> [1] \"4552\" \"5192\" \"4873\" \"4871\" \"4551\" \"5193\" #> #> $`4873` #> [1] \"4553\" \"5193\" \"4874\" \"4872\" \"4552\" \"5194\" #> #> $`4874` #> [1] \"4554\" \"5194\" \"4873\" \"4553\" #> #> $`5124` #> character(0) #> #> $`5125` #> character(0) #> #> $`5126` #> character(0) #> #> $`5127` #> character(0) #> #> $`5128` #> character(0) #> #> $`5129` #> character(0) #> #> $`5130` #> character(0) #> #> $`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\" \"5188\" \"9937\" \"9938\" \"5508\" #> #> $`5188` #> [1] \"4868\" \"5508\" \"5189\" \"5187\" \"4867\" \"5509\" #> #> $`5189` #> [1] \"4869\" \"5509\" \"5190\" \"5188\" \"4868\" \"5510\" #> #> $`5190` #> [1] \"4870\" \"5510\" \"5191\" \"5189\" \"4869\" \"5511\" #> #> $`5191` #> [1] \"4871\" \"5511\" \"5192\" \"5190\" \"4870\" \"5512\" #> #> $`5192` #> [1] \"4872\" \"5512\" \"5193\" \"5191\" \"4871\" \"5513\" #> #> $`5193` #> [1] \"4873\" \"5513\" \"5194\" \"5192\" \"4872\" #> #> $`5194` #> [1] \"4874\" \"5193\" \"4873\" #> #> $`5444` #> character(0) #> #> $`5445` #> character(0) #> #> $`5446` #> character(0) #> #> $`5447` #> character(0) #> #> $`5448` #> character(0) #> #> $`5449` #> character(0) #> #> $`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\" \"5508\" \"9936\" \"9937\" \"5828\" #> #> $`5508` #> [1] \"5188\" \"5828\" \"5509\" \"5507\" \"5187\" \"5829\" #> #> $`5509` #> [1] \"5189\" \"5829\" \"5510\" \"5508\" \"5188\" \"5830\" #> #> $`5510` #> [1] \"5190\" \"5830\" \"5511\" \"5509\" \"5189\" \"5831\" #> #> $`5511` #> [1] \"5191\" \"5831\" \"5512\" \"5510\" \"5190\" \"5832\" #> #> $`5512` #> [1] \"5192\" \"5832\" \"5513\" \"5511\" \"5191\" \"5833\" #> #> $`5513` #> [1] \"5193\" \"5833\" \"5512\" \"5192\" #> #> $`5764` #> character(0) #> #> $`5765` #> character(0) #> #> $`5766` #> character(0) #> #> $`5767` #> character(0) #> #> $`5768` #> character(0) #> #> $`5769` #> character(0) #> #> $`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\" \"5828\" \"9935\" \"9936\" \"6148\" #> #> $`5828` #> [1] \"5508\" \"6148\" \"5829\" \"5827\" \"5507\" \"6149\" #> #> $`5829` #> [1] \"5509\" \"6149\" \"5830\" \"5828\" \"5508\" \"6150\" #> #> $`5830` #> [1] \"5510\" \"6150\" \"5831\" \"5829\" \"5509\" \"6151\" #> #> $`5831` #> [1] \"5511\" \"6151\" \"5832\" \"5830\" \"5510\" \"6152\" #> #> $`5832` #> [1] \"5512\" \"6152\" \"5833\" \"5831\" \"5511\" #> #> $`5833` #> [1] \"5513\" \"5832\" \"5512\" #> #> $`6084` #> character(0) #> #> $`6085` #> character(0) #> #> $`6086` #> character(0) #> #> $`6087` #> character(0) #> #> $`6088` #> character(0) #> #> $`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\" \"6148\" \"9935\" \"6468\" #> #> $`6148` #> [1] \"5828\" \"6468\" \"6149\" \"6147\" \"5827\" \"6469\" #> #> $`6149` #> [1] \"5829\" \"6469\" \"6150\" \"6148\" \"5828\" \"6470\" #> #> $`6150` #> [1] \"5830\" \"6470\" \"6151\" \"6149\" \"5829\" \"6471\" #> #> $`6151` #> [1] \"5831\" \"6471\" \"6152\" \"6150\" \"5830\" \"6472\" #> #> $`6152` #> [1] \"5832\" \"6472\" \"6151\" \"5831\" #> #> $`6404` #> character(0) #> #> $`6405` #> character(0) #> #> $`6406` #> character(0) #> #> $`6407` #> character(0) #> #> $`6408` #> character(0) #> #> $`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\" \"6468\" \"9933\" #> #> $`6468` #> [1] \"6148\" \"6469\" \"6467\" \"6147\" \"6789\" #> #> $`6469` #> [1] \"6149\" \"6789\" \"6470\" \"6468\" \"6148\" \"6790\" #> #> $`6470` #> [1] \"6150\" \"6790\" \"6471\" \"6469\" \"6149\" \"6791\" #> #> $`6471` #> [1] \"6151\" \"6791\" \"6472\" \"6470\" \"6150\" #> #> $`6472` #> [1] \"6152\" \"6471\" \"6151\" #> #> $`6724` #> character(0) #> #> $`6725` #> character(0) #> #> $`6726` #> character(0) #> #> $`6727` #> character(0) #> #> $`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) #> #> $`6788` #> character(0) #> #> $`6789` #> [1] \"6469\" \"7109\" \"6790\" \"6468\" \"7110\" #> #> $`6790` #> [1] \"6470\" \"7110\" \"6791\" \"6789\" \"6469\" \"7111\" #> #> $`6791` #> [1] \"6471\" \"7111\" \"6790\" \"6470\" #> #> $`7044` #> [1] \"7364\" #> #> $`7045` #> character(0) #> #> $`7046` #> character(0) #> #> $`7047` #> 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) #> #> $`7108` #> character(0) #> #> $`7109` #> [1] \"6789\" \"7110\" #> #> $`7110` #> [1] \"6790\" \"7111\" \"7109\" \"6789\" #> #> $`7111` #> [1] \"6791\" \"7110\" \"6790\" #> #> $`7363` #> [1] \"7683\" \"7364\" \"7684\" #> #> $`7364` #> [1] \"7044\" \"7684\" \"7363\" #> #> $`7365` #> character(0) #> #> $`7366` #> 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\" #> #> $`7427` #> character(0) #> #> $`7428` #> character(0) #> #> $`7429` #> character(0) #> #> $`7430` #> character(0) #> #> $`7683` #> [1] \"7363\" \"8003\" \"7684\" #> #> $`7684` #> [1] \"7364\" \"7683\" \"7363\" #> #> $`7685` #> character(0) #> #> $`7686` #> character(0) #> #> $`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) #> #> $`7747` #> character(0) #> #> $`7748` #> character(0) #> #> $`7749` #> character(0) #> #> $`7750` #> character(0) #> #> $`8003` #> [1] \"7683\" #> #> $`8004` #> character(0) #> #> $`8005` #> 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\" #> #> $`8067` #> character(0) #> #> $`8068` #> character(0) #> #> $`8069` #> character(0) #> #> $`8324` #> character(0) #> #> $`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\" #> #> $`8388` #> character(0) #> #> $`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\" \"1029\" #> [13,] \"1028\" \"1027\" #> [14,] \"1028\" \"707\" #> [15,] \"1028\" \"1349\" #> [16,] \"1029\" \"1349\" #> [17,] \"1029\" \"1028\" #> [18,] \"1029\" \"1350\" #> [19,] \"1347\" \"1027\" #> [20,] \"1347\" \"1667\" #> [21,] \"1347\" \"1348\" #> [22,] \"1347\" \"9950\" #> [23,] \"1347\" \"1668\" #> [24,] \"1348\" \"1028\" #> [25,] \"1348\" \"1668\" #> [26,] \"1348\" \"1349\" #> [27,] \"1348\" \"1347\" #> [28,] \"1348\" \"1027\" #> [29,] \"1348\" \"1669\" #> [30,] \"1349\" \"1029\" #> [31,] \"1349\" \"1669\" #> [32,] \"1349\" \"1350\" #> [33,] \"1349\" \"1348\" #> [34,] \"1349\" \"1028\" #> [35,] \"1349\" \"1670\" #> [36,] \"1350\" \"1670\" #> [37,] \"1350\" \"1349\" #> [38,] \"1350\" \"1029\" #> [39,] \"1350\" \"1671\" #> [40,] \"1667\" \"1347\" #> [41,] \"1667\" \"1987\" #> [42,] \"1667\" \"1668\" #> [43,] \"1667\" \"9948\" #> [44,] \"1667\" \"1988\" #> [45,] \"1668\" \"1348\" #> [46,] \"1668\" \"1988\" #> [47,] \"1668\" \"1669\" #> [48,] \"1668\" \"1667\" #> [49,] \"1668\" \"1347\" #> [50,] \"1668\" \"1989\" #> [51,] \"1669\" \"1349\" #> [52,] \"1669\" \"1989\" #> [53,] \"1669\" \"1670\" #> [54,] \"1669\" \"1668\" #> [55,] \"1669\" \"1348\" #> [56,] \"1669\" \"1990\" #> [57,] \"1670\" \"1350\" #> [58,] \"1670\" \"1990\" #> [59,] \"1670\" \"1671\" #> [60,] \"1670\" \"1669\" #> [61,] \"1670\" \"1349\" #> [62,] \"1670\" \"1991\" #> [63,] \"1671\" \"1991\" #> [64,] \"1671\" \"1670\" #> [65,] \"1671\" \"1350\" #> [66,] \"1671\" \"1992\" #> [67,] \"1987\" \"1667\" #> [68,] \"1987\" \"1988\" #> [69,] \"1987\" \"9947\" #> [70,] \"1987\" \"9948\" #> [71,] \"1987\" \"2308\" #> [72,] \"1988\" \"1668\" #> [73,] \"1988\" \"2308\" #> [74,] \"1988\" \"1989\" #> [75,] \"1988\" \"1987\" #> [76,] \"1988\" \"1667\" #> [77,] \"1988\" \"2309\" #> [78,] \"1989\" \"1669\" #> [79,] \"1989\" \"2309\" #> [80,] \"1989\" \"1990\" #> [81,] \"1989\" \"1988\" #> [82,] \"1989\" \"1668\" #> [83,] \"1989\" \"2310\" #> [84,] \"1990\" \"1670\" #> [85,] \"1990\" \"2310\" #> [86,] \"1990\" \"1991\" #> [87,] \"1990\" \"1989\" #> [88,] \"1990\" \"1669\" #> [89,] \"1990\" \"2311\" #> [90,] \"1991\" \"1671\" #> [91,] \"1991\" \"2311\" #> [92,] \"1991\" \"1992\" #> [93,] \"1991\" \"1990\" #> [94,] \"1991\" \"1670\" #> [95,] \"1991\" \"2312\" #> [96,] \"1992\" \"2312\" #> [97,] \"1992\" \"1991\" #> [98,] \"1992\" \"1671\" #> [99,] \"1992\" \"2313\" #> [100,] \"2308\" \"1988\" #> [101,] \"2308\" \"2309\" #> [102,] \"2308\" \"1987\" #> [103,] \"2308\" \"2629\" #> [104,] \"2309\" \"1989\" #> [105,] \"2309\" \"2629\" #> [106,] \"2309\" \"2310\" #> [107,] \"2309\" \"2308\" #> [108,] \"2309\" \"1988\" #> [109,] \"2309\" \"2630\" #> [110,] \"2310\" \"1990\" #> [111,] \"2310\" \"2630\" #> [112,] \"2310\" \"2311\" #> [113,] \"2310\" \"2309\" #> [114,] \"2310\" \"1989\" #> [115,] \"2310\" \"2631\" #> [116,] \"2311\" \"1991\" #> [117,] \"2311\" \"2631\" #> [118,] \"2311\" \"2312\" #> [119,] \"2311\" \"2310\" #> [120,] \"2311\" \"1990\" #> [121,] \"2311\" \"2632\" #> [122,] \"2312\" \"1992\" #> [123,] \"2312\" \"2632\" #> [124,] \"2312\" \"2313\" #> [125,] \"2312\" \"2311\" #> [126,] \"2312\" \"1991\" #> [127,] \"2312\" \"2633\" #> [128,] \"2313\" \"2633\" #> [129,] \"2313\" \"2314\" #> [130,] \"2313\" \"2312\" #> [131,] \"2313\" \"1992\" #> [132,] \"2313\" \"2634\" #> [133,] \"2314\" \"2634\" #> [134,] \"2314\" \"2313\" #> [135,] \"2314\" \"2635\" #> [136,] \"2629\" \"2309\" #> [137,] \"2629\" \"2949\" #> [138,] \"2629\" \"2630\" #> [139,] \"2629\" \"2308\" #> [140,] \"2629\" \"2950\" #> [141,] \"2630\" \"2310\" #> [142,] \"2630\" \"2950\" #> [143,] \"2630\" \"2631\" #> [144,] \"2630\" \"2629\" #> [145,] \"2630\" \"2309\" #> [146,] \"2630\" \"2951\" #> [147,] \"2631\" \"2311\" #> [148,] \"2631\" \"2951\" #> [149,] \"2631\" \"2632\" #> [150,] \"2631\" \"2630\" #> [151,] \"2631\" \"2310\" #> [152,] \"2632\" \"2312\" #> [153,] \"2632\" \"2633\" #> [154,] \"2632\" \"2631\" #> [155,] \"2632\" \"2311\" #> [156,] \"2632\" \"2953\" #> [157,] \"2633\" \"2313\" #> [158,] \"2633\" \"2953\" #> [159,] \"2633\" \"2634\" #> [160,] \"2633\" \"2632\" #> [161,] \"2633\" \"2312\" #> [162,] \"2633\" \"2954\" #> [163,] \"2634\" \"2314\" #> [164,] \"2634\" \"2954\" #> [165,] \"2634\" \"2635\" #> [166,] \"2634\" \"2633\" #> [167,] \"2634\" \"2313\" #> [168,] \"2634\" \"2955\" #> [169,] \"2635\" \"2955\" #> [170,] \"2635\" \"2634\" #> [171,] \"2635\" \"2314\" #> [172,] \"2635\" \"2956\" #> [173,] \"2947\" \"3267\" #> [174,] \"2947\" \"2948\" #> [175,] \"2947\" \"3268\" #> [176,] \"2948\" \"3268\" #> [177,] \"2948\" \"2949\" #> [178,] \"2948\" \"2947\" #> [179,] \"2948\" \"3269\" #> [180,] \"2949\" \"2629\" #> [181,] \"2949\" \"3269\" #> [182,] \"2949\" \"2950\" #> [183,] \"2949\" \"2948\" #> [184,] \"2949\" \"3270\" #> [185,] \"2950\" \"2630\" #> [186,] \"2950\" \"3270\" #> [187,] \"2950\" \"2951\" #> [188,] \"2950\" \"2949\" #> [189,] \"2950\" \"2629\" #> [190,] \"2951\" \"2631\" #> [191,] \"2951\" \"2950\" #> [192,] \"2951\" \"2630\" #> [193,] \"2953\" \"2633\" #> [194,] \"2953\" \"2954\" #> [195,] \"2953\" \"2632\" #> [196,] \"2953\" \"3274\" #> [197,] \"2954\" \"2634\" #> [198,] \"2954\" \"3274\" #> [199,] \"2954\" \"2955\" #> [200,] \"2954\" \"2953\" #> [201,] \"2954\" \"2633\" #> [202,] \"2954\" \"3275\" #> [203,] \"2955\" \"2635\" #> [204,] \"2955\" \"3275\" #> [205,] \"2955\" \"2956\" #> [206,] \"2955\" \"2954\" #> [207,] \"2955\" \"2634\" #> [208,] \"2955\" \"3276\" #> [209,] \"2956\" \"3276\" #> [210,] \"2956\" \"2955\" #> [211,] \"2956\" \"2635\" #> [212,] \"2956\" \"3277\" #> [213,] \"3267\" \"2947\" #> [214,] \"3267\" \"3587\" #> [215,] \"3267\" \"3268\" #> [216,] \"3267\" \"9943\" #> [217,] \"3267\" \"3588\" #> [218,] \"3268\" \"2948\" #> [219,] \"3268\" \"3588\" #> [220,] \"3268\" \"3269\" #> [221,] \"3268\" \"3267\" #> [222,] \"3268\" \"2947\" #> [223,] \"3268\" \"3589\" #> [224,] \"3269\" \"2949\" #> [225,] \"3269\" \"3589\" #> [226,] \"3269\" \"3270\" #> [227,] \"3269\" \"3268\" #> [228,] \"3269\" \"2948\" #> [229,] \"3270\" \"2950\" #> [230,] \"3270\" \"3269\" #> [231,] \"3270\" \"2949\" #> [232,] \"3274\" \"2954\" #> [233,] \"3274\" \"3594\" #> [234,] \"3274\" \"3275\" #> [235,] \"3274\" \"2953\" #> [236,] \"3274\" \"3595\" #> [237,] \"3275\" \"2955\" #> [238,] \"3275\" \"3595\" #> [239,] \"3275\" \"3276\" #> [240,] \"3275\" \"3274\" #> [241,] \"3275\" \"2954\" #> [242,] \"3275\" \"3596\" #> [243,] \"3276\" \"2956\" #> [244,] \"3276\" \"3596\" #> [245,] \"3276\" \"3277\" #> [246,] \"3276\" \"3275\" #> [247,] \"3276\" \"2955\" #> [248,] \"3277\" \"3276\" #> [249,] \"3277\" \"2956\" #> [250,] \"3534\" \"3855\" #> [251,] \"3587\" \"3267\" #> [252,] \"3587\" \"3907\" #> [253,] \"3587\" \"3588\" #> [254,] \"3587\" \"9942\" #> [255,] \"3587\" \"9943\" #> [256,] \"3587\" \"3908\" #> [257,] \"3588\" \"3268\" #> [258,] \"3588\" \"3908\" #> [259,] \"3588\" \"3589\" #> [260,] \"3588\" \"3587\" #> [261,] \"3588\" \"3267\" #> [262,] \"3588\" \"3909\" #> [263,] \"3589\" \"3269\" #> [264,] \"3589\" \"3909\" #> [265,] \"3589\" \"3588\" #> [266,] \"3589\" \"3268\" #> [267,] \"3589\" \"3910\" #> [268,] \"3593\" \"3913\" #> [269,] \"3593\" \"3594\" #> [270,] \"3593\" \"3914\" #> [271,] \"3594\" \"3274\" #> [272,] \"3594\" \"3914\" #> [273,] \"3594\" \"3595\" #> [274,] \"3594\" \"3593\" #> [275,] \"3594\" \"3915\" #> [276,] \"3595\" \"3275\" #> [277,] \"3595\" \"3915\" #> [278,] \"3595\" \"3596\" #> [279,] \"3595\" \"3594\" #> [280,] \"3595\" \"3274\" #> [281,] \"3595\" \"3916\" #> [282,] \"3596\" \"3276\" #> [283,] \"3596\" \"3916\" #> [284,] \"3596\" \"3595\" #> [285,] \"3596\" \"3275\" #> [286,] \"3855\" \"4175\" #> [287,] \"3855\" \"3534\" #> [288,] \"3855\" \"4176\" #> [289,] \"3907\" \"3587\" #> [290,] \"3907\" \"4227\" #> [291,] \"3907\" \"3908\" #> [292,] \"3907\" \"9941\" #> [293,] \"3907\" \"9942\" #> [294,] \"3907\" \"4228\" #> [295,] \"3908\" \"3588\" #> [296,] \"3908\" \"4228\" #> [297,] \"3908\" \"3909\" #> [298,] \"3908\" \"3907\" #> [299,] \"3908\" \"3587\" #> [300,] \"3908\" \"4229\" #> [301,] \"3909\" \"3589\" #> [302,] \"3909\" \"4229\" #> [303,] \"3909\" \"3910\" #> [304,] \"3909\" \"3908\" #> [305,] \"3909\" \"3588\" #> [306,] \"3909\" \"4230\" #> [307,] \"3910\" \"4230\" #> [308,] \"3910\" \"3909\" #> [309,] \"3910\" \"3589\" #> [310,] \"3910\" \"4231\" #> [311,] \"3912\" \"4232\" #> [312,] \"3912\" \"3913\" #> [313,] \"3912\" \"4233\" #> [314,] \"3913\" \"3593\" #> [315,] \"3913\" \"4233\" #> [316,] \"3913\" \"3914\" #> [317,] \"3913\" \"3912\" #> [318,] \"3913\" \"4234\" #> [319,] \"3914\" \"3594\" #> [320,] \"3914\" \"4234\" #> [321,] \"3914\" \"3915\" #> [322,] \"3914\" \"3913\" #> [323,] \"3914\" \"3593\" #> [324,] \"3914\" \"4235\" #> [325,] \"3915\" \"3595\" #> [326,] \"3915\" \"4235\" #> [327,] \"3915\" \"3916\" #> [328,] \"3915\" \"3914\" #> [329,] \"3915\" \"3594\" #> [330,] \"3916\" \"3596\" #> [331,] \"3916\" \"3915\" #> [332,] \"3916\" \"3595\" #> [333,] \"4175\" \"3855\" #> [334,] \"4175\" \"4176\" #> [335,] \"4175\" \"4496\" #> [336,] \"4176\" \"4496\" #> [337,] \"4176\" \"4175\" #> [338,] \"4176\" \"3855\" #> [339,] \"4176\" \"4497\" #> [340,] \"4227\" \"3907\" #> [341,] \"4227\" \"4547\" #> [342,] \"4227\" \"4228\" #> [343,] \"4227\" \"9940\" #> [344,] \"4227\" \"9941\" #> [345,] \"4227\" \"4548\" #> [346,] \"4228\" \"3908\" #> [347,] \"4228\" \"4548\" #> [348,] \"4228\" \"4229\" #> [349,] \"4228\" \"4227\" #> [350,] \"4228\" \"3907\" #> [351,] \"4228\" \"4549\" #> [352,] \"4229\" \"3909\" #> [353,] \"4229\" \"4549\" #> [354,] \"4229\" \"4230\" #> [355,] \"4229\" \"4228\" #> [356,] \"4229\" \"3908\" #> [357,] \"4229\" \"4550\" #> [358,] \"4230\" \"3910\" #> [359,] \"4230\" \"4550\" #> [360,] \"4230\" \"4231\" #> [361,] \"4230\" \"4229\" #> [362,] \"4230\" \"3909\" #> [363,] \"4230\" \"4551\" #> [364,] \"4231\" \"4551\" #> [365,] \"4231\" \"4232\" #> [366,] \"4231\" \"4230\" #> [367,] \"4231\" \"3910\" #> [368,] \"4231\" \"4552\" #> [369,] \"4232\" \"3912\" #> [370,] \"4232\" \"4552\" #> [371,] \"4232\" \"4233\" #> [372,] \"4232\" \"4231\" #> [373,] \"4232\" \"4553\" #> [374,] \"4233\" \"3913\" #> [375,] \"4233\" \"4553\" #> [376,] \"4233\" \"4234\" #> [377,] \"4233\" \"4232\" #> [378,] \"4233\" \"3912\" #> [379,] \"4233\" \"4554\" #> [380,] \"4234\" \"3914\" #> [381,] \"4234\" \"4554\" #> [382,] \"4234\" \"4235\" #> [383,] \"4234\" \"4233\" #> [384,] \"4234\" \"3913\" #> [385,] \"4234\" \"4555\" #> [386,] \"4235\" \"3915\" #> [387,] \"4235\" \"4555\" #> [388,] \"4235\" \"4234\" #> [389,] \"4235\" \"3914\" #> [390,] \"4493\" \"4813\" #> [391,] \"4493\" \"4494\" #> [392,] \"4493\" \"4814\" #> [393,] \"4494\" \"4814\" #> [394,] \"4494\" \"4493\" #> [395,] \"4494\" \"4815\" #> [396,] \"4496\" \"4176\" #> [397,] \"4496\" \"4497\" #> [398,] \"4496\" \"4175\" #> [399,] \"4496\" \"4817\" #> [400,] \"4497\" \"4817\" #> [401,] \"4497\" \"4496\" #> [402,] \"4497\" \"4176\" #> [403,] \"4497\" \"4818\" #> [404,] \"4547\" \"4227\" #> [405,] \"4547\" \"4867\" #> [406,] \"4547\" \"4548\" #> [407,] \"4547\" \"9939\" #> [408,] \"4547\" \"9940\" #> [409,] \"4547\" \"4868\" #> [410,] \"4548\" \"4228\" #> [411,] \"4548\" \"4868\" #> [412,] \"4548\" \"4549\" #> [413,] \"4548\" \"4547\" #> [414,] \"4548\" \"4227\" #> [415,] \"4548\" \"4869\" #> [416,] \"4549\" \"4229\" #> [417,] \"4549\" \"4869\" #> [418,] \"4549\" \"4550\" #> [419,] \"4549\" \"4548\" #> [420,] \"4549\" \"4228\" #> [421,] \"4549\" \"4870\" #> [422,] \"4550\" \"4230\" #> [423,] \"4550\" \"4870\" #> [424,] \"4550\" \"4551\" #> [425,] \"4550\" \"4549\" #> [426,] \"4550\" \"4229\" #> [427,] \"4550\" \"4871\" #> [428,] \"4551\" \"4231\" #> [429,] \"4551\" \"4871\" #> [430,] \"4551\" \"4552\" #> [431,] \"4551\" \"4550\" #> [432,] \"4551\" \"4230\" #> [433,] \"4551\" \"4872\" #> [434,] \"4552\" \"4232\" #> [435,] \"4552\" \"4872\" #> [436,] \"4552\" \"4553\" #> [437,] \"4552\" \"4551\" #> [438,] \"4552\" \"4231\" #> [439,] \"4552\" \"4873\" #> [440,] \"4553\" \"4233\" #> [441,] \"4553\" \"4873\" #> [442,] \"4553\" \"4554\" #> [443,] \"4553\" \"4552\" #> [444,] \"4553\" \"4232\" #> [445,] \"4553\" \"4874\" #> [446,] \"4554\" \"4234\" #> [447,] \"4554\" \"4874\" #> [448,] \"4554\" \"4555\" #> [449,] \"4554\" \"4553\" #> [450,] \"4554\" \"4233\" #> [451,] \"4555\" \"4235\" #> [452,] \"4555\" \"4554\" #> [453,] \"4555\" \"4234\" #> [454,] \"4813\" \"4493\" #> [455,] \"4813\" \"4814\" #> [456,] \"4813\" \"5134\" #> [457,] \"4814\" \"4494\" #> [458,] \"4814\" \"5134\" #> [459,] \"4814\" \"4815\" #> [460,] \"4814\" \"4813\" #> [461,] \"4814\" \"4493\" #> [462,] \"4814\" \"5135\" #> [463,] \"4815\" \"5135\" #> [464,] \"4815\" \"4814\" #> [465,] \"4815\" \"4494\" #> [466,] \"4815\" \"5136\" #> [467,] \"4817\" \"4497\" #> [468,] \"4817\" \"5137\" #> [469,] \"4817\" \"4818\" #> [470,] \"4817\" \"4496\" #> [471,] \"4817\" \"5138\" #> [472,] \"4818\" \"5138\" #> [473,] \"4818\" \"4817\" #> [474,] \"4818\" \"4497\" #> [475,] \"4818\" \"5139\" #> [476,] \"4867\" \"4547\" #> [477,] \"4867\" \"5187\" #> [478,] \"4867\" \"4868\" #> [479,] \"4867\" \"9938\" #> [480,] \"4867\" \"9939\" #> [481,] \"4867\" \"5188\" #> [482,] \"4868\" \"4548\" #> [483,] \"4868\" \"5188\" #> [484,] \"4868\" \"4869\" #> [485,] \"4868\" \"4867\" #> [486,] \"4868\" \"4547\" #> [487,] \"4868\" \"5189\" #> [488,] \"4869\" \"4549\" #> [489,] \"4869\" \"5189\" #> [490,] \"4869\" \"4870\" #> [491,] \"4869\" \"4868\" #> [492,] \"4869\" \"4548\" #> [493,] \"4869\" \"5190\" #> [494,] \"4870\" \"4550\" #> [495,] \"4870\" \"5190\" #> [496,] \"4870\" \"4871\" #> [497,] \"4870\" \"4869\" #> [498,] \"4870\" \"4549\" #> [499,] \"4870\" \"5191\" #> [500,] \"4871\" \"4551\" #> [501,] \"4871\" \"5191\" #> [502,] \"4871\" \"4872\" #> [503,] \"4871\" \"4870\" #> [504,] \"4871\" \"4550\" #> [505,] \"4871\" \"5192\" #> [506,] \"4872\" \"4552\" #> [507,] \"4872\" \"5192\" #> [508,] \"4872\" \"4873\" #> [509,] \"4872\" \"4871\" #> [510,] \"4872\" \"4551\" #> [511,] \"4872\" \"5193\" #> [512,] \"4873\" \"4553\" #> [513,] \"4873\" \"5193\" #> [514,] \"4873\" \"4874\" #> [515,] \"4873\" \"4872\" #> [516,] \"4873\" \"4552\" #> [517,] \"4873\" \"5194\" #> [518,] \"4874\" \"4554\" #> [519,] \"4874\" \"5194\" #> [520,] \"4874\" \"4873\" #> [521,] \"4874\" \"4553\" #> [522,] \"5134\" \"4814\" #> [523,] \"5134\" \"5135\" #> [524,] \"5134\" \"4813\" #> [525,] \"5134\" \"5455\" #> [526,] \"5135\" \"4815\" #> [527,] \"5135\" \"5455\" #> [528,] \"5135\" \"5136\" #> [529,] \"5135\" \"5134\" #> [530,] \"5135\" \"4814\" #> [531,] \"5136\" \"5137\" #> [532,] \"5136\" \"5135\" #> [533,] \"5136\" \"4815\" #> [534,] \"5137\" \"4817\" #> [535,] \"5137\" \"5138\" #> [536,] \"5137\" \"5136\" #> [537,] \"5137\" \"5458\" #> [538,] \"5138\" \"4818\" #> [539,] \"5138\" \"5458\" #> [540,] \"5138\" \"5139\" #> [541,] \"5138\" \"5137\" #> [542,] \"5138\" \"4817\" #> [543,] \"5138\" \"5459\" #> [544,] \"5139\" \"5459\" #> [545,] \"5139\" \"5138\" #> [546,] \"5139\" \"4818\" #> [547,] \"5139\" \"5460\" #> [548,] \"5187\" \"4867\" #> [549,] \"5187\" \"5507\" #> [550,] \"5187\" \"5188\" #> [551,] \"5187\" \"9937\" #> [552,] \"5187\" \"9938\" #> [553,] \"5187\" \"5508\" #> [554,] \"5188\" \"4868\" #> [555,] \"5188\" \"5508\" #> [556,] \"5188\" \"5189\" #> [557,] \"5188\" \"5187\" #> [558,] \"5188\" \"4867\" #> [559,] \"5188\" \"5509\" #> [560,] \"5189\" \"4869\" #> [561,] \"5189\" \"5509\" #> [562,] \"5189\" \"5190\" #> [563,] \"5189\" \"5188\" #> [564,] \"5189\" \"4868\" #> [565,] \"5189\" \"5510\" #> [566,] \"5190\" \"4870\" #> [567,] \"5190\" \"5510\" #> [568,] \"5190\" \"5191\" #> [569,] \"5190\" \"5189\" #> [570,] \"5190\" \"4869\" #> [571,] \"5190\" \"5511\" #> [572,] \"5191\" \"4871\" #> [573,] \"5191\" \"5511\" #> [574,] \"5191\" \"5192\" #> [575,] \"5191\" \"5190\" #> [576,] \"5191\" \"4870\" #> [577,] \"5191\" \"5512\" #> [578,] \"5192\" \"4872\" #> [579,] \"5192\" \"5512\" #> [580,] \"5192\" \"5193\" #> [581,] \"5192\" \"5191\" #> [582,] \"5192\" \"4871\" #> [583,] \"5192\" \"5513\" #> [584,] \"5193\" \"4873\" #> [585,] \"5193\" \"5513\" #> [586,] \"5193\" \"5194\" #> [587,] \"5193\" \"5192\" #> [588,] \"5193\" \"4872\" #> [589,] \"5194\" \"4874\" #> [590,] \"5194\" \"5193\" #> [591,] \"5194\" \"4873\" #> [592,] \"5455\" \"5135\" #> [593,] \"5455\" \"5775\" #> [594,] \"5455\" \"5134\" #> [595,] \"5455\" \"5776\" #> [596,] \"5458\" \"5138\" #> [597,] \"5458\" \"5459\" #> [598,] \"5458\" \"5137\" #> [599,] \"5458\" \"5779\" #> [600,] \"5459\" \"5139\" #> [601,] \"5459\" \"5779\" #> [602,] \"5459\" \"5460\" #> [603,] \"5459\" \"5458\" #> [604,] \"5459\" \"5138\" #> [605,] \"5459\" \"5780\" #> [606,] \"5460\" \"5780\" #> [607,] \"5460\" \"5459\" #> [608,] \"5460\" \"5139\" #> [609,] \"5460\" \"5781\" #> [610,] \"5507\" \"5187\" #> [611,] \"5507\" \"5827\" #> [612,] \"5507\" \"5508\" #> [613,] \"5507\" \"9936\" #> [614,] \"5507\" \"9937\" #> [615,] \"5507\" \"5828\" #> [616,] \"5508\" \"5188\" #> [617,] \"5508\" \"5828\" #> [618,] \"5508\" \"5509\" #> [619,] \"5508\" \"5507\" #> [620,] \"5508\" \"5187\" #> [621,] \"5508\" \"5829\" #> [622,] \"5509\" \"5189\" #> [623,] \"5509\" \"5829\" #> [624,] \"5509\" \"5510\" #> [625,] \"5509\" \"5508\" #> [626,] \"5509\" \"5188\" #> [627,] \"5509\" \"5830\" #> [628,] \"5510\" \"5190\" #> [629,] \"5510\" \"5830\" #> [630,] \"5510\" \"5511\" #> [631,] \"5510\" \"5509\" #> [632,] \"5510\" \"5189\" #> [633,] \"5510\" \"5831\" #> [634,] \"5511\" \"5191\" #> [635,] \"5511\" \"5831\" #> [636,] \"5511\" \"5512\" #> [637,] \"5511\" \"5510\" #> [638,] \"5511\" \"5190\" #> [639,] \"5511\" \"5832\" #> [640,] \"5512\" \"5192\" #> [641,] \"5512\" \"5832\" #> [642,] \"5512\" \"5513\" #> [643,] \"5512\" \"5511\" #> [644,] \"5512\" \"5191\" #> [645,] \"5512\" \"5833\" #> [646,] \"5513\" \"5193\" #> [647,] \"5513\" \"5833\" #> [648,] \"5513\" \"5512\" #> [649,] \"5513\" \"5192\" #> [650,] \"5770\" \"6090\" #> [651,] \"5775\" \"5455\" #> [652,] \"5775\" \"6095\" #> [653,] \"5775\" \"5776\" #> [654,] \"5775\" \"6096\" #> [655,] \"5776\" \"6096\" #> [656,] \"5776\" \"5775\" #> [657,] \"5776\" \"5455\" #> [658,] \"5779\" \"5459\" #> [659,] \"5779\" \"5780\" #> [660,] \"5779\" \"5458\" #> [661,] \"5779\" \"6100\" #> [662,] \"5780\" \"5460\" #> [663,] \"5780\" \"6100\" #> [664,] \"5780\" \"5781\" #> [665,] \"5780\" \"5779\" #> [666,] \"5780\" \"5459\" #> [667,] \"5780\" \"6101\" #> [668,] \"5781\" \"6101\" #> [669,] \"5781\" \"5780\" #> [670,] \"5781\" \"5460\" #> [671,] \"5781\" \"6102\" #> [672,] \"5827\" \"5507\" #> [673,] \"5827\" \"6147\" #> [674,] \"5827\" \"5828\" #> [675,] \"5827\" \"9935\" #> [676,] \"5827\" \"9936\" #> [677,] \"5827\" \"6148\" #> [678,] \"5828\" \"5508\" #> [679,] \"5828\" \"6148\" #> [680,] \"5828\" \"5829\" #> [681,] \"5828\" \"5827\" #> [682,] \"5828\" \"5507\" #> [683,] \"5828\" \"6149\" #> [684,] \"5829\" \"5509\" #> [685,] \"5829\" \"6149\" #> [686,] \"5829\" \"5830\" #> [687,] \"5829\" \"5828\" #> [688,] \"5829\" \"5508\" #> [689,] \"5829\" \"6150\" #> [690,] \"5830\" \"5510\" #> [691,] \"5830\" \"6150\" #> [692,] \"5830\" \"5831\" #> [693,] \"5830\" \"5829\" #> [694,] \"5830\" \"5509\" #> [695,] \"5830\" \"6151\" #> [696,] \"5831\" \"5511\" #> [697,] \"5831\" \"6151\" #> [698,] \"5831\" \"5832\" #> [699,] \"5831\" \"5830\" #> [700,] \"5831\" \"5510\" #> [701,] \"5831\" \"6152\" #> [702,] \"5832\" \"5512\" #> [703,] \"5832\" \"6152\" #> [704,] \"5832\" \"5833\" #> [705,] \"5832\" \"5831\" #> [706,] \"5832\" \"5511\" #> [707,] \"5833\" \"5513\" #> [708,] \"5833\" \"5832\" #> [709,] \"5833\" \"5512\" #> [710,] \"6090\" \"5770\" #> [711,] \"6090\" \"6411\" #> [712,] \"6093\" \"6413\" #> [713,] \"6093\" \"6094\" #> [714,] \"6093\" \"6414\" #> [715,] \"6094\" \"6414\" #> [716,] \"6094\" \"6095\" #> [717,] \"6094\" \"6093\" #> [718,] \"6094\" \"6415\" #> [719,] \"6095\" \"5775\" #> [720,] \"6095\" \"6415\" #> [721,] \"6095\" \"6096\" #> [722,] \"6095\" \"6094\" #> [723,] \"6095\" \"6416\" #> [724,] \"6096\" \"5776\" #> [725,] \"6096\" \"6416\" #> [726,] \"6096\" \"6095\" #> [727,] \"6096\" \"5775\" #> [728,] \"6096\" \"6417\" #> [729,] \"6100\" \"5780\" #> [730,] \"6100\" \"6101\" #> [731,] \"6100\" \"5779\" #> [732,] \"6100\" \"6421\" #> [733,] \"6101\" \"5781\" #> [734,] \"6101\" \"6421\" #> [735,] \"6101\" \"6102\" #> [736,] \"6101\" \"6100\" #> [737,] \"6101\" \"5780\" #> [738,] \"6101\" \"6422\" #> [739,] \"6102\" \"6422\" #> [740,] \"6102\" \"6101\" #> [741,] \"6102\" \"5781\" #> [742,] \"6102\" \"6423\" #> [743,] \"6147\" \"5827\" #> [744,] \"6147\" \"6467\" #> [745,] \"6147\" \"6148\" #> [746,] \"6147\" \"9935\" #> [747,] \"6147\" \"6468\" #> [748,] \"6148\" \"5828\" #> [749,] \"6148\" \"6468\" #> [750,] \"6148\" \"6149\" #> [751,] \"6148\" \"6147\" #> [752,] \"6148\" \"5827\" #> [753,] \"6148\" \"6469\" #> [754,] \"6149\" \"5829\" #> [755,] \"6149\" \"6469\" #> [756,] \"6149\" \"6150\" #> [757,] \"6149\" \"6148\" #> [758,] \"6149\" \"5828\" #> [759,] \"6149\" \"6470\" #> [760,] \"6150\" \"5830\" #> [761,] \"6150\" \"6470\" #> [762,] \"6150\" \"6151\" #> [763,] \"6150\" \"6149\" #> [764,] \"6150\" \"5829\" #> [765,] \"6150\" \"6471\" #> [766,] \"6151\" \"5831\" #> [767,] \"6151\" \"6471\" #> [768,] \"6151\" \"6152\" #> [769,] \"6151\" \"6150\" #> [770,] \"6151\" \"5830\" #> [771,] \"6151\" \"6472\" #> [772,] \"6152\" \"5832\" #> [773,] \"6152\" \"6472\" #> [774,] \"6152\" \"6151\" #> [775,] \"6152\" \"5831\" #> [776,] \"6411\" \"6412\" #> [777,] \"6411\" \"6090\" #> [778,] \"6412\" \"6413\" #> [779,] \"6412\" \"6411\" #> [780,] \"6413\" \"6093\" #> [781,] \"6413\" \"6414\" #> [782,] \"6413\" \"6412\" #> [783,] \"6414\" \"6094\" #> [784,] \"6414\" \"6415\" #> [785,] \"6414\" \"6413\" #> [786,] \"6414\" \"6093\" #> [787,] \"6414\" \"6735\" #> [788,] \"6415\" \"6095\" #> [789,] \"6415\" \"6735\" #> [790,] \"6415\" \"6416\" #> [791,] \"6415\" \"6414\" #> [792,] \"6415\" \"6094\" #> [793,] \"6415\" \"6736\" #> [794,] \"6416\" \"6096\" #> [795,] \"6416\" \"6736\" #> [796,] \"6416\" \"6417\" #> [797,] \"6416\" \"6415\" #> [798,] \"6416\" \"6095\" #> [799,] \"6416\" \"6737\" #> [800,] \"6417\" \"6737\" #> [801,] \"6417\" \"6416\" #> [802,] \"6417\" \"6096\" #> [803,] \"6421\" \"6101\" #> [804,] \"6421\" \"6422\" #> [805,] \"6421\" \"6100\" #> [806,] \"6422\" \"6102\" #> [807,] \"6422\" \"6423\" #> [808,] \"6422\" \"6421\" #> [809,] \"6422\" \"6101\" #> [810,] \"6423\" \"6422\" #> [811,] \"6423\" \"6102\" #> [812,] \"6423\" \"6744\" #> [813,] \"6467\" \"6147\" #> [814,] \"6467\" \"6468\" #> [815,] \"6467\" \"9933\" #> [816,] \"6468\" \"6148\" #> [817,] \"6468\" \"6469\" #> [818,] \"6468\" \"6467\" #> [819,] \"6468\" \"6147\" #> [820,] \"6468\" \"6789\" #> [821,] \"6469\" \"6149\" #> [822,] \"6469\" \"6789\" #> [823,] \"6469\" \"6470\" #> [824,] \"6469\" \"6468\" #> [825,] \"6469\" \"6148\" #> [826,] \"6469\" \"6790\" #> [827,] \"6470\" \"6150\" #> [828,] \"6470\" \"6790\" #> [829,] \"6470\" \"6471\" #> [830,] \"6470\" \"6469\" #> [831,] \"6470\" \"6149\" #> [832,] \"6470\" \"6791\" #> [833,] \"6471\" \"6151\" #> [834,] \"6471\" \"6791\" #> [835,] \"6471\" \"6472\" #> [836,] \"6471\" \"6470\" #> [837,] \"6471\" \"6150\" #> [838,] \"6472\" \"6152\" #> [839,] \"6472\" \"6471\" #> [840,] \"6472\" \"6151\" #> [841,] \"6735\" \"6415\" #> [842,] \"6735\" \"7055\" #> [843,] \"6735\" \"6736\" #> [844,] \"6735\" \"6414\" #> [845,] \"6735\" \"7056\" #> [846,] \"6736\" \"6416\" #> [847,] \"6736\" \"7056\" #> [848,] \"6736\" \"6737\" #> [849,] \"6736\" \"6735\" #> [850,] \"6736\" \"6415\" #> [851,] \"6736\" \"7057\" #> [852,] \"6737\" \"6417\" #> [853,] \"6737\" \"7057\" #> [854,] \"6737\" \"6736\" #> [855,] \"6737\" \"6416\" #> [856,] \"6737\" \"7058\" #> [857,] \"6744\" \"6423\" #> [858,] \"6744\" \"7065\" #> [859,] \"6789\" \"6469\" #> [860,] \"6789\" \"7109\" #> [861,] \"6789\" \"6790\" #> [862,] \"6789\" \"6468\" #> [863,] \"6789\" \"7110\" #> [864,] \"6790\" \"6470\" #> [865,] \"6790\" \"7110\" #> [866,] \"6790\" \"6791\" #> [867,] \"6790\" \"6789\" #> [868,] \"6790\" \"6469\" #> [869,] \"6790\" \"7111\" #> [870,] \"6791\" \"6471\" #> [871,] \"6791\" \"7111\" #> [872,] \"6791\" \"6790\" #> [873,] \"6791\" \"6470\" #> [874,] \"7044\" \"7364\" #> [875,] \"7055\" \"6735\" #> [876,] \"7055\" \"7375\" #> [877,] \"7055\" \"7056\" #> [878,] \"7055\" \"7376\" #> [879,] \"7056\" \"6736\" #> [880,] \"7056\" \"7376\" #> [881,] \"7056\" \"7057\" #> [882,] \"7056\" \"7055\" #> [883,] \"7056\" \"6735\" #> [884,] \"7056\" \"7377\" #> [885,] \"7057\" \"6737\" #> [886,] \"7057\" \"7377\" #> [887,] \"7057\" \"7058\" #> [888,] \"7057\" \"7056\" #> [889,] \"7057\" \"6736\" #> [890,] \"7057\" \"7378\" #> [891,] \"7058\" \"7378\" #> [892,] \"7058\" \"7059\" #> [893,] \"7058\" \"7057\" #> [894,] \"7058\" \"6737\" #> [895,] \"7059\" \"7058\" #> [896,] \"7065\" \"6744\" #> [897,] \"7065\" \"7386\" #> [898,] \"7109\" \"6789\" #> [899,] \"7109\" \"7110\" #> [900,] \"7110\" \"6790\" #> [901,] \"7110\" \"7111\" #> [902,] \"7110\" \"7109\" #> [903,] \"7110\" \"6789\" #> [904,] \"7111\" \"6791\" #> [905,] \"7111\" \"7110\" #> [906,] \"7111\" \"6790\" #> [907,] \"7363\" \"7683\" #> [908,] \"7363\" \"7364\" #> [909,] \"7363\" \"7684\" #> [910,] \"7364\" \"7044\" #> [911,] \"7364\" \"7684\" #> [912,] \"7364\" \"7363\" #> [913,] \"7375\" \"7055\" #> [914,] \"7375\" \"7695\" #> [915,] \"7375\" \"7376\" #> [916,] \"7375\" \"7696\" #> [917,] \"7376\" \"7056\" #> [918,] \"7376\" \"7696\" #> [919,] \"7376\" \"7377\" #> [920,] \"7376\" \"7375\" #> [921,] \"7376\" \"7055\" #> [922,] \"7376\" \"7697\" #> [923,] \"7377\" \"7057\" #> [924,] \"7377\" \"7697\" #> [925,] \"7377\" \"7378\" #> [926,] \"7377\" \"7376\" #> [927,] \"7377\" \"7056\" #> [928,] \"7377\" \"7698\" #> [929,] \"7378\" \"7058\" #> [930,] \"7378\" \"7698\" #> [931,] \"7378\" \"7377\" #> [932,] \"7378\" \"7057\" #> [933,] \"7378\" \"7699\" #> [934,] \"7381\" \"7702\" #> [935,] \"7386\" \"7065\" #> [936,] \"7683\" \"7363\" #> [937,] \"7683\" \"8003\" #> [938,] \"7683\" \"7684\" #> [939,] \"7684\" \"7364\" #> [940,] \"7684\" \"7683\" #> [941,] \"7684\" \"7363\" #> [942,] \"7692\" \"8012\" #> [943,] \"7692\" \"7693\" #> [944,] \"7692\" \"8013\" #> [945,] \"7693\" \"8013\" #> [946,] \"7693\" \"7694\" #> [947,] \"7693\" \"7692\" #> [948,] \"7693\" \"8014\" #> [949,] \"7694\" \"8014\" #> [950,] \"7694\" \"7695\" #> [951,] \"7694\" \"7693\" #> [952,] \"7694\" \"8015\" #> [953,] \"7695\" \"7375\" #> [954,] \"7695\" \"8015\" #> [955,] \"7695\" \"7696\" #> [956,] \"7695\" \"7694\" #> [957,] \"7696\" \"7376\" #> [958,] \"7696\" \"7697\" #> [959,] \"7696\" \"7695\" #> [960,] \"7696\" \"7375\" #> [961,] \"7696\" \"8017\" #> [962,] \"7697\" \"7377\" #> [963,] \"7697\" \"8017\" #> [964,] \"7697\" \"7698\" #> [965,] \"7697\" \"7696\" #> [966,] \"7697\" \"7376\" #> [967,] \"7697\" \"8018\" #> [968,] \"7698\" \"7378\" #> [969,] \"7698\" \"8018\" #> [970,] \"7698\" \"7699\" #> [971,] \"7698\" \"7697\" #> [972,] \"7698\" \"7377\" #> [973,] \"7698\" \"8019\" #> [974,] \"7699\" \"8019\" #> [975,] \"7699\" \"7700\" #> [976,] \"7699\" \"7698\" #> [977,] \"7699\" \"7378\" #> [978,] \"7699\" \"8020\" #> [979,] \"7700\" \"8020\" #> [980,] \"7700\" \"7699\" #> [981,] \"7700\" \"8021\" #> [982,] \"7702\" \"8022\" #> [983,] \"7702\" \"7381\" #> [984,] \"7702\" \"8023\" #> [985,] \"8003\" \"7683\" #> [986,] \"8012\" \"7692\" #> [987,] \"8012\" \"8332\" #> [988,] \"8012\" \"8013\" #> [989,] \"8012\" \"8333\" #> [990,] \"8013\" \"7693\" #> [991,] \"8013\" \"8333\" #> [992,] \"8013\" \"8014\" #> [993,] \"8013\" \"8012\" #> [994,] \"8013\" \"7692\" #> [995,] \"8013\" \"8334\" #> [996,] \"8014\" \"7694\" #> [997,] \"8014\" \"8334\" #> [998,] \"8014\" \"8015\" #> [999,] \"8014\" \"8013\" #> [1000,] \"8014\" \"7693\" #> [1001,] \"8015\" \"7695\" #> [1002,] \"8015\" \"8014\" #> [1003,] \"8015\" \"7694\" #> [1004,] \"8017\" \"7697\" #> [1005,] \"8017\" \"8337\" #> [1006,] \"8017\" \"8018\" #> [1007,] \"8017\" \"7696\" #> [1008,] \"8017\" \"8338\" #> [1009,] \"8018\" \"7698\" #> [1010,] \"8018\" \"8338\" #> [1011,] \"8018\" \"8019\" #> [1012,] \"8018\" \"8017\" #> [1013,] \"8018\" \"7697\" #> [1014,] \"8018\" \"8339\" #> [1015,] \"8019\" \"7699\" #> [1016,] \"8019\" \"8339\" #> [1017,] \"8019\" \"8020\" #> [1018,] \"8019\" \"8018\" #> [1019,] \"8019\" \"7698\" #> [1020,] \"8019\" \"8340\" #> [1021,] \"8020\" \"7700\" #> [1022,] \"8020\" \"8340\" #> [1023,] \"8020\" \"8021\" #> [1024,] \"8020\" \"8019\" #> [1025,] \"8020\" \"7699\" #> [1026,] \"8020\" \"8341\" #> [1027,] \"8021\" \"8341\" #> [1028,] \"8021\" \"8022\" #> [1029,] \"8021\" \"8020\" #> [1030,] \"8021\" \"7700\" #> [1031,] \"8021\" \"8342\" #> [1032,] \"8022\" \"7702\" #> [1033,] \"8022\" \"8342\" #> [1034,] \"8022\" \"8023\" #> [1035,] \"8022\" \"8021\" #> [1036,] \"8022\" \"8343\" #> [1037,] \"8023\" \"8343\" #> [1038,] \"8023\" \"8022\" #> [1039,] \"8023\" \"7702\" #> [1040,] \"8027\" \"8348\" #> [1041,] \"8332\" \"8012\" #> [1042,] \"8332\" \"8652\" #> [1043,] \"8332\" \"8333\" #> [1044,] \"8332\" \"8653\" #> [1045,] \"8333\" \"8013\" #> [1046,] \"8333\" \"8653\" #> [1047,] \"8333\" \"8334\" #> [1048,] \"8333\" \"8332\" #> [1049,] \"8333\" \"8012\" #> [1050,] \"8334\" \"8014\" #> [1051,] \"8334\" \"8333\" #> [1052,] \"8334\" \"8013\" #> [1053,] \"8337\" \"8017\" #> [1054,] \"8337\" \"8657\" #> [1055,] \"8337\" \"8338\" #> [1056,] \"8337\" \"8658\" #> [1057,] \"8338\" \"8018\" #> [1058,] \"8338\" \"8658\" #> [1059,] \"8338\" \"8339\" #> [1060,] \"8338\" \"8337\" #> [1061,] \"8338\" \"8017\" #> [1062,] \"8338\" \"8659\" #> [1063,] \"8339\" \"8019\" #> [1064,] \"8339\" \"8659\" #> [1065,] \"8339\" \"8340\" #> [1066,] \"8339\" \"8338\" #> [1067,] \"8339\" \"8018\" #> [1068,] \"8339\" \"8660\" #> [1069,] \"8340\" \"8020\" #> [1070,] \"8340\" \"8660\" #> [1071,] \"8340\" \"8341\" #> [1072,] \"8340\" \"8339\" #> [1073,] \"8340\" \"8019\" #> [1074,] \"8340\" \"8661\" #> [1075,] \"8341\" \"8021\" #> [1076,] \"8341\" \"8661\" #> [1077,] \"8341\" \"8342\" #> [1078,] \"8341\" \"8340\" #> [1079,] \"8341\" \"8020\" #> [1080,] \"8341\" \"8662\" #> [1081,] \"8342\" \"8022\" #> [1082,] \"8342\" \"8662\" #> [1083,] \"8342\" \"8343\" #> [1084,] \"8342\" \"8341\" #> [1085,] \"8342\" \"8021\" #> [1086,] \"8342\" \"8663\" #> [1087,] \"8343\" \"8023\" #> [1088,] \"8343\" \"8663\" #> [1089,] \"8343\" \"8342\" #> [1090,] \"8343\" \"8022\" #> [1091,] \"8343\" \"8664\" #> [1092,] \"8348\" \"8027\" #> [1093,] \"8348\" \"8669\" #> [1094,] \"8651\" \"8971\" #> [1095,] \"8651\" \"8652\" #> [1096,] \"8651\" \"8972\" #> [1097,] \"8652\" \"8332\" #> [1098,] \"8652\" \"8972\" #> [1099,] \"8652\" \"8653\" #> [1100,] \"8652\" \"8651\" #> [1101,] \"8653\" \"8333\" #> [1102,] \"8653\" \"8652\" #> [1103,] \"8653\" \"8332\" #> [1104,] \"8653\" \"8974\" #> [1105,] \"8657\" \"8337\" #> [1106,] \"8657\" \"8977\" #> [1107,] \"8657\" \"8658\" #> [1108,] \"8657\" \"8978\" #> [1109,] \"8658\" \"8338\" #> [1110,] \"8658\" \"8978\" #> [1111,] \"8658\" \"8659\" #> [1112,] \"8658\" \"8657\" #> [1113,] \"8658\" \"8337\" #> [1114,] \"8658\" \"8979\" #> [1115,] \"8659\" \"8339\" #> [1116,] \"8659\" \"8979\" #> [1117,] \"8659\" \"8660\" #> [1118,] \"8659\" \"8658\" #> [1119,] \"8659\" \"8338\" #> [1120,] \"8659\" \"8980\" #> [1121,] \"8660\" \"8340\" #> [1122,] \"8660\" \"8980\" #> [1123,] \"8660\" \"8661\" #> [1124,] \"8660\" \"8659\" #> [1125,] \"8660\" \"8339\" #> [1126,] \"8660\" \"8981\" #> [1127,] \"8661\" \"8341\" #> [1128,] \"8661\" \"8981\" #> [1129,] \"8661\" \"8662\" #> [1130,] \"8661\" \"8660\" #> [1131,] \"8661\" \"8340\" #> [1132,] \"8661\" \"8982\" #> [1133,] \"8662\" \"8342\" #> [1134,] \"8662\" \"8982\" #> [1135,] \"8662\" \"8663\" #> [1136,] \"8662\" \"8661\" #> [1137,] \"8662\" \"8341\" #> [1138,] \"8662\" \"8983\" #> [1139,] \"8663\" \"8343\" #> [1140,] \"8663\" \"8983\" #> [1141,] \"8663\" \"8664\" #> [1142,] \"8663\" \"8662\" #> [1143,] \"8663\" \"8342\" #> [1144,] \"8663\" \"8984\" #> [1145,] \"8664\" \"8984\" #> [1146,] \"8664\" \"8663\" #> [1147,] \"8664\" \"8343\" #> [1148,] \"8669\" \"8348\" #> [1149,] \"8669\" \"8990\" #> [1150,] \"8971\" \"8651\" #> [1151,] \"8971\" \"9291\" #> [1152,] \"8971\" \"8972\" #> [1153,] \"8971\" \"9292\" #> [1154,] \"8972\" \"8652\" #> [1155,] \"8972\" \"9292\" #> [1156,] \"8972\" \"8971\" #> [1157,] \"8972\" \"8651\" #> [1158,] \"8972\" \"9293\" #> [1159,] \"8974\" \"9294\" #> [1160,] \"8974\" \"8975\" #> [1161,] \"8974\" \"8653\" #> [1162,] \"8974\" \"9295\" #> [1163,] \"8975\" \"9295\" #> [1164,] \"8975\" \"8976\" #> [1165,] \"8975\" \"8974\" #> [1166,] \"8976\" \"8977\" #> [1167,] \"8976\" \"8975\" #> [1168,] \"8976\" \"9297\" #> [1169,] \"8977\" \"8657\" #> [1170,] \"8977\" \"9297\" #> [1171,] \"8977\" \"8978\" #> [1172,] \"8977\" \"8976\" #> [1173,] \"8977\" \"9298\" #> [1174,] \"8978\" \"8658\" #> [1175,] \"8978\" \"9298\" #> [1176,] \"8978\" \"8979\" #> [1177,] \"8978\" \"8977\" #> [1178,] \"8978\" \"8657\" #> [1179,] \"8978\" \"9299\" #> [1180,] \"8979\" \"8659\" #> [1181,] \"8979\" \"9299\" #> [1182,] \"8979\" \"8980\" #> [1183,] \"8979\" \"8978\" #> [1184,] \"8979\" \"8658\" #> [1185,] \"8979\" \"9300\" #> [1186,] \"8980\" \"8660\" #> [1187,] \"8980\" \"9300\" #> [1188,] \"8980\" \"8981\" #> [1189,] \"8980\" \"8979\" #> [1190,] \"8980\" \"8659\" #> [1191,] \"8980\" \"9301\" #> [1192,] \"8981\" \"8661\" #> [1193,] \"8981\" \"9301\" #> [1194,] \"8981\" \"8982\" #> [1195,] \"8981\" \"8980\" #> [1196,] \"8981\" \"8660\" #> [1197,] \"8981\" \"9302\" #> [1198,] \"8982\" \"8662\" #> [1199,] \"8982\" \"9302\" #> [1200,] \"8982\" \"8983\" #> [1201,] \"8982\" \"8981\" #> [1202,] \"8982\" \"8661\" #> [1203,] \"8982\" \"9303\" #> [1204,] \"8983\" \"8663\" #> [1205,] \"8983\" \"9303\" #> [1206,] \"8983\" \"8984\" #> [1207,] \"8983\" \"8982\" #> [1208,] \"8983\" \"8662\" #> [1209,] \"8984\" \"8664\" #> [1210,] \"8984\" \"8983\" #> [1211,] \"8984\" \"8663\" #> [1212,] \"8986\" \"9306\" #> [1213,] \"8986\" \"9307\" #> [1214,] \"8990\" \"8669\" #> [1215,] \"9291\" \"8971\" #> [1216,] \"9291\" \"9292\" #> [1217,] \"9291\" \"9612\" #> [1218,] \"9292\" \"8972\" #> [1219,] \"9292\" \"9612\" #> [1220,] \"9292\" \"9293\" #> [1221,] \"9292\" \"9291\" #> [1222,] \"9292\" \"8971\" #> [1223,] \"9292\" \"9613\" #> [1224,] \"9293\" \"9613\" #> [1225,] \"9293\" \"9294\" #> [1226,] \"9293\" \"9292\" #> [1227,] \"9293\" \"8972\" #> [1228,] \"9293\" \"9614\" #> [1229,] \"9294\" \"8974\" #> [1230,] \"9294\" \"9614\" #> [1231,] \"9294\" \"9295\" #> [1232,] \"9294\" \"9293\" #> [1233,] \"9294\" \"9615\" #> [1234,] \"9295\" \"8975\" #> [1235,] \"9295\" \"9615\" #> [1236,] \"9295\" \"9294\" #> [1237,] \"9295\" \"8974\" #> [1238,] \"9295\" \"9616\" #> [1239,] \"9297\" \"8977\" #> [1240,] \"9297\" \"9617\" #> [1241,] \"9297\" \"9298\" #> [1242,] \"9297\" \"8976\" #> [1243,] \"9297\" \"9618\" #> [1244,] \"9298\" \"8978\" #> [1245,] \"9298\" \"9618\" #> [1246,] \"9298\" \"9299\" #> [1247,] \"9298\" \"9297\" #> [1248,] \"9298\" \"8977\" #> [1249,] \"9298\" \"9619\" #> [1250,] \"9299\" \"8979\" #> [1251,] \"9299\" \"9619\" #> [1252,] \"9299\" \"9300\" #> [1253,] \"9299\" \"9298\" #> [1254,] \"9299\" \"8978\" #> [1255,] \"9299\" \"9620\" #> [1256,] \"9300\" \"8980\" #> [1257,] \"9300\" \"9620\" #> [1258,] \"9300\" \"9301\" #> [1259,] \"9300\" \"9299\" #> [1260,] \"9300\" \"8979\" #> [1261,] \"9300\" \"9621\" #> [1262,] \"9301\" \"8981\" #> [1263,] \"9301\" \"9621\" #> [1264,] \"9301\" \"9302\" #> [1265,] \"9301\" \"9300\" #> [1266,] \"9301\" \"8980\" #> [1267,] \"9301\" \"9622\" #> [1268,] \"9302\" \"8982\" #> [1269,] \"9302\" \"9622\" #> [1270,] \"9302\" \"9303\" #> [1271,] \"9302\" \"9301\" #> [1272,] \"9302\" \"8981\" #> [1273,] \"9302\" \"9623\" #> [1274,] \"9303\" \"8983\" #> [1275,] \"9303\" \"9623\" #> [1276,] \"9303\" \"9302\" #> [1277,] \"9303\" \"8982\" #> [1278,] \"9303\" \"9624\" #> [1279,] \"9306\" \"8986\" #> [1280,] \"9306\" \"9626\" #> [1281,] \"9306\" \"9307\" #> [1282,] \"9306\" \"9627\" #> [1283,] \"9307\" \"9627\" #> [1284,] \"9307\" \"9306\" #> [1285,] \"9307\" \"8986\" #> [1286,] \"9307\" \"9628\" #> [1287,] \"9612\" \"9292\" #> [1288,] \"9612\" \"9613\" #> [1289,] \"9612\" \"9291\" #> [1290,] \"9612\" \"9933\" #> [1291,] \"9613\" \"9293\" #> [1292,] \"9613\" \"9933\" #> [1293,] \"9613\" \"9614\" #> [1294,] \"9613\" \"9612\" #> [1295,] \"9613\" \"9292\" #> [1296,] \"9614\" \"9294\" #> [1297,] \"9614\" \"9615\" #> [1298,] \"9614\" \"9613\" #> [1299,] \"9614\" \"9293\" #> [1300,] \"9614\" \"9935\" #> [1301,] \"9615\" \"9295\" #> [1302,] \"9615\" \"9935\" #> [1303,] \"9615\" \"9616\" #> [1304,] \"9615\" \"9614\" #> [1305,] \"9615\" \"9294\" #> [1306,] \"9615\" \"9936\" #> [1307,] \"9616\" \"9936\" #> [1308,] \"9616\" \"9617\" #> [1309,] \"9616\" \"9615\" #> [1310,] \"9616\" \"9295\" #> [1311,] \"9616\" \"9937\" #> [1312,] \"9617\" \"9297\" #> [1313,] \"9617\" \"9937\" #> [1314,] \"9617\" \"9618\" #> [1315,] \"9617\" \"9616\" #> [1316,] \"9617\" \"9938\" #> [1317,] \"9618\" \"9298\" #> [1318,] \"9618\" \"9938\" #> [1319,] \"9618\" \"9619\" #> [1320,] \"9618\" \"9617\" #> [1321,] \"9618\" \"9297\" #> [1322,] \"9618\" \"9939\" #> [1323,] \"9619\" \"9299\" #> [1324,] \"9619\" \"9939\" #> [1325,] \"9619\" \"9620\" #> [1326,] \"9619\" \"9618\" #> [1327,] \"9619\" \"9298\" #> [1328,] \"9619\" \"9940\" #> [1329,] \"9620\" \"9300\" #> [1330,] \"9620\" \"9940\" #> [1331,] \"9620\" \"9621\" #> [1332,] \"9620\" \"9619\" #> [1333,] \"9620\" \"9299\" #> [1334,] \"9620\" \"9941\" #> [1335,] \"9621\" \"9301\" #> [1336,] \"9621\" \"9941\" #> [1337,] \"9621\" \"9622\" #> [1338,] \"9621\" \"9620\" #> [1339,] \"9621\" \"9300\" #> [1340,] \"9621\" \"9942\" #> [1341,] \"9622\" \"9302\" #> [1342,] \"9622\" \"9942\" #> [1343,] \"9622\" \"9623\" #> [1344,] \"9622\" \"9621\" #> [1345,] \"9622\" \"9301\" #> [1346,] \"9622\" \"9943\" #> [1347,] \"9623\" \"9303\" #> [1348,] \"9623\" \"9943\" #> [1349,] \"9623\" \"9624\" #> [1350,] \"9623\" \"9622\" #> [1351,] \"9623\" \"9302\" #> [1352,] \"9624\" \"9623\" #> [1353,] \"9624\" \"9303\" #> [1354,] \"9626\" \"9306\" #> [1355,] \"9626\" \"9627\" #> [1356,] \"9626\" \"9947\" #> [1357,] \"9627\" \"9307\" #> [1358,] \"9627\" \"9947\" #> [1359,] \"9627\" \"9628\" #> [1360,] \"9627\" \"9626\" #> [1361,] \"9627\" \"9306\" #> [1362,] \"9627\" \"9948\" #> [1363,] \"9628\" \"9948\" #> [1364,] \"9628\" \"9627\" #> [1365,] \"9628\" \"9307\" #> [1366,] \"9933\" \"9613\" #> [1367,] \"9933\" \"9612\" #> [1368,] \"9933\" \"6467\" #> [1369,] \"9935\" \"9615\" #> [1370,] \"9935\" \"6147\" #> [1371,] \"9935\" \"9936\" #> [1372,] \"9935\" \"9614\" #> [1373,] \"9935\" \"5827\" #> [1374,] \"9936\" \"9616\" #> [1375,] \"9936\" \"5827\" #> [1376,] \"9936\" \"9937\" #> [1377,] \"9936\" \"9935\" #> [1378,] \"9936\" \"9615\" #> [1379,] \"9936\" \"5507\" #> [1380,] \"9937\" \"9617\" #> [1381,] \"9937\" \"5507\" #> [1382,] \"9937\" \"9938\" #> [1383,] \"9937\" \"9936\" #> [1384,] \"9937\" \"9616\" #> [1385,] \"9937\" \"5187\" #> [1386,] \"9938\" \"9618\" #> [1387,] \"9938\" \"5187\" #> [1388,] \"9938\" \"9939\" #> [1389,] \"9938\" \"9937\" #> [1390,] \"9938\" \"9617\" #> [1391,] \"9938\" \"4867\" #> [1392,] \"9939\" \"9619\" #> [1393,] \"9939\" \"4867\" #> [1394,] \"9939\" \"9940\" #> [1395,] \"9939\" \"9938\" #> [1396,] \"9939\" \"9618\" #> [1397,] \"9939\" \"4547\" #> [1398,] \"9940\" \"9620\" #> [1399,] \"9940\" \"4547\" #> [1400,] \"9940\" \"9941\" #> [1401,] \"9940\" \"9939\" #> [1402,] \"9940\" \"9619\" #> [1403,] \"9940\" \"4227\" #> [1404,] \"9941\" \"9621\" #> [1405,] \"9941\" \"4227\" #> [1406,] \"9941\" \"9942\" #> [1407,] \"9941\" \"9940\" #> [1408,] \"9941\" \"9620\" #> [1409,] \"9941\" \"3907\" #> [1410,] \"9942\" \"9622\" #> [1411,] \"9942\" \"3907\" #> [1412,] \"9942\" \"9943\" #> [1413,] \"9942\" \"9941\" #> [1414,] \"9942\" \"9621\" #> [1415,] \"9942\" \"3587\" #> [1416,] \"9943\" \"9623\" #> [1417,] \"9943\" \"3587\" #> [1418,] \"9943\" \"9942\" #> [1419,] \"9943\" \"9622\" #> [1420,] \"9943\" \"3267\" #> [1421,] \"9947\" \"9627\" #> [1422,] \"9947\" \"9948\" #> [1423,] \"9947\" \"9626\" #> [1424,] \"9947\" \"1987\" #> [1425,] \"9948\" \"9628\" #> [1426,] \"9948\" \"1987\" #> [1427,] \"9948\" \"9947\" #> [1428,] \"9948\" \"9627\" #> [1429,] \"9948\" \"1667\" #> [1430,] \"9950\" \"1347\" #> [1431,] \"9950\" \"9951\" #> [1432,] \"9950\" \"1027\" #> [1433,] \"9951\" \"1027\" #> [1434,] \"9951\" \"9952\" #> [1435,] \"9951\" \"9950\" #> [1436,] \"9951\" \"707\" #> [1437,] \"9952\" \"707\" #> [1438,] \"9952\" \"9951\" getEdges(x, res.type = \"matId\") #> Vi Vj #> [1,] 1 3 #> [2,] 1 613 #> [3,] 1 614 #> [4,] 1 4 #> [5,] 3 1 #> [6,] 3 8 #> [7,] 3 4 #> [8,] 3 612 #> [9,] 3 613 #> [10,] 3 9 #> [11,] 4 9 #> [12,] 4 5 #> [13,] 4 3 #> [14,] 4 1 #> [15,] 4 10 #> [16,] 5 10 #> [17,] 5 4 #> [18,] 5 11 #> [19,] 8 3 #> [20,] 8 15 #> [21,] 8 9 #> [22,] 8 612 #> [23,] 8 16 #> [24,] 9 4 #> [25,] 9 16 #> [26,] 9 10 #> [27,] 9 8 #> [28,] 9 3 #> [29,] 9 17 #> [30,] 10 5 #> [31,] 10 17 #> [32,] 10 11 #> [33,] 10 9 #> [34,] 10 4 #> [35,] 10 18 #> [36,] 11 18 #> [37,] 11 10 #> [38,] 11 5 #> [39,] 11 19 #> [40,] 15 8 #> [41,] 15 24 #> [42,] 15 16 #> [43,] 15 610 #> [44,] 15 25 #> [45,] 16 9 #> [46,] 16 25 #> [47,] 16 17 #> [48,] 16 15 #> [49,] 16 8 #> [50,] 16 26 #> [51,] 17 10 #> [52,] 17 26 #> [53,] 17 18 #> [54,] 17 16 #> [55,] 17 9 #> [56,] 17 27 #> [57,] 18 11 #> [58,] 18 27 #> [59,] 18 19 #> [60,] 18 17 #> [61,] 18 10 #> [62,] 18 28 #> [63,] 19 28 #> [64,] 19 18 #> [65,] 19 11 #> [66,] 19 29 #> [67,] 24 15 #> [68,] 24 25 #> [69,] 24 609 #> [70,] 24 610 #> [71,] 24 37 #> [72,] 25 16 #> [73,] 25 37 #> [74,] 25 26 #> [75,] 25 24 #> [76,] 25 15 #> [77,] 25 38 #> [78,] 26 17 #> [79,] 26 38 #> [80,] 26 27 #> [81,] 26 25 #> [82,] 26 16 #> [83,] 26 39 #> [84,] 27 18 #> [85,] 27 39 #> [86,] 27 28 #> [87,] 27 26 #> [88,] 27 17 #> [89,] 27 40 #> [90,] 28 19 #> [91,] 28 40 #> [92,] 28 29 #> [93,] 28 27 #> [94,] 28 18 #> [95,] 28 41 #> [96,] 29 41 #> [97,] 29 28 #> [98,] 29 19 #> [99,] 29 42 #> [100,] 37 25 #> [101,] 37 38 #> [102,] 37 24 #> [103,] 37 53 #> [104,] 38 26 #> [105,] 38 53 #> [106,] 38 39 #> [107,] 38 37 #> [108,] 38 25 #> [109,] 38 54 #> [110,] 39 27 #> [111,] 39 54 #> [112,] 39 40 #> [113,] 39 38 #> [114,] 39 26 #> [115,] 39 55 #> [116,] 40 28 #> [117,] 40 55 #> [118,] 40 41 #> [119,] 40 39 #> [120,] 40 27 #> [121,] 40 56 #> [122,] 41 29 #> [123,] 41 56 #> [124,] 41 42 #> [125,] 41 40 #> [126,] 41 28 #> [127,] 41 57 #> [128,] 42 57 #> [129,] 42 43 #> [130,] 42 41 #> [131,] 42 29 #> [132,] 42 58 #> [133,] 43 58 #> [134,] 43 42 #> [135,] 43 59 #> [136,] 53 38 #> [137,] 53 70 #> [138,] 53 54 #> [139,] 53 37 #> [140,] 53 71 #> [141,] 54 39 #> [142,] 54 71 #> [143,] 54 55 #> [144,] 54 53 #> [145,] 54 38 #> [146,] 54 72 #> [147,] 55 40 #> [148,] 55 72 #> [149,] 55 56 #> [150,] 55 54 #> [151,] 55 39 #> [152,] 56 41 #> [153,] 56 57 #> [154,] 56 55 #> [155,] 56 40 #> [156,] 56 74 #> [157,] 57 42 #> [158,] 57 74 #> [159,] 57 58 #> [160,] 57 56 #> [161,] 57 41 #> [162,] 57 75 #> [163,] 58 43 #> [164,] 58 75 #> [165,] 58 59 #> [166,] 58 57 #> [167,] 58 42 #> [168,] 58 76 #> [169,] 59 76 #> [170,] 59 58 #> [171,] 59 43 #> [172,] 59 77 #> [173,] 68 87 #> [174,] 68 69 #> [175,] 68 88 #> [176,] 69 88 #> [177,] 69 70 #> [178,] 69 68 #> [179,] 69 89 #> [180,] 70 53 #> [181,] 70 89 #> [182,] 70 71 #> [183,] 70 69 #> [184,] 70 90 #> [185,] 71 54 #> [186,] 71 90 #> [187,] 71 72 #> [188,] 71 70 #> [189,] 71 53 #> [190,] 72 55 #> [191,] 72 71 #> [192,] 72 54 #> [193,] 74 57 #> [194,] 74 75 #> [195,] 74 56 #> [196,] 74 94 #> [197,] 75 58 #> [198,] 75 94 #> [199,] 75 76 #> [200,] 75 74 #> [201,] 75 57 #> [202,] 75 95 #> [203,] 76 59 #> [204,] 76 95 #> [205,] 76 77 #> [206,] 76 75 #> [207,] 76 58 #> [208,] 76 96 #> [209,] 77 96 #> [210,] 77 76 #> [211,] 77 59 #> [212,] 77 97 #> [213,] 87 68 #> [214,] 87 108 #> [215,] 87 88 #> [216,] 87 605 #> [217,] 87 109 #> [218,] 88 69 #> [219,] 88 109 #> [220,] 88 89 #> [221,] 88 87 #> [222,] 88 68 #> [223,] 88 110 #> [224,] 89 70 #> [225,] 89 110 #> [226,] 89 90 #> [227,] 89 88 #> [228,] 89 69 #> [229,] 90 71 #> [230,] 90 89 #> [231,] 90 70 #> [232,] 94 75 #> [233,] 94 115 #> [234,] 94 95 #> [235,] 94 74 #> [236,] 94 116 #> [237,] 95 76 #> [238,] 95 116 #> [239,] 95 96 #> [240,] 95 94 #> [241,] 95 75 #> [242,] 95 117 #> [243,] 96 77 #> [244,] 96 117 #> [245,] 96 97 #> [246,] 96 95 #> [247,] 96 76 #> [248,] 97 96 #> [249,] 97 77 #> [250,] 107 128 #> [251,] 108 87 #> [252,] 108 129 #> [253,] 108 109 #> [254,] 108 604 #> [255,] 108 605 #> [256,] 108 130 #> [257,] 109 88 #> [258,] 109 130 #> [259,] 109 110 #> [260,] 109 108 #> [261,] 109 87 #> [262,] 109 131 #> [263,] 110 89 #> [264,] 110 131 #> [265,] 110 109 #> [266,] 110 88 #> [267,] 110 132 #> [268,] 114 135 #> [269,] 114 115 #> [270,] 114 136 #> [271,] 115 94 #> [272,] 115 136 #> [273,] 115 116 #> [274,] 115 114 #> [275,] 115 137 #> [276,] 116 95 #> [277,] 116 137 #> [278,] 116 117 #> [279,] 116 115 #> [280,] 116 94 #> [281,] 116 138 #> [282,] 117 96 #> [283,] 117 138 #> [284,] 117 116 #> [285,] 117 95 #> [286,] 128 150 #> [287,] 128 107 #> [288,] 128 151 #> [289,] 129 108 #> [290,] 129 152 #> [291,] 129 130 #> [292,] 129 603 #> [293,] 129 604 #> [294,] 129 153 #> [295,] 130 109 #> [296,] 130 153 #> [297,] 130 131 #> [298,] 130 129 #> [299,] 130 108 #> [300,] 130 154 #> [301,] 131 110 #> [302,] 131 154 #> [303,] 131 132 #> [304,] 131 130 #> [305,] 131 109 #> [306,] 131 155 #> [307,] 132 155 #> [308,] 132 131 #> [309,] 132 110 #> [310,] 132 156 #> [311,] 134 157 #> [312,] 134 135 #> [313,] 134 158 #> [314,] 135 114 #> [315,] 135 158 #> [316,] 135 136 #> [317,] 135 134 #> [318,] 135 159 #> [319,] 136 115 #> [320,] 136 159 #> [321,] 136 137 #> [322,] 136 135 #> [323,] 136 114 #> [324,] 136 160 #> [325,] 137 116 #> [326,] 137 160 #> [327,] 137 138 #> [328,] 137 136 #> [329,] 137 115 #> [330,] 138 117 #> [331,] 138 137 #> [332,] 138 116 #> [333,] 150 128 #> [334,] 150 151 #> [335,] 150 173 #> [336,] 151 173 #> [337,] 151 150 #> [338,] 151 128 #> [339,] 151 174 #> [340,] 152 129 #> [341,] 152 175 #> [342,] 152 153 #> [343,] 152 602 #> [344,] 152 603 #> [345,] 152 176 #> [346,] 153 130 #> [347,] 153 176 #> [348,] 153 154 #> [349,] 153 152 #> [350,] 153 129 #> [351,] 153 177 #> [352,] 154 131 #> [353,] 154 177 #> [354,] 154 155 #> [355,] 154 153 #> [356,] 154 130 #> [357,] 154 178 #> [358,] 155 132 #> [359,] 155 178 #> [360,] 155 156 #> [361,] 155 154 #> [362,] 155 131 #> [363,] 155 179 #> [364,] 156 179 #> [365,] 156 157 #> [366,] 156 155 #> [367,] 156 132 #> [368,] 156 180 #> [369,] 157 134 #> [370,] 157 180 #> [371,] 157 158 #> [372,] 157 156 #> [373,] 157 181 #> [374,] 158 135 #> [375,] 158 181 #> [376,] 158 159 #> [377,] 158 157 #> [378,] 158 134 #> [379,] 158 182 #> [380,] 159 136 #> [381,] 159 182 #> [382,] 159 160 #> [383,] 159 158 #> [384,] 159 135 #> [385,] 159 183 #> [386,] 160 137 #> [387,] 160 183 #> [388,] 160 159 #> [389,] 160 136 #> [390,] 170 193 #> [391,] 170 171 #> [392,] 170 194 #> [393,] 171 194 #> [394,] 171 170 #> [395,] 171 195 #> [396,] 173 151 #> [397,] 173 174 #> [398,] 173 150 #> [399,] 173 197 #> [400,] 174 197 #> [401,] 174 173 #> [402,] 174 151 #> [403,] 174 198 #> [404,] 175 152 #> [405,] 175 199 #> [406,] 175 176 #> [407,] 175 601 #> [408,] 175 602 #> [409,] 175 200 #> [410,] 176 153 #> [411,] 176 200 #> [412,] 176 177 #> [413,] 176 175 #> [414,] 176 152 #> [415,] 176 201 #> [416,] 177 154 #> [417,] 177 201 #> [418,] 177 178 #> [419,] 177 176 #> [420,] 177 153 #> [421,] 177 202 #> [422,] 178 155 #> [423,] 178 202 #> [424,] 178 179 #> [425,] 178 177 #> [426,] 178 154 #> [427,] 178 203 #> [428,] 179 156 #> [429,] 179 203 #> [430,] 179 180 #> [431,] 179 178 #> [432,] 179 155 #> [433,] 179 204 #> [434,] 180 157 #> [435,] 180 204 #> [436,] 180 181 #> [437,] 180 179 #> [438,] 180 156 #> [439,] 180 205 #> [440,] 181 158 #> [441,] 181 205 #> [442,] 181 182 #> [443,] 181 180 #> [444,] 181 157 #> [445,] 181 206 #> [446,] 182 159 #> [447,] 182 206 #> [448,] 182 183 #> [449,] 182 181 #> [450,] 182 158 #> [451,] 183 160 #> [452,] 183 182 #> [453,] 183 159 #> [454,] 193 170 #> [455,] 193 194 #> [456,] 193 217 #> [457,] 194 171 #> [458,] 194 217 #> [459,] 194 195 #> [460,] 194 193 #> [461,] 194 170 #> [462,] 194 218 #> [463,] 195 218 #> [464,] 195 194 #> [465,] 195 171 #> [466,] 195 219 #> [467,] 197 174 #> [468,] 197 220 #> [469,] 197 198 #> [470,] 197 173 #> [471,] 197 221 #> [472,] 198 221 #> [473,] 198 197 #> [474,] 198 174 #> [475,] 198 222 #> [476,] 199 175 #> [477,] 199 223 #> [478,] 199 200 #> [479,] 199 600 #> [480,] 199 601 #> [481,] 199 224 #> [482,] 200 176 #> [483,] 200 224 #> [484,] 200 201 #> [485,] 200 199 #> [486,] 200 175 #> [487,] 200 225 #> [488,] 201 177 #> [489,] 201 225 #> [490,] 201 202 #> [491,] 201 200 #> [492,] 201 176 #> [493,] 201 226 #> [494,] 202 178 #> [495,] 202 226 #> [496,] 202 203 #> [497,] 202 201 #> [498,] 202 177 #> [499,] 202 227 #> [500,] 203 179 #> [501,] 203 227 #> [502,] 203 204 #> [503,] 203 202 #> [504,] 203 178 #> [505,] 203 228 #> [506,] 204 180 #> [507,] 204 228 #> [508,] 204 205 #> [509,] 204 203 #> [510,] 204 179 #> [511,] 204 229 #> [512,] 205 181 #> [513,] 205 229 #> [514,] 205 206 #> [515,] 205 204 #> [516,] 205 180 #> [517,] 205 230 #> [518,] 206 182 #> [519,] 206 230 #> [520,] 206 205 #> [521,] 206 181 #> [522,] 217 194 #> [523,] 217 218 #> [524,] 217 193 #> [525,] 217 242 #> [526,] 218 195 #> [527,] 218 242 #> [528,] 218 219 #> [529,] 218 217 #> [530,] 218 194 #> [531,] 219 220 #> [532,] 219 218 #> [533,] 219 195 #> [534,] 220 197 #> [535,] 220 221 #> [536,] 220 219 #> [537,] 220 245 #> [538,] 221 198 #> [539,] 221 245 #> [540,] 221 222 #> [541,] 221 220 #> [542,] 221 197 #> [543,] 221 246 #> [544,] 222 246 #> [545,] 222 221 #> [546,] 222 198 #> [547,] 222 247 #> [548,] 223 199 #> [549,] 223 248 #> [550,] 223 224 #> [551,] 223 599 #> [552,] 223 600 #> [553,] 223 249 #> [554,] 224 200 #> [555,] 224 249 #> [556,] 224 225 #> [557,] 224 223 #> [558,] 224 199 #> [559,] 224 250 #> [560,] 225 201 #> [561,] 225 250 #> [562,] 225 226 #> [563,] 225 224 #> [564,] 225 200 #> [565,] 225 251 #> [566,] 226 202 #> [567,] 226 251 #> [568,] 226 227 #> [569,] 226 225 #> [570,] 226 201 #> [571,] 226 252 #> [572,] 227 203 #> [573,] 227 252 #> [574,] 227 228 #> [575,] 227 226 #> [576,] 227 202 #> [577,] 227 253 #> [578,] 228 204 #> [579,] 228 253 #> [580,] 228 229 #> [581,] 228 227 #> [582,] 228 203 #> [583,] 228 254 #> [584,] 229 205 #> [585,] 229 254 #> [586,] 229 230 #> [587,] 229 228 #> [588,] 229 204 #> [589,] 230 206 #> [590,] 230 229 #> [591,] 230 205 #> [592,] 242 218 #> [593,] 242 266 #> [594,] 242 217 #> [595,] 242 267 #> [596,] 245 221 #> [597,] 245 246 #> [598,] 245 220 #> [599,] 245 270 #> [600,] 246 222 #> [601,] 246 270 #> [602,] 246 247 #> [603,] 246 245 #> [604,] 246 221 #> [605,] 246 271 #> [606,] 247 271 #> [607,] 247 246 #> [608,] 247 222 #> [609,] 247 272 #> [610,] 248 223 #> [611,] 248 273 #> [612,] 248 249 #> [613,] 248 598 #> [614,] 248 599 #> [615,] 248 274 #> [616,] 249 224 #> [617,] 249 274 #> [618,] 249 250 #> [619,] 249 248 #> [620,] 249 223 #> [621,] 249 275 #> [622,] 250 225 #> [623,] 250 275 #> [624,] 250 251 #> [625,] 250 249 #> [626,] 250 224 #> [627,] 250 276 #> [628,] 251 226 #> [629,] 251 276 #> [630,] 251 252 #> [631,] 251 250 #> [632,] 251 225 #> [633,] 251 277 #> [634,] 252 227 #> [635,] 252 277 #> [636,] 252 253 #> [637,] 252 251 #> [638,] 252 226 #> [639,] 252 278 #> [640,] 253 228 #> [641,] 253 278 #> [642,] 253 254 #> [643,] 253 252 #> [644,] 253 227 #> [645,] 253 279 #> [646,] 254 229 #> [647,] 254 279 #> [648,] 254 253 #> [649,] 254 228 #> [650,] 261 286 #> [651,] 266 242 #> [652,] 266 291 #> [653,] 266 267 #> [654,] 266 292 #> [655,] 267 292 #> [656,] 267 266 #> [657,] 267 242 #> [658,] 270 246 #> [659,] 270 271 #> [660,] 270 245 #> [661,] 270 296 #> [662,] 271 247 #> [663,] 271 296 #> [664,] 271 272 #> [665,] 271 270 #> [666,] 271 246 #> [667,] 271 297 #> [668,] 272 297 #> [669,] 272 271 #> [670,] 272 247 #> [671,] 272 298 #> [672,] 273 248 #> [673,] 273 299 #> [674,] 273 274 #> [675,] 273 597 #> [676,] 273 598 #> [677,] 273 300 #> [678,] 274 249 #> [679,] 274 300 #> [680,] 274 275 #> [681,] 274 273 #> [682,] 274 248 #> [683,] 274 301 #> [684,] 275 250 #> [685,] 275 301 #> [686,] 275 276 #> [687,] 275 274 #> [688,] 275 249 #> [689,] 275 302 #> [690,] 276 251 #> [691,] 276 302 #> [692,] 276 277 #> [693,] 276 275 #> [694,] 276 250 #> [695,] 276 303 #> [696,] 277 252 #> [697,] 277 303 #> [698,] 277 278 #> [699,] 277 276 #> [700,] 277 251 #> [701,] 277 304 #> [702,] 278 253 #> [703,] 278 304 #> [704,] 278 279 #> [705,] 278 277 #> [706,] 278 252 #> [707,] 279 254 #> [708,] 279 278 #> [709,] 279 253 #> [710,] 286 261 #> [711,] 286 312 #> [712,] 289 314 #> [713,] 289 290 #> [714,] 289 315 #> [715,] 290 315 #> [716,] 290 291 #> [717,] 290 289 #> [718,] 290 316 #> [719,] 291 266 #> [720,] 291 316 #> [721,] 291 292 #> [722,] 291 290 #> [723,] 291 317 #> [724,] 292 267 #> [725,] 292 317 #> [726,] 292 291 #> [727,] 292 266 #> [728,] 292 318 #> [729,] 296 271 #> [730,] 296 297 #> [731,] 296 270 #> [732,] 296 322 #> [733,] 297 272 #> [734,] 297 322 #> [735,] 297 298 #> [736,] 297 296 #> [737,] 297 271 #> [738,] 297 323 #> [739,] 298 323 #> [740,] 298 297 #> [741,] 298 272 #> [742,] 298 324 #> [743,] 299 273 #> [744,] 299 325 #> [745,] 299 300 #> [746,] 299 597 #> [747,] 299 326 #> [748,] 300 274 #> [749,] 300 326 #> [750,] 300 301 #> [751,] 300 299 #> [752,] 300 273 #> [753,] 300 327 #> [754,] 301 275 #> [755,] 301 327 #> [756,] 301 302 #> [757,] 301 300 #> [758,] 301 274 #> [759,] 301 328 #> [760,] 302 276 #> [761,] 302 328 #> [762,] 302 303 #> [763,] 302 301 #> [764,] 302 275 #> [765,] 302 329 #> [766,] 303 277 #> [767,] 303 329 #> [768,] 303 304 #> [769,] 303 302 #> [770,] 303 276 #> [771,] 303 330 #> [772,] 304 278 #> [773,] 304 330 #> [774,] 304 303 #> [775,] 304 277 #> [776,] 312 313 #> [777,] 312 286 #> [778,] 313 314 #> [779,] 313 312 #> [780,] 314 289 #> [781,] 314 315 #> [782,] 314 313 #> [783,] 315 290 #> [784,] 315 316 #> [785,] 315 314 #> [786,] 315 289 #> [787,] 315 342 #> [788,] 316 291 #> [789,] 316 342 #> [790,] 316 317 #> [791,] 316 315 #> [792,] 316 290 #> [793,] 316 343 #> [794,] 317 292 #> [795,] 317 343 #> [796,] 317 318 #> [797,] 317 316 #> [798,] 317 291 #> [799,] 317 344 #> [800,] 318 344 #> [801,] 318 317 #> [802,] 318 292 #> [803,] 322 297 #> [804,] 322 323 #> [805,] 322 296 #> [806,] 323 298 #> [807,] 323 324 #> [808,] 323 322 #> [809,] 323 297 #> [810,] 324 323 #> [811,] 324 298 #> [812,] 324 351 #> [813,] 325 299 #> [814,] 325 326 #> [815,] 325 595 #> [816,] 326 300 #> [817,] 326 327 #> [818,] 326 325 #> [819,] 326 299 #> [820,] 326 354 #> [821,] 327 301 #> [822,] 327 354 #> [823,] 327 328 #> [824,] 327 326 #> [825,] 327 300 #> [826,] 327 355 #> [827,] 328 302 #> [828,] 328 355 #> [829,] 328 329 #> [830,] 328 327 #> [831,] 328 301 #> [832,] 328 356 #> [833,] 329 303 #> [834,] 329 356 #> [835,] 329 330 #> [836,] 329 328 #> [837,] 329 302 #> [838,] 330 304 #> [839,] 330 329 #> [840,] 330 303 #> [841,] 342 316 #> [842,] 342 368 #> [843,] 342 343 #> [844,] 342 315 #> [845,] 342 369 #> [846,] 343 317 #> [847,] 343 369 #> [848,] 343 344 #> [849,] 343 342 #> [850,] 343 316 #> [851,] 343 370 #> [852,] 344 318 #> [853,] 344 370 #> [854,] 344 343 #> [855,] 344 317 #> [856,] 344 371 #> [857,] 351 324 #> [858,] 351 378 #> [859,] 354 327 #> [860,] 354 381 #> [861,] 354 355 #> [862,] 354 326 #> [863,] 354 382 #> [864,] 355 328 #> [865,] 355 382 #> [866,] 355 356 #> [867,] 355 354 #> [868,] 355 327 #> [869,] 355 383 #> [870,] 356 329 #> [871,] 356 383 #> [872,] 356 355 #> [873,] 356 328 #> [874,] 357 385 #> [875,] 368 342 #> [876,] 368 396 #> [877,] 368 369 #> [878,] 368 397 #> [879,] 369 343 #> [880,] 369 397 #> [881,] 369 370 #> [882,] 369 368 #> [883,] 369 342 #> [884,] 369 398 #> [885,] 370 344 #> [886,] 370 398 #> [887,] 370 371 #> [888,] 370 369 #> [889,] 370 343 #> [890,] 370 399 #> [891,] 371 399 #> [892,] 371 372 #> [893,] 371 370 #> [894,] 371 344 #> [895,] 372 371 #> [896,] 378 351 #> [897,] 378 407 #> [898,] 381 354 #> [899,] 381 382 #> [900,] 382 355 #> [901,] 382 383 #> [902,] 382 381 #> [903,] 382 354 #> [904,] 383 356 #> [905,] 383 382 #> [906,] 383 355 #> [907,] 384 412 #> [908,] 384 385 #> [909,] 384 413 #> [910,] 385 357 #> [911,] 385 413 #> [912,] 385 384 #> [913,] 396 368 #> [914,] 396 424 #> [915,] 396 397 #> [916,] 396 425 #> [917,] 397 369 #> [918,] 397 425 #> [919,] 397 398 #> [920,] 397 396 #> [921,] 397 368 #> [922,] 397 426 #> [923,] 398 370 #> [924,] 398 426 #> [925,] 398 399 #> [926,] 398 397 #> [927,] 398 369 #> [928,] 398 427 #> [929,] 399 371 #> [930,] 399 427 #> [931,] 399 398 #> [932,] 399 370 #> [933,] 399 428 #> [934,] 402 431 #> [935,] 407 378 #> [936,] 412 384 #> [937,] 412 440 #> [938,] 412 413 #> [939,] 413 385 #> [940,] 413 412 #> [941,] 413 384 #> [942,] 421 449 #> [943,] 421 422 #> [944,] 421 450 #> [945,] 422 450 #> [946,] 422 423 #> [947,] 422 421 #> [948,] 422 451 #> [949,] 423 451 #> [950,] 423 424 #> [951,] 423 422 #> [952,] 423 452 #> [953,] 424 396 #> [954,] 424 452 #> [955,] 424 425 #> [956,] 424 423 #> [957,] 425 397 #> [958,] 425 426 #> [959,] 425 424 #> [960,] 425 396 #> [961,] 425 454 #> [962,] 426 398 #> [963,] 426 454 #> [964,] 426 427 #> [965,] 426 425 #> [966,] 426 397 #> [967,] 426 455 #> [968,] 427 399 #> [969,] 427 455 #> [970,] 427 428 #> [971,] 427 426 #> [972,] 427 398 #> [973,] 427 456 #> [974,] 428 456 #> [975,] 428 429 #> [976,] 428 427 #> [977,] 428 399 #> [978,] 428 457 #> [979,] 429 457 #> [980,] 429 428 #> [981,] 429 458 #> [982,] 431 459 #> [983,] 431 402 #> [984,] 431 460 #> [985,] 440 412 #> [986,] 449 421 #> [987,] 449 476 #> [988,] 449 450 #> [989,] 449 477 #> [990,] 450 422 #> [991,] 450 477 #> [992,] 450 451 #> [993,] 450 449 #> [994,] 450 421 #> [995,] 450 478 #> [996,] 451 423 #> [997,] 451 478 #> [998,] 451 452 #> [999,] 451 450 #> [1000,] 451 422 #> [1001,] 452 424 #> [1002,] 452 451 #> [1003,] 452 423 #> [1004,] 454 426 #> [1005,] 454 481 #> [1006,] 454 455 #> [1007,] 454 425 #> [1008,] 454 482 #> [1009,] 455 427 #> [1010,] 455 482 #> [1011,] 455 456 #> [1012,] 455 454 #> [1013,] 455 426 #> [1014,] 455 483 #> [1015,] 456 428 #> [1016,] 456 483 #> [1017,] 456 457 #> [1018,] 456 455 #> [1019,] 456 427 #> [1020,] 456 484 #> [1021,] 457 429 #> [1022,] 457 484 #> [1023,] 457 458 #> [1024,] 457 456 #> [1025,] 457 428 #> [1026,] 457 485 #> [1027,] 458 485 #> [1028,] 458 459 #> [1029,] 458 457 #> [1030,] 458 429 #> [1031,] 458 486 #> [1032,] 459 431 #> [1033,] 459 486 #> [1034,] 459 460 #> [1035,] 459 458 #> [1036,] 459 487 #> [1037,] 460 487 #> [1038,] 460 459 #> [1039,] 460 431 #> [1040,] 464 492 #> [1041,] 476 449 #> [1042,] 476 500 #> [1043,] 476 477 #> [1044,] 476 501 #> [1045,] 477 450 #> [1046,] 477 501 #> [1047,] 477 478 #> [1048,] 477 476 #> [1049,] 477 449 #> [1050,] 478 451 #> [1051,] 478 477 #> [1052,] 478 450 #> [1053,] 481 454 #> [1054,] 481 505 #> [1055,] 481 482 #> [1056,] 481 506 #> [1057,] 482 455 #> [1058,] 482 506 #> [1059,] 482 483 #> [1060,] 482 481 #> [1061,] 482 454 #> [1062,] 482 507 #> [1063,] 483 456 #> [1064,] 483 507 #> [1065,] 483 484 #> [1066,] 483 482 #> [1067,] 483 455 #> [1068,] 483 508 #> [1069,] 484 457 #> [1070,] 484 508 #> [1071,] 484 485 #> [1072,] 484 483 #> [1073,] 484 456 #> [1074,] 484 509 #> [1075,] 485 458 #> [1076,] 485 509 #> [1077,] 485 486 #> [1078,] 485 484 #> [1079,] 485 457 #> [1080,] 485 510 #> [1081,] 486 459 #> [1082,] 486 510 #> [1083,] 486 487 #> [1084,] 486 485 #> [1085,] 486 458 #> [1086,] 486 511 #> [1087,] 487 460 #> [1088,] 487 511 #> [1089,] 487 486 #> [1090,] 487 459 #> [1091,] 487 512 #> [1092,] 492 464 #> [1093,] 492 517 #> [1094,] 499 522 #> [1095,] 499 500 #> [1096,] 499 523 #> [1097,] 500 476 #> [1098,] 500 523 #> [1099,] 500 501 #> [1100,] 500 499 #> [1101,] 501 477 #> [1102,] 501 500 #> [1103,] 501 476 #> [1104,] 501 525 #> [1105,] 505 481 #> [1106,] 505 528 #> [1107,] 505 506 #> [1108,] 505 529 #> [1109,] 506 482 #> [1110,] 506 529 #> [1111,] 506 507 #> [1112,] 506 505 #> [1113,] 506 481 #> [1114,] 506 530 #> [1115,] 507 483 #> [1116,] 507 530 #> [1117,] 507 508 #> [1118,] 507 506 #> [1119,] 507 482 #> [1120,] 507 531 #> [1121,] 508 484 #> [1122,] 508 531 #> [1123,] 508 509 #> [1124,] 508 507 #> [1125,] 508 483 #> [1126,] 508 532 #> [1127,] 509 485 #> [1128,] 509 532 #> [1129,] 509 510 #> [1130,] 509 508 #> [1131,] 509 484 #> [1132,] 509 533 #> [1133,] 510 486 #> [1134,] 510 533 #> [1135,] 510 511 #> [1136,] 510 509 #> [1137,] 510 485 #> [1138,] 510 534 #> [1139,] 511 487 #> [1140,] 511 534 #> [1141,] 511 512 #> [1142,] 511 510 #> [1143,] 511 486 #> [1144,] 511 535 #> [1145,] 512 535 #> [1146,] 512 511 #> [1147,] 512 487 #> [1148,] 517 492 #> [1149,] 517 541 #> [1150,] 522 499 #> [1151,] 522 546 #> [1152,] 522 523 #> [1153,] 522 547 #> [1154,] 523 500 #> [1155,] 523 547 #> [1156,] 523 522 #> [1157,] 523 499 #> [1158,] 523 548 #> [1159,] 525 549 #> [1160,] 525 526 #> [1161,] 525 501 #> [1162,] 525 550 #> [1163,] 526 550 #> [1164,] 526 527 #> [1165,] 526 525 #> [1166,] 527 528 #> [1167,] 527 526 #> [1168,] 527 552 #> [1169,] 528 505 #> [1170,] 528 552 #> [1171,] 528 529 #> [1172,] 528 527 #> [1173,] 528 553 #> [1174,] 529 506 #> [1175,] 529 553 #> [1176,] 529 530 #> [1177,] 529 528 #> [1178,] 529 505 #> [1179,] 529 554 #> [1180,] 530 507 #> [1181,] 530 554 #> [1182,] 530 531 #> [1183,] 530 529 #> [1184,] 530 506 #> [1185,] 530 555 #> [1186,] 531 508 #> [1187,] 531 555 #> [1188,] 531 532 #> [1189,] 531 530 #> [1190,] 531 507 #> [1191,] 531 556 #> [1192,] 532 509 #> [1193,] 532 556 #> [1194,] 532 533 #> [1195,] 532 531 #> [1196,] 532 508 #> [1197,] 532 557 #> [1198,] 533 510 #> [1199,] 533 557 #> [1200,] 533 534 #> [1201,] 533 532 #> [1202,] 533 509 #> [1203,] 533 558 #> [1204,] 534 511 #> [1205,] 534 558 #> [1206,] 534 535 #> [1207,] 534 533 #> [1208,] 534 510 #> [1209,] 535 512 #> [1210,] 535 534 #> [1211,] 535 511 #> [1212,] 537 561 #> [1213,] 537 562 #> [1214,] 541 517 #> [1215,] 546 522 #> [1216,] 546 547 #> [1217,] 546 570 #> [1218,] 547 523 #> [1219,] 547 570 #> [1220,] 547 548 #> [1221,] 547 546 #> [1222,] 547 522 #> [1223,] 547 571 #> [1224,] 548 571 #> [1225,] 548 549 #> [1226,] 548 547 #> [1227,] 548 523 #> [1228,] 548 572 #> [1229,] 549 525 #> [1230,] 549 572 #> [1231,] 549 550 #> [1232,] 549 548 #> [1233,] 549 573 #> [1234,] 550 526 #> [1235,] 550 573 #> [1236,] 550 549 #> [1237,] 550 525 #> [1238,] 550 574 #> [1239,] 552 528 #> [1240,] 552 575 #> [1241,] 552 553 #> [1242,] 552 527 #> [1243,] 552 576 #> [1244,] 553 529 #> [1245,] 553 576 #> [1246,] 553 554 #> [1247,] 553 552 #> [1248,] 553 528 #> [1249,] 553 577 #> [1250,] 554 530 #> [1251,] 554 577 #> [1252,] 554 555 #> [1253,] 554 553 #> [1254,] 554 529 #> [1255,] 554 578 #> [1256,] 555 531 #> [1257,] 555 578 #> [1258,] 555 556 #> [1259,] 555 554 #> [1260,] 555 530 #> [1261,] 555 579 #> [1262,] 556 532 #> [1263,] 556 579 #> [1264,] 556 557 #> [1265,] 556 555 #> [1266,] 556 531 #> [1267,] 556 580 #> [1268,] 557 533 #> [1269,] 557 580 #> [1270,] 557 558 #> [1271,] 557 556 #> [1272,] 557 532 #> [1273,] 557 581 #> [1274,] 558 534 #> [1275,] 558 581 #> [1276,] 558 557 #> [1277,] 558 533 #> [1278,] 558 582 #> [1279,] 561 537 #> [1280,] 561 584 #> [1281,] 561 562 #> [1282,] 561 585 #> [1283,] 562 585 #> [1284,] 562 561 #> [1285,] 562 537 #> [1286,] 562 586 #> [1287,] 570 547 #> [1288,] 570 571 #> [1289,] 570 546 #> [1290,] 570 595 #> [1291,] 571 548 #> [1292,] 571 595 #> [1293,] 571 572 #> [1294,] 571 570 #> [1295,] 571 547 #> [1296,] 572 549 #> [1297,] 572 573 #> [1298,] 572 571 #> [1299,] 572 548 #> [1300,] 572 597 #> [1301,] 573 550 #> [1302,] 573 597 #> [1303,] 573 574 #> [1304,] 573 572 #> [1305,] 573 549 #> [1306,] 573 598 #> [1307,] 574 598 #> [1308,] 574 575 #> [1309,] 574 573 #> [1310,] 574 550 #> [1311,] 574 599 #> [1312,] 575 552 #> [1313,] 575 599 #> [1314,] 575 576 #> [1315,] 575 574 #> [1316,] 575 600 #> [1317,] 576 553 #> [1318,] 576 600 #> [1319,] 576 577 #> [1320,] 576 575 #> [1321,] 576 552 #> [1322,] 576 601 #> [1323,] 577 554 #> [1324,] 577 601 #> [1325,] 577 578 #> [1326,] 577 576 #> [1327,] 577 553 #> [1328,] 577 602 #> [1329,] 578 555 #> [1330,] 578 602 #> [1331,] 578 579 #> [1332,] 578 577 #> [1333,] 578 554 #> [1334,] 578 603 #> [1335,] 579 556 #> [1336,] 579 603 #> [1337,] 579 580 #> [1338,] 579 578 #> [1339,] 579 555 #> [1340,] 579 604 #> [1341,] 580 557 #> [1342,] 580 604 #> [1343,] 580 581 #> [1344,] 580 579 #> [1345,] 580 556 #> [1346,] 580 605 #> [1347,] 581 558 #> [1348,] 581 605 #> [1349,] 581 582 #> [1350,] 581 580 #> [1351,] 581 557 #> [1352,] 582 581 #> [1353,] 582 558 #> [1354,] 584 561 #> [1355,] 584 585 #> [1356,] 584 609 #> [1357,] 585 562 #> [1358,] 585 609 #> [1359,] 585 586 #> [1360,] 585 584 #> [1361,] 585 561 #> [1362,] 585 610 #> [1363,] 586 610 #> [1364,] 586 585 #> [1365,] 586 562 #> [1366,] 595 571 #> [1367,] 595 570 #> [1368,] 595 325 #> [1369,] 597 573 #> [1370,] 597 299 #> [1371,] 597 598 #> [1372,] 597 572 #> [1373,] 597 273 #> [1374,] 598 574 #> [1375,] 598 273 #> [1376,] 598 599 #> [1377,] 598 597 #> [1378,] 598 573 #> [1379,] 598 248 #> [1380,] 599 575 #> [1381,] 599 248 #> [1382,] 599 600 #> [1383,] 599 598 #> [1384,] 599 574 #> [1385,] 599 223 #> [1386,] 600 576 #> [1387,] 600 223 #> [1388,] 600 601 #> [1389,] 600 599 #> [1390,] 600 575 #> [1391,] 600 199 #> [1392,] 601 577 #> [1393,] 601 199 #> [1394,] 601 602 #> [1395,] 601 600 #> [1396,] 601 576 #> [1397,] 601 175 #> [1398,] 602 578 #> [1399,] 602 175 #> [1400,] 602 603 #> [1401,] 602 601 #> [1402,] 602 577 #> [1403,] 602 152 #> [1404,] 603 579 #> [1405,] 603 152 #> [1406,] 603 604 #> [1407,] 603 602 #> [1408,] 603 578 #> [1409,] 603 129 #> [1410,] 604 580 #> [1411,] 604 129 #> [1412,] 604 605 #> [1413,] 604 603 #> [1414,] 604 579 #> [1415,] 604 108 #> [1416,] 605 581 #> [1417,] 605 108 #> [1418,] 605 604 #> [1419,] 605 580 #> [1420,] 605 87 #> [1421,] 609 585 #> [1422,] 609 610 #> [1423,] 609 584 #> [1424,] 609 24 #> [1425,] 610 586 #> [1426,] 610 24 #> [1427,] 610 609 #> [1428,] 610 585 #> [1429,] 610 15 #> [1430,] 612 8 #> [1431,] 612 613 #> [1432,] 612 3 #> [1433,] 613 3 #> [1434,] 613 614 #> [1435,] 613 612 #> [1436,] 613 1 #> [1437,] 614 1 #> [1438,] 614 613"},{"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 % vertex; 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 around 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] 614 head(which(isInArea(worldgraph.10k))) # which nodes are TRUE ? #> 707 965 1027 1028 1029 1285 #> 707 965 1027 1028 1029 1285 head(isInArea(worldgraph.10k, res.type = \"integer\")) # node indices #> 707 965 1027 1028 1029 1285 #> 707 965 1027 1028 1029 1285 head(isInArea(worldgraph.10k, res.type = \"character\")) # node names #> [1] \"707\" \"965\" \"1027\" \"1028\" \"1029\" \"1285\" ## 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) #> although coordinates are longitude/latitude, st_intersects assumes that they #> are planar 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/pipe.html","id":null,"dir":"Reference","previous_headings":"","what":"Pipe operator — %>%","title":"Pipe operator — %>%","text":"See magrittr::%>% details.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/pipe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pipe operator — %>%","text":"","code":"lhs %>% rhs"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/pipe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pipe operator — %>%","text":"lhs value magrittr placeholder. rhs function call using magrittr semantics.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/pipe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pipe operator — %>%","text":"result calling rhs(lhs).","code":""},{"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 class sf (see sf::st_read() import GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available. 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 behavior plotting gGraph object, last plotting parameters re-used. override behavior, 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 vertex; 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 constructed 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.","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":"https://evolecolgroup.github.io/geograph/dev/news/index.html","id":"geograph-development-version","dir":"Changelog","previous_headings":"","what":"geoGraph (development version)","title":"geoGraph (development version)","text":"remove use deprecated packages (sp maptools), move sf objects","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/news/index.html","id":"geograph-v11","dir":"Changelog","previous_headings":"","what":"geoGraph v1.1","title":"geoGraph v1.1","text":"Update documentation roxygen. Make vignette fully live.","code":""},{"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(\"EvolEcolGroup/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) ## Spherical geometry (s2) switched off 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 ne_countries datasets rnaturalearth, possible also load custom GIS shapefilew sf::st_read(). Note turn spherical trigonometry functions, naturalearth dataset compatible functionality. 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 FALSE world.countries <- rnaturalearth::ne_countries(scale=\"medium\", returnclass = \"sf\") sf::sf_use_s2(FALSE) class(world.countries) ## [1] \"sf\" \"data.frame\" summary(world.countries) ## scalerank featurecla labelrank sovereignt ## Min. :1.00 Length:241 Min. :2.00 Length:241 ## 1st Qu.:1.00 Class :character 1st Qu.:3.00 Class :character ## Median :1.00 Mode :character Median :4.00 Mode :character ## Mean :1.45 Mean :4.15 ## 3rd Qu.:1.00 3rd Qu.:6.00 ## Max. :6.00 Max. :7.00 ## ## sov_a3 adm0_dif level type ## Length:241 Min. :0.000 Min. :2 Length:241 ## Class :character 1st Qu.:0.000 1st Qu.:2 Class :character ## Mode :character Median :0.000 Median :2 Mode :character ## Mean :0.207 Mean :2 ## 3rd Qu.:0.000 3rd Qu.:2 ## Max. :1.000 Max. :2 ## ## admin adm0_a3 geou_dif geounit ## Length:241 Length:241 Min. :0 Length:241 ## Class :character Class :character 1st Qu.:0 Class :character ## Mode :character Mode :character Median :0 Mode :character ## Mean :0 ## 3rd Qu.:0 ## Max. :0 ## ## gu_a3 su_dif subunit su_a3 ## Length:241 Min. :0.0000 Length:241 Length:241 ## Class :character 1st Qu.:0.0000 Class :character Class :character ## Mode :character Median :0.0000 Mode :character Mode :character ## Mean :0.0083 ## 3rd Qu.:0.0000 ## Max. :1.0000 ## ## brk_diff name name_long brk_a3 ## Min. :0.0000 Length:241 Length:241 Length:241 ## 1st Qu.:0.0000 Class :character Class :character Class :character ## Median :0.0000 Mode :character Mode :character Mode :character ## Mean :0.0332 ## 3rd Qu.:0.0000 ## Max. :1.0000 ## ## brk_name brk_group abbrev postal ## Length:241 Length:241 Length:241 Length:241 ## Class :character Class :character Class :character Class :character ## Mode :character Mode :character Mode :character Mode :character ## ## ## ## ## formal_en formal_fr note_adm0 note_brk ## Length:241 Length:241 Length:241 Length:241 ## Class :character Class :character Class :character Class :character ## Mode :character Mode :character Mode :character Mode :character ## ## ## ## ## name_sort name_alt mapcolor7 mapcolor8 ## Length:241 Length:241 Min. :1.00 Min. :1.00 ## Class :character Class :character 1st Qu.:2.00 1st Qu.:2.00 ## Mode :character Mode :character Median :3.00 Median :4.00 ## Mean :3.35 Mean :3.62 ## 3rd Qu.:5.00 3rd Qu.:5.00 ## Max. :7.00 Max. :8.00 ## ## mapcolor9 mapcolor13 pop_est gdp_md_est ## Min. :1.00 Min. : 1.0 Min. :3.00e+01 Min. : 0 ## 1st Qu.:2.00 1st Qu.: 3.0 1st Qu.:2.92e+05 1st Qu.: 2725 ## Median :4.00 Median : 6.0 Median :4.61e+06 Median : 20445 ## Mean :3.86 Mean : 6.3 Mean :2.85e+07 Mean : 295541 ## 3rd Qu.:6.00 3rd Qu.: 9.0 3rd Qu.:1.64e+07 3rd Qu.: 116050 ## Max. :9.00 Max. :13.0 Max. :1.34e+09 Max. :15094000 ## NA's :2 NA's :3 NA's :3 ## pop_year lastcensus gdp_year economy ## Min. : 0 Min. :1970 Min. : 0 Length:241 ## 1st Qu.: 0 1st Qu.:2002 1st Qu.: 0 Class :character ## Median : 0 Median :2008 Median : 0 Mode :character ## Mean : 574 Mean :2006 Mean : 752 ## 3rd Qu.:1004 3rd Qu.:2010 3rd Qu.:2002 ## Max. :2010 Max. :2012 Max. :2011 ## NA's :234 NA's :33 NA's :233 ## income_grp wikipedia fips_10 iso_a2 ## Length:241 Min. :0 Length:241 Length:241 ## Class :character 1st Qu.:0 Class :character Class :character ## Mode :character Median :0 Mode :character Mode :character ## Mean :0 ## 3rd Qu.:0 ## Max. :0 ## NA's :237 ## iso_a3 iso_n3 un_a3 wb_a2 ## Length:241 Length:241 Length:241 Length:241 ## Class :character Class :character Class :character Class :character ## Mode :character Mode :character Mode :character Mode :character ## ## ## ## ## wb_a3 woe_id adm0_a3_is adm0_a3_us ## Length:241 Min. : NA Length:241 Length:241 ## Class :character 1st Qu.: NA Class :character Class :character ## Mode :character Median : NA Mode :character Mode :character ## Mean :NaN ## 3rd Qu.: NA ## Max. : NA ## NA's :241 ## adm0_a3_un adm0_a3_wb continent region_un ## Min. : NA Min. : NA Length:241 Length:241 ## 1st Qu.: NA 1st Qu.: NA Class :character Class :character ## Median : NA Median : NA Mode :character Mode :character ## Mean :NaN Mean :NaN ## 3rd Qu.: NA 3rd Qu.: NA ## Max. : NA Max. : NA ## NA's :241 NA's :241 ## subregion region_wb name_len long_len ## Length:241 Length:241 Min. : 4.00 Min. : 4.0 ## Class :character Class :character 1st Qu.: 6.00 1st Qu.: 6.0 ## Mode :character Mode :character Median : 8.00 Median : 8.0 ## Mean : 8.91 Mean :10.1 ## 3rd Qu.:10.00 3rd Qu.:11.0 ## Max. :25.00 Max. :40.0 ## ## abbrev_len tiny homepart geometry ## Min. : 3.00 Min. :2.00 Min. :1 MULTIPOLYGON :241 ## 1st Qu.: 4.00 1st Qu.:2.00 1st Qu.:1 epsg:NA : 0 ## Median : 5.00 Median :3.00 Median :1 +proj=long...: 0 ## Mean : 5.08 Mean :3.31 Mean :1 ## 3rd Qu.: 6.00 3rd Qu.:4.00 3rd Qu.:1 ## Max. :13.00 Max. :6.00 Max. :1 ## NA's :186 NA's :41 summary(getNodesAttr(worldgraph.10k)) ## habitat ## deselected land: 290 ## land :2632 ## sea :7320 newGraph <- extractFromLayer(worldgraph.10k, layer = world.countries, attr = c(\"continent\", \"name\")) ## although coordinates are longitude/latitude, st_intersects assumes that they ## are planar 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 Antarctica #FF0000 ## 3 Saudi Arabia #FF0B00 ## 4 Yemen #FF1500 ## 5 Somalia #FF2000 ## 6 China #FF2A00 tail(colMat) ## name color ## 141 Latvia #FF003F ## 142 Belarus #FF0035 ## 143 Eritrea #FF002A ## 144 Djibouti #FF0020 ## 145 Somaliland #FF0015 ## 146 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 ## 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 Ababa, 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 Ababa 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 Ababa\", 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 Ababa\", 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 (2024). geoGraph: Walking geographic space using graphs. R package version 1.1.1.9003, 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 = {2024}, note = {R package version 1.1.1.9003, 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, vertex 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 around 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) #> Spherical geometry (s2) switched off 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 template 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, based 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 sf (see sf::st_read() import GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available. attr character vector giving names variables extracted layer. '', available variables extracted. case problem, available names displayed error message.","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) ## retrieve continent info for all nodes ## (might take a few seconds) x <- extractFromLayer(worldgraph.10k, layer = \"world\", 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 sf (see sf::st_read() import GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available. 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 117.05967 11.48939 #> 2 61.37771 25.38330 #> 3 -13.07482 14.99895 #> ... #> #> @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) #> although coordinates are longitude/latitude, st_intersects assumes that they #> are planar obj # note: new node attribute #> #> === gGraph object === #> #> @coords: spatial coordinates of 1000 nodes #> lon lat #> 1 117.05967 11.48939 #> 2 61.37771 25.38330 #> 3 -13.07482 14.99895 #> ... #> #> @nodes.attr: 1 nodes attributes #> habitat #> 1 sea #> 2 land #> 3 land #> ... #> #> @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$colors <- 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 according 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 (almost perfectly) equal sizes. Two different resolutions provided: - worldgraph.10k: coverage using 10,000 nodes - worldgraph.40k: coverage using 40,000 nodes 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\" #> #> $`965` #> character(0) #> #> $`1027` #> [1] \"707\" \"1347\" \"1028\" \"9950\" \"9951\" \"1348\" #> #> $`1028` #> [1] \"1348\" \"1029\" \"1027\" \"707\" \"1349\" #> #> $`1029` #> [1] \"1349\" \"1028\" \"1350\" #> #> $`1285` #> character(0) #> #> $`1286` #> character(0) #> #> $`1347` #> [1] \"1027\" \"1667\" \"1348\" \"9950\" \"1668\" #> #> $`1348` #> [1] \"1028\" \"1668\" \"1349\" \"1347\" \"1027\" \"1669\" #> #> $`1349` #> [1] \"1029\" \"1669\" \"1350\" \"1348\" \"1028\" \"1670\" #> #> $`1350` #> [1] \"1670\" \"1349\" \"1029\" \"1671\" #> #> $`1605` #> character(0) #> #> $`1606` #> character(0) #> #> $`1607` #> character(0) #> #> $`1667` #> [1] \"1347\" \"1987\" \"1668\" \"9948\" \"1988\" #> #> $`1668` #> [1] \"1348\" \"1988\" \"1669\" \"1667\" \"1347\" \"1989\" #> #> $`1669` #> [1] \"1349\" \"1989\" \"1670\" \"1668\" \"1348\" \"1990\" #> #> $`1670` #> [1] \"1350\" \"1990\" \"1671\" \"1669\" \"1349\" \"1991\" #> #> $`1671` #> [1] \"1991\" \"1670\" \"1350\" \"1992\" #> #> $`1925` #> character(0) #> #> $`1926` #> character(0) #> #> $`1927` #> character(0) #> #> $`1928` #> character(0) #> #> $`1987` #> [1] \"1667\" \"1988\" \"9947\" \"9948\" \"2308\" #> #> $`1988` #> [1] \"1668\" \"2308\" \"1989\" \"1987\" \"1667\" \"2309\" #> #> $`1989` #> [1] \"1669\" \"2309\" \"1990\" \"1988\" \"1668\" \"2310\" #> #> $`1990` #> [1] \"1670\" \"2310\" \"1991\" \"1989\" \"1669\" \"2311\" #> #> $`1991` #> [1] \"1671\" \"2311\" \"1992\" \"1990\" \"1670\" \"2312\" #> #> $`1992` #> [1] \"2312\" \"1991\" \"1671\" \"2313\" #> #> $`2245` #> character(0) #> #> $`2246` #> character(0) #> #> $`2247` #> character(0) #> #> $`2248` #> character(0) #> #> $`2249` #> character(0) #> #> $`2250` #> character(0) #> #> $`2307` #> character(0) #> #> $`2308` #> [1] \"1988\" \"2309\" \"1987\" \"2629\" #> #> $`2309` #> [1] \"1989\" \"2629\" \"2310\" \"2308\" \"1988\" \"2630\" #> #> $`2310` #> [1] \"1990\" \"2630\" \"2311\" \"2309\" \"1989\" \"2631\" #> #> $`2311` #> [1] \"1991\" \"2631\" \"2312\" \"2310\" \"1990\" \"2632\" #> #> $`2312` #> [1] \"1992\" \"2632\" \"2313\" \"2311\" \"1991\" \"2633\" #> #> $`2313` #> [1] \"2633\" \"2314\" \"2312\" \"1992\" \"2634\" #> #> $`2314` #> [1] \"2634\" \"2313\" \"2635\" #> #> $`2565` #> character(0) #> #> $`2566` #> character(0) #> #> $`2567` #> character(0) #> #> $`2568` #> character(0) #> #> $`2569` #> character(0) #> #> $`2570` #> character(0) #> #> $`2571` #> character(0) #> #> $`2627` #> character(0) #> #> $`2628` #> character(0) #> #> $`2629` #> [1] \"2309\" \"2949\" \"2630\" \"2308\" \"2950\" #> #> $`2630` #> [1] \"2310\" \"2950\" \"2631\" \"2629\" \"2309\" \"2951\" #> #> $`2631` #> [1] \"2311\" \"2951\" \"2632\" \"2630\" \"2310\" #> #> $`2632` #> [1] \"2312\" \"2633\" \"2631\" \"2311\" \"2953\" #> #> $`2633` #> [1] \"2313\" \"2953\" \"2634\" \"2632\" \"2312\" \"2954\" #> #> $`2634` #> [1] \"2314\" \"2954\" \"2635\" \"2633\" \"2313\" \"2955\" #> #> $`2635` #> [1] \"2955\" \"2634\" \"2314\" \"2956\" #> #> $`2885` #> character(0) #> #> $`2886` #> character(0) #> #> $`2887` #> character(0) #> #> $`2888` #> character(0) #> #> $`2889` #> character(0) #> #> $`2890` #> character(0) #> #> $`2891` #> character(0) #> #> $`2892` #> character(0) #> #> $`2947` #> [1] \"3267\" \"2948\" \"3268\" #> #> $`2948` #> [1] \"3268\" \"2949\" \"2947\" \"3269\" #> #> $`2949` #> [1] \"2629\" \"3269\" \"2950\" \"2948\" \"3270\" #> #> $`2950` #> [1] \"2630\" \"3270\" \"2951\" \"2949\" \"2629\" #> #> $`2951` #> [1] \"2631\" \"2950\" \"2630\" #> #> $`2952` #> character(0) #> #> $`2953` #> [1] \"2633\" \"2954\" \"2632\" \"3274\" #> #> $`2954` #> [1] \"2634\" \"3274\" \"2955\" \"2953\" \"2633\" \"3275\" #> #> $`2955` #> [1] \"2635\" \"3275\" \"2956\" \"2954\" \"2634\" \"3276\" #> #> $`2956` #> [1] \"3276\" \"2955\" \"2635\" \"3277\" #> #> $`3205` #> character(0) #> #> $`3206` #> character(0) #> #> $`3207` #> character(0) #> #> $`3208` #> character(0) #> #> $`3209` #> character(0) #> #> $`3210` #> character(0) #> #> $`3211` #> character(0) #> #> $`3212` #> character(0) #> #> $`3213` #> character(0) #> #> $`3267` #> [1] \"2947\" \"3587\" \"3268\" \"9943\" \"3588\" #> #> $`3268` #> [1] \"2948\" \"3588\" \"3269\" \"3267\" \"2947\" \"3589\" #> #> $`3269` #> [1] \"2949\" \"3589\" \"3270\" \"3268\" \"2948\" #> #> $`3270` #> [1] \"2950\" \"3269\" \"2949\" #> #> $`3271` #> character(0) #> #> $`3272` #> character(0) #> #> $`3273` #> character(0) #> #> $`3274` #> [1] \"2954\" \"3594\" \"3275\" \"2953\" \"3595\" #> #> $`3275` #> [1] \"2955\" \"3595\" \"3276\" \"3274\" \"2954\" \"3596\" #> #> $`3276` #> [1] \"2956\" \"3596\" \"3277\" \"3275\" \"2955\" #> #> $`3277` #> [1] \"3276\" \"2956\" #> #> $`3525` #> character(0) #> #> $`3526` #> character(0) #> #> $`3527` #> character(0) #> #> $`3528` #> character(0) #> #> $`3529` #> character(0) #> #> $`3530` #> character(0) #> #> $`3531` #> character(0) #> #> $`3532` #> character(0) #> #> $`3533` #> character(0) #> #> $`3534` #> [1] \"3855\" #> #> $`3587` #> [1] \"3267\" \"3907\" \"3588\" \"9942\" \"9943\" \"3908\" #> #> $`3588` #> [1] \"3268\" \"3908\" \"3589\" \"3587\" \"3267\" \"3909\" #> #> $`3589` #> [1] \"3269\" \"3909\" \"3588\" \"3268\" \"3910\" #> #> $`3590` #> character(0) #> #> $`3591` #> character(0) #> #> $`3592` #> character(0) #> #> $`3593` #> [1] \"3913\" \"3594\" \"3914\" #> #> $`3594` #> [1] \"3274\" \"3914\" \"3595\" \"3593\" \"3915\" #> #> $`3595` #> [1] \"3275\" \"3915\" \"3596\" \"3594\" \"3274\" \"3916\" #> #> $`3596` #> [1] \"3276\" \"3916\" \"3595\" \"3275\" #> #> $`3845` #> character(0) #> #> $`3846` #> character(0) #> #> $`3847` #> character(0) #> #> $`3848` #> character(0) #> #> $`3849` #> character(0) #> #> $`3850` #> character(0) #> #> $`3851` #> character(0) #> #> $`3852` #> character(0) #> #> $`3853` #> character(0) #> #> $`3854` #> character(0) #> #> $`3855` #> [1] \"4175\" \"3534\" \"4176\" #> #> $`3907` #> [1] \"3587\" \"4227\" \"3908\" \"9941\" \"9942\" \"4228\" #> #> $`3908` #> [1] \"3588\" \"4228\" \"3909\" \"3907\" \"3587\" \"4229\" #> #> $`3909` #> [1] \"3589\" \"4229\" \"3910\" \"3908\" \"3588\" \"4230\" #> #> $`3910` #> [1] \"4230\" \"3909\" \"3589\" \"4231\" #> #> $`3911` #> character(0) #> #> $`3912` #> [1] \"4232\" \"3913\" \"4233\" #> #> $`3913` #> [1] \"3593\" \"4233\" \"3914\" \"3912\" \"4234\" #> #> $`3914` #> [1] \"3594\" \"4234\" \"3915\" \"3913\" \"3593\" \"4235\" #> #> $`3915` #> [1] \"3595\" \"4235\" \"3916\" \"3914\" \"3594\" #> #> $`3916` #> [1] \"3596\" \"3915\" \"3595\" #> #> $`4164` #> character(0) #> #> $`4165` #> character(0) #> #> $`4166` #> character(0) #> #> $`4167` #> character(0) #> #> $`4168` #> character(0) #> #> $`4169` #> character(0) #> #> $`4170` #> character(0) #> #> $`4171` #> character(0) #> #> $`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\" \"4548\" #> #> $`4228` #> [1] \"3908\" \"4548\" \"4229\" \"4227\" \"3907\" \"4549\" #> #> $`4229` #> [1] \"3909\" \"4549\" \"4230\" \"4228\" \"3908\" \"4550\" #> #> $`4230` #> [1] \"3910\" \"4550\" \"4231\" \"4229\" \"3909\" \"4551\" #> #> $`4231` #> [1] \"4551\" \"4232\" \"4230\" \"3910\" \"4552\" #> #> $`4232` #> [1] \"3912\" \"4552\" \"4233\" \"4231\" \"4553\" #> #> $`4233` #> [1] \"3913\" \"4553\" \"4234\" \"4232\" \"3912\" \"4554\" #> #> $`4234` #> [1] \"3914\" \"4554\" \"4235\" \"4233\" \"3913\" \"4555\" #> #> $`4235` #> [1] \"3915\" \"4555\" \"4234\" \"3914\" #> #> $`4484` #> character(0) #> #> $`4485` #> character(0) #> #> $`4486` #> character(0) #> #> $`4487` #> character(0) #> #> $`4488` #> character(0) #> #> $`4489` #> character(0) #> #> $`4490` #> character(0) #> #> $`4491` #> character(0) #> #> $`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\" \"4548\" \"9939\" \"9940\" \"4868\" #> #> $`4548` #> [1] \"4228\" \"4868\" \"4549\" \"4547\" \"4227\" \"4869\" #> #> $`4549` #> [1] \"4229\" \"4869\" \"4550\" \"4548\" \"4228\" \"4870\" #> #> $`4550` #> [1] \"4230\" \"4870\" \"4551\" \"4549\" \"4229\" \"4871\" #> #> $`4551` #> [1] \"4231\" \"4871\" \"4552\" \"4550\" \"4230\" \"4872\" #> #> $`4552` #> [1] \"4232\" \"4872\" \"4553\" \"4551\" \"4231\" \"4873\" #> #> $`4553` #> [1] \"4233\" \"4873\" \"4554\" \"4552\" \"4232\" \"4874\" #> #> $`4554` #> [1] \"4234\" \"4874\" \"4555\" \"4553\" \"4233\" #> #> $`4555` #> [1] \"4235\" \"4554\" \"4234\" #> #> $`4804` #> character(0) #> #> $`4805` #> character(0) #> #> $`4806` #> character(0) #> #> $`4807` #> character(0) #> #> $`4808` #> character(0) #> #> $`4809` #> character(0) #> #> $`4810` #> character(0) #> #> $`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\" \"4868\" \"9938\" \"9939\" \"5188\" #> #> $`4868` #> [1] \"4548\" \"5188\" \"4869\" \"4867\" \"4547\" \"5189\" #> #> $`4869` #> [1] \"4549\" \"5189\" \"4870\" \"4868\" \"4548\" \"5190\" #> #> $`4870` #> [1] \"4550\" \"5190\" \"4871\" \"4869\" \"4549\" \"5191\" #> #> $`4871` #> [1] \"4551\" \"5191\" \"4872\" \"4870\" \"4550\" \"5192\" #> #> $`4872` #> [1] \"4552\" \"5192\" \"4873\" \"4871\" \"4551\" \"5193\" #> #> $`4873` #> [1] \"4553\" \"5193\" \"4874\" \"4872\" \"4552\" \"5194\" #> #> $`4874` #> [1] \"4554\" \"5194\" \"4873\" \"4553\" #> #> $`5124` #> character(0) #> #> $`5125` #> character(0) #> #> $`5126` #> character(0) #> #> $`5127` #> character(0) #> #> $`5128` #> character(0) #> #> $`5129` #> character(0) #> #> $`5130` #> character(0) #> #> $`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\" \"5188\" \"9937\" \"9938\" \"5508\" #> #> $`5188` #> [1] \"4868\" \"5508\" \"5189\" \"5187\" \"4867\" \"5509\" #> #> $`5189` #> [1] \"4869\" \"5509\" \"5190\" \"5188\" \"4868\" \"5510\" #> #> $`5190` #> [1] \"4870\" \"5510\" \"5191\" \"5189\" \"4869\" \"5511\" #> #> $`5191` #> [1] \"4871\" \"5511\" \"5192\" \"5190\" \"4870\" \"5512\" #> #> $`5192` #> [1] \"4872\" \"5512\" \"5193\" \"5191\" \"4871\" \"5513\" #> #> $`5193` #> [1] \"4873\" \"5513\" \"5194\" \"5192\" \"4872\" #> #> $`5194` #> [1] \"4874\" \"5193\" \"4873\" #> #> $`5444` #> character(0) #> #> $`5445` #> character(0) #> #> $`5446` #> character(0) #> #> $`5447` #> character(0) #> #> $`5448` #> character(0) #> #> $`5449` #> character(0) #> #> $`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\" \"5508\" \"9936\" \"9937\" \"5828\" #> #> $`5508` #> [1] \"5188\" \"5828\" \"5509\" \"5507\" \"5187\" \"5829\" #> #> $`5509` #> [1] \"5189\" \"5829\" \"5510\" \"5508\" \"5188\" \"5830\" #> #> $`5510` #> [1] \"5190\" \"5830\" \"5511\" \"5509\" \"5189\" \"5831\" #> #> $`5511` #> [1] \"5191\" \"5831\" \"5512\" \"5510\" \"5190\" \"5832\" #> #> $`5512` #> [1] \"5192\" \"5832\" \"5513\" \"5511\" \"5191\" \"5833\" #> #> $`5513` #> [1] \"5193\" \"5833\" \"5512\" \"5192\" #> #> $`5764` #> character(0) #> #> $`5765` #> character(0) #> #> $`5766` #> character(0) #> #> $`5767` #> character(0) #> #> $`5768` #> character(0) #> #> $`5769` #> character(0) #> #> $`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\" \"5828\" \"9935\" \"9936\" \"6148\" #> #> $`5828` #> [1] \"5508\" \"6148\" \"5829\" \"5827\" \"5507\" \"6149\" #> #> $`5829` #> [1] \"5509\" \"6149\" \"5830\" \"5828\" \"5508\" \"6150\" #> #> $`5830` #> [1] \"5510\" \"6150\" \"5831\" \"5829\" \"5509\" \"6151\" #> #> $`5831` #> [1] \"5511\" \"6151\" \"5832\" \"5830\" \"5510\" \"6152\" #> #> $`5832` #> [1] \"5512\" \"6152\" \"5833\" \"5831\" \"5511\" #> #> $`5833` #> [1] \"5513\" \"5832\" \"5512\" #> #> $`6084` #> character(0) #> #> $`6085` #> character(0) #> #> $`6086` #> character(0) #> #> $`6087` #> character(0) #> #> $`6088` #> character(0) #> #> $`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\" \"6148\" \"9935\" \"6468\" #> #> $`6148` #> [1] \"5828\" \"6468\" \"6149\" \"6147\" \"5827\" \"6469\" #> #> $`6149` #> [1] \"5829\" \"6469\" \"6150\" \"6148\" \"5828\" \"6470\" #> #> $`6150` #> [1] \"5830\" \"6470\" \"6151\" \"6149\" \"5829\" \"6471\" #> #> $`6151` #> [1] \"5831\" \"6471\" \"6152\" \"6150\" \"5830\" \"6472\" #> #> $`6152` #> [1] \"5832\" \"6472\" \"6151\" \"5831\" #> #> $`6404` #> character(0) #> #> $`6405` #> character(0) #> #> $`6406` #> character(0) #> #> $`6407` #> character(0) #> #> $`6408` #> character(0) #> #> $`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\" \"6468\" \"9933\" #> #> $`6468` #> [1] \"6148\" \"6469\" \"6467\" \"6147\" \"6789\" #> #> $`6469` #> [1] \"6149\" \"6789\" \"6470\" \"6468\" \"6148\" \"6790\" #> #> $`6470` #> [1] \"6150\" \"6790\" \"6471\" \"6469\" \"6149\" \"6791\" #> #> $`6471` #> [1] \"6151\" \"6791\" \"6472\" \"6470\" \"6150\" #> #> $`6472` #> [1] \"6152\" \"6471\" \"6151\" #> #> $`6724` #> character(0) #> #> $`6725` #> character(0) #> #> $`6726` #> character(0) #> #> $`6727` #> character(0) #> #> $`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) #> #> $`6788` #> character(0) #> #> $`6789` #> [1] \"6469\" \"7109\" \"6790\" \"6468\" \"7110\" #> #> $`6790` #> [1] \"6470\" \"7110\" \"6791\" \"6789\" \"6469\" \"7111\" #> #> $`6791` #> [1] \"6471\" \"7111\" \"6790\" \"6470\" #> #> $`7044` #> [1] \"7364\" #> #> $`7045` #> character(0) #> #> $`7046` #> character(0) #> #> $`7047` #> 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) #> #> $`7108` #> character(0) #> #> $`7109` #> [1] \"6789\" \"7110\" #> #> $`7110` #> [1] \"6790\" \"7111\" \"7109\" \"6789\" #> #> $`7111` #> [1] \"6791\" \"7110\" \"6790\" #> #> $`7363` #> [1] \"7683\" \"7364\" \"7684\" #> #> $`7364` #> [1] \"7044\" \"7684\" \"7363\" #> #> $`7365` #> character(0) #> #> $`7366` #> 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\" #> #> $`7427` #> character(0) #> #> $`7428` #> character(0) #> #> $`7429` #> character(0) #> #> $`7430` #> character(0) #> #> $`7683` #> [1] \"7363\" \"8003\" \"7684\" #> #> $`7684` #> [1] \"7364\" \"7683\" \"7363\" #> #> $`7685` #> character(0) #> #> $`7686` #> character(0) #> #> $`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) #> #> $`7747` #> character(0) #> #> $`7748` #> character(0) #> #> $`7749` #> character(0) #> #> $`7750` #> character(0) #> #> $`8003` #> [1] \"7683\" #> #> $`8004` #> character(0) #> #> $`8005` #> 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\" #> #> $`8067` #> character(0) #> #> $`8068` #> character(0) #> #> $`8069` #> character(0) #> #> $`8324` #> character(0) #> #> $`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\" #> #> $`8388` #> character(0) #> #> $`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\" \"1029\" #> [13,] \"1028\" \"1027\" #> [14,] \"1028\" \"707\" #> [15,] \"1028\" \"1349\" #> [16,] \"1029\" \"1349\" #> [17,] \"1029\" \"1028\" #> [18,] \"1029\" \"1350\" #> [19,] \"1347\" \"1027\" #> [20,] \"1347\" \"1667\" #> [21,] \"1347\" \"1348\" #> [22,] \"1347\" \"9950\" #> [23,] \"1347\" \"1668\" #> [24,] \"1348\" \"1028\" #> [25,] \"1348\" \"1668\" #> [26,] \"1348\" \"1349\" #> [27,] \"1348\" \"1347\" #> [28,] \"1348\" \"1027\" #> [29,] \"1348\" \"1669\" #> [30,] \"1349\" \"1029\" #> [31,] \"1349\" \"1669\" #> [32,] \"1349\" \"1350\" #> [33,] \"1349\" \"1348\" #> [34,] \"1349\" \"1028\" #> [35,] \"1349\" \"1670\" #> [36,] \"1350\" \"1670\" #> [37,] \"1350\" \"1349\" #> [38,] \"1350\" \"1029\" #> [39,] \"1350\" \"1671\" #> [40,] \"1667\" \"1347\" #> [41,] \"1667\" \"1987\" #> [42,] \"1667\" \"1668\" #> [43,] \"1667\" \"9948\" #> [44,] \"1667\" \"1988\" #> [45,] \"1668\" \"1348\" #> [46,] \"1668\" \"1988\" #> [47,] \"1668\" \"1669\" #> [48,] \"1668\" \"1667\" #> [49,] \"1668\" \"1347\" #> [50,] \"1668\" \"1989\" #> [51,] \"1669\" \"1349\" #> [52,] \"1669\" \"1989\" #> [53,] \"1669\" \"1670\" #> [54,] \"1669\" \"1668\" #> [55,] \"1669\" \"1348\" #> [56,] \"1669\" \"1990\" #> [57,] \"1670\" \"1350\" #> [58,] \"1670\" \"1990\" #> [59,] \"1670\" \"1671\" #> [60,] \"1670\" \"1669\" #> [61,] \"1670\" \"1349\" #> [62,] \"1670\" \"1991\" #> [63,] \"1671\" \"1991\" #> [64,] \"1671\" \"1670\" #> [65,] \"1671\" \"1350\" #> [66,] \"1671\" \"1992\" #> [67,] \"1987\" \"1667\" #> [68,] \"1987\" \"1988\" #> [69,] \"1987\" \"9947\" #> [70,] \"1987\" \"9948\" #> [71,] \"1987\" \"2308\" #> [72,] \"1988\" \"1668\" #> [73,] \"1988\" \"2308\" #> [74,] \"1988\" \"1989\" #> [75,] \"1988\" \"1987\" #> [76,] \"1988\" \"1667\" #> [77,] \"1988\" \"2309\" #> [78,] \"1989\" \"1669\" #> [79,] \"1989\" \"2309\" #> [80,] \"1989\" \"1990\" #> [81,] \"1989\" \"1988\" #> [82,] \"1989\" \"1668\" #> [83,] \"1989\" \"2310\" #> [84,] \"1990\" \"1670\" #> [85,] \"1990\" \"2310\" #> [86,] \"1990\" \"1991\" #> [87,] \"1990\" \"1989\" #> [88,] \"1990\" \"1669\" #> [89,] \"1990\" \"2311\" #> [90,] \"1991\" \"1671\" #> [91,] \"1991\" \"2311\" #> [92,] \"1991\" \"1992\" #> [93,] \"1991\" \"1990\" #> [94,] \"1991\" \"1670\" #> [95,] \"1991\" \"2312\" #> [96,] \"1992\" \"2312\" #> [97,] \"1992\" \"1991\" #> [98,] \"1992\" \"1671\" #> [99,] \"1992\" \"2313\" #> [100,] \"2308\" \"1988\" #> [101,] \"2308\" \"2309\" #> [102,] \"2308\" \"1987\" #> [103,] \"2308\" \"2629\" #> [104,] \"2309\" \"1989\" #> [105,] \"2309\" \"2629\" #> [106,] \"2309\" \"2310\" #> [107,] \"2309\" \"2308\" #> [108,] \"2309\" \"1988\" #> [109,] \"2309\" \"2630\" #> [110,] \"2310\" \"1990\" #> [111,] \"2310\" \"2630\" #> [112,] \"2310\" \"2311\" #> [113,] \"2310\" \"2309\" #> [114,] \"2310\" \"1989\" #> [115,] \"2310\" \"2631\" #> [116,] \"2311\" \"1991\" #> [117,] \"2311\" \"2631\" #> [118,] \"2311\" \"2312\" #> [119,] \"2311\" \"2310\" #> [120,] \"2311\" \"1990\" #> [121,] \"2311\" \"2632\" #> [122,] \"2312\" \"1992\" #> [123,] \"2312\" \"2632\" #> [124,] \"2312\" \"2313\" #> [125,] \"2312\" \"2311\" #> [126,] \"2312\" \"1991\" #> [127,] \"2312\" \"2633\" #> [128,] \"2313\" \"2633\" #> [129,] \"2313\" \"2314\" #> [130,] \"2313\" \"2312\" #> [131,] \"2313\" \"1992\" #> [132,] \"2313\" \"2634\" #> [133,] \"2314\" \"2634\" #> [134,] \"2314\" \"2313\" #> [135,] \"2314\" \"2635\" #> [136,] \"2629\" \"2309\" #> [137,] \"2629\" \"2949\" #> [138,] \"2629\" \"2630\" #> [139,] \"2629\" \"2308\" #> [140,] \"2629\" \"2950\" #> [141,] \"2630\" \"2310\" #> [142,] \"2630\" \"2950\" #> [143,] \"2630\" \"2631\" #> [144,] \"2630\" \"2629\" #> [145,] \"2630\" \"2309\" #> [146,] \"2630\" \"2951\" #> [147,] \"2631\" \"2311\" #> [148,] \"2631\" \"2951\" #> [149,] \"2631\" \"2632\" #> [150,] \"2631\" \"2630\" #> [151,] \"2631\" \"2310\" #> [152,] \"2632\" \"2312\" #> [153,] \"2632\" \"2633\" #> [154,] \"2632\" \"2631\" #> [155,] \"2632\" \"2311\" #> [156,] \"2632\" \"2953\" #> [157,] \"2633\" \"2313\" #> [158,] \"2633\" \"2953\" #> [159,] \"2633\" \"2634\" #> [160,] \"2633\" \"2632\" #> [161,] \"2633\" \"2312\" #> [162,] \"2633\" \"2954\" #> [163,] \"2634\" \"2314\" #> [164,] \"2634\" \"2954\" #> [165,] \"2634\" \"2635\" #> [166,] \"2634\" \"2633\" #> [167,] \"2634\" \"2313\" #> [168,] \"2634\" \"2955\" #> [169,] \"2635\" \"2955\" #> [170,] \"2635\" \"2634\" #> [171,] \"2635\" \"2314\" #> [172,] \"2635\" \"2956\" #> [173,] \"2947\" \"3267\" #> [174,] \"2947\" \"2948\" #> [175,] \"2947\" \"3268\" #> [176,] \"2948\" \"3268\" #> [177,] \"2948\" \"2949\" #> [178,] \"2948\" \"2947\" #> [179,] \"2948\" \"3269\" #> [180,] \"2949\" \"2629\" #> [181,] \"2949\" \"3269\" #> [182,] \"2949\" \"2950\" #> [183,] \"2949\" \"2948\" #> [184,] \"2949\" \"3270\" #> [185,] \"2950\" \"2630\" #> [186,] \"2950\" \"3270\" #> [187,] \"2950\" \"2951\" #> [188,] \"2950\" \"2949\" #> [189,] \"2950\" \"2629\" #> [190,] \"2951\" \"2631\" #> [191,] \"2951\" \"2950\" #> [192,] \"2951\" \"2630\" #> [193,] \"2953\" \"2633\" #> [194,] \"2953\" \"2954\" #> [195,] \"2953\" \"2632\" #> [196,] \"2953\" \"3274\" #> [197,] \"2954\" \"2634\" #> [198,] \"2954\" \"3274\" #> [199,] \"2954\" \"2955\" #> [200,] \"2954\" \"2953\" #> [201,] \"2954\" \"2633\" #> [202,] \"2954\" \"3275\" #> [203,] \"2955\" \"2635\" #> [204,] \"2955\" \"3275\" #> [205,] \"2955\" \"2956\" #> [206,] \"2955\" \"2954\" #> [207,] \"2955\" \"2634\" #> [208,] \"2955\" \"3276\" #> [209,] \"2956\" \"3276\" #> [210,] \"2956\" \"2955\" #> [211,] \"2956\" \"2635\" #> [212,] \"2956\" \"3277\" #> [213,] \"3267\" \"2947\" #> [214,] \"3267\" \"3587\" #> [215,] \"3267\" \"3268\" #> [216,] \"3267\" \"9943\" #> [217,] \"3267\" \"3588\" #> [218,] \"3268\" \"2948\" #> [219,] \"3268\" \"3588\" #> [220,] \"3268\" \"3269\" #> [221,] \"3268\" \"3267\" #> [222,] \"3268\" \"2947\" #> [223,] \"3268\" \"3589\" #> [224,] \"3269\" \"2949\" #> [225,] \"3269\" \"3589\" #> [226,] \"3269\" \"3270\" #> [227,] \"3269\" \"3268\" #> [228,] \"3269\" \"2948\" #> [229,] \"3270\" \"2950\" #> [230,] \"3270\" \"3269\" #> [231,] \"3270\" \"2949\" #> [232,] \"3274\" \"2954\" #> [233,] \"3274\" \"3594\" #> [234,] \"3274\" \"3275\" #> [235,] \"3274\" \"2953\" #> [236,] \"3274\" \"3595\" #> [237,] \"3275\" \"2955\" #> [238,] \"3275\" \"3595\" #> [239,] \"3275\" \"3276\" #> [240,] \"3275\" \"3274\" #> [241,] \"3275\" \"2954\" #> [242,] \"3275\" \"3596\" #> [243,] \"3276\" \"2956\" #> [244,] \"3276\" \"3596\" #> [245,] \"3276\" \"3277\" #> [246,] \"3276\" \"3275\" #> [247,] \"3276\" \"2955\" #> [248,] \"3277\" \"3276\" #> [249,] \"3277\" \"2956\" #> [250,] \"3534\" \"3855\" #> [251,] \"3587\" \"3267\" #> [252,] \"3587\" \"3907\" #> [253,] \"3587\" \"3588\" #> [254,] \"3587\" \"9942\" #> [255,] \"3587\" \"9943\" #> [256,] \"3587\" \"3908\" #> [257,] \"3588\" \"3268\" #> [258,] \"3588\" \"3908\" #> [259,] \"3588\" \"3589\" #> [260,] \"3588\" \"3587\" #> [261,] \"3588\" \"3267\" #> [262,] \"3588\" \"3909\" #> [263,] \"3589\" \"3269\" #> [264,] \"3589\" \"3909\" #> [265,] \"3589\" \"3588\" #> [266,] \"3589\" \"3268\" #> [267,] \"3589\" \"3910\" #> [268,] \"3593\" \"3913\" #> [269,] \"3593\" \"3594\" #> [270,] \"3593\" \"3914\" #> [271,] \"3594\" \"3274\" #> [272,] \"3594\" \"3914\" #> [273,] \"3594\" \"3595\" #> [274,] \"3594\" \"3593\" #> [275,] \"3594\" \"3915\" #> [276,] \"3595\" \"3275\" #> [277,] \"3595\" \"3915\" #> [278,] \"3595\" \"3596\" #> [279,] \"3595\" \"3594\" #> [280,] \"3595\" \"3274\" #> [281,] \"3595\" \"3916\" #> [282,] \"3596\" \"3276\" #> [283,] \"3596\" \"3916\" #> [284,] \"3596\" \"3595\" #> [285,] \"3596\" \"3275\" #> [286,] \"3855\" \"4175\" #> [287,] \"3855\" \"3534\" #> [288,] \"3855\" \"4176\" #> [289,] \"3907\" \"3587\" #> [290,] \"3907\" \"4227\" #> [291,] \"3907\" \"3908\" #> [292,] \"3907\" \"9941\" #> [293,] \"3907\" \"9942\" #> [294,] \"3907\" \"4228\" #> [295,] \"3908\" \"3588\" #> [296,] \"3908\" \"4228\" #> [297,] \"3908\" \"3909\" #> [298,] \"3908\" \"3907\" #> [299,] \"3908\" \"3587\" #> [300,] \"3908\" \"4229\" #> [301,] \"3909\" \"3589\" #> [302,] \"3909\" \"4229\" #> [303,] \"3909\" \"3910\" #> [304,] \"3909\" \"3908\" #> [305,] \"3909\" \"3588\" #> [306,] \"3909\" \"4230\" #> [307,] \"3910\" \"4230\" #> [308,] \"3910\" \"3909\" #> [309,] \"3910\" \"3589\" #> [310,] \"3910\" \"4231\" #> [311,] \"3912\" \"4232\" #> [312,] \"3912\" \"3913\" #> [313,] \"3912\" \"4233\" #> [314,] \"3913\" \"3593\" #> [315,] \"3913\" \"4233\" #> [316,] \"3913\" \"3914\" #> [317,] \"3913\" \"3912\" #> [318,] \"3913\" \"4234\" #> [319,] \"3914\" \"3594\" #> [320,] \"3914\" \"4234\" #> [321,] \"3914\" \"3915\" #> [322,] \"3914\" \"3913\" #> [323,] \"3914\" \"3593\" #> [324,] \"3914\" \"4235\" #> [325,] \"3915\" \"3595\" #> [326,] \"3915\" \"4235\" #> [327,] \"3915\" \"3916\" #> [328,] \"3915\" \"3914\" #> [329,] \"3915\" \"3594\" #> [330,] \"3916\" \"3596\" #> [331,] \"3916\" \"3915\" #> [332,] \"3916\" \"3595\" #> [333,] \"4175\" \"3855\" #> [334,] \"4175\" \"4176\" #> [335,] \"4175\" \"4496\" #> [336,] \"4176\" \"4496\" #> [337,] \"4176\" \"4175\" #> [338,] \"4176\" \"3855\" #> [339,] \"4176\" \"4497\" #> [340,] \"4227\" \"3907\" #> [341,] \"4227\" \"4547\" #> [342,] \"4227\" \"4228\" #> [343,] \"4227\" \"9940\" #> [344,] \"4227\" \"9941\" #> [345,] \"4227\" \"4548\" #> [346,] \"4228\" \"3908\" #> [347,] \"4228\" \"4548\" #> [348,] \"4228\" \"4229\" #> [349,] \"4228\" \"4227\" #> [350,] \"4228\" \"3907\" #> [351,] \"4228\" \"4549\" #> [352,] \"4229\" \"3909\" #> [353,] \"4229\" \"4549\" #> [354,] \"4229\" \"4230\" #> [355,] \"4229\" \"4228\" #> [356,] \"4229\" \"3908\" #> [357,] \"4229\" \"4550\" #> [358,] \"4230\" \"3910\" #> [359,] \"4230\" \"4550\" #> [360,] \"4230\" \"4231\" #> [361,] \"4230\" \"4229\" #> [362,] \"4230\" \"3909\" #> [363,] \"4230\" \"4551\" #> [364,] \"4231\" \"4551\" #> [365,] \"4231\" \"4232\" #> [366,] \"4231\" \"4230\" #> [367,] \"4231\" \"3910\" #> [368,] \"4231\" \"4552\" #> [369,] \"4232\" \"3912\" #> [370,] \"4232\" \"4552\" #> [371,] \"4232\" \"4233\" #> [372,] \"4232\" \"4231\" #> [373,] \"4232\" \"4553\" #> [374,] \"4233\" \"3913\" #> [375,] \"4233\" \"4553\" #> [376,] \"4233\" \"4234\" #> [377,] \"4233\" \"4232\" #> [378,] \"4233\" \"3912\" #> [379,] \"4233\" \"4554\" #> [380,] \"4234\" \"3914\" #> [381,] \"4234\" \"4554\" #> [382,] \"4234\" \"4235\" #> [383,] \"4234\" \"4233\" #> [384,] \"4234\" \"3913\" #> [385,] \"4234\" \"4555\" #> [386,] \"4235\" \"3915\" #> [387,] \"4235\" \"4555\" #> [388,] \"4235\" \"4234\" #> [389,] \"4235\" \"3914\" #> [390,] \"4493\" \"4813\" #> [391,] \"4493\" \"4494\" #> [392,] \"4493\" \"4814\" #> [393,] \"4494\" \"4814\" #> [394,] \"4494\" \"4493\" #> [395,] \"4494\" \"4815\" #> [396,] \"4496\" \"4176\" #> [397,] \"4496\" \"4497\" #> [398,] \"4496\" \"4175\" #> [399,] \"4496\" \"4817\" #> [400,] \"4497\" \"4817\" #> [401,] \"4497\" \"4496\" #> [402,] \"4497\" \"4176\" #> [403,] \"4497\" \"4818\" #> [404,] \"4547\" \"4227\" #> [405,] \"4547\" \"4867\" #> [406,] \"4547\" \"4548\" #> [407,] \"4547\" \"9939\" #> [408,] \"4547\" \"9940\" #> [409,] \"4547\" \"4868\" #> [410,] \"4548\" \"4228\" #> [411,] \"4548\" \"4868\" #> [412,] \"4548\" \"4549\" #> [413,] \"4548\" \"4547\" #> [414,] \"4548\" \"4227\" #> [415,] \"4548\" \"4869\" #> [416,] \"4549\" \"4229\" #> [417,] \"4549\" \"4869\" #> [418,] \"4549\" \"4550\" #> [419,] \"4549\" \"4548\" #> [420,] \"4549\" \"4228\" #> [421,] \"4549\" \"4870\" #> [422,] \"4550\" \"4230\" #> [423,] \"4550\" \"4870\" #> [424,] \"4550\" \"4551\" #> [425,] \"4550\" \"4549\" #> [426,] \"4550\" \"4229\" #> [427,] \"4550\" \"4871\" #> [428,] \"4551\" \"4231\" #> [429,] \"4551\" \"4871\" #> [430,] \"4551\" \"4552\" #> [431,] \"4551\" \"4550\" #> [432,] \"4551\" \"4230\" #> [433,] \"4551\" \"4872\" #> [434,] \"4552\" \"4232\" #> [435,] \"4552\" \"4872\" #> [436,] \"4552\" \"4553\" #> [437,] \"4552\" \"4551\" #> [438,] \"4552\" \"4231\" #> [439,] \"4552\" \"4873\" #> [440,] \"4553\" \"4233\" #> [441,] \"4553\" \"4873\" #> [442,] \"4553\" \"4554\" #> [443,] \"4553\" \"4552\" #> [444,] \"4553\" \"4232\" #> [445,] \"4553\" \"4874\" #> [446,] \"4554\" \"4234\" #> [447,] \"4554\" \"4874\" #> [448,] \"4554\" \"4555\" #> [449,] \"4554\" \"4553\" #> [450,] \"4554\" \"4233\" #> [451,] \"4555\" \"4235\" #> [452,] \"4555\" \"4554\" #> [453,] \"4555\" \"4234\" #> [454,] \"4813\" \"4493\" #> [455,] \"4813\" \"4814\" #> [456,] \"4813\" \"5134\" #> [457,] \"4814\" \"4494\" #> [458,] \"4814\" \"5134\" #> [459,] \"4814\" \"4815\" #> [460,] \"4814\" \"4813\" #> [461,] \"4814\" \"4493\" #> [462,] \"4814\" \"5135\" #> [463,] \"4815\" \"5135\" #> [464,] \"4815\" \"4814\" #> [465,] \"4815\" \"4494\" #> [466,] \"4815\" \"5136\" #> [467,] \"4817\" \"4497\" #> [468,] \"4817\" \"5137\" #> [469,] \"4817\" \"4818\" #> [470,] \"4817\" \"4496\" #> [471,] \"4817\" \"5138\" #> [472,] \"4818\" \"5138\" #> [473,] \"4818\" \"4817\" #> [474,] \"4818\" \"4497\" #> [475,] \"4818\" \"5139\" #> [476,] \"4867\" \"4547\" #> [477,] \"4867\" \"5187\" #> [478,] \"4867\" \"4868\" #> [479,] \"4867\" \"9938\" #> [480,] \"4867\" \"9939\" #> [481,] \"4867\" \"5188\" #> [482,] \"4868\" \"4548\" #> [483,] \"4868\" \"5188\" #> [484,] \"4868\" \"4869\" #> [485,] \"4868\" \"4867\" #> [486,] \"4868\" \"4547\" #> [487,] \"4868\" \"5189\" #> [488,] \"4869\" \"4549\" #> [489,] \"4869\" \"5189\" #> [490,] \"4869\" \"4870\" #> [491,] \"4869\" \"4868\" #> [492,] \"4869\" \"4548\" #> [493,] \"4869\" \"5190\" #> [494,] \"4870\" \"4550\" #> [495,] \"4870\" \"5190\" #> [496,] \"4870\" \"4871\" #> [497,] \"4870\" \"4869\" #> [498,] \"4870\" \"4549\" #> [499,] \"4870\" \"5191\" #> [500,] \"4871\" \"4551\" #> [501,] \"4871\" \"5191\" #> [502,] \"4871\" \"4872\" #> [503,] \"4871\" \"4870\" #> [504,] \"4871\" \"4550\" #> [505,] \"4871\" \"5192\" #> [506,] \"4872\" \"4552\" #> [507,] \"4872\" \"5192\" #> [508,] \"4872\" \"4873\" #> [509,] \"4872\" \"4871\" #> [510,] \"4872\" \"4551\" #> [511,] \"4872\" \"5193\" #> [512,] \"4873\" \"4553\" #> [513,] \"4873\" \"5193\" #> [514,] \"4873\" \"4874\" #> [515,] \"4873\" \"4872\" #> [516,] \"4873\" \"4552\" #> [517,] \"4873\" \"5194\" #> [518,] \"4874\" \"4554\" #> [519,] \"4874\" \"5194\" #> [520,] \"4874\" \"4873\" #> [521,] \"4874\" \"4553\" #> [522,] \"5134\" \"4814\" #> [523,] \"5134\" \"5135\" #> [524,] \"5134\" \"4813\" #> [525,] \"5134\" \"5455\" #> [526,] \"5135\" \"4815\" #> [527,] \"5135\" \"5455\" #> [528,] \"5135\" \"5136\" #> [529,] \"5135\" \"5134\" #> [530,] \"5135\" \"4814\" #> [531,] \"5136\" \"5137\" #> [532,] \"5136\" \"5135\" #> [533,] \"5136\" \"4815\" #> [534,] \"5137\" \"4817\" #> [535,] \"5137\" \"5138\" #> [536,] \"5137\" \"5136\" #> [537,] \"5137\" \"5458\" #> [538,] \"5138\" \"4818\" #> [539,] \"5138\" \"5458\" #> [540,] \"5138\" \"5139\" #> [541,] \"5138\" \"5137\" #> [542,] \"5138\" \"4817\" #> [543,] \"5138\" \"5459\" #> [544,] \"5139\" \"5459\" #> [545,] \"5139\" \"5138\" #> [546,] \"5139\" \"4818\" #> [547,] \"5139\" \"5460\" #> [548,] \"5187\" \"4867\" #> [549,] \"5187\" \"5507\" #> [550,] \"5187\" \"5188\" #> [551,] \"5187\" \"9937\" #> [552,] \"5187\" \"9938\" #> [553,] \"5187\" \"5508\" #> [554,] \"5188\" \"4868\" #> [555,] \"5188\" \"5508\" #> [556,] \"5188\" \"5189\" #> [557,] \"5188\" \"5187\" #> [558,] \"5188\" \"4867\" #> [559,] \"5188\" \"5509\" #> [560,] \"5189\" \"4869\" #> [561,] \"5189\" \"5509\" #> [562,] \"5189\" \"5190\" #> [563,] \"5189\" \"5188\" #> [564,] \"5189\" \"4868\" #> [565,] \"5189\" \"5510\" #> [566,] \"5190\" \"4870\" #> [567,] \"5190\" \"5510\" #> [568,] \"5190\" \"5191\" #> [569,] \"5190\" \"5189\" #> [570,] \"5190\" \"4869\" #> [571,] \"5190\" \"5511\" #> [572,] \"5191\" \"4871\" #> [573,] \"5191\" \"5511\" #> [574,] \"5191\" \"5192\" #> [575,] \"5191\" \"5190\" #> [576,] \"5191\" \"4870\" #> [577,] \"5191\" \"5512\" #> [578,] \"5192\" \"4872\" #> [579,] \"5192\" \"5512\" #> [580,] \"5192\" \"5193\" #> [581,] \"5192\" \"5191\" #> [582,] \"5192\" \"4871\" #> [583,] \"5192\" \"5513\" #> [584,] \"5193\" \"4873\" #> [585,] \"5193\" \"5513\" #> [586,] \"5193\" \"5194\" #> [587,] \"5193\" \"5192\" #> [588,] \"5193\" \"4872\" #> [589,] \"5194\" \"4874\" #> [590,] \"5194\" \"5193\" #> [591,] \"5194\" \"4873\" #> [592,] \"5455\" \"5135\" #> [593,] \"5455\" \"5775\" #> [594,] \"5455\" \"5134\" #> [595,] \"5455\" \"5776\" #> [596,] \"5458\" \"5138\" #> [597,] \"5458\" \"5459\" #> [598,] \"5458\" \"5137\" #> [599,] \"5458\" \"5779\" #> [600,] \"5459\" \"5139\" #> [601,] \"5459\" \"5779\" #> [602,] \"5459\" \"5460\" #> [603,] \"5459\" \"5458\" #> [604,] \"5459\" \"5138\" #> [605,] \"5459\" \"5780\" #> [606,] \"5460\" \"5780\" #> [607,] \"5460\" \"5459\" #> [608,] \"5460\" \"5139\" #> [609,] \"5460\" \"5781\" #> [610,] \"5507\" \"5187\" #> [611,] \"5507\" \"5827\" #> [612,] \"5507\" \"5508\" #> [613,] \"5507\" \"9936\" #> [614,] \"5507\" \"9937\" #> [615,] \"5507\" \"5828\" #> [616,] \"5508\" \"5188\" #> [617,] \"5508\" \"5828\" #> [618,] \"5508\" \"5509\" #> [619,] \"5508\" \"5507\" #> [620,] \"5508\" \"5187\" #> [621,] \"5508\" \"5829\" #> [622,] \"5509\" \"5189\" #> [623,] \"5509\" \"5829\" #> [624,] \"5509\" \"5510\" #> [625,] \"5509\" \"5508\" #> [626,] \"5509\" \"5188\" #> [627,] \"5509\" \"5830\" #> [628,] \"5510\" \"5190\" #> [629,] \"5510\" \"5830\" #> [630,] \"5510\" \"5511\" #> [631,] \"5510\" \"5509\" #> [632,] \"5510\" \"5189\" #> [633,] \"5510\" \"5831\" #> [634,] \"5511\" \"5191\" #> [635,] \"5511\" \"5831\" #> [636,] \"5511\" \"5512\" #> [637,] \"5511\" \"5510\" #> [638,] \"5511\" \"5190\" #> [639,] \"5511\" \"5832\" #> [640,] \"5512\" \"5192\" #> [641,] \"5512\" \"5832\" #> [642,] \"5512\" \"5513\" #> [643,] \"5512\" \"5511\" #> [644,] \"5512\" \"5191\" #> [645,] \"5512\" \"5833\" #> [646,] \"5513\" \"5193\" #> [647,] \"5513\" \"5833\" #> [648,] \"5513\" \"5512\" #> [649,] \"5513\" \"5192\" #> [650,] \"5770\" \"6090\" #> [651,] \"5775\" \"5455\" #> [652,] \"5775\" \"6095\" #> [653,] \"5775\" \"5776\" #> [654,] \"5775\" \"6096\" #> [655,] \"5776\" \"6096\" #> [656,] \"5776\" \"5775\" #> [657,] \"5776\" \"5455\" #> [658,] \"5779\" \"5459\" #> [659,] \"5779\" \"5780\" #> [660,] \"5779\" \"5458\" #> [661,] \"5779\" \"6100\" #> [662,] \"5780\" \"5460\" #> [663,] \"5780\" \"6100\" #> [664,] \"5780\" \"5781\" #> [665,] \"5780\" \"5779\" #> [666,] \"5780\" \"5459\" #> [667,] \"5780\" \"6101\" #> [668,] \"5781\" \"6101\" #> [669,] \"5781\" \"5780\" #> [670,] \"5781\" \"5460\" #> [671,] \"5781\" \"6102\" #> [672,] \"5827\" \"5507\" #> [673,] \"5827\" \"6147\" #> [674,] \"5827\" \"5828\" #> [675,] \"5827\" \"9935\" #> [676,] \"5827\" \"9936\" #> [677,] \"5827\" \"6148\" #> [678,] \"5828\" \"5508\" #> [679,] \"5828\" \"6148\" #> [680,] \"5828\" \"5829\" #> [681,] \"5828\" \"5827\" #> [682,] \"5828\" \"5507\" #> [683,] \"5828\" \"6149\" #> [684,] \"5829\" \"5509\" #> [685,] \"5829\" \"6149\" #> [686,] \"5829\" \"5830\" #> [687,] \"5829\" \"5828\" #> [688,] \"5829\" \"5508\" #> [689,] \"5829\" \"6150\" #> [690,] \"5830\" \"5510\" #> [691,] \"5830\" \"6150\" #> [692,] \"5830\" \"5831\" #> [693,] \"5830\" \"5829\" #> [694,] \"5830\" \"5509\" #> [695,] \"5830\" \"6151\" #> [696,] \"5831\" \"5511\" #> [697,] \"5831\" \"6151\" #> [698,] \"5831\" \"5832\" #> [699,] \"5831\" \"5830\" #> [700,] \"5831\" \"5510\" #> [701,] \"5831\" \"6152\" #> [702,] \"5832\" \"5512\" #> [703,] \"5832\" \"6152\" #> [704,] \"5832\" \"5833\" #> [705,] \"5832\" \"5831\" #> [706,] \"5832\" \"5511\" #> [707,] \"5833\" \"5513\" #> [708,] \"5833\" \"5832\" #> [709,] \"5833\" \"5512\" #> [710,] \"6090\" \"5770\" #> [711,] \"6090\" \"6411\" #> [712,] \"6093\" \"6413\" #> [713,] \"6093\" \"6094\" #> [714,] \"6093\" \"6414\" #> [715,] \"6094\" \"6414\" #> [716,] \"6094\" \"6095\" #> [717,] \"6094\" \"6093\" #> [718,] \"6094\" \"6415\" #> [719,] \"6095\" \"5775\" #> [720,] \"6095\" \"6415\" #> [721,] \"6095\" \"6096\" #> [722,] \"6095\" \"6094\" #> [723,] \"6095\" \"6416\" #> [724,] \"6096\" \"5776\" #> [725,] \"6096\" \"6416\" #> [726,] \"6096\" \"6095\" #> [727,] \"6096\" \"5775\" #> [728,] \"6096\" \"6417\" #> [729,] \"6100\" \"5780\" #> [730,] \"6100\" \"6101\" #> [731,] \"6100\" \"5779\" #> [732,] \"6100\" \"6421\" #> [733,] \"6101\" \"5781\" #> [734,] \"6101\" \"6421\" #> [735,] \"6101\" \"6102\" #> [736,] \"6101\" \"6100\" #> [737,] \"6101\" \"5780\" #> [738,] \"6101\" \"6422\" #> [739,] \"6102\" \"6422\" #> [740,] \"6102\" \"6101\" #> [741,] \"6102\" \"5781\" #> [742,] \"6102\" \"6423\" #> [743,] \"6147\" \"5827\" #> [744,] \"6147\" \"6467\" #> [745,] \"6147\" \"6148\" #> [746,] \"6147\" \"9935\" #> [747,] \"6147\" \"6468\" #> [748,] \"6148\" \"5828\" #> [749,] \"6148\" \"6468\" #> [750,] \"6148\" \"6149\" #> [751,] \"6148\" \"6147\" #> [752,] \"6148\" \"5827\" #> [753,] \"6148\" \"6469\" #> [754,] \"6149\" \"5829\" #> [755,] \"6149\" \"6469\" #> [756,] \"6149\" \"6150\" #> [757,] \"6149\" \"6148\" #> [758,] \"6149\" \"5828\" #> [759,] \"6149\" \"6470\" #> [760,] \"6150\" \"5830\" #> [761,] \"6150\" \"6470\" #> [762,] \"6150\" \"6151\" #> [763,] \"6150\" \"6149\" #> [764,] \"6150\" \"5829\" #> [765,] \"6150\" \"6471\" #> [766,] \"6151\" \"5831\" #> [767,] \"6151\" \"6471\" #> [768,] \"6151\" \"6152\" #> [769,] \"6151\" \"6150\" #> [770,] \"6151\" \"5830\" #> [771,] \"6151\" \"6472\" #> [772,] \"6152\" \"5832\" #> [773,] \"6152\" \"6472\" #> [774,] \"6152\" \"6151\" #> [775,] \"6152\" \"5831\" #> [776,] \"6411\" \"6412\" #> [777,] \"6411\" \"6090\" #> [778,] \"6412\" \"6413\" #> [779,] \"6412\" \"6411\" #> [780,] \"6413\" \"6093\" #> [781,] \"6413\" \"6414\" #> [782,] \"6413\" \"6412\" #> [783,] \"6414\" \"6094\" #> [784,] \"6414\" \"6415\" #> [785,] \"6414\" \"6413\" #> [786,] \"6414\" \"6093\" #> [787,] \"6414\" \"6735\" #> [788,] \"6415\" \"6095\" #> [789,] \"6415\" \"6735\" #> [790,] \"6415\" \"6416\" #> [791,] \"6415\" \"6414\" #> [792,] \"6415\" \"6094\" #> [793,] \"6415\" \"6736\" #> [794,] \"6416\" \"6096\" #> [795,] \"6416\" \"6736\" #> [796,] \"6416\" \"6417\" #> [797,] \"6416\" \"6415\" #> [798,] \"6416\" \"6095\" #> [799,] \"6416\" \"6737\" #> [800,] \"6417\" \"6737\" #> [801,] \"6417\" \"6416\" #> [802,] \"6417\" \"6096\" #> [803,] \"6421\" \"6101\" #> [804,] \"6421\" \"6422\" #> [805,] \"6421\" \"6100\" #> [806,] \"6422\" \"6102\" #> [807,] \"6422\" \"6423\" #> [808,] \"6422\" \"6421\" #> [809,] \"6422\" \"6101\" #> [810,] \"6423\" \"6422\" #> [811,] \"6423\" \"6102\" #> [812,] \"6423\" \"6744\" #> [813,] \"6467\" \"6147\" #> [814,] \"6467\" \"6468\" #> [815,] \"6467\" \"9933\" #> [816,] \"6468\" \"6148\" #> [817,] \"6468\" \"6469\" #> [818,] \"6468\" \"6467\" #> [819,] \"6468\" \"6147\" #> [820,] \"6468\" \"6789\" #> [821,] \"6469\" \"6149\" #> [822,] \"6469\" \"6789\" #> [823,] \"6469\" \"6470\" #> [824,] \"6469\" \"6468\" #> [825,] \"6469\" \"6148\" #> [826,] \"6469\" \"6790\" #> [827,] \"6470\" \"6150\" #> [828,] \"6470\" \"6790\" #> [829,] \"6470\" \"6471\" #> [830,] \"6470\" \"6469\" #> [831,] \"6470\" \"6149\" #> [832,] \"6470\" \"6791\" #> [833,] \"6471\" \"6151\" #> [834,] \"6471\" \"6791\" #> [835,] \"6471\" \"6472\" #> [836,] \"6471\" \"6470\" #> [837,] \"6471\" \"6150\" #> [838,] \"6472\" \"6152\" #> [839,] \"6472\" \"6471\" #> [840,] \"6472\" \"6151\" #> [841,] \"6735\" \"6415\" #> [842,] \"6735\" \"7055\" #> [843,] \"6735\" \"6736\" #> [844,] \"6735\" \"6414\" #> [845,] \"6735\" \"7056\" #> [846,] \"6736\" \"6416\" #> [847,] \"6736\" \"7056\" #> [848,] \"6736\" \"6737\" #> [849,] \"6736\" \"6735\" #> [850,] \"6736\" \"6415\" #> [851,] \"6736\" \"7057\" #> [852,] \"6737\" \"6417\" #> [853,] \"6737\" \"7057\" #> [854,] \"6737\" \"6736\" #> [855,] \"6737\" \"6416\" #> [856,] \"6737\" \"7058\" #> [857,] \"6744\" \"6423\" #> [858,] \"6744\" \"7065\" #> [859,] \"6789\" \"6469\" #> [860,] \"6789\" \"7109\" #> [861,] \"6789\" \"6790\" #> [862,] \"6789\" \"6468\" #> [863,] \"6789\" \"7110\" #> [864,] \"6790\" \"6470\" #> [865,] \"6790\" \"7110\" #> [866,] \"6790\" \"6791\" #> [867,] \"6790\" \"6789\" #> [868,] \"6790\" \"6469\" #> [869,] \"6790\" \"7111\" #> [870,] \"6791\" \"6471\" #> [871,] \"6791\" \"7111\" #> [872,] \"6791\" \"6790\" #> [873,] \"6791\" \"6470\" #> [874,] \"7044\" \"7364\" #> [875,] \"7055\" \"6735\" #> [876,] \"7055\" \"7375\" #> [877,] \"7055\" \"7056\" #> [878,] \"7055\" \"7376\" #> [879,] \"7056\" \"6736\" #> [880,] \"7056\" \"7376\" #> [881,] \"7056\" \"7057\" #> [882,] \"7056\" \"7055\" #> [883,] \"7056\" \"6735\" #> [884,] \"7056\" \"7377\" #> [885,] \"7057\" \"6737\" #> [886,] \"7057\" \"7377\" #> [887,] \"7057\" \"7058\" #> [888,] \"7057\" \"7056\" #> [889,] \"7057\" \"6736\" #> [890,] \"7057\" \"7378\" #> [891,] \"7058\" \"7378\" #> [892,] \"7058\" \"7059\" #> [893,] \"7058\" \"7057\" #> [894,] \"7058\" \"6737\" #> [895,] \"7059\" \"7058\" #> [896,] \"7065\" \"6744\" #> [897,] \"7065\" \"7386\" #> [898,] \"7109\" \"6789\" #> [899,] \"7109\" \"7110\" #> [900,] \"7110\" \"6790\" #> [901,] \"7110\" \"7111\" #> [902,] \"7110\" \"7109\" #> [903,] \"7110\" \"6789\" #> [904,] \"7111\" \"6791\" #> [905,] \"7111\" \"7110\" #> [906,] \"7111\" \"6790\" #> [907,] \"7363\" \"7683\" #> [908,] \"7363\" \"7364\" #> [909,] \"7363\" \"7684\" #> [910,] \"7364\" \"7044\" #> [911,] \"7364\" \"7684\" #> [912,] \"7364\" \"7363\" #> [913,] \"7375\" \"7055\" #> [914,] \"7375\" \"7695\" #> [915,] \"7375\" \"7376\" #> [916,] \"7375\" \"7696\" #> [917,] \"7376\" \"7056\" #> [918,] \"7376\" \"7696\" #> [919,] \"7376\" \"7377\" #> [920,] \"7376\" \"7375\" #> [921,] \"7376\" \"7055\" #> [922,] \"7376\" \"7697\" #> [923,] \"7377\" \"7057\" #> [924,] \"7377\" \"7697\" #> [925,] \"7377\" \"7378\" #> [926,] \"7377\" \"7376\" #> [927,] \"7377\" \"7056\" #> [928,] \"7377\" \"7698\" #> [929,] \"7378\" \"7058\" #> [930,] \"7378\" \"7698\" #> [931,] \"7378\" \"7377\" #> [932,] \"7378\" \"7057\" #> [933,] \"7378\" \"7699\" #> [934,] \"7381\" \"7702\" #> [935,] \"7386\" \"7065\" #> [936,] \"7683\" \"7363\" #> [937,] \"7683\" \"8003\" #> [938,] \"7683\" \"7684\" #> [939,] \"7684\" \"7364\" #> [940,] \"7684\" \"7683\" #> [941,] \"7684\" \"7363\" #> [942,] \"7692\" \"8012\" #> [943,] \"7692\" \"7693\" #> [944,] \"7692\" \"8013\" #> [945,] \"7693\" \"8013\" #> [946,] \"7693\" \"7694\" #> [947,] \"7693\" \"7692\" #> [948,] \"7693\" \"8014\" #> [949,] \"7694\" \"8014\" #> [950,] \"7694\" \"7695\" #> [951,] \"7694\" \"7693\" #> [952,] \"7694\" \"8015\" #> [953,] \"7695\" \"7375\" #> [954,] \"7695\" \"8015\" #> [955,] \"7695\" \"7696\" #> [956,] \"7695\" \"7694\" #> [957,] \"7696\" \"7376\" #> [958,] \"7696\" \"7697\" #> [959,] \"7696\" \"7695\" #> [960,] \"7696\" \"7375\" #> [961,] \"7696\" \"8017\" #> [962,] \"7697\" \"7377\" #> [963,] \"7697\" \"8017\" #> [964,] \"7697\" \"7698\" #> [965,] \"7697\" \"7696\" #> [966,] \"7697\" \"7376\" #> [967,] \"7697\" \"8018\" #> [968,] \"7698\" \"7378\" #> [969,] \"7698\" \"8018\" #> [970,] \"7698\" \"7699\" #> [971,] \"7698\" \"7697\" #> [972,] \"7698\" \"7377\" #> [973,] \"7698\" \"8019\" #> [974,] \"7699\" \"8019\" #> [975,] \"7699\" \"7700\" #> [976,] \"7699\" \"7698\" #> [977,] \"7699\" \"7378\" #> [978,] \"7699\" \"8020\" #> [979,] \"7700\" \"8020\" #> [980,] \"7700\" \"7699\" #> [981,] \"7700\" \"8021\" #> [982,] \"7702\" \"8022\" #> [983,] \"7702\" \"7381\" #> [984,] \"7702\" \"8023\" #> [985,] \"8003\" \"7683\" #> [986,] \"8012\" \"7692\" #> [987,] \"8012\" \"8332\" #> [988,] \"8012\" \"8013\" #> [989,] \"8012\" \"8333\" #> [990,] \"8013\" \"7693\" #> [991,] \"8013\" \"8333\" #> [992,] \"8013\" \"8014\" #> [993,] \"8013\" \"8012\" #> [994,] \"8013\" \"7692\" #> [995,] \"8013\" \"8334\" #> [996,] \"8014\" \"7694\" #> [997,] \"8014\" \"8334\" #> [998,] \"8014\" \"8015\" #> [999,] \"8014\" \"8013\" #> [1000,] \"8014\" \"7693\" #> [1001,] \"8015\" \"7695\" #> [1002,] \"8015\" \"8014\" #> [1003,] \"8015\" \"7694\" #> [1004,] \"8017\" \"7697\" #> [1005,] \"8017\" \"8337\" #> [1006,] \"8017\" \"8018\" #> [1007,] \"8017\" \"7696\" #> [1008,] \"8017\" \"8338\" #> [1009,] \"8018\" \"7698\" #> [1010,] \"8018\" \"8338\" #> [1011,] \"8018\" \"8019\" #> [1012,] \"8018\" \"8017\" #> [1013,] \"8018\" \"7697\" #> [1014,] \"8018\" \"8339\" #> [1015,] \"8019\" \"7699\" #> [1016,] \"8019\" \"8339\" #> [1017,] \"8019\" \"8020\" #> [1018,] \"8019\" \"8018\" #> [1019,] \"8019\" \"7698\" #> [1020,] \"8019\" \"8340\" #> [1021,] \"8020\" \"7700\" #> [1022,] \"8020\" \"8340\" #> [1023,] \"8020\" \"8021\" #> [1024,] \"8020\" \"8019\" #> [1025,] \"8020\" \"7699\" #> [1026,] \"8020\" \"8341\" #> [1027,] \"8021\" \"8341\" #> [1028,] \"8021\" \"8022\" #> [1029,] \"8021\" \"8020\" #> [1030,] \"8021\" \"7700\" #> [1031,] \"8021\" \"8342\" #> [1032,] \"8022\" \"7702\" #> [1033,] \"8022\" \"8342\" #> [1034,] \"8022\" \"8023\" #> [1035,] \"8022\" \"8021\" #> [1036,] \"8022\" \"8343\" #> [1037,] \"8023\" \"8343\" #> [1038,] \"8023\" \"8022\" #> [1039,] \"8023\" \"7702\" #> [1040,] \"8027\" \"8348\" #> [1041,] \"8332\" \"8012\" #> [1042,] \"8332\" \"8652\" #> [1043,] \"8332\" \"8333\" #> [1044,] \"8332\" \"8653\" #> [1045,] \"8333\" \"8013\" #> [1046,] \"8333\" \"8653\" #> [1047,] \"8333\" \"8334\" #> [1048,] \"8333\" \"8332\" #> [1049,] \"8333\" \"8012\" #> [1050,] \"8334\" \"8014\" #> [1051,] \"8334\" \"8333\" #> [1052,] \"8334\" \"8013\" #> [1053,] \"8337\" \"8017\" #> [1054,] \"8337\" \"8657\" #> [1055,] \"8337\" \"8338\" #> [1056,] \"8337\" \"8658\" #> [1057,] \"8338\" \"8018\" #> [1058,] \"8338\" \"8658\" #> [1059,] \"8338\" \"8339\" #> [1060,] \"8338\" \"8337\" #> [1061,] \"8338\" \"8017\" #> [1062,] \"8338\" \"8659\" #> [1063,] \"8339\" \"8019\" #> [1064,] \"8339\" \"8659\" #> [1065,] \"8339\" \"8340\" #> [1066,] \"8339\" \"8338\" #> [1067,] \"8339\" \"8018\" #> [1068,] \"8339\" \"8660\" #> [1069,] \"8340\" \"8020\" #> [1070,] \"8340\" \"8660\" #> [1071,] \"8340\" \"8341\" #> [1072,] \"8340\" \"8339\" #> [1073,] \"8340\" \"8019\" #> [1074,] \"8340\" \"8661\" #> [1075,] \"8341\" \"8021\" #> [1076,] \"8341\" \"8661\" #> [1077,] \"8341\" \"8342\" #> [1078,] \"8341\" \"8340\" #> [1079,] \"8341\" \"8020\" #> [1080,] \"8341\" \"8662\" #> [1081,] \"8342\" \"8022\" #> [1082,] \"8342\" \"8662\" #> [1083,] \"8342\" \"8343\" #> [1084,] \"8342\" \"8341\" #> [1085,] \"8342\" \"8021\" #> [1086,] \"8342\" \"8663\" #> [1087,] \"8343\" \"8023\" #> [1088,] \"8343\" \"8663\" #> [1089,] \"8343\" \"8342\" #> [1090,] \"8343\" \"8022\" #> [1091,] \"8343\" \"8664\" #> [1092,] \"8348\" \"8027\" #> [1093,] \"8348\" \"8669\" #> [1094,] \"8651\" \"8971\" #> [1095,] \"8651\" \"8652\" #> [1096,] \"8651\" \"8972\" #> [1097,] \"8652\" \"8332\" #> [1098,] \"8652\" \"8972\" #> [1099,] \"8652\" \"8653\" #> [1100,] \"8652\" \"8651\" #> [1101,] \"8653\" \"8333\" #> [1102,] \"8653\" \"8652\" #> [1103,] \"8653\" \"8332\" #> [1104,] \"8653\" \"8974\" #> [1105,] \"8657\" \"8337\" #> [1106,] \"8657\" \"8977\" #> [1107,] \"8657\" \"8658\" #> [1108,] \"8657\" \"8978\" #> [1109,] \"8658\" \"8338\" #> [1110,] \"8658\" \"8978\" #> [1111,] \"8658\" \"8659\" #> [1112,] \"8658\" \"8657\" #> [1113,] \"8658\" \"8337\" #> [1114,] \"8658\" \"8979\" #> [1115,] \"8659\" \"8339\" #> [1116,] \"8659\" \"8979\" #> [1117,] \"8659\" \"8660\" #> [1118,] \"8659\" \"8658\" #> [1119,] \"8659\" \"8338\" #> [1120,] \"8659\" \"8980\" #> [1121,] \"8660\" \"8340\" #> [1122,] \"8660\" \"8980\" #> [1123,] \"8660\" \"8661\" #> [1124,] \"8660\" \"8659\" #> [1125,] \"8660\" \"8339\" #> [1126,] \"8660\" \"8981\" #> [1127,] \"8661\" \"8341\" #> [1128,] \"8661\" \"8981\" #> [1129,] \"8661\" \"8662\" #> [1130,] \"8661\" \"8660\" #> [1131,] \"8661\" \"8340\" #> [1132,] \"8661\" \"8982\" #> [1133,] \"8662\" \"8342\" #> [1134,] \"8662\" \"8982\" #> [1135,] \"8662\" \"8663\" #> [1136,] \"8662\" \"8661\" #> [1137,] \"8662\" \"8341\" #> [1138,] \"8662\" \"8983\" #> [1139,] \"8663\" \"8343\" #> [1140,] \"8663\" \"8983\" #> [1141,] \"8663\" \"8664\" #> [1142,] \"8663\" \"8662\" #> [1143,] \"8663\" \"8342\" #> [1144,] \"8663\" \"8984\" #> [1145,] \"8664\" \"8984\" #> [1146,] \"8664\" \"8663\" #> [1147,] \"8664\" \"8343\" #> [1148,] \"8669\" \"8348\" #> [1149,] \"8669\" \"8990\" #> [1150,] \"8971\" \"8651\" #> [1151,] \"8971\" \"9291\" #> [1152,] \"8971\" \"8972\" #> [1153,] \"8971\" \"9292\" #> [1154,] \"8972\" \"8652\" #> [1155,] \"8972\" \"9292\" #> [1156,] \"8972\" \"8971\" #> [1157,] \"8972\" \"8651\" #> [1158,] \"8972\" \"9293\" #> [1159,] \"8974\" \"9294\" #> [1160,] \"8974\" \"8975\" #> [1161,] \"8974\" \"8653\" #> [1162,] \"8974\" \"9295\" #> [1163,] \"8975\" \"9295\" #> [1164,] \"8975\" \"8976\" #> [1165,] \"8975\" \"8974\" #> [1166,] \"8976\" \"8977\" #> [1167,] \"8976\" \"8975\" #> [1168,] \"8976\" \"9297\" #> [1169,] \"8977\" \"8657\" #> [1170,] \"8977\" \"9297\" #> [1171,] \"8977\" \"8978\" #> [1172,] \"8977\" \"8976\" #> [1173,] \"8977\" \"9298\" #> [1174,] \"8978\" \"8658\" #> [1175,] \"8978\" \"9298\" #> [1176,] \"8978\" \"8979\" #> [1177,] \"8978\" \"8977\" #> [1178,] \"8978\" \"8657\" #> [1179,] \"8978\" \"9299\" #> [1180,] \"8979\" \"8659\" #> [1181,] \"8979\" \"9299\" #> [1182,] \"8979\" \"8980\" #> [1183,] \"8979\" \"8978\" #> [1184,] \"8979\" \"8658\" #> [1185,] \"8979\" \"9300\" #> [1186,] \"8980\" \"8660\" #> [1187,] \"8980\" \"9300\" #> [1188,] \"8980\" \"8981\" #> [1189,] \"8980\" \"8979\" #> [1190,] \"8980\" \"8659\" #> [1191,] \"8980\" \"9301\" #> [1192,] \"8981\" \"8661\" #> [1193,] \"8981\" \"9301\" #> [1194,] \"8981\" \"8982\" #> [1195,] \"8981\" \"8980\" #> [1196,] \"8981\" \"8660\" #> [1197,] \"8981\" \"9302\" #> [1198,] \"8982\" \"8662\" #> [1199,] \"8982\" \"9302\" #> [1200,] \"8982\" \"8983\" #> [1201,] \"8982\" \"8981\" #> [1202,] \"8982\" \"8661\" #> [1203,] \"8982\" \"9303\" #> [1204,] \"8983\" \"8663\" #> [1205,] \"8983\" \"9303\" #> [1206,] \"8983\" \"8984\" #> [1207,] \"8983\" \"8982\" #> [1208,] \"8983\" \"8662\" #> [1209,] \"8984\" \"8664\" #> [1210,] \"8984\" \"8983\" #> [1211,] \"8984\" \"8663\" #> [1212,] \"8986\" \"9306\" #> [1213,] \"8986\" \"9307\" #> [1214,] \"8990\" \"8669\" #> [1215,] \"9291\" \"8971\" #> [1216,] \"9291\" \"9292\" #> [1217,] \"9291\" \"9612\" #> [1218,] \"9292\" \"8972\" #> [1219,] \"9292\" \"9612\" #> [1220,] \"9292\" \"9293\" #> [1221,] \"9292\" \"9291\" #> [1222,] \"9292\" \"8971\" #> [1223,] \"9292\" \"9613\" #> [1224,] \"9293\" \"9613\" #> [1225,] \"9293\" \"9294\" #> [1226,] \"9293\" \"9292\" #> [1227,] \"9293\" \"8972\" #> [1228,] \"9293\" \"9614\" #> [1229,] \"9294\" \"8974\" #> [1230,] \"9294\" \"9614\" #> [1231,] \"9294\" \"9295\" #> [1232,] \"9294\" \"9293\" #> [1233,] \"9294\" \"9615\" #> [1234,] \"9295\" \"8975\" #> [1235,] \"9295\" \"9615\" #> [1236,] \"9295\" \"9294\" #> [1237,] \"9295\" \"8974\" #> [1238,] \"9295\" \"9616\" #> [1239,] \"9297\" \"8977\" #> [1240,] \"9297\" \"9617\" #> [1241,] \"9297\" \"9298\" #> [1242,] \"9297\" \"8976\" #> [1243,] \"9297\" \"9618\" #> [1244,] \"9298\" \"8978\" #> [1245,] \"9298\" \"9618\" #> [1246,] \"9298\" \"9299\" #> [1247,] \"9298\" \"9297\" #> [1248,] \"9298\" \"8977\" #> [1249,] \"9298\" \"9619\" #> [1250,] \"9299\" \"8979\" #> [1251,] \"9299\" \"9619\" #> [1252,] \"9299\" \"9300\" #> [1253,] \"9299\" \"9298\" #> [1254,] \"9299\" \"8978\" #> [1255,] \"9299\" \"9620\" #> [1256,] \"9300\" \"8980\" #> [1257,] \"9300\" \"9620\" #> [1258,] \"9300\" \"9301\" #> [1259,] \"9300\" \"9299\" #> [1260,] \"9300\" \"8979\" #> [1261,] \"9300\" \"9621\" #> [1262,] \"9301\" \"8981\" #> [1263,] \"9301\" \"9621\" #> [1264,] \"9301\" \"9302\" #> [1265,] \"9301\" \"9300\" #> [1266,] \"9301\" \"8980\" #> [1267,] \"9301\" \"9622\" #> [1268,] \"9302\" \"8982\" #> [1269,] \"9302\" \"9622\" #> [1270,] \"9302\" \"9303\" #> [1271,] \"9302\" \"9301\" #> [1272,] \"9302\" \"8981\" #> [1273,] \"9302\" \"9623\" #> [1274,] \"9303\" \"8983\" #> [1275,] \"9303\" \"9623\" #> [1276,] \"9303\" \"9302\" #> [1277,] \"9303\" \"8982\" #> [1278,] \"9303\" \"9624\" #> [1279,] \"9306\" \"8986\" #> [1280,] \"9306\" \"9626\" #> [1281,] \"9306\" \"9307\" #> [1282,] \"9306\" \"9627\" #> [1283,] \"9307\" \"9627\" #> [1284,] \"9307\" \"9306\" #> [1285,] \"9307\" \"8986\" #> [1286,] \"9307\" \"9628\" #> [1287,] \"9612\" \"9292\" #> [1288,] \"9612\" \"9613\" #> [1289,] \"9612\" \"9291\" #> [1290,] \"9612\" \"9933\" #> [1291,] \"9613\" \"9293\" #> [1292,] \"9613\" \"9933\" #> [1293,] \"9613\" \"9614\" #> [1294,] \"9613\" \"9612\" #> [1295,] \"9613\" \"9292\" #> [1296,] \"9614\" \"9294\" #> [1297,] \"9614\" \"9615\" #> [1298,] \"9614\" \"9613\" #> [1299,] \"9614\" \"9293\" #> [1300,] \"9614\" \"9935\" #> [1301,] \"9615\" \"9295\" #> [1302,] \"9615\" \"9935\" #> [1303,] \"9615\" \"9616\" #> [1304,] \"9615\" \"9614\" #> [1305,] \"9615\" \"9294\" #> [1306,] \"9615\" \"9936\" #> [1307,] \"9616\" \"9936\" #> [1308,] \"9616\" \"9617\" #> [1309,] \"9616\" \"9615\" #> [1310,] \"9616\" \"9295\" #> [1311,] \"9616\" \"9937\" #> [1312,] \"9617\" \"9297\" #> [1313,] \"9617\" \"9937\" #> [1314,] \"9617\" \"9618\" #> [1315,] \"9617\" \"9616\" #> [1316,] \"9617\" \"9938\" #> [1317,] \"9618\" \"9298\" #> [1318,] \"9618\" \"9938\" #> [1319,] \"9618\" \"9619\" #> [1320,] \"9618\" \"9617\" #> [1321,] \"9618\" \"9297\" #> [1322,] \"9618\" \"9939\" #> [1323,] \"9619\" \"9299\" #> [1324,] \"9619\" \"9939\" #> [1325,] \"9619\" \"9620\" #> [1326,] \"9619\" \"9618\" #> [1327,] \"9619\" \"9298\" #> [1328,] \"9619\" \"9940\" #> [1329,] \"9620\" \"9300\" #> [1330,] \"9620\" \"9940\" #> [1331,] \"9620\" \"9621\" #> [1332,] \"9620\" \"9619\" #> [1333,] \"9620\" \"9299\" #> [1334,] \"9620\" \"9941\" #> [1335,] \"9621\" \"9301\" #> [1336,] \"9621\" \"9941\" #> [1337,] \"9621\" \"9622\" #> [1338,] \"9621\" \"9620\" #> [1339,] \"9621\" \"9300\" #> [1340,] \"9621\" \"9942\" #> [1341,] \"9622\" \"9302\" #> [1342,] \"9622\" \"9942\" #> [1343,] \"9622\" \"9623\" #> [1344,] \"9622\" \"9621\" #> [1345,] \"9622\" \"9301\" #> [1346,] \"9622\" \"9943\" #> [1347,] \"9623\" \"9303\" #> [1348,] \"9623\" \"9943\" #> [1349,] \"9623\" \"9624\" #> [1350,] \"9623\" \"9622\" #> [1351,] \"9623\" \"9302\" #> [1352,] \"9624\" \"9623\" #> [1353,] \"9624\" \"9303\" #> [1354,] \"9626\" \"9306\" #> [1355,] \"9626\" \"9627\" #> [1356,] \"9626\" \"9947\" #> [1357,] \"9627\" \"9307\" #> [1358,] \"9627\" \"9947\" #> [1359,] \"9627\" \"9628\" #> [1360,] \"9627\" \"9626\" #> [1361,] \"9627\" \"9306\" #> [1362,] \"9627\" \"9948\" #> [1363,] \"9628\" \"9948\" #> [1364,] \"9628\" \"9627\" #> [1365,] \"9628\" \"9307\" #> [1366,] \"9933\" \"9613\" #> [1367,] \"9933\" \"9612\" #> [1368,] \"9933\" \"6467\" #> [1369,] \"9935\" \"9615\" #> [1370,] \"9935\" \"6147\" #> [1371,] \"9935\" \"9936\" #> [1372,] \"9935\" \"9614\" #> [1373,] \"9935\" \"5827\" #> [1374,] \"9936\" \"9616\" #> [1375,] \"9936\" \"5827\" #> [1376,] \"9936\" \"9937\" #> [1377,] \"9936\" \"9935\" #> [1378,] \"9936\" \"9615\" #> [1379,] \"9936\" \"5507\" #> [1380,] \"9937\" \"9617\" #> [1381,] \"9937\" \"5507\" #> [1382,] \"9937\" \"9938\" #> [1383,] \"9937\" \"9936\" #> [1384,] \"9937\" \"9616\" #> [1385,] \"9937\" \"5187\" #> [1386,] \"9938\" \"9618\" #> [1387,] \"9938\" \"5187\" #> [1388,] \"9938\" \"9939\" #> [1389,] \"9938\" \"9937\" #> [1390,] \"9938\" \"9617\" #> [1391,] \"9938\" \"4867\" #> [1392,] \"9939\" \"9619\" #> [1393,] \"9939\" \"4867\" #> [1394,] \"9939\" \"9940\" #> [1395,] \"9939\" \"9938\" #> [1396,] \"9939\" \"9618\" #> [1397,] \"9939\" \"4547\" #> [1398,] \"9940\" \"9620\" #> [1399,] \"9940\" \"4547\" #> [1400,] \"9940\" \"9941\" #> [1401,] \"9940\" \"9939\" #> [1402,] \"9940\" \"9619\" #> [1403,] \"9940\" \"4227\" #> [1404,] \"9941\" \"9621\" #> [1405,] \"9941\" \"4227\" #> [1406,] \"9941\" \"9942\" #> [1407,] \"9941\" \"9940\" #> [1408,] \"9941\" \"9620\" #> [1409,] \"9941\" \"3907\" #> [1410,] \"9942\" \"9622\" #> [1411,] \"9942\" \"3907\" #> [1412,] \"9942\" \"9943\" #> [1413,] \"9942\" \"9941\" #> [1414,] \"9942\" \"9621\" #> [1415,] \"9942\" \"3587\" #> [1416,] \"9943\" \"9623\" #> [1417,] \"9943\" \"3587\" #> [1418,] \"9943\" \"9942\" #> [1419,] \"9943\" \"9622\" #> [1420,] \"9943\" \"3267\" #> [1421,] \"9947\" \"9627\" #> [1422,] \"9947\" \"9948\" #> [1423,] \"9947\" \"9626\" #> [1424,] \"9947\" \"1987\" #> [1425,] \"9948\" \"9628\" #> [1426,] \"9948\" \"1987\" #> [1427,] \"9948\" \"9947\" #> [1428,] \"9948\" \"9627\" #> [1429,] \"9948\" \"1667\" #> [1430,] \"9950\" \"1347\" #> [1431,] \"9950\" \"9951\" #> [1432,] \"9950\" \"1027\" #> [1433,] \"9951\" \"1027\" #> [1434,] \"9951\" \"9952\" #> [1435,] \"9951\" \"9950\" #> [1436,] \"9951\" \"707\" #> [1437,] \"9952\" \"707\" #> [1438,] \"9952\" \"9951\" getEdges(x, res.type = \"matId\") #> Vi Vj #> [1,] 1 3 #> [2,] 1 613 #> [3,] 1 614 #> [4,] 1 4 #> [5,] 3 1 #> [6,] 3 8 #> [7,] 3 4 #> [8,] 3 612 #> [9,] 3 613 #> [10,] 3 9 #> [11,] 4 9 #> [12,] 4 5 #> [13,] 4 3 #> [14,] 4 1 #> [15,] 4 10 #> [16,] 5 10 #> [17,] 5 4 #> [18,] 5 11 #> [19,] 8 3 #> [20,] 8 15 #> [21,] 8 9 #> [22,] 8 612 #> [23,] 8 16 #> [24,] 9 4 #> [25,] 9 16 #> [26,] 9 10 #> [27,] 9 8 #> [28,] 9 3 #> [29,] 9 17 #> [30,] 10 5 #> [31,] 10 17 #> [32,] 10 11 #> [33,] 10 9 #> [34,] 10 4 #> [35,] 10 18 #> [36,] 11 18 #> [37,] 11 10 #> [38,] 11 5 #> [39,] 11 19 #> [40,] 15 8 #> [41,] 15 24 #> [42,] 15 16 #> [43,] 15 610 #> [44,] 15 25 #> [45,] 16 9 #> [46,] 16 25 #> [47,] 16 17 #> [48,] 16 15 #> [49,] 16 8 #> [50,] 16 26 #> [51,] 17 10 #> [52,] 17 26 #> [53,] 17 18 #> [54,] 17 16 #> [55,] 17 9 #> [56,] 17 27 #> [57,] 18 11 #> [58,] 18 27 #> [59,] 18 19 #> [60,] 18 17 #> [61,] 18 10 #> [62,] 18 28 #> [63,] 19 28 #> [64,] 19 18 #> [65,] 19 11 #> [66,] 19 29 #> [67,] 24 15 #> [68,] 24 25 #> [69,] 24 609 #> [70,] 24 610 #> [71,] 24 37 #> [72,] 25 16 #> [73,] 25 37 #> [74,] 25 26 #> [75,] 25 24 #> [76,] 25 15 #> [77,] 25 38 #> [78,] 26 17 #> [79,] 26 38 #> [80,] 26 27 #> [81,] 26 25 #> [82,] 26 16 #> [83,] 26 39 #> [84,] 27 18 #> [85,] 27 39 #> [86,] 27 28 #> [87,] 27 26 #> [88,] 27 17 #> [89,] 27 40 #> [90,] 28 19 #> [91,] 28 40 #> [92,] 28 29 #> [93,] 28 27 #> [94,] 28 18 #> [95,] 28 41 #> [96,] 29 41 #> [97,] 29 28 #> [98,] 29 19 #> [99,] 29 42 #> [100,] 37 25 #> [101,] 37 38 #> [102,] 37 24 #> [103,] 37 53 #> [104,] 38 26 #> [105,] 38 53 #> [106,] 38 39 #> [107,] 38 37 #> [108,] 38 25 #> [109,] 38 54 #> [110,] 39 27 #> [111,] 39 54 #> [112,] 39 40 #> [113,] 39 38 #> [114,] 39 26 #> [115,] 39 55 #> [116,] 40 28 #> [117,] 40 55 #> [118,] 40 41 #> [119,] 40 39 #> [120,] 40 27 #> [121,] 40 56 #> [122,] 41 29 #> [123,] 41 56 #> [124,] 41 42 #> [125,] 41 40 #> [126,] 41 28 #> [127,] 41 57 #> [128,] 42 57 #> [129,] 42 43 #> [130,] 42 41 #> [131,] 42 29 #> [132,] 42 58 #> [133,] 43 58 #> [134,] 43 42 #> [135,] 43 59 #> [136,] 53 38 #> [137,] 53 70 #> [138,] 53 54 #> [139,] 53 37 #> [140,] 53 71 #> [141,] 54 39 #> [142,] 54 71 #> [143,] 54 55 #> [144,] 54 53 #> [145,] 54 38 #> [146,] 54 72 #> [147,] 55 40 #> [148,] 55 72 #> [149,] 55 56 #> [150,] 55 54 #> [151,] 55 39 #> [152,] 56 41 #> [153,] 56 57 #> [154,] 56 55 #> [155,] 56 40 #> [156,] 56 74 #> [157,] 57 42 #> [158,] 57 74 #> [159,] 57 58 #> [160,] 57 56 #> [161,] 57 41 #> [162,] 57 75 #> [163,] 58 43 #> [164,] 58 75 #> [165,] 58 59 #> [166,] 58 57 #> [167,] 58 42 #> [168,] 58 76 #> [169,] 59 76 #> [170,] 59 58 #> [171,] 59 43 #> [172,] 59 77 #> [173,] 68 87 #> [174,] 68 69 #> [175,] 68 88 #> [176,] 69 88 #> [177,] 69 70 #> [178,] 69 68 #> [179,] 69 89 #> [180,] 70 53 #> [181,] 70 89 #> [182,] 70 71 #> [183,] 70 69 #> [184,] 70 90 #> [185,] 71 54 #> [186,] 71 90 #> [187,] 71 72 #> [188,] 71 70 #> [189,] 71 53 #> [190,] 72 55 #> [191,] 72 71 #> [192,] 72 54 #> [193,] 74 57 #> [194,] 74 75 #> [195,] 74 56 #> [196,] 74 94 #> [197,] 75 58 #> [198,] 75 94 #> [199,] 75 76 #> [200,] 75 74 #> [201,] 75 57 #> [202,] 75 95 #> [203,] 76 59 #> [204,] 76 95 #> [205,] 76 77 #> [206,] 76 75 #> [207,] 76 58 #> [208,] 76 96 #> [209,] 77 96 #> [210,] 77 76 #> [211,] 77 59 #> [212,] 77 97 #> [213,] 87 68 #> [214,] 87 108 #> [215,] 87 88 #> [216,] 87 605 #> [217,] 87 109 #> [218,] 88 69 #> [219,] 88 109 #> [220,] 88 89 #> [221,] 88 87 #> [222,] 88 68 #> [223,] 88 110 #> [224,] 89 70 #> [225,] 89 110 #> [226,] 89 90 #> [227,] 89 88 #> [228,] 89 69 #> [229,] 90 71 #> [230,] 90 89 #> [231,] 90 70 #> [232,] 94 75 #> [233,] 94 115 #> [234,] 94 95 #> [235,] 94 74 #> [236,] 94 116 #> [237,] 95 76 #> [238,] 95 116 #> [239,] 95 96 #> [240,] 95 94 #> [241,] 95 75 #> [242,] 95 117 #> [243,] 96 77 #> [244,] 96 117 #> [245,] 96 97 #> [246,] 96 95 #> [247,] 96 76 #> [248,] 97 96 #> [249,] 97 77 #> [250,] 107 128 #> [251,] 108 87 #> [252,] 108 129 #> [253,] 108 109 #> [254,] 108 604 #> [255,] 108 605 #> [256,] 108 130 #> [257,] 109 88 #> [258,] 109 130 #> [259,] 109 110 #> [260,] 109 108 #> [261,] 109 87 #> [262,] 109 131 #> [263,] 110 89 #> [264,] 110 131 #> [265,] 110 109 #> [266,] 110 88 #> [267,] 110 132 #> [268,] 114 135 #> [269,] 114 115 #> [270,] 114 136 #> [271,] 115 94 #> [272,] 115 136 #> [273,] 115 116 #> [274,] 115 114 #> [275,] 115 137 #> [276,] 116 95 #> [277,] 116 137 #> [278,] 116 117 #> [279,] 116 115 #> [280,] 116 94 #> [281,] 116 138 #> [282,] 117 96 #> [283,] 117 138 #> [284,] 117 116 #> [285,] 117 95 #> [286,] 128 150 #> [287,] 128 107 #> [288,] 128 151 #> [289,] 129 108 #> [290,] 129 152 #> [291,] 129 130 #> [292,] 129 603 #> [293,] 129 604 #> [294,] 129 153 #> [295,] 130 109 #> [296,] 130 153 #> [297,] 130 131 #> [298,] 130 129 #> [299,] 130 108 #> [300,] 130 154 #> [301,] 131 110 #> [302,] 131 154 #> [303,] 131 132 #> [304,] 131 130 #> [305,] 131 109 #> [306,] 131 155 #> [307,] 132 155 #> [308,] 132 131 #> [309,] 132 110 #> [310,] 132 156 #> [311,] 134 157 #> [312,] 134 135 #> [313,] 134 158 #> [314,] 135 114 #> [315,] 135 158 #> [316,] 135 136 #> [317,] 135 134 #> [318,] 135 159 #> [319,] 136 115 #> [320,] 136 159 #> [321,] 136 137 #> [322,] 136 135 #> [323,] 136 114 #> [324,] 136 160 #> [325,] 137 116 #> [326,] 137 160 #> [327,] 137 138 #> [328,] 137 136 #> [329,] 137 115 #> [330,] 138 117 #> [331,] 138 137 #> [332,] 138 116 #> [333,] 150 128 #> [334,] 150 151 #> [335,] 150 173 #> [336,] 151 173 #> [337,] 151 150 #> [338,] 151 128 #> [339,] 151 174 #> [340,] 152 129 #> [341,] 152 175 #> [342,] 152 153 #> [343,] 152 602 #> [344,] 152 603 #> [345,] 152 176 #> [346,] 153 130 #> [347,] 153 176 #> [348,] 153 154 #> [349,] 153 152 #> [350,] 153 129 #> [351,] 153 177 #> [352,] 154 131 #> [353,] 154 177 #> [354,] 154 155 #> [355,] 154 153 #> [356,] 154 130 #> [357,] 154 178 #> [358,] 155 132 #> [359,] 155 178 #> [360,] 155 156 #> [361,] 155 154 #> [362,] 155 131 #> [363,] 155 179 #> [364,] 156 179 #> [365,] 156 157 #> [366,] 156 155 #> [367,] 156 132 #> [368,] 156 180 #> [369,] 157 134 #> [370,] 157 180 #> [371,] 157 158 #> [372,] 157 156 #> [373,] 157 181 #> [374,] 158 135 #> [375,] 158 181 #> [376,] 158 159 #> [377,] 158 157 #> [378,] 158 134 #> [379,] 158 182 #> [380,] 159 136 #> [381,] 159 182 #> [382,] 159 160 #> [383,] 159 158 #> [384,] 159 135 #> [385,] 159 183 #> [386,] 160 137 #> [387,] 160 183 #> [388,] 160 159 #> [389,] 160 136 #> [390,] 170 193 #> [391,] 170 171 #> [392,] 170 194 #> [393,] 171 194 #> [394,] 171 170 #> [395,] 171 195 #> [396,] 173 151 #> [397,] 173 174 #> [398,] 173 150 #> [399,] 173 197 #> [400,] 174 197 #> [401,] 174 173 #> [402,] 174 151 #> [403,] 174 198 #> [404,] 175 152 #> [405,] 175 199 #> [406,] 175 176 #> [407,] 175 601 #> [408,] 175 602 #> [409,] 175 200 #> [410,] 176 153 #> [411,] 176 200 #> [412,] 176 177 #> [413,] 176 175 #> [414,] 176 152 #> [415,] 176 201 #> [416,] 177 154 #> [417,] 177 201 #> [418,] 177 178 #> [419,] 177 176 #> [420,] 177 153 #> [421,] 177 202 #> [422,] 178 155 #> [423,] 178 202 #> [424,] 178 179 #> [425,] 178 177 #> [426,] 178 154 #> [427,] 178 203 #> [428,] 179 156 #> [429,] 179 203 #> [430,] 179 180 #> [431,] 179 178 #> [432,] 179 155 #> [433,] 179 204 #> [434,] 180 157 #> [435,] 180 204 #> [436,] 180 181 #> [437,] 180 179 #> [438,] 180 156 #> [439,] 180 205 #> [440,] 181 158 #> [441,] 181 205 #> [442,] 181 182 #> [443,] 181 180 #> [444,] 181 157 #> [445,] 181 206 #> [446,] 182 159 #> [447,] 182 206 #> [448,] 182 183 #> [449,] 182 181 #> [450,] 182 158 #> [451,] 183 160 #> [452,] 183 182 #> [453,] 183 159 #> [454,] 193 170 #> [455,] 193 194 #> [456,] 193 217 #> [457,] 194 171 #> [458,] 194 217 #> [459,] 194 195 #> [460,] 194 193 #> [461,] 194 170 #> [462,] 194 218 #> [463,] 195 218 #> [464,] 195 194 #> [465,] 195 171 #> [466,] 195 219 #> [467,] 197 174 #> [468,] 197 220 #> [469,] 197 198 #> [470,] 197 173 #> [471,] 197 221 #> [472,] 198 221 #> [473,] 198 197 #> [474,] 198 174 #> [475,] 198 222 #> [476,] 199 175 #> [477,] 199 223 #> [478,] 199 200 #> [479,] 199 600 #> [480,] 199 601 #> [481,] 199 224 #> [482,] 200 176 #> [483,] 200 224 #> [484,] 200 201 #> [485,] 200 199 #> [486,] 200 175 #> [487,] 200 225 #> [488,] 201 177 #> [489,] 201 225 #> [490,] 201 202 #> [491,] 201 200 #> [492,] 201 176 #> [493,] 201 226 #> [494,] 202 178 #> [495,] 202 226 #> [496,] 202 203 #> [497,] 202 201 #> [498,] 202 177 #> [499,] 202 227 #> [500,] 203 179 #> [501,] 203 227 #> [502,] 203 204 #> [503,] 203 202 #> [504,] 203 178 #> [505,] 203 228 #> [506,] 204 180 #> [507,] 204 228 #> [508,] 204 205 #> [509,] 204 203 #> [510,] 204 179 #> [511,] 204 229 #> [512,] 205 181 #> [513,] 205 229 #> [514,] 205 206 #> [515,] 205 204 #> [516,] 205 180 #> [517,] 205 230 #> [518,] 206 182 #> [519,] 206 230 #> [520,] 206 205 #> [521,] 206 181 #> [522,] 217 194 #> [523,] 217 218 #> [524,] 217 193 #> [525,] 217 242 #> [526,] 218 195 #> [527,] 218 242 #> [528,] 218 219 #> [529,] 218 217 #> [530,] 218 194 #> [531,] 219 220 #> [532,] 219 218 #> [533,] 219 195 #> [534,] 220 197 #> [535,] 220 221 #> [536,] 220 219 #> [537,] 220 245 #> [538,] 221 198 #> [539,] 221 245 #> [540,] 221 222 #> [541,] 221 220 #> [542,] 221 197 #> [543,] 221 246 #> [544,] 222 246 #> [545,] 222 221 #> [546,] 222 198 #> [547,] 222 247 #> [548,] 223 199 #> [549,] 223 248 #> [550,] 223 224 #> [551,] 223 599 #> [552,] 223 600 #> [553,] 223 249 #> [554,] 224 200 #> [555,] 224 249 #> [556,] 224 225 #> [557,] 224 223 #> [558,] 224 199 #> [559,] 224 250 #> [560,] 225 201 #> [561,] 225 250 #> [562,] 225 226 #> [563,] 225 224 #> [564,] 225 200 #> [565,] 225 251 #> [566,] 226 202 #> [567,] 226 251 #> [568,] 226 227 #> [569,] 226 225 #> [570,] 226 201 #> [571,] 226 252 #> [572,] 227 203 #> [573,] 227 252 #> [574,] 227 228 #> [575,] 227 226 #> [576,] 227 202 #> [577,] 227 253 #> [578,] 228 204 #> [579,] 228 253 #> [580,] 228 229 #> [581,] 228 227 #> [582,] 228 203 #> [583,] 228 254 #> [584,] 229 205 #> [585,] 229 254 #> [586,] 229 230 #> [587,] 229 228 #> [588,] 229 204 #> [589,] 230 206 #> [590,] 230 229 #> [591,] 230 205 #> [592,] 242 218 #> [593,] 242 266 #> [594,] 242 217 #> [595,] 242 267 #> [596,] 245 221 #> [597,] 245 246 #> [598,] 245 220 #> [599,] 245 270 #> [600,] 246 222 #> [601,] 246 270 #> [602,] 246 247 #> [603,] 246 245 #> [604,] 246 221 #> [605,] 246 271 #> [606,] 247 271 #> [607,] 247 246 #> [608,] 247 222 #> [609,] 247 272 #> [610,] 248 223 #> [611,] 248 273 #> [612,] 248 249 #> [613,] 248 598 #> [614,] 248 599 #> [615,] 248 274 #> [616,] 249 224 #> [617,] 249 274 #> [618,] 249 250 #> [619,] 249 248 #> [620,] 249 223 #> [621,] 249 275 #> [622,] 250 225 #> [623,] 250 275 #> [624,] 250 251 #> [625,] 250 249 #> [626,] 250 224 #> [627,] 250 276 #> [628,] 251 226 #> [629,] 251 276 #> [630,] 251 252 #> [631,] 251 250 #> [632,] 251 225 #> [633,] 251 277 #> [634,] 252 227 #> [635,] 252 277 #> [636,] 252 253 #> [637,] 252 251 #> [638,] 252 226 #> [639,] 252 278 #> [640,] 253 228 #> [641,] 253 278 #> [642,] 253 254 #> [643,] 253 252 #> [644,] 253 227 #> [645,] 253 279 #> [646,] 254 229 #> [647,] 254 279 #> [648,] 254 253 #> [649,] 254 228 #> [650,] 261 286 #> [651,] 266 242 #> [652,] 266 291 #> [653,] 266 267 #> [654,] 266 292 #> [655,] 267 292 #> [656,] 267 266 #> [657,] 267 242 #> [658,] 270 246 #> [659,] 270 271 #> [660,] 270 245 #> [661,] 270 296 #> [662,] 271 247 #> [663,] 271 296 #> [664,] 271 272 #> [665,] 271 270 #> [666,] 271 246 #> [667,] 271 297 #> [668,] 272 297 #> [669,] 272 271 #> [670,] 272 247 #> [671,] 272 298 #> [672,] 273 248 #> [673,] 273 299 #> [674,] 273 274 #> [675,] 273 597 #> [676,] 273 598 #> [677,] 273 300 #> [678,] 274 249 #> [679,] 274 300 #> [680,] 274 275 #> [681,] 274 273 #> [682,] 274 248 #> [683,] 274 301 #> [684,] 275 250 #> [685,] 275 301 #> [686,] 275 276 #> [687,] 275 274 #> [688,] 275 249 #> [689,] 275 302 #> [690,] 276 251 #> [691,] 276 302 #> [692,] 276 277 #> [693,] 276 275 #> [694,] 276 250 #> [695,] 276 303 #> [696,] 277 252 #> [697,] 277 303 #> [698,] 277 278 #> [699,] 277 276 #> [700,] 277 251 #> [701,] 277 304 #> [702,] 278 253 #> [703,] 278 304 #> [704,] 278 279 #> [705,] 278 277 #> [706,] 278 252 #> [707,] 279 254 #> [708,] 279 278 #> [709,] 279 253 #> [710,] 286 261 #> [711,] 286 312 #> [712,] 289 314 #> [713,] 289 290 #> [714,] 289 315 #> [715,] 290 315 #> [716,] 290 291 #> [717,] 290 289 #> [718,] 290 316 #> [719,] 291 266 #> [720,] 291 316 #> [721,] 291 292 #> [722,] 291 290 #> [723,] 291 317 #> [724,] 292 267 #> [725,] 292 317 #> [726,] 292 291 #> [727,] 292 266 #> [728,] 292 318 #> [729,] 296 271 #> [730,] 296 297 #> [731,] 296 270 #> [732,] 296 322 #> [733,] 297 272 #> [734,] 297 322 #> [735,] 297 298 #> [736,] 297 296 #> [737,] 297 271 #> [738,] 297 323 #> [739,] 298 323 #> [740,] 298 297 #> [741,] 298 272 #> [742,] 298 324 #> [743,] 299 273 #> [744,] 299 325 #> [745,] 299 300 #> [746,] 299 597 #> [747,] 299 326 #> [748,] 300 274 #> [749,] 300 326 #> [750,] 300 301 #> [751,] 300 299 #> [752,] 300 273 #> [753,] 300 327 #> [754,] 301 275 #> [755,] 301 327 #> [756,] 301 302 #> [757,] 301 300 #> [758,] 301 274 #> [759,] 301 328 #> [760,] 302 276 #> [761,] 302 328 #> [762,] 302 303 #> [763,] 302 301 #> [764,] 302 275 #> [765,] 302 329 #> [766,] 303 277 #> [767,] 303 329 #> [768,] 303 304 #> [769,] 303 302 #> [770,] 303 276 #> [771,] 303 330 #> [772,] 304 278 #> [773,] 304 330 #> [774,] 304 303 #> [775,] 304 277 #> [776,] 312 313 #> [777,] 312 286 #> [778,] 313 314 #> [779,] 313 312 #> [780,] 314 289 #> [781,] 314 315 #> [782,] 314 313 #> [783,] 315 290 #> [784,] 315 316 #> [785,] 315 314 #> [786,] 315 289 #> [787,] 315 342 #> [788,] 316 291 #> [789,] 316 342 #> [790,] 316 317 #> [791,] 316 315 #> [792,] 316 290 #> [793,] 316 343 #> [794,] 317 292 #> [795,] 317 343 #> [796,] 317 318 #> [797,] 317 316 #> [798,] 317 291 #> [799,] 317 344 #> [800,] 318 344 #> [801,] 318 317 #> [802,] 318 292 #> [803,] 322 297 #> [804,] 322 323 #> [805,] 322 296 #> [806,] 323 298 #> [807,] 323 324 #> [808,] 323 322 #> [809,] 323 297 #> [810,] 324 323 #> [811,] 324 298 #> [812,] 324 351 #> [813,] 325 299 #> [814,] 325 326 #> [815,] 325 595 #> [816,] 326 300 #> [817,] 326 327 #> [818,] 326 325 #> [819,] 326 299 #> [820,] 326 354 #> [821,] 327 301 #> [822,] 327 354 #> [823,] 327 328 #> [824,] 327 326 #> [825,] 327 300 #> [826,] 327 355 #> [827,] 328 302 #> [828,] 328 355 #> [829,] 328 329 #> [830,] 328 327 #> [831,] 328 301 #> [832,] 328 356 #> [833,] 329 303 #> [834,] 329 356 #> [835,] 329 330 #> [836,] 329 328 #> [837,] 329 302 #> [838,] 330 304 #> [839,] 330 329 #> [840,] 330 303 #> [841,] 342 316 #> [842,] 342 368 #> [843,] 342 343 #> [844,] 342 315 #> [845,] 342 369 #> [846,] 343 317 #> [847,] 343 369 #> [848,] 343 344 #> [849,] 343 342 #> [850,] 343 316 #> [851,] 343 370 #> [852,] 344 318 #> [853,] 344 370 #> [854,] 344 343 #> [855,] 344 317 #> [856,] 344 371 #> [857,] 351 324 #> [858,] 351 378 #> [859,] 354 327 #> [860,] 354 381 #> [861,] 354 355 #> [862,] 354 326 #> [863,] 354 382 #> [864,] 355 328 #> [865,] 355 382 #> [866,] 355 356 #> [867,] 355 354 #> [868,] 355 327 #> [869,] 355 383 #> [870,] 356 329 #> [871,] 356 383 #> [872,] 356 355 #> [873,] 356 328 #> [874,] 357 385 #> [875,] 368 342 #> [876,] 368 396 #> [877,] 368 369 #> [878,] 368 397 #> [879,] 369 343 #> [880,] 369 397 #> [881,] 369 370 #> [882,] 369 368 #> [883,] 369 342 #> [884,] 369 398 #> [885,] 370 344 #> [886,] 370 398 #> [887,] 370 371 #> [888,] 370 369 #> [889,] 370 343 #> [890,] 370 399 #> [891,] 371 399 #> [892,] 371 372 #> [893,] 371 370 #> [894,] 371 344 #> [895,] 372 371 #> [896,] 378 351 #> [897,] 378 407 #> [898,] 381 354 #> [899,] 381 382 #> [900,] 382 355 #> [901,] 382 383 #> [902,] 382 381 #> [903,] 382 354 #> [904,] 383 356 #> [905,] 383 382 #> [906,] 383 355 #> [907,] 384 412 #> [908,] 384 385 #> [909,] 384 413 #> [910,] 385 357 #> [911,] 385 413 #> [912,] 385 384 #> [913,] 396 368 #> [914,] 396 424 #> [915,] 396 397 #> [916,] 396 425 #> [917,] 397 369 #> [918,] 397 425 #> [919,] 397 398 #> [920,] 397 396 #> [921,] 397 368 #> [922,] 397 426 #> [923,] 398 370 #> [924,] 398 426 #> [925,] 398 399 #> [926,] 398 397 #> [927,] 398 369 #> [928,] 398 427 #> [929,] 399 371 #> [930,] 399 427 #> [931,] 399 398 #> [932,] 399 370 #> [933,] 399 428 #> [934,] 402 431 #> [935,] 407 378 #> [936,] 412 384 #> [937,] 412 440 #> [938,] 412 413 #> [939,] 413 385 #> [940,] 413 412 #> [941,] 413 384 #> [942,] 421 449 #> [943,] 421 422 #> [944,] 421 450 #> [945,] 422 450 #> [946,] 422 423 #> [947,] 422 421 #> [948,] 422 451 #> [949,] 423 451 #> [950,] 423 424 #> [951,] 423 422 #> [952,] 423 452 #> [953,] 424 396 #> [954,] 424 452 #> [955,] 424 425 #> [956,] 424 423 #> [957,] 425 397 #> [958,] 425 426 #> [959,] 425 424 #> [960,] 425 396 #> [961,] 425 454 #> [962,] 426 398 #> [963,] 426 454 #> [964,] 426 427 #> [965,] 426 425 #> [966,] 426 397 #> [967,] 426 455 #> [968,] 427 399 #> [969,] 427 455 #> [970,] 427 428 #> [971,] 427 426 #> [972,] 427 398 #> [973,] 427 456 #> [974,] 428 456 #> [975,] 428 429 #> [976,] 428 427 #> [977,] 428 399 #> [978,] 428 457 #> [979,] 429 457 #> [980,] 429 428 #> [981,] 429 458 #> [982,] 431 459 #> [983,] 431 402 #> [984,] 431 460 #> [985,] 440 412 #> [986,] 449 421 #> [987,] 449 476 #> [988,] 449 450 #> [989,] 449 477 #> [990,] 450 422 #> [991,] 450 477 #> [992,] 450 451 #> [993,] 450 449 #> [994,] 450 421 #> [995,] 450 478 #> [996,] 451 423 #> [997,] 451 478 #> [998,] 451 452 #> [999,] 451 450 #> [1000,] 451 422 #> [1001,] 452 424 #> [1002,] 452 451 #> [1003,] 452 423 #> [1004,] 454 426 #> [1005,] 454 481 #> [1006,] 454 455 #> [1007,] 454 425 #> [1008,] 454 482 #> [1009,] 455 427 #> [1010,] 455 482 #> [1011,] 455 456 #> [1012,] 455 454 #> [1013,] 455 426 #> [1014,] 455 483 #> [1015,] 456 428 #> [1016,] 456 483 #> [1017,] 456 457 #> [1018,] 456 455 #> [1019,] 456 427 #> [1020,] 456 484 #> [1021,] 457 429 #> [1022,] 457 484 #> [1023,] 457 458 #> [1024,] 457 456 #> [1025,] 457 428 #> [1026,] 457 485 #> [1027,] 458 485 #> [1028,] 458 459 #> [1029,] 458 457 #> [1030,] 458 429 #> [1031,] 458 486 #> [1032,] 459 431 #> [1033,] 459 486 #> [1034,] 459 460 #> [1035,] 459 458 #> [1036,] 459 487 #> [1037,] 460 487 #> [1038,] 460 459 #> [1039,] 460 431 #> [1040,] 464 492 #> [1041,] 476 449 #> [1042,] 476 500 #> [1043,] 476 477 #> [1044,] 476 501 #> [1045,] 477 450 #> [1046,] 477 501 #> [1047,] 477 478 #> [1048,] 477 476 #> [1049,] 477 449 #> [1050,] 478 451 #> [1051,] 478 477 #> [1052,] 478 450 #> [1053,] 481 454 #> [1054,] 481 505 #> [1055,] 481 482 #> [1056,] 481 506 #> [1057,] 482 455 #> [1058,] 482 506 #> [1059,] 482 483 #> [1060,] 482 481 #> [1061,] 482 454 #> [1062,] 482 507 #> [1063,] 483 456 #> [1064,] 483 507 #> [1065,] 483 484 #> [1066,] 483 482 #> [1067,] 483 455 #> [1068,] 483 508 #> [1069,] 484 457 #> [1070,] 484 508 #> [1071,] 484 485 #> [1072,] 484 483 #> [1073,] 484 456 #> [1074,] 484 509 #> [1075,] 485 458 #> [1076,] 485 509 #> [1077,] 485 486 #> [1078,] 485 484 #> [1079,] 485 457 #> [1080,] 485 510 #> [1081,] 486 459 #> [1082,] 486 510 #> [1083,] 486 487 #> [1084,] 486 485 #> [1085,] 486 458 #> [1086,] 486 511 #> [1087,] 487 460 #> [1088,] 487 511 #> [1089,] 487 486 #> [1090,] 487 459 #> [1091,] 487 512 #> [1092,] 492 464 #> [1093,] 492 517 #> [1094,] 499 522 #> [1095,] 499 500 #> [1096,] 499 523 #> [1097,] 500 476 #> [1098,] 500 523 #> [1099,] 500 501 #> [1100,] 500 499 #> [1101,] 501 477 #> [1102,] 501 500 #> [1103,] 501 476 #> [1104,] 501 525 #> [1105,] 505 481 #> [1106,] 505 528 #> [1107,] 505 506 #> [1108,] 505 529 #> [1109,] 506 482 #> [1110,] 506 529 #> [1111,] 506 507 #> [1112,] 506 505 #> [1113,] 506 481 #> [1114,] 506 530 #> [1115,] 507 483 #> [1116,] 507 530 #> [1117,] 507 508 #> [1118,] 507 506 #> [1119,] 507 482 #> [1120,] 507 531 #> [1121,] 508 484 #> [1122,] 508 531 #> [1123,] 508 509 #> [1124,] 508 507 #> [1125,] 508 483 #> [1126,] 508 532 #> [1127,] 509 485 #> [1128,] 509 532 #> [1129,] 509 510 #> [1130,] 509 508 #> [1131,] 509 484 #> [1132,] 509 533 #> [1133,] 510 486 #> [1134,] 510 533 #> [1135,] 510 511 #> [1136,] 510 509 #> [1137,] 510 485 #> [1138,] 510 534 #> [1139,] 511 487 #> [1140,] 511 534 #> [1141,] 511 512 #> [1142,] 511 510 #> [1143,] 511 486 #> [1144,] 511 535 #> [1145,] 512 535 #> [1146,] 512 511 #> [1147,] 512 487 #> [1148,] 517 492 #> [1149,] 517 541 #> [1150,] 522 499 #> [1151,] 522 546 #> [1152,] 522 523 #> [1153,] 522 547 #> [1154,] 523 500 #> [1155,] 523 547 #> [1156,] 523 522 #> [1157,] 523 499 #> [1158,] 523 548 #> [1159,] 525 549 #> [1160,] 525 526 #> [1161,] 525 501 #> [1162,] 525 550 #> [1163,] 526 550 #> [1164,] 526 527 #> [1165,] 526 525 #> [1166,] 527 528 #> [1167,] 527 526 #> [1168,] 527 552 #> [1169,] 528 505 #> [1170,] 528 552 #> [1171,] 528 529 #> [1172,] 528 527 #> [1173,] 528 553 #> [1174,] 529 506 #> [1175,] 529 553 #> [1176,] 529 530 #> [1177,] 529 528 #> [1178,] 529 505 #> [1179,] 529 554 #> [1180,] 530 507 #> [1181,] 530 554 #> [1182,] 530 531 #> [1183,] 530 529 #> [1184,] 530 506 #> [1185,] 530 555 #> [1186,] 531 508 #> [1187,] 531 555 #> [1188,] 531 532 #> [1189,] 531 530 #> [1190,] 531 507 #> [1191,] 531 556 #> [1192,] 532 509 #> [1193,] 532 556 #> [1194,] 532 533 #> [1195,] 532 531 #> [1196,] 532 508 #> [1197,] 532 557 #> [1198,] 533 510 #> [1199,] 533 557 #> [1200,] 533 534 #> [1201,] 533 532 #> [1202,] 533 509 #> [1203,] 533 558 #> [1204,] 534 511 #> [1205,] 534 558 #> [1206,] 534 535 #> [1207,] 534 533 #> [1208,] 534 510 #> [1209,] 535 512 #> [1210,] 535 534 #> [1211,] 535 511 #> [1212,] 537 561 #> [1213,] 537 562 #> [1214,] 541 517 #> [1215,] 546 522 #> [1216,] 546 547 #> [1217,] 546 570 #> [1218,] 547 523 #> [1219,] 547 570 #> [1220,] 547 548 #> [1221,] 547 546 #> [1222,] 547 522 #> [1223,] 547 571 #> [1224,] 548 571 #> [1225,] 548 549 #> [1226,] 548 547 #> [1227,] 548 523 #> [1228,] 548 572 #> [1229,] 549 525 #> [1230,] 549 572 #> [1231,] 549 550 #> [1232,] 549 548 #> [1233,] 549 573 #> [1234,] 550 526 #> [1235,] 550 573 #> [1236,] 550 549 #> [1237,] 550 525 #> [1238,] 550 574 #> [1239,] 552 528 #> [1240,] 552 575 #> [1241,] 552 553 #> [1242,] 552 527 #> [1243,] 552 576 #> [1244,] 553 529 #> [1245,] 553 576 #> [1246,] 553 554 #> [1247,] 553 552 #> [1248,] 553 528 #> [1249,] 553 577 #> [1250,] 554 530 #> [1251,] 554 577 #> [1252,] 554 555 #> [1253,] 554 553 #> [1254,] 554 529 #> [1255,] 554 578 #> [1256,] 555 531 #> [1257,] 555 578 #> [1258,] 555 556 #> [1259,] 555 554 #> [1260,] 555 530 #> [1261,] 555 579 #> [1262,] 556 532 #> [1263,] 556 579 #> [1264,] 556 557 #> [1265,] 556 555 #> [1266,] 556 531 #> [1267,] 556 580 #> [1268,] 557 533 #> [1269,] 557 580 #> [1270,] 557 558 #> [1271,] 557 556 #> [1272,] 557 532 #> [1273,] 557 581 #> [1274,] 558 534 #> [1275,] 558 581 #> [1276,] 558 557 #> [1277,] 558 533 #> [1278,] 558 582 #> [1279,] 561 537 #> [1280,] 561 584 #> [1281,] 561 562 #> [1282,] 561 585 #> [1283,] 562 585 #> [1284,] 562 561 #> [1285,] 562 537 #> [1286,] 562 586 #> [1287,] 570 547 #> [1288,] 570 571 #> [1289,] 570 546 #> [1290,] 570 595 #> [1291,] 571 548 #> [1292,] 571 595 #> [1293,] 571 572 #> [1294,] 571 570 #> [1295,] 571 547 #> [1296,] 572 549 #> [1297,] 572 573 #> [1298,] 572 571 #> [1299,] 572 548 #> [1300,] 572 597 #> [1301,] 573 550 #> [1302,] 573 597 #> [1303,] 573 574 #> [1304,] 573 572 #> [1305,] 573 549 #> [1306,] 573 598 #> [1307,] 574 598 #> [1308,] 574 575 #> [1309,] 574 573 #> [1310,] 574 550 #> [1311,] 574 599 #> [1312,] 575 552 #> [1313,] 575 599 #> [1314,] 575 576 #> [1315,] 575 574 #> [1316,] 575 600 #> [1317,] 576 553 #> [1318,] 576 600 #> [1319,] 576 577 #> [1320,] 576 575 #> [1321,] 576 552 #> [1322,] 576 601 #> [1323,] 577 554 #> [1324,] 577 601 #> [1325,] 577 578 #> [1326,] 577 576 #> [1327,] 577 553 #> [1328,] 577 602 #> [1329,] 578 555 #> [1330,] 578 602 #> [1331,] 578 579 #> [1332,] 578 577 #> [1333,] 578 554 #> [1334,] 578 603 #> [1335,] 579 556 #> [1336,] 579 603 #> [1337,] 579 580 #> [1338,] 579 578 #> [1339,] 579 555 #> [1340,] 579 604 #> [1341,] 580 557 #> [1342,] 580 604 #> [1343,] 580 581 #> [1344,] 580 579 #> [1345,] 580 556 #> [1346,] 580 605 #> [1347,] 581 558 #> [1348,] 581 605 #> [1349,] 581 582 #> [1350,] 581 580 #> [1351,] 581 557 #> [1352,] 582 581 #> [1353,] 582 558 #> [1354,] 584 561 #> [1355,] 584 585 #> [1356,] 584 609 #> [1357,] 585 562 #> [1358,] 585 609 #> [1359,] 585 586 #> [1360,] 585 584 #> [1361,] 585 561 #> [1362,] 585 610 #> [1363,] 586 610 #> [1364,] 586 585 #> [1365,] 586 562 #> [1366,] 595 571 #> [1367,] 595 570 #> [1368,] 595 325 #> [1369,] 597 573 #> [1370,] 597 299 #> [1371,] 597 598 #> [1372,] 597 572 #> [1373,] 597 273 #> [1374,] 598 574 #> [1375,] 598 273 #> [1376,] 598 599 #> [1377,] 598 597 #> [1378,] 598 573 #> [1379,] 598 248 #> [1380,] 599 575 #> [1381,] 599 248 #> [1382,] 599 600 #> [1383,] 599 598 #> [1384,] 599 574 #> [1385,] 599 223 #> [1386,] 600 576 #> [1387,] 600 223 #> [1388,] 600 601 #> [1389,] 600 599 #> [1390,] 600 575 #> [1391,] 600 199 #> [1392,] 601 577 #> [1393,] 601 199 #> [1394,] 601 602 #> [1395,] 601 600 #> [1396,] 601 576 #> [1397,] 601 175 #> [1398,] 602 578 #> [1399,] 602 175 #> [1400,] 602 603 #> [1401,] 602 601 #> [1402,] 602 577 #> [1403,] 602 152 #> [1404,] 603 579 #> [1405,] 603 152 #> [1406,] 603 604 #> [1407,] 603 602 #> [1408,] 603 578 #> [1409,] 603 129 #> [1410,] 604 580 #> [1411,] 604 129 #> [1412,] 604 605 #> [1413,] 604 603 #> [1414,] 604 579 #> [1415,] 604 108 #> [1416,] 605 581 #> [1417,] 605 108 #> [1418,] 605 604 #> [1419,] 605 580 #> [1420,] 605 87 #> [1421,] 609 585 #> [1422,] 609 610 #> [1423,] 609 584 #> [1424,] 609 24 #> [1425,] 610 586 #> [1426,] 610 24 #> [1427,] 610 609 #> [1428,] 610 585 #> [1429,] 610 15 #> [1430,] 612 8 #> [1431,] 612 613 #> [1432,] 612 3 #> [1433,] 613 3 #> [1434,] 613 614 #> [1435,] 613 612 #> [1436,] 613 1 #> [1437,] 614 1 #> [1438,] 614 613"},{"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 % vertex; 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 around 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] 614 head(which(isInArea(worldgraph.10k))) # which nodes are TRUE ? #> 707 965 1027 1028 1029 1285 #> 707 965 1027 1028 1029 1285 head(isInArea(worldgraph.10k, res.type = \"integer\")) # node indices #> 707 965 1027 1028 1029 1285 #> 707 965 1027 1028 1029 1285 head(isInArea(worldgraph.10k, res.type = \"character\")) # node names #> [1] \"707\" \"965\" \"1027\" \"1028\" \"1029\" \"1285\" ## 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) #> although coordinates are longitude/latitude, st_intersects assumes that they #> are planar 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/pipe.html","id":null,"dir":"Reference","previous_headings":"","what":"Pipe operator — %>%","title":"Pipe operator — %>%","text":"See magrittr::%>% details.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/pipe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pipe operator — %>%","text":"","code":"lhs %>% rhs"},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/pipe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pipe operator — %>%","text":"lhs value magrittr placeholder. rhs function call using magrittr semantics.","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/reference/pipe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pipe operator — %>%","text":"result calling rhs(lhs).","code":""},{"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 class sf (see sf::st_read() import GIS shapefile). Alternatively, character string indicating one shapefile released geoGraph; currently, 'world' available. 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 behavior plotting gGraph object, last plotting parameters re-used. override behavior, 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 vertex; 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 constructed 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.","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":"https://evolecolgroup.github.io/geograph/dev/news/index.html","id":"geograph-development-version","dir":"Changelog","previous_headings":"","what":"geoGraph (development version)","title":"geoGraph (development version)","text":"remove use deprecated packages (sp maptools), move sf objects","code":""},{"path":"https://evolecolgroup.github.io/geograph/dev/news/index.html","id":"geograph-v11","dir":"Changelog","previous_headings":"","what":"geoGraph v1.1","title":"geoGraph v1.1","text":"Update documentation roxygen. Make vignette fully live.","code":""},{"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":""}]