15.4 Where to go next?

As indicated in the previous sections, the book has covered only a fraction of the R’s geographic ecosystem, and there is much more to discover.We have progressed quickly, from geographic data models in Chapter 2, to advanced applications in Chapter 14.Consolidation of skills learned, discovery of new packages and approaches for handling geographic data, and application of the methods to new datasets and domains are suggested future directions.This section expands on this general advice by suggesting specific ‘next steps’, highlighted in bold below.

In addition to learning about further geographic methods and applications with R, for example with reference to the work cited in the previous section, deepening your understanding of R itself is a logical next step.R’s fundamental classes such as data.frame and matrix are the foundation of sf and raster classes, so studying them will improve your understanding of geographic data.This can be done with reference to documents that are part of R, and which can be found with the command help.start() and additional resources on the subject such as those by Wickham (2014a) and Chambers (2016).

Another software-related direction for future learning is discovering geocomputation with other languages.There are good reasons for learning R as a language for geocomputation, as described in Chapter 1, but it is not the only option.81It would be possible to study Geocomputation with: Python, C++, JavaScript, Scala or Rust in equal depth.Each has evolving geospatial capabilities.rasterio, for example, is a Python packagethat could supplement/replace the raster package used in this book — see Garrard (2016) and online tutorials such as automating-gis-processes for more on the Python ecosystem.Dozens of geospatial libraries have been developed in C++, including well known libraries such as GDAL and GEOS, and less well known libraries such as the Orfeo Toolbox for processing remote sensing (raster) data.Turf.js is an example of the potential for doing geocomputation with JavaScript.GeoTrellis provides functions for working with raster and vector data in the Java-based language Scala.And WhiteBoxTools provides an example of a rapidly evolving command-line GIS implemented in Rust.Each of these packages/libraries/languages has advantages for geocomputation and there are many more to discover, as documented in the curated list of open source geospatial resources Awesome-Geospatial.

There is more to geocomputation than software, however.We can recommend exploring and learning new research topics and methods from academic and theoretical perspectives.Many methods that have been written about have yet to be implemented.Learning about geographic methods and potential applications can therefore be rewarding, before writing any code.An example of geographic methods that are increasingly implemented in R is sampling strategies for scientific applications.A next step in this case is to read-up on relevant articles in the area such as Brus (2018), which is accompanied by reproducible code and tutorial content hosted at github.com/DickBrus/TutorialSampling4DSM.