Generally speaking ESRI's approach to building ArcGIS is to create a tool for every situation you might encounter. This is a little different in R
. Depending on the package, the idea is usually to provide a minimal set of functions with which the user can create their own tools. The creators of the package sf
are very strict on this paradigm [^github-1]. As Roger Bivand once put it:
Users should learn to catch fish, not be given tidied fish.
[^github-1]: This and this github nicely illustrate this.
library(dplyr) library(readr) library(stringr) library(data.tree) library(networkD3) library(yaml) tools <- read_csv("auxiliary/ESRI_Tool_names.csv") %>% mutate(toolb = str_remove(toolb," toolbox")) %>% distinct(toolb, toolset, Tool) toolsets <- read_csv("auxiliary/ESRI_Toolsets.csv") %>% distinct(toolb, tool) toolboxes <- read_csv("auxiliary/ESRI_Toolboxes.csv") %>% distinct(name)
We haven't found a complete overview of all the "Geprocessing Tools" in ArcGIS, but we've scraped ESRI'S website and counted r nrow(toolboxes)
Toolboxes, containing r nrow(toolsets)
Toolsets and r nrow(tools)
individual tools[^geoprocessing_tools-3].
We cannot possibly cover the R
way for every tool in this list. It probably wouldn't make much sense either: Once you learn the fundamental building blocks, you will be able to replicate most, if not all tools from this list. The aim of this book is to cover these fundamental building block.
See figure \@ref(fig:toolsviz) for an interactive visualisation of all tools in ArcGIS.
tools %>% filter(!is.na(Tool)) %>% transmute(tool = paste("GeprocessingTools",str_remove(toolb," toolbox"),toolset,Tool, sep = "/")) %>% as.Node(pathName = "tool") %>% ToListExplicit(unname = TRUE) %>% diagonalNetwork() #%>% # saveNetwork("all_tool.html") # # # webshot::webshot("all_tool.html", "images/all_tools.png") # # knitr::include_graphics("all_tools.png")
[^geoprocessing_tools-3]: Note: these numbers are an approximation only, we may have made errors when scraping
tools_toodo_yaml <- read_yaml("auxiliary/tools_todo.yaml") tools_toodo2 <- imap(tools_toodo_yaml, function(toolbox,toolboxname){imap(toolbox, function(toolset,toolsetname){imap(toolset, function(tool,toolname){list(name = toolname)})})}) FromListSimple(tools_toodo2,nodeName = "GeoprocessingTools") %>% ToListExplicit(unname = TRUE) %>% diagonalNetwork()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.