/
preface.html
281 lines (265 loc) · 24.1 KB
/
preface.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Preface | Geocomputation with R</title>
<meta name="author" content="Robin Lovelace, Jakub Nowosad, Jannes Muenchow">
<meta name="description" content="Who this book is for This book is for people who want to analyze, visualize and model geographic data with open source software. It is based on R, a statistical programming language that has...">
<meta name="generator" content="bookdown 0.39 with bs4_book()">
<meta property="og:title" content="Preface | Geocomputation with R">
<meta property="og:type" content="book">
<meta property="og:url" content="https://r.geocompx.org/preface.html">
<meta property="og:image" content="https://r.geocompx.org/images/cover.png">
<meta property="og:description" content="Who this book is for This book is for people who want to analyze, visualize and model geographic data with open source software. It is based on R, a statistical programming language that has...">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Preface | Geocomputation with R">
<meta name="twitter:description" content="Who this book is for This book is for people who want to analyze, visualize and model geographic data with open source software. It is based on R, a statistical programming language that has...">
<meta name="twitter:image" content="https://r.geocompx.org/images/cover.png">
<!-- JS --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://kit.fontawesome.com/6ecbd6c532.js" crossorigin="anonymous"></script><script src="libs/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="libs/bootstrap-4.6.0/bootstrap.min.css" rel="stylesheet">
<script src="libs/bootstrap-4.6.0/bootstrap.bundle.min.js"></script><link href="libs/Lato-0.4.9/font.css" rel="stylesheet">
<link href="libs/Roboto_Mono-0.4.9/font.css" rel="stylesheet">
<link href="libs/Montserrat-0.4.9/font.css" rel="stylesheet">
<script src="libs/bs3compat-0.7.0/transition.js"></script><script src="libs/bs3compat-0.7.0/tabs.js"></script><script src="libs/bs3compat-0.7.0/bs3compat.js"></script><link href="libs/bs4_book-1.0.0/bs4_book.css" rel="stylesheet">
<script src="libs/bs4_book-1.0.0/bs4_book.js"></script><meta name="citation_title" content="Preface | Geocomputation with R">
<meta name="citation_author" content="Robin Lovelace">
<meta name="citation_author" content="Jakub Nowosad">
<meta name="citation_author" content="Jannes Muenchow">
<meta name="citation_publication_date" content="2019">
<meta name="citation_isbn" content="9780203730058">
<link href="libs/htmltools-fill-0.5.8.1/fill.css" rel="stylesheet">
<script src="libs/htmlwidgets-1.6.4/htmlwidgets.js"></script><link href="libs/leaflet-1.3.1/leaflet.css" rel="stylesheet">
<script src="libs/leaflet-1.3.1/leaflet.js"></script><link href="libs/leafletfix-1.0.0/leafletfix.css" rel="stylesheet">
<script src="libs/proj4-2.6.2/proj4.min.js"></script><script src="libs/Proj4Leaflet-1.0.1/proj4leaflet.js"></script><link href="libs/rstudio_leaflet-1.3.1/rstudio_leaflet.css" rel="stylesheet">
<script src="libs/leaflet-binding-2.2.2/leaflet.js"></script><script src="libs/kePrint-0.0.1/kePrint.js"></script><link href="libs/lightable-0.0.1/lightable.css" rel="stylesheet">
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-99618359-1', 'auto');
ga('send', 'pageview');
</script><!-- Google tag (gtag.js) --><script async src="https://www.googletagmanager.com/gtag/js?id=G-VDC2S0ZNH5"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-VDC2S0ZNH5');
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- CSS --><link rel="stylesheet" href="style/style.css">
</head>
<body data-spy="scroll" data-target="#toc">
<div class="container-fluid">
<div class="row">
<header class="col-sm-12 col-lg-3 sidebar sidebar-book"><a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
<div class="d-flex align-items-start justify-content-between">
<h2>
<a href="index.html" title="">Geocomputation with R</a>
</h2>
<button class="btn btn-outline-primary d-lg-none ml-2 mt-1" type="button" data-toggle="collapse" data-target="#main-nav" aria-expanded="true" aria-controls="main-nav"><i class="fas fa-bars"></i><span class="sr-only">Show table of contents</span></button>
</div>
<div id="main-nav" class="collapse-lg">
<form role="search">
<input id="search" class="form-control" type="search" placeholder="Search" aria-label="Search">
</form>
<nav aria-label="Table of contents"><h2>Table of contents</h2>
<ul class="book-toc list-unstyled">
<li><a class="" href="index.html">Welcome</a></li>
<li><a class="" href="foreword-1st-edition.html">Foreword (1st Edition)</a></li>
<li><a class="" href="foreword-2nd-edition.html">Foreword (2nd Edition)</a></li>
<li><a class="active" href="preface.html">Preface</a></li>
<li><a class="" href="intro.html"><span class="header-section-number">1</span> Introduction</a></li>
<li class="book-part">Foundations</li>
<li><a class="" href="spatial-class.html"><span class="header-section-number">2</span> Geographic data in R</a></li>
<li><a class="" href="attr.html"><span class="header-section-number">3</span> Attribute data operations</a></li>
<li><a class="" href="spatial-operations.html"><span class="header-section-number">4</span> Spatial data operations</a></li>
<li><a class="" href="geometry-operations.html"><span class="header-section-number">5</span> Geometry operations</a></li>
<li><a class="" href="raster-vector.html"><span class="header-section-number">6</span> Raster-vector interactions</a></li>
<li><a class="" href="reproj-geo-data.html"><span class="header-section-number">7</span> Reprojecting geographic data</a></li>
<li><a class="" href="read-write.html"><span class="header-section-number">8</span> Geographic data I/O</a></li>
<li class="book-part">Extensions</li>
<li><a class="" href="adv-map.html"><span class="header-section-number">9</span> Making maps with R</a></li>
<li><a class="" href="gis.html"><span class="header-section-number">10</span> Bridges to GIS software</a></li>
<li><a class="" href="algorithms.html"><span class="header-section-number">11</span> Scripts, algorithms and functions</a></li>
<li><a class="" href="spatial-cv.html"><span class="header-section-number">12</span> Statistical learning</a></li>
<li class="book-part">Applications</li>
<li><a class="" href="transport.html"><span class="header-section-number">13</span> Transportation</a></li>
<li><a class="" href="location.html"><span class="header-section-number">14</span> Geomarketing</a></li>
<li><a class="" href="eco.html"><span class="header-section-number">15</span> Ecology</a></li>
<li><a class="" href="conclusion.html"><span class="header-section-number">16</span> Conclusion</a></li>
<li><a class="" href="references.html">References</a></li>
</ul>
<div class="book-extra">
<p><a id="book-repo" href="https://github.com/geocompx/geocompr">View book source <i class="fab fa-github"></i></a></p>
</div>
</nav>
</div>
</header><main class="col-sm-12 col-md-9 col-lg-7" id="content"><div id="preface" class="section level1 unnumbered">
<h1>Preface<a class="anchor" aria-label="anchor" href="#preface"><i class="fas fa-link"></i></a>
</h1>
<div id="who-this-book-is-for" class="section level2 unnumbered">
<h2>Who this book is for<a class="anchor" aria-label="anchor" href="#who-this-book-is-for"><i class="fas fa-link"></i></a>
</h2>
<p>This book is for people who want to analyze, visualize and model geographic data with open source software.
It is based on R, a statistical programming language that has powerful data processing, visualization and geospatial capabilities.
The book covers a wide range of topics and will be of interest to a wide range of people from many different backgrounds, especially:</p>
<ul>
<li>
<p>People who have learned spatial analysis skills using a desktop Geographic Information System (GIS), such as <a href="https://qgis.org/en/site/">QGIS</a>, <a href="http://desktop.arcgis.com/en/arcmap/">ArcGIS</a>, <a href="https://grass.osgeo.org/">GRASS GIS</a> or <a href="https://saga-gis.sourceforge.io/en/index.html">SAGA</a>, who want access to a powerful (geo)statistical and visualization programming language and the benefits of a command-line approach <span class="citation">(<a href="references.html#ref-sherman_desktop_2008">Sherman 2008</a>)</span>:</p>
<blockquote>
<p>With the advent of ‘modern’ GIS software, most people want to point and click their way through life. That’s good, but there is a tremendous amount of flexibility and power waiting for you with the command line.</p>
</blockquote>
</li>
<li><p>Graduate students and researchers from fields specializing in geographic data including Geography, Remote Sensing, Planning, GIS and Spatial Data Science</p></li>
<li><p>Academics and post-graduate students working with geographic data — in fields such as Geology, Regional Science, Biology and Ecology, Agricultural Sciences, Archaeology, Epidemiology, Transport Modeling, and broadly defined Data Science — who require the power and flexibility of R for their research</p></li>
<li><p>Applied researchers and analysts in public, private or third-sector organizations who need the reproducibility, speed and flexibility of a command-line language such as R in applications dealing with spatial data as diverse as Urban and Transport Planning, Logistics, Geo-marketing (store location analysis) and Emergency Planning</p></li>
</ul>
<p>The book is designed for intermediate-to-advanced R users interested in geocomputation and R beginners who have prior experience with geographic data.
If you are new to both R and geographic data, do not be discouraged: we provide links to further materials and describe the nature of spatial data from a beginner’s perspective in Chapter <a href="spatial-class.html#spatial-class">2</a> and in links provided below.</p>
</div>
<div id="how-to-read-this-book" class="section level2 unnumbered">
<h2>How to read this book<a class="anchor" aria-label="anchor" href="#how-to-read-this-book"><i class="fas fa-link"></i></a>
</h2>
<p>The book is divided into three parts:</p>
<ol style="list-style-type: decimal">
<li>Part I: Foundations, aimed at getting you up-to-speed with geographic data in R.</li>
<li>Part II: Extensions, which covers advanced techniques.</li>
<li>Part III: Applications, to real-world problems.</li>
</ol>
<p>The chapters get progressively harder in each so we recommend reading the book in order.
A major barrier to geographical analysis in R is its steep learning curve.
The chapters in Part I aim to address this by providing reproducible code on simple datasets that should ease the process of getting started.</p>
<p>An important aspect of the book from a teaching/learning perspective is the <strong>exercises</strong> at the end of each chapter.
Completing these will develop your skills and equip you with the confidence needed to tackle a range of geospatial problems.
Solutions to the exercises can be found in an online booklet that accompanies Geocomputation with R, hosted at <a href="https://r.geocompx.org/solutions">r.geocompx.org/solutions</a>.
To learn how this booklet was created, and how to update solutions in files such as <a href="https://github.com/geocompx/geocompr/blob/main/_01-ex.Rmd">_01-ex.Rmd</a>, see this <a href="https://geocompx.org/post/2022/geocompr-solutions/">blog post</a>.
For more blog posts and extended examples, see the book’s supporting website at <a href="https://geocompx.org">geocompx.org</a>.</p>
<p>Impatient readers are welcome to dive straight into the practical examples, starting in Chapter <a href="spatial-class.html#spatial-class">2</a>.
However, we recommend reading about the wider context of <em>Geocomputation with R</em> in Chapter <a href="intro.html#intro">1</a> first.
If you are new to R, we also recommend learning more about the language before attempting to run the code chunks provided in each chapter (unless you’re reading the book for an understanding of the concepts).
Fortunately for R beginners R has a supportive community that has developed a wealth of resources that can help.
We particularly recommend three tutorials: <a href="https://r4ds.had.co.nz/">R for Data Science</a> <span class="citation">(<a href="references.html#ref-grolemund_r_2016">Grolemund and Wickham 2016</a>)</span> and <a href="https://csgillespie.github.io/efficientR/">Efficient R Programming</a> <span class="citation">(<a href="references.html#ref-gillespie_efficient_2016">Gillespie and Lovelace 2016</a>)</span>, and <a href="http://colinfay.me/intro-to-r/">An introduction to R</a> <span class="citation">(<a href="references.html#ref-rcoreteam_introduction_2021">R Core Team 2021</a>)</span>.</p>
</div>
<div id="why-r" class="section level2 unnumbered">
<h2>Why R?<a class="anchor" aria-label="anchor" href="#why-r"><i class="fas fa-link"></i></a>
</h2>
<p>Although R has a steep learning curve, the command-line approach advocated in this book can quickly pay off.
As you’ll learn in subsequent chapters, R is an effective tool for tackling a wide range of geographic data challenges.
We expect that, with practice, R will become the program of choice in your geospatial toolbox for many applications.
Typing and executing commands at the command-line is, in many cases, faster than pointing-and-clicking around the graphical user interface (GUI) of a desktop GIS.
For some applications such as Spatial Statistics and modeling R may be the <em>only</em> realistic way to get the work done.</p>
<p>As outlined in Section <a href="intro.html#why-use-r-for-geocomputation">1.2</a>, there are many reasons for using R for geocomputation:
R is well-suited to the interactive use required in many geographic data analysis workflows compared with other languages.
R excels in the rapidly growing fields of Data Science (which includes data carpentry, statistical learning techniques and data visualization) and Big Data (via efficient interfaces to databases and distributed computing systems).
Furthermore R enables a reproducible workflow: sharing scripts underlying your analysis will allow others to build-on your work.
To ensure reproducibility in this book we have made its source code available at <a href="https://github.com/geocompx/geocompr#geocomputation-with-r">github.com/geocompx/geocompr</a>.
There you will find script files in the <code>code/</code> folder that generate figures:
when code generating a figure is not provided in the main text of the book, the name of the script file that generated it is provided in the caption (see for example the caption for Figure <a href="transport.html#fig:zones">13.2</a>).</p>
<p>Other languages such as Python, Java and C++ can be used for geocomputation and there are excellent resources for learning geocomputation <em>without R</em>, as discussed in Section <a href="intro.html#software-for-geocomputation">1.3</a>.
None of these provide the unique combination of package ecosystem, statistical capabilities, visualization options, powerful IDEs offered by the R community.
Furthermore, by teaching how to use one language (R) in depth, this book will equip you with the concepts and confidence needed to do geocomputation in other languages.</p>
</div>
<div id="real-world-impact" class="section level2 unnumbered">
<h2>Real-world impact<a class="anchor" aria-label="anchor" href="#real-world-impact"><i class="fas fa-link"></i></a>
</h2>
<p><em>Geocomputation with R</em> will equip you with knowledge and skills to tackle a wide range of issues, including those with scientific, societal and environmental implications, manifested in geographic data.
As described in Section <a href="intro.html#what-is-geocomputation">1.1</a>, geocomputation is not only about using computers to process geographic data:
it is also about real-world impact.
The wider context and motivations underlying this book are covered in Chapter <a href="intro.html#intro">1</a>.</p>
</div>
<div id="acknowledgements" class="section level2 unnumbered">
<h2>Acknowledgements<a class="anchor" aria-label="anchor" href="#acknowledgements"><i class="fas fa-link"></i></a>
</h2>
<p>Many thanks to everyone who contributed directly and indirectly via the code hosting and collaboration site GitHub, including the following people who contributed direct via pull requests: prosoitos, florisvdh, babayoshihiko, katygregg, tibbles-and-tribbles, Lvulis, rsbivand, iod-ine, KiranmayiV, cuixueqin, defuneste, zmbc, erstearns, FlorentBedecarratsNM, dcooley, darrellcarvalho, marcosci, appelmar, MikeJohnPage, eyesofbambi, krystof236, nickbearman, tylerlittlefield, giocomai, KHwong12, LaurieLBaker, MarHer90, mdsumner, pat-s, sdesabbata, ahmohil, ateucher, annakrystalli, andtheWings, kant, gavinsimpson, Himanshuteli, yutannihilation, howardbaek, jimr1603, jbixon13, olyerickson, yvkschaefer, katiejolly, kwhkim, layik, mpaulacaldas, mtennekes, mvl22, ganes1410, richfitz, VLucet, wdearden, yihui, adambhouston, chihinl, cshancock, e-clin, ec-nebi, gregor-d, jasongrahn, p-kono, pokyah, schuetzingit, tim-salabim, tszberkowitz, vlarmet.
Thanks to Marco Sciaini who created the front cover image for the first edition and to Benjamin Nowak who created the cover image for the second edition.
See <code>code/frontcover.R</code> and <code>code/frontcover2.R</code> for the reproducible code that generated these visualisation.
Dozens more people contributed online, by raising and commenting on issues, and by providing feedback via social media.
The <code>#geocompr</code> and <code>geocompx</code> hashtags will live on!</p>
<p>We would like to thank John Kimmel and Lara Spieker from CRC Press and Taylor and Francis for taking our ideas from an early book plan into production via four rounds of peer review for each edition.
The reviewers deserve special mention here: their detailed feedback and expertise substantially improved the book’s structure and content.</p>
<p>We thank Patrick Schratz and Alexander Brenning from the University of Jena for fruitful discussions on and input into Chapters <a href="spatial-cv.html#spatial-cv">12</a> and <a href="eco.html#eco">15</a>.
We thank Emmanuel Blondel from the Food and Agriculture Organization of the United Nations for expert input into the section on web services;
Michael Sumner for critical input into many areas of the book, especially the discussion of algorithms in Chapter 11;
Tim Appelhans, David Cooley and Kiranmayi Vadlamudi for key contributions to the visualization chapter (Chapter 9);
Marius Appel for his input into Chapter 10;
and Katy Gregg, who proofread every chapter and greatly improved the readability of the book.</p>
<p>Countless others could be mentioned who contributed in myriad ways.
The final thank you is for all the software developers who make geocomputation with R possible.
Especially, Edzer Pebesma (who created the <strong>sf</strong> package), Robert Hijmans (who created <strong>terra</strong>) and Roger Bivand (who laid the foundations for much R-spatial software) who have made high performance geographic computing possible in R.</p>
</div>
</div>
<div class="chapter-nav">
<div class="prev"><a href="foreword-2nd-edition.html">Foreword (2nd Edition)</a></div>
<div class="next"><a href="intro.html"><span class="header-section-number">1</span> Introduction</a></div>
</div></main><div class="col-md-3 col-lg-2 d-none d-md-block sidebar sidebar-chapter">
<h2>Note: Second Edition is under final polishing 🏗</h2>
<!--<p>Now is a great time to provide feedback</p>-->
<ul class="list-unstyled">
<!--<li><a href="https://forms.gle/nq9RmbxJyZXQgc948">Provide feedback (5 min)</a></li>--><li><a href="https://geocompx.org/">geocompx 🌐</a></li>
<li><a href="https://r.geocompx.org/#reproducibility">Install updated packages</a></li>
<li><a href="https://github.com/geocompx/geocompr/issues">Open an issue <i class="fas fa-question"></i></a></li>
<li><a href="https://discord.gg/PMztXYgNxp">Chat on Discord <i class="fab fa-discord"></i></a></li>
<li><a href="https://r.geocompx.org/solutions/">Check exercise solutions <i class="fa fa-check"></i></a></li>
<li><a href="https://supportukrainenow.org/">Support Ukraine 🇺🇦
</a></li>
</ul>
<hr>
<nav id="toc" data-toggle="toc" aria-label="On this page"><h2>On this page</h2>
<ul class="nav navbar-nav">
<li><a class="nav-link" href="#preface">Preface</a></li>
<li><a class="nav-link" href="#who-this-book-is-for">Who this book is for</a></li>
<li><a class="nav-link" href="#how-to-read-this-book">How to read this book</a></li>
<li><a class="nav-link" href="#why-r">Why R?</a></li>
<li><a class="nav-link" href="#real-world-impact">Real-world impact</a></li>
<li><a class="nav-link" href="#acknowledgements">Acknowledgements</a></li>
</ul>
<div class="book-extra">
<ul class="list-unstyled">
<li><a id="book-source" href="https://github.com/geocompx/geocompr/blob/main/index.Rmd">View source <i class="fab fa-github"></i></a></li>
<li><a id="book-edit" href="https://github.com/geocompx/geocompr/edit/main/index.Rmd">Edit this page <i class="fab fa-github"></i></a></li>
</ul>
</div>
</nav>
</div>
</div>
</div> <!-- .container -->
<footer class="bg-primary text-light mt-5"><div class="container"><div class="row">
<div class="col-12 col-md-6 mt-3">
<p>"<strong>Geocomputation with R</strong>" was written by Robin Lovelace, Jakub Nowosad, Jannes Muenchow. It was last built on 2024-04-26.</p>
</div>
<div class="col-12 col-md-6 mt-3">
<p>This book was built by the <a class="text-light" href="https://bookdown.org">bookdown</a> R package.</p>
</div>
</div></div>
</footer><!-- dynamically load mathjax for compatibility with self-contained --><script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
var src = "true";
if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
if (location.protocol !== "file:")
if (/^https?:/.test(src))
src = src.replace(/^https?:/, '');
script.src = src;
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script><script type="text/x-mathjax-config">const popovers = document.querySelectorAll('a.footnote-ref[data-toggle="popover"]');
for (let popover of popovers) {
const div = document.createElement('div');
div.setAttribute('style', 'position: absolute; top: 0, left:0; width:0, height:0, overflow: hidden; visibility: hidden;');
div.innerHTML = popover.getAttribute('data-content');
var has_math = div.querySelector("span.math");
if (has_math) {
document.body.appendChild(div);
MathJax.Hub.Queue(["Typeset", MathJax.Hub, div]);
MathJax.Hub.Queue(function() {
popover.setAttribute('data-content', div.innerHTML);
document.body.removeChild(div);
})
}
}
</script>
</body>
</html>