Preface
Who this book is for
Anyone interested in geospatial data science will benefit from reading this book. If you are a student with basic-to-intermediate programming experience, you will learn a valuable set of tools for your career. If you are an experienced data scientist, you may still be surprised by the generality of the framework presented here.
This is not a book on geostatistics. Although some chapters and examples will cover concepts from geostatistical theory, that is only to illustrate what is possible after you master geospatial data science with the programming language.
Why Julia?
An effective implementation of the framework presented in this book requires a language that can:
- Generate high-performance code
- Specialize on multiple arguments
- Evaluate code interactively
- Exploit parallel hardware
This list of requirements eliminates Python, R and other mainstream languages used for data science.
How to read this book
If this is your first encounter with or with programming in general, consider reading the open source book Think Julia: How to Think Like a Computer Scientist by Lauwens and Downey (2018). It introduces the language to first-time programmers and explains basic concepts that you will need to know to master the material here.
If you are an experienced programmer who just wants to quickly learn the syntax of the language, consider checking the Learn Julia in Y minutes website. If you are seeking more detailed information, consider reading the official documentation.
Assuming that you learned the basics of the language, you can proceed and read this book. It is organized in five parts as follows:
The chapters were written to be read in sequence, but there is some flexibility on how to read the parts. I recommend reading Part I first to understand the framework and vision. After that, you will have the necessary background to follow the code examples in Part II, Part III and Part IV. Finally, you can explore the applications in Part V to solidify the concepts.
Software installation
If you want to reproduce the examples in the book, copy and paste the code below in the Julia REPL:
using Pkg
# assert Julia version
@assert VERSION ≥ v"1.11" "requires Julia v1.11 or later"
# create fresh environment
"activate @GDSJL"
pkg
# install framework
"add GeoStats@0.71.3"
pkg
# install IO module
"add GeoIO@1.19.2"
pkg
# install viz modules
"add CairoMakie@0.12.2"
pkg"add PairPlots@2.9.3"
pkg
# install other modules
"add DataFrames@1.7.0" pkg
If you need to reproduce the exact same environment with fixed versions of indirect dependencies, please download the Project.toml and Manifest.toml files that are stored on GitHub.
Some examples require data files that are also stored on GitHub at this link.
Click on any file of interest and press the download button.
Acknowledgements
I would like to acknowledge all the contributors of the framework. You are the reason this book exists! The implementation of the framework is only possible thanks to the amazing programming language advances by Bezanson et al. (2017).
A special thanks to Elias Carvalho for his outstanding contributions to the software stack, to Prof. Douglas Mazzinghy (UFMG), Prof. Leandro Martínez (UNICAMP) and Prof. Fernando Moraes (UENF) for organizing the first training courses at universities, to Prof. Francisco Heron (UFC) for his contributions on high-performance computing, to Dr. João Pinelo (AIRCentre) for organizing the JuliaEO workshop, and to colleagues in industry who support this work through research and development projects, including Patrice Mazzoni, Keila Gonçalves, Fabio Duarte, Mariana Menezes, Givago Azevedo, Fernando Villanova, Luis Gomide.
Thanks to all the reviewers of the first draft, including Maciel Zortea, Max de Bayser, Bogumił Kamiński, Ronan Arraes, Erick Chacón Montalván, Kyle Beggs.