spatial uncertainty propagation analysis with the spup r ... · contributed research articles 180...
TRANSCRIPT
CONTRIBUTED RESEARCH ARTICLES 180
Spatial Uncertainty Propagation Analysiswith the spup R Packageby Kasia Sawicka Gerard BM Heuvelink and Dennis JJ Walvoort
Abstract Many environmental and geographical models such as those used in land degradation agro-ecological and climate studies make use of spatially distributed inputs that are known imperfectlyThe R package spup provides functions for examining the uncertainty propagation from input dataand model parameters onto model outputs via the environmental model The functions includeuncertainty model specification stochastic simulation and propagation of uncertainty using MonteCarlo (MC) techniques Uncertain variables are described by probability distributions Both numericaland categorical data types are handled The package also accommodates spatial auto-correlationwithin a variable and cross-correlation between variables The MC realizations may be used as inputto the environmental models written in or called from R This article provides theoretical backgroundand three worked examples that guide users through the application of spup
Introduction and motivation
Environmental models that are used to understand and manage natural systems often rely on spatialdata as input Uncertainty in the input data propagates into model predictions There is a need forsystematic analysis of spatial uncertainty propagation in all major inputs and an accounting of spatialauto- and cross-correlation between input uncertainties Spatial uncertainty propagation analysis hasbeen widely recommended and practised across environmental disciplines for example hydrologyand water quality (eg Hengl et al 2010 Hamel and Guswa 2015 Muthusamy et al 2016 Nijhofet al 2016 Yu et al 2016) biogeochemistry (eg Boyer et al 2006 Nol et al 2010 Pennock et al 2010Hugelius 2012 Vanguelova et al 2016) or ecology and conservation planning (eg Jager et al 2005Fisher et al 2010 Lechner et al 2014) However as far as we know there is no widely applicablesoftware that facilitates such analysis
Currently a growing number of software tools are available for uncertainty propagation anduncertainty assessment some of which have functionality for dealing with spatial uncertaintiesThese include both free software like OpenTURNS (Andrianov et al 2007) Dacota (Adams et al2009) and DUE (Brown and Heuvelink 2007) commercial options like COSSAN (Schueller andPradlwarter 2006) or free packages for licenced software like the SAFE (Pianosi et al 2015) or UQLab(Marelli and Sudret 2014) toolboxes for MATLAB A broad review of existing software packagesare available in Bastin et al (2013) The use of powerful but complex languages like C++ in DakotaPython in OpenTURNS or Java in DUE often discourage relevant portions of the scientific communitywithout formal programming skills from the adoption of otherwise powerful tools There are anumber of R packages relating to uncertainty analysis through sensitivity analysis or use of Bayesianframeworks for model calibration We have found only three packages propagate (Spiess 2014)errors (Ucar 2017) and metRology (Ellison 2017) that deal with uncertainty propagation explicitlyHowever none of these packages provides functionality for spatial models and variables Thereforewe undertook a project to develop an R package that facilitates uncertainty propagation analysis inspatial environmental and geographical modelling
In this article we present the spup package for R (Sawicka et al 2017) which implements amethodology for spatial uncertainty propagation analysis using Monte Carlo (MC) methods The spuppackage includes functions for uncertainty model specification sampling propagation of uncertaintyusing MC techniques and examples of results visualization In this way it provides support for theentire chain from uncertainty model definition simulation and propagation to visualization It is alsoa generic tool that can handle a great variety of cases It is suitable for models that consider spatialvariables saved in a spatial data frame or raster as well as non-spatial variables both continuousand categorical It works with models written in R or other programming languages that can becalled from R The spup package is intended for researchers and practitioners who recognise theproblems of uncertainty in data and models and are looking for a simple accessible implementationof a methodology for uncertainty propagation assessment and visualization At the same time itis designed to enable more experienced users to easily understand customise and possibly furtherdevelop the code
Here we provide a description of the implemented methodology describe the package designand illustrate the usage with three simple examples We demonstrate that the spup package is aneffective and easy tool that can be used for multi-disciplinary research model-based decision supportand educational purposes
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 181
Methodology implemented in spup
Uncertainty propagation aims to analyse how uncertainty (eg from measurement error samplingor interpolation) in spatial data combined with modeling uncertainty (eg in model parametersand structure) propagate through the model (Heuvelink et al 2007) Many environmental andgeographical phenomena of interest are spatial in nature and often have strong spatial correlationsimposed by the physics and dynamics of the natural systems making uncertainty evaluation difficult
A common approach to uncertainty propagation analysis makes use of MC stochastic simulation(Hammersley and Handscomb 1979 Lewis and Orav 1989) The MC approach is very flexible andcan reach an arbitrary level of accuracy and is therefore generally preferred over analytical methodssuch as the Taylor series method (Heuvelink et al 1989) The MC method for uncertainty propagationanalysis consists of the following main steps (i) uncertainty about the variables is expressed byprobability distribution functions (pdfs) (ii) many sets of possible uncertain inputs are generated fromtheir marginal or joint probability distribution using a pseudo-random number generator (iii) themodel is run for each of the simulated input sets (iv) the set of model outputs forms a random samplefrom the output pdf so that the parameters of the output distribution such as the mean standarddeviation and quantiles can be estimated from the sample In other words the spread in the modeloutputs characterises how uncertainty about the model inputs has propagated to the model outputNote that the above ignores uncertainty in model parameters and model structure but these caneasily be included if available as pdfs For example these might have been obtained through Bayesiancalibration (Van Oijen et al 2005) The above four steps are described in detail further below
Step 1 ndash Characterise uncertain model inputs with pdfs
The most frequently used uncertainty quantification approach represents uncertainty with probabilitydistribution functions (pdfs) In order to represent input uncertainty with a pdf we have to define foreach possible input value the corresponding probability or probability density Probability distributionfunctions can be very complex and can have many parameters In practice when information and datafrom which to derive the pdf are limited assumptions and simplifications have to be made to obtainreliable estimates of the pdf In order to reduce the complexity of a pdf for a continuous variablethe distribution function may be described with a simple parametric shape such as the normaluniform or lognormal distribution (Bertsekas and Tsitsiklis 2008) Categorical uncertain variablescan be represented by non-parametric distribution comprising a set of possible outcomes and theirprobabilities The probabilities should be non-negative and the sum of the outcome probabilitiesshould equal 1 (Heuvelink 2007)
Individual variables and the uncertainties associated with them may also be statistically dependenton other variables and their uncertainties For example visibility and water vapour in the atmosphereare correlated and so is the uncertainty between these two properties Note that correlation betweenvariables as derived from pair observations need not be the same as the correlation between measure-ment or interpolation errors associated with these variables For example elevation and temperaturein mountainous area are negatively correlated while the associated uncertainties may not be correlatedat all because of independent measurements methods Thus when multiple inputs are uncertaincross-correlations in their uncertainties must be addressed In that case the uncertainty model isdescribed using a joint probability distribution function (jpdf) If the uncertainties are independentthe jpdf is the product of the univariate pdfs and can be estimated by estimating each pdf separately Ifthe uncertainties are statistically dependent these dependencies must be estimated alongside the pdfsIn practice few parametric shapes are available to describe the jpdf of variables that are statisticallydependent For continuous numerical variables a common assumption is that the multivariate uncer-tainty model follows a joint-normal distribution with a vector of means micro and variance-covariancematrix Σ where the latter must be square symmetric and positive-semidefinite
In different environmental or geographical studies many variables are spatially distributed and itis likely that there is a relationship between nearby values (ie they are auto-correlated) Uncertaintyin such cases may be described by the following geostatistical model
Z(x) = micro(x) + σ(x)ε(x) (1)
where micro(x) is the mean of the variable Z(x) at any location x isin D D is the geographic domain ofinterest σ(x) is a spatially variable standard deviation associated with micro(x) (ie σ parameterises uncer-tainty such that it may be greater in some regions than in others) and ε is a zero-mean unit-variancesecond-order stationary residual (ie spatial auto-correlation depends only on a distance vector)modelled with a semivariogram or a correlogram (Diggle and Ribeiro 2007 Webster and Oliver2007 Plant 2012) For defining spatial correlation spup supports a wide range of positive-definitefunctions implemented in the gstat package (Pebesma 2004 Graumller et al 2016) The mathematical
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 182
background for these calculations is presented in Brown and Heuvelink (2007) and Heuvelink (2007)In case of spatial variables that are cross-correlated with other spatial variables the linear model ofcoregionalization (Goovaerts 1997) is assumed
Table 1 summarises common assumptions and simplifications in uncertainty propagation analysisfor three categories of data continuous discrete and categorical These assumptions are included inthe implementation of spup
Step 2 ndash Repeatedly sample from spatial pdfs for uncertain inputs
When an uncertain variable is characterised by a pdf simulation relies on a pseudo-random numbergenerator The most common sampling method is independent identically distributed (IID) samplingin which case each realization is generated as independent draws from the same pdf In case ofa single parameter or univariate distribution a realization can be easily drawn from various pdfsusing algorithms implemented in the stats package in R (see httpscranr-projectorgwebviewsDistributionshtml for details) For a spatially distributed variable (eg a DEM) that has amultivariate normal distribution spup relies on the unconditional Gaussian simulation algorithmimplemented in the gstat package (Pebesma 2004) For simulation from multivariate normal pdfs ofnon-spatial variables spup uses the mvtnorm package (Genz et al 2017 Genz and Bretz 2009)
In case the input is high-dimensional straightforward random drawing from the jpdf may notyield a sample that is representative across the whole range of allowable values for each variableunless the sample size is extremely large Therefore stratified sampling methods where values areselected for each variable from each of a pre-specified number of intervals with equal probability mass(Iman and Conover 1982) are also implemented in spup The latter can also be done in a spatialcontext (Pebesma and Heuvelink 1999)
Step 3 ndash Run a model with sampled inputs and store model outputs
Step 3 consists of running a model (eg an environmental model) for all sample elements (ldquosimulatedrealitiesrdquo) generated in Step 2 It is crucial that all models are automated and can be run in batch modeas in many practical cases the number of model runs for a Monte Carlo analysis should be at least100 and often many more (Heuvelink 1998) In general the MC sample size must be large enough toguarantee that the outcome of the uncertainty propagation analysis is sufficiently accurate (Heuvelink2006) The limitation here is that the required sample size cannot be calculated beforehand because itis derived from the MC output
It is important to plan what information one needs to retrieve from the set of model outputsStrategies will vary if the user is interested in the combined or separate effect of uncertain input dataor parameters The simplest approach to estimating the uncertainty contribution of a single uncertaininput or parameter is to perform the uncertainty propagation analysis with only the input or oneor more parameters made uncertain The remaining uncertain parameters are then assumed certainand fixed on their central value Comparison of the output uncertainties of different inputs (eg ratioof variances) provides a measure of the relative contribution More details on stochastic sensitivityanalysis can be found in Saltelli et al (2000)
Running the model for multiple simulated realities resulting from step 2 may be computationallydemanding particularly when the model is complex and requires much computing time The compu-tation time can be reduced as the MC method is very suited for parallel computing with multi-core ma-chines and for grid computing technology (Leyva-Suarez et al 2015) In this way computation timescan be dramatically reduced Numerous high-performance and parallel computing packages havebeen developed in R suiting various approaches A continuously maintained descriptive list of these isavailable online at httpscranr-projectorgwebviewsHighPerformanceComputinghtml (Ed-delbuettel 2017)
Step 4 ndash Compute and visualise summary statistics of model outputs
The resulting set of model outputs forms a random sample from the model output probability distribu-tion This means that output pdf parameters such as the mean median variance standard deviationinterquartile range percentiles coefficient of variation and threshold exceedance probabilities canbe estimated from the sample For example the percentiles of the sample can be computed by thequantile() function in R The accuracy of the sample estimates can also be computed (de Gruijteret al 2006) although this is currently not implemented in spup The sample of output values shouldbe stored in case the model output is used as uncertain input for a next model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 183Ta
ble
1C
omm
onas
sum
ptio
nsfo
rde
finin
gun
cert
aint
ym
odel
sw
ith
apr
obab
ility
dist
ribu
tion
func
tion
for
cont
inuo
usan
ddi
scre
teva
riab
les
and
cate
gori
calv
aria
bles
Qua
ntif
ying
the
univ
aria
tepd
fU
ncer
tain
tyin
spat
iall
ydi
stri
bute
dva
riab
les
Cro
ss-c
orre
lati
onbe
twee
nva
riab
les
Con
tinu
ous
vari
-ab
le(e
g
rain
fall
po
llut
ant
conc
en-
trat
ion
elev
atio
n)
Ap
df
isof
ten
assu
med
tofo
llow
the
norm
ald
istr
ibu
tion
wit
hm
ean
microan
dst
and
ard
dev
iati
onσ
Non
-nor
mal
dis
-tr
ibu
tion
s(s
uch
asth
eex
pon
enti
alor
logn
orm
aldi
stri
butio
n)m
ayal
sobe
as-
sum
edF
ord
istr
ibut
ions
supp
orte
din
spup
see
the
spup
man
ual
A
lter
na-
tive
ly
vari
able
sm
aybe
tran
sfor
med
toen
sure
that
the
tran
sfor
med
vari
able
has
ano
rmal
dis
trib
uti
on
Com
mon
tran
sfor
mat
ions
are
squ
are
root
log
a-ri
thm
and
the
Box-
Cox
tran
sfor
mH
ard
min
ima
and
max
ima
can
beim
pose
dby
usin
gtr
unca
ted
dist
ribu
tions
that
leav
eth
esh
ape
ofd
istr
ibu
tion
su
ncha
nged
exce
pt
that
belo
wth
em
inim
um
and
abov
eth
em
axim
um
the
pro
babi
lity
(den
sity
)is
sett
oze
ro
For
cont
inu
ous
unc
erta
inin
pu
tsth
atar
esp
atia
llyco
rrel
ated
the
norm
aldi
s-tr
ibut
ion
isof
ten
impo
sed
beca
use
with
-ou
tit
the
unc
erta
inty
quan
tifi
cati
onw
ould
beco
me
too
com
plex
The
refo
re
itis
reco
mm
ende
dto
assu
me
that
the
in-
puto
rso
me
tran
sfor
mat
ion
ofit
ism
ul-
tiva
riat
eno
rmal
lyd
istr
ibu
ted
and
de-
fine
the
unce
rtai
nty
inte
rms
ofth
eno
r-m
ally
dis
trib
ute
d(t
rans
form
ed)
vari
-ab
leI
nad
ditio
nlsquos
econ
d-or
der
stat
ion-
arity
rsquois
also
ofte
nas
sum
ed(G
oova
erts
19
97D
iggl
ean
dR
ibei
ro2
007)
ind
icat
-in
gth
atth
esp
atia
lcor
rela
tion
betw
een
erro
rsat
two
loca
tions
depe
nds
only
onth
ed
ista
nce
vect
orbe
twee
nth
elo
ca-
tion
sT
his
enab
les
usto
repr
esen
tspa
-ti
alco
rrel
atio
nw
ith
asi
mp
lefu
ncti
on(c
orre
logr
am)
The
stat
isti
cal
dep
end
enci
esbe
twee
njo
intl
yno
rmal
ly-d
istr
ibut
edun
cert
ain
vari
able
sar
efu
llych
arac
teri
sed
wit
ha
corr
elat
ion
mat
rix
The
corr
elat
ion
ma-
trix
isa
squa
res
ymm
etri
can
dpo
sitiv
e-se
mid
efini
tem
atri
xw
ithun
itva
lues
onth
edi
agon
alan
dva
lues
betw
een
-1an
d1
onth
eof
f-di
agon
als
Cor
rela
tions
can
bees
timat
edus
ing
pair
edob
serv
atio
nsof
the
vari
able
sof
inte
rest
H
owev
er
itis
imp
orta
ntto
note
that
the
corr
ela-
tion
betw
een
vari
able
sas
deri
ved
from
pai
red
obse
rvat
ions
need
not
beth
esa
me
asth
eco
rrel
atio
nbe
twee
nm
ea-
sure
men
tor
inte
rpol
atio
ner
rors
asso
-ci
ated
wit
hth
ese
vari
able
sE
g
DO
Can
dN
H4
conc
entr
atio
nsof
rive
rw
a-te
rar
ety
pic
ally
pos
itiv
ely
corr
elat
ed
whi
leth
eir
resp
ecti
vem
easu
rem
ente
r-ro
rsar
eno
tif
mea
sure
din
depe
nden
tly
Dis
cret
eva
riab
le(e
g
fish
coun
tnu
mbe
rof
wil
d-fir
esin
agi
ven
area
and
tim
epe
riod
)
The
pd
fca
nbe
rep
rese
nted
bya
par
a-m
etri
csh
ape
eg
Pois
son
dist
ribu
tion
w
ith
mea
nor
rate
λw
here
microZ=
σZ=
λI
nca
seno
appr
opri
ate
shap
eis
avai
l-ab
lea
llp
ossi
ble
outc
omes
and
asso
ci-
ated
prob
abili
ties
mus
tbe
tabu
late
dor
liste
din
ano
n-pa
ram
etri
cpd
f
Whe
nd
iscr
ete
orca
tego
rica
lvar
iabl
esar
esp
atia
llyd
istr
ibu
ted
the
sim
ple
stap
proa
chis
toas
sum
esp
atia
lsta
tistic
alin
depe
nden
ceor
perf
ects
pati
alde
pen-
denc
eM
ore
adva
nced
appr
oach
esth
atal
low
inte
rmed
iate
leve
lsof
stat
isti
cal
dep
end
ence
incl
ud
eth
eM
arko
vra
n-d
omfi
eld
appr
oach
(Bla
keet
al
2011
)an
dth
eG
ener
alis
edLi
near
Geo
stat
isti
-ca
lMod
el(D
iggl
ean
dR
ibei
ro2
007)
It
isal
sopo
ssib
leto
div
ide
orcl
uste
rth
ear
eain
tosu
b-re
gion
sw
ith
aco
mpl
ete
dep
end
ence
wit
hin
and
ind
epen
den
cebe
twee
nsu
b-re
gion
s
Cro
ss-d
epen
denc
ies
betw
een
unce
rtai
nca
tego
rica
lvar
iabl
esar
ead
dre
ssed
bytr
eati
ngal
lcom
bina
tion
sof
cate
gori
esas
sep
arat
ecl
asse
sE
ach
com
bina
tion
isas
sign
eda
prob
abili
tyT
his
incr
ease
sth
enu
mbe
rof
clas
ses
dra
mat
ical
lys
oth
atge
nera
lisat
ion
isof
ten
need
edin
pra
ctic
ean
dth
eto
taln
um
ber
ofco
m-
bine
dcl
asse
sis
redu
ced
tote
nor
few
er
Cat
egor
ical
vari
-ab
le(e
g
land
use
buil
ding
type
)
For
mos
tcat
egor
ical
vari
able
sa
par
a-m
etri
csh
ape
may
not
beav
aila
ble
Inth
atca
se
each
pos
sibl
eou
tcom
ean
das
soci
ated
prob
abili
tym
ustb
elis
ted
ina
non-
para
met
ric
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 184
It is important that the uncertainty statistics are communicated in an efficient way that is simulta-neously informative and understandable to users that have varied backgrounds in statistics Thereshould be ample explanation of the results and a visual representation of the uncertainty (MacEachren1992 Hengl et al 2004) For non-spatial and non-temporal data a number of simple statistical plotscan be used to visualise uncertainty represented by probability distributions If the full probabilitydistribution function is known this can be visualised in pdf or cumulative distribution function (cdf)plots Error bars interquartile range and box plots can be used to show the distribution of valuesUncertainties about categorical data can be shown using stacked bars for the probability for each ofthe categories or entropy that provides a summary measure of the spread of probabilities over thecategories
It is important to distinguish between presentation techniques and presentation modes for un-certaintly visualisation of spatial data General presentation techniques are (i) adjacent maps (ii)sequential presentation and (iii) bi-variate maps (MacEachren et al 2005) These techniques can bepresented in three modes static dynamic and interactive (Kinkeldey et al 2014) A common exampleof adjacent maps for continuous variables is to put maps of the mean and standard deviation nextto each other For visualising categorical attribute uncertainty the simplest method is also usingadjacent maps for example by showing a map of the the most probable category next to a map of theprobability of that category Sequential presentation may be shown in dynamic mode
The spup package
The spup package is developed in R to provide a simple solution for those who wish to includeuncertainty analysis in their studies with emphasises on studies including spatial variables The spuppackage implements the methodology described in Section Methodology implemented in spup Wedescribe spup version 13-1 available on CRAN The development version is available on gitHub athttpsgithubcomksawickaspup The package is freely available under the GPL3
Three example datasets are provided with the spup package
1 Digital Elevation Model of Zlatibor region in Serbia (3x45km 30m resolution) (Hengl et al2008)
2 Soil organic carbon and total nitrogen content of the south region of Lake Alaotra in Madagascar(33x33km 250m resolution) (Hengl et al 2017)
3 Rotterdam neighbourhood buildings distribution (Kadaster The Netherlands)
These datasets are used in Section Application examples and in the vignettes included in the packageAdditionally the package includes simple R and C functions that represent environmental modelsused in examples
Define uncertainty
model (UM)
Realiza-tions
(model inputs)
Propag-ation
Realiza-tions
(model output)
makeCRM()defineUM()defineMUM()
genSample() propagate()
template() render() executable()
Workflow
Case model inputs as objects in R and a model written in R
Case model inputs saved in files on disk and a model written in a language callable from R
Visualization
The package provides extensive vignettes that include guidance on uncertainty visualization using existing R functions
Figure 1 Flowchart presenting workflow with functions implemented in spup
Figure 1 presents a flowchart with the workflow and key functions implemented in spup Thepackage is designed in a way that the key functions correspond with the steps presented in Sec-tion Methodology implemented in spup The output of functions for defining the uncertainty model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 185
becomes an input to functions for generating a MC sample The generated MC sample in turn isused as input to functions facilitating propagation of uncertainty Qualitative descriptions of the keyfunctions are given in Table 2 More details about functions arguments and output can be found in thepackage manual (Sawicka et al 2017) and in the examples below
Table 2 Key functions in package spup
Function Description
makeCRM() Define a spatial correlogram modeldefineUM() Define marginal uncertainty distributions for model input-
sparameters for subsequent Monte Carlo analysis Outputclass depends on the arguments provided
defineMUM() Allows the user to define joint uncertainty distributions forcontinuous model inputsparameters for subsequent MonteCarlo analysis
genSample() Methods for generating a Monte Carlo sample of uncertainvariables
template() Defines a container class to store all templates with modelinputs
executable() Produces an R function wrapper around a model that can becalled using system2() from R
render() Replaces the tags in moustaches in template file or characterobject by text
propagate() Runs the model repeatedly with Monte Carlo realizations ofthe uncertain inputparameters
Application examples
Example 1 - Uncertainty propagation analysis with auto- and cross- correlated variables
In many geographical studies variables are cross-correlated As a result uncertainty in one variablemay be statistically dependent on uncertainty in the other For example soil properties such as organiccarbon (OC) and total nitrogen (TN) content are cross-correlated These variables are used to derive theCN ratio which is important information to evaluate soil management and increase crop productivityErrors in OC and TN maps will propagate into the CN ratio map The cross-correlation between theuncertainties in OC and TN will affect the degree of uncertainty in the CN ratio
The example data for CN calculations are a 250m resolution mean OC and TN of a 33km x 33kmarea adjacent to lake Alaotra in Madagascar (Figure 2) (Hengl et al 2017) The datasets include fourspatial objects a mean OC and TN of the area with their standard deviations assumed to be equal to10 of the mean
load packageslibrary(spup)library(raster)library(purrr)
set seedsetseed(12345)
load and view the datadata(OC OC_sd TN TN_sd)class(OC) class(TN)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC main = Mean of Organic Carbon xaxt = n yaxt = n)plot(TN main = Mean of Total Nitrogen xaxt = n yaxt = n)
The first step in uncertainty propagation analysis is to define an uncertainty model for the uncertaininput variables here OC and TN First the marginal uncertainty model is defined for each variableseparately and next the joint uncertainty model is defined for the variables together In case of OCand TN the ε (Eq 1) are spatially correlated For each of the variables the makeCRM() function collatesall necessary information into a list We assume that the spatial autocorrelation of the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 186
Mean of Organic Carbon
20
40
60
80
100
Mean of Total Nitrogen
101520253035
Figure 2 Maps of means of soil organic carbon and soil total nitrogen near lake Alaotra in Madagascar
errors are both described by a spherical correlation function with a short-distance correlation of 06for OC and 04 for TN with a range parameter of 1000m (Figure 3) It is important at this step toensure that the correlation function types as well as the ranges are the same for each variable Thisis a requirement for further analysis because spup employs the linear model of co-regionalization(Wackernagel 2003)
define spatial correlogram modelsOC_crm lt- makeCRM(acf0 = 06 range = 1000 model = Sph)TN_crm lt- makeCRM(acf0 = 04 range = 1000 model = Sph)
par(mfrow = c(1 2) mar = c(3 25 2 1) mgp = c(17 05 0) oma = c(0 0 0 0)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_crm main = OC correlogram)plot(TN_crm main = TN correlogram)
0 200 400 600 800 1000 1200
00
02
04
06
08
10
OC correlogram
Distance
Cor
rela
tion
0 200 400 600 800 1000 1200
00
02
04
06
08
10
TN correlogram
Distance
Cor
rela
tion
Figure 3 Spatial correlograms of soil OC and TN in the study area
Spatial correlograms summarise patterns of spatial autocorrelation in data and model residualsThey show the degree of correlation between values at two locations as a function of the separationdistance between the locations In the case above as is usually the case the correlation declines withdistance Here the correlation is zero for distances greater than 1000m More information aboutcorrelograms is included in the spup DEM vignette In order to complete the description of eachindividual uncertain variable the defineUM() function collates all information about the OC and TNuncertainty
define uncertainty model for the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 181
Methodology implemented in spup
Uncertainty propagation aims to analyse how uncertainty (eg from measurement error samplingor interpolation) in spatial data combined with modeling uncertainty (eg in model parametersand structure) propagate through the model (Heuvelink et al 2007) Many environmental andgeographical phenomena of interest are spatial in nature and often have strong spatial correlationsimposed by the physics and dynamics of the natural systems making uncertainty evaluation difficult
A common approach to uncertainty propagation analysis makes use of MC stochastic simulation(Hammersley and Handscomb 1979 Lewis and Orav 1989) The MC approach is very flexible andcan reach an arbitrary level of accuracy and is therefore generally preferred over analytical methodssuch as the Taylor series method (Heuvelink et al 1989) The MC method for uncertainty propagationanalysis consists of the following main steps (i) uncertainty about the variables is expressed byprobability distribution functions (pdfs) (ii) many sets of possible uncertain inputs are generated fromtheir marginal or joint probability distribution using a pseudo-random number generator (iii) themodel is run for each of the simulated input sets (iv) the set of model outputs forms a random samplefrom the output pdf so that the parameters of the output distribution such as the mean standarddeviation and quantiles can be estimated from the sample In other words the spread in the modeloutputs characterises how uncertainty about the model inputs has propagated to the model outputNote that the above ignores uncertainty in model parameters and model structure but these caneasily be included if available as pdfs For example these might have been obtained through Bayesiancalibration (Van Oijen et al 2005) The above four steps are described in detail further below
Step 1 ndash Characterise uncertain model inputs with pdfs
The most frequently used uncertainty quantification approach represents uncertainty with probabilitydistribution functions (pdfs) In order to represent input uncertainty with a pdf we have to define foreach possible input value the corresponding probability or probability density Probability distributionfunctions can be very complex and can have many parameters In practice when information and datafrom which to derive the pdf are limited assumptions and simplifications have to be made to obtainreliable estimates of the pdf In order to reduce the complexity of a pdf for a continuous variablethe distribution function may be described with a simple parametric shape such as the normaluniform or lognormal distribution (Bertsekas and Tsitsiklis 2008) Categorical uncertain variablescan be represented by non-parametric distribution comprising a set of possible outcomes and theirprobabilities The probabilities should be non-negative and the sum of the outcome probabilitiesshould equal 1 (Heuvelink 2007)
Individual variables and the uncertainties associated with them may also be statistically dependenton other variables and their uncertainties For example visibility and water vapour in the atmosphereare correlated and so is the uncertainty between these two properties Note that correlation betweenvariables as derived from pair observations need not be the same as the correlation between measure-ment or interpolation errors associated with these variables For example elevation and temperaturein mountainous area are negatively correlated while the associated uncertainties may not be correlatedat all because of independent measurements methods Thus when multiple inputs are uncertaincross-correlations in their uncertainties must be addressed In that case the uncertainty model isdescribed using a joint probability distribution function (jpdf) If the uncertainties are independentthe jpdf is the product of the univariate pdfs and can be estimated by estimating each pdf separately Ifthe uncertainties are statistically dependent these dependencies must be estimated alongside the pdfsIn practice few parametric shapes are available to describe the jpdf of variables that are statisticallydependent For continuous numerical variables a common assumption is that the multivariate uncer-tainty model follows a joint-normal distribution with a vector of means micro and variance-covariancematrix Σ where the latter must be square symmetric and positive-semidefinite
In different environmental or geographical studies many variables are spatially distributed and itis likely that there is a relationship between nearby values (ie they are auto-correlated) Uncertaintyin such cases may be described by the following geostatistical model
Z(x) = micro(x) + σ(x)ε(x) (1)
where micro(x) is the mean of the variable Z(x) at any location x isin D D is the geographic domain ofinterest σ(x) is a spatially variable standard deviation associated with micro(x) (ie σ parameterises uncer-tainty such that it may be greater in some regions than in others) and ε is a zero-mean unit-variancesecond-order stationary residual (ie spatial auto-correlation depends only on a distance vector)modelled with a semivariogram or a correlogram (Diggle and Ribeiro 2007 Webster and Oliver2007 Plant 2012) For defining spatial correlation spup supports a wide range of positive-definitefunctions implemented in the gstat package (Pebesma 2004 Graumller et al 2016) The mathematical
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 182
background for these calculations is presented in Brown and Heuvelink (2007) and Heuvelink (2007)In case of spatial variables that are cross-correlated with other spatial variables the linear model ofcoregionalization (Goovaerts 1997) is assumed
Table 1 summarises common assumptions and simplifications in uncertainty propagation analysisfor three categories of data continuous discrete and categorical These assumptions are included inthe implementation of spup
Step 2 ndash Repeatedly sample from spatial pdfs for uncertain inputs
When an uncertain variable is characterised by a pdf simulation relies on a pseudo-random numbergenerator The most common sampling method is independent identically distributed (IID) samplingin which case each realization is generated as independent draws from the same pdf In case ofa single parameter or univariate distribution a realization can be easily drawn from various pdfsusing algorithms implemented in the stats package in R (see httpscranr-projectorgwebviewsDistributionshtml for details) For a spatially distributed variable (eg a DEM) that has amultivariate normal distribution spup relies on the unconditional Gaussian simulation algorithmimplemented in the gstat package (Pebesma 2004) For simulation from multivariate normal pdfs ofnon-spatial variables spup uses the mvtnorm package (Genz et al 2017 Genz and Bretz 2009)
In case the input is high-dimensional straightforward random drawing from the jpdf may notyield a sample that is representative across the whole range of allowable values for each variableunless the sample size is extremely large Therefore stratified sampling methods where values areselected for each variable from each of a pre-specified number of intervals with equal probability mass(Iman and Conover 1982) are also implemented in spup The latter can also be done in a spatialcontext (Pebesma and Heuvelink 1999)
Step 3 ndash Run a model with sampled inputs and store model outputs
Step 3 consists of running a model (eg an environmental model) for all sample elements (ldquosimulatedrealitiesrdquo) generated in Step 2 It is crucial that all models are automated and can be run in batch modeas in many practical cases the number of model runs for a Monte Carlo analysis should be at least100 and often many more (Heuvelink 1998) In general the MC sample size must be large enough toguarantee that the outcome of the uncertainty propagation analysis is sufficiently accurate (Heuvelink2006) The limitation here is that the required sample size cannot be calculated beforehand because itis derived from the MC output
It is important to plan what information one needs to retrieve from the set of model outputsStrategies will vary if the user is interested in the combined or separate effect of uncertain input dataor parameters The simplest approach to estimating the uncertainty contribution of a single uncertaininput or parameter is to perform the uncertainty propagation analysis with only the input or oneor more parameters made uncertain The remaining uncertain parameters are then assumed certainand fixed on their central value Comparison of the output uncertainties of different inputs (eg ratioof variances) provides a measure of the relative contribution More details on stochastic sensitivityanalysis can be found in Saltelli et al (2000)
Running the model for multiple simulated realities resulting from step 2 may be computationallydemanding particularly when the model is complex and requires much computing time The compu-tation time can be reduced as the MC method is very suited for parallel computing with multi-core ma-chines and for grid computing technology (Leyva-Suarez et al 2015) In this way computation timescan be dramatically reduced Numerous high-performance and parallel computing packages havebeen developed in R suiting various approaches A continuously maintained descriptive list of these isavailable online at httpscranr-projectorgwebviewsHighPerformanceComputinghtml (Ed-delbuettel 2017)
Step 4 ndash Compute and visualise summary statistics of model outputs
The resulting set of model outputs forms a random sample from the model output probability distribu-tion This means that output pdf parameters such as the mean median variance standard deviationinterquartile range percentiles coefficient of variation and threshold exceedance probabilities canbe estimated from the sample For example the percentiles of the sample can be computed by thequantile() function in R The accuracy of the sample estimates can also be computed (de Gruijteret al 2006) although this is currently not implemented in spup The sample of output values shouldbe stored in case the model output is used as uncertain input for a next model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 183Ta
ble
1C
omm
onas
sum
ptio
nsfo
rde
finin
gun
cert
aint
ym
odel
sw
ith
apr
obab
ility
dist
ribu
tion
func
tion
for
cont
inuo
usan
ddi
scre
teva
riab
les
and
cate
gori
calv
aria
bles
Qua
ntif
ying
the
univ
aria
tepd
fU
ncer
tain
tyin
spat
iall
ydi
stri
bute
dva
riab
les
Cro
ss-c
orre
lati
onbe
twee
nva
riab
les
Con
tinu
ous
vari
-ab
le(e
g
rain
fall
po
llut
ant
conc
en-
trat
ion
elev
atio
n)
Ap
df
isof
ten
assu
med
tofo
llow
the
norm
ald
istr
ibu
tion
wit
hm
ean
microan
dst
and
ard
dev
iati
onσ
Non
-nor
mal
dis
-tr
ibu
tion
s(s
uch
asth
eex
pon
enti
alor
logn
orm
aldi
stri
butio
n)m
ayal
sobe
as-
sum
edF
ord
istr
ibut
ions
supp
orte
din
spup
see
the
spup
man
ual
A
lter
na-
tive
ly
vari
able
sm
aybe
tran
sfor
med
toen
sure
that
the
tran
sfor
med
vari
able
has
ano
rmal
dis
trib
uti
on
Com
mon
tran
sfor
mat
ions
are
squ
are
root
log
a-ri
thm
and
the
Box-
Cox
tran
sfor
mH
ard
min
ima
and
max
ima
can
beim
pose
dby
usin
gtr
unca
ted
dist
ribu
tions
that
leav
eth
esh
ape
ofd
istr
ibu
tion
su
ncha
nged
exce
pt
that
belo
wth
em
inim
um
and
abov
eth
em
axim
um
the
pro
babi
lity
(den
sity
)is
sett
oze
ro
For
cont
inu
ous
unc
erta
inin
pu
tsth
atar
esp
atia
llyco
rrel
ated
the
norm
aldi
s-tr
ibut
ion
isof
ten
impo
sed
beca
use
with
-ou
tit
the
unc
erta
inty
quan
tifi
cati
onw
ould
beco
me
too
com
plex
The
refo
re
itis
reco
mm
ende
dto
assu
me
that
the
in-
puto
rso
me
tran
sfor
mat
ion
ofit
ism
ul-
tiva
riat
eno
rmal
lyd
istr
ibu
ted
and
de-
fine
the
unce
rtai
nty
inte
rms
ofth
eno
r-m
ally
dis
trib
ute
d(t
rans
form
ed)
vari
-ab
leI
nad
ditio
nlsquos
econ
d-or
der
stat
ion-
arity
rsquois
also
ofte
nas
sum
ed(G
oova
erts
19
97D
iggl
ean
dR
ibei
ro2
007)
ind
icat
-in
gth
atth
esp
atia
lcor
rela
tion
betw
een
erro
rsat
two
loca
tions
depe
nds
only
onth
ed
ista
nce
vect
orbe
twee
nth
elo
ca-
tion
sT
his
enab
les
usto
repr
esen
tspa
-ti
alco
rrel
atio
nw
ith
asi
mp
lefu
ncti
on(c
orre
logr
am)
The
stat
isti
cal
dep
end
enci
esbe
twee
njo
intl
yno
rmal
ly-d
istr
ibut
edun
cert
ain
vari
able
sar
efu
llych
arac
teri
sed
wit
ha
corr
elat
ion
mat
rix
The
corr
elat
ion
ma-
trix
isa
squa
res
ymm
etri
can
dpo
sitiv
e-se
mid
efini
tem
atri
xw
ithun
itva
lues
onth
edi
agon
alan
dva
lues
betw
een
-1an
d1
onth
eof
f-di
agon
als
Cor
rela
tions
can
bees
timat
edus
ing
pair
edob
serv
atio
nsof
the
vari
able
sof
inte
rest
H
owev
er
itis
imp
orta
ntto
note
that
the
corr
ela-
tion
betw
een
vari
able
sas
deri
ved
from
pai
red
obse
rvat
ions
need
not
beth
esa
me
asth
eco
rrel
atio
nbe
twee
nm
ea-
sure
men
tor
inte
rpol
atio
ner
rors
asso
-ci
ated
wit
hth
ese
vari
able
sE
g
DO
Can
dN
H4
conc
entr
atio
nsof
rive
rw
a-te
rar
ety
pic
ally
pos
itiv
ely
corr
elat
ed
whi
leth
eir
resp
ecti
vem
easu
rem
ente
r-ro
rsar
eno
tif
mea
sure
din
depe
nden
tly
Dis
cret
eva
riab
le(e
g
fish
coun
tnu
mbe
rof
wil
d-fir
esin
agi
ven
area
and
tim
epe
riod
)
The
pd
fca
nbe
rep
rese
nted
bya
par
a-m
etri
csh
ape
eg
Pois
son
dist
ribu
tion
w
ith
mea
nor
rate
λw
here
microZ=
σZ=
λI
nca
seno
appr
opri
ate
shap
eis
avai
l-ab
lea
llp
ossi
ble
outc
omes
and
asso
ci-
ated
prob
abili
ties
mus
tbe
tabu
late
dor
liste
din
ano
n-pa
ram
etri
cpd
f
Whe
nd
iscr
ete
orca
tego
rica
lvar
iabl
esar
esp
atia
llyd
istr
ibu
ted
the
sim
ple
stap
proa
chis
toas
sum
esp
atia
lsta
tistic
alin
depe
nden
ceor
perf
ects
pati
alde
pen-
denc
eM
ore
adva
nced
appr
oach
esth
atal
low
inte
rmed
iate
leve
lsof
stat
isti
cal
dep
end
ence
incl
ud
eth
eM
arko
vra
n-d
omfi
eld
appr
oach
(Bla
keet
al
2011
)an
dth
eG
ener
alis
edLi
near
Geo
stat
isti
-ca
lMod
el(D
iggl
ean
dR
ibei
ro2
007)
It
isal
sopo
ssib
leto
div
ide
orcl
uste
rth
ear
eain
tosu
b-re
gion
sw
ith
aco
mpl
ete
dep
end
ence
wit
hin
and
ind
epen
den
cebe
twee
nsu
b-re
gion
s
Cro
ss-d
epen
denc
ies
betw
een
unce
rtai
nca
tego
rica
lvar
iabl
esar
ead
dre
ssed
bytr
eati
ngal
lcom
bina
tion
sof
cate
gori
esas
sep
arat
ecl
asse
sE
ach
com
bina
tion
isas
sign
eda
prob
abili
tyT
his
incr
ease
sth
enu
mbe
rof
clas
ses
dra
mat
ical
lys
oth
atge
nera
lisat
ion
isof
ten
need
edin
pra
ctic
ean
dth
eto
taln
um
ber
ofco
m-
bine
dcl
asse
sis
redu
ced
tote
nor
few
er
Cat
egor
ical
vari
-ab
le(e
g
land
use
buil
ding
type
)
For
mos
tcat
egor
ical
vari
able
sa
par
a-m
etri
csh
ape
may
not
beav
aila
ble
Inth
atca
se
each
pos
sibl
eou
tcom
ean
das
soci
ated
prob
abili
tym
ustb
elis
ted
ina
non-
para
met
ric
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 184
It is important that the uncertainty statistics are communicated in an efficient way that is simulta-neously informative and understandable to users that have varied backgrounds in statistics Thereshould be ample explanation of the results and a visual representation of the uncertainty (MacEachren1992 Hengl et al 2004) For non-spatial and non-temporal data a number of simple statistical plotscan be used to visualise uncertainty represented by probability distributions If the full probabilitydistribution function is known this can be visualised in pdf or cumulative distribution function (cdf)plots Error bars interquartile range and box plots can be used to show the distribution of valuesUncertainties about categorical data can be shown using stacked bars for the probability for each ofthe categories or entropy that provides a summary measure of the spread of probabilities over thecategories
It is important to distinguish between presentation techniques and presentation modes for un-certaintly visualisation of spatial data General presentation techniques are (i) adjacent maps (ii)sequential presentation and (iii) bi-variate maps (MacEachren et al 2005) These techniques can bepresented in three modes static dynamic and interactive (Kinkeldey et al 2014) A common exampleof adjacent maps for continuous variables is to put maps of the mean and standard deviation nextto each other For visualising categorical attribute uncertainty the simplest method is also usingadjacent maps for example by showing a map of the the most probable category next to a map of theprobability of that category Sequential presentation may be shown in dynamic mode
The spup package
The spup package is developed in R to provide a simple solution for those who wish to includeuncertainty analysis in their studies with emphasises on studies including spatial variables The spuppackage implements the methodology described in Section Methodology implemented in spup Wedescribe spup version 13-1 available on CRAN The development version is available on gitHub athttpsgithubcomksawickaspup The package is freely available under the GPL3
Three example datasets are provided with the spup package
1 Digital Elevation Model of Zlatibor region in Serbia (3x45km 30m resolution) (Hengl et al2008)
2 Soil organic carbon and total nitrogen content of the south region of Lake Alaotra in Madagascar(33x33km 250m resolution) (Hengl et al 2017)
3 Rotterdam neighbourhood buildings distribution (Kadaster The Netherlands)
These datasets are used in Section Application examples and in the vignettes included in the packageAdditionally the package includes simple R and C functions that represent environmental modelsused in examples
Define uncertainty
model (UM)
Realiza-tions
(model inputs)
Propag-ation
Realiza-tions
(model output)
makeCRM()defineUM()defineMUM()
genSample() propagate()
template() render() executable()
Workflow
Case model inputs as objects in R and a model written in R
Case model inputs saved in files on disk and a model written in a language callable from R
Visualization
The package provides extensive vignettes that include guidance on uncertainty visualization using existing R functions
Figure 1 Flowchart presenting workflow with functions implemented in spup
Figure 1 presents a flowchart with the workflow and key functions implemented in spup Thepackage is designed in a way that the key functions correspond with the steps presented in Sec-tion Methodology implemented in spup The output of functions for defining the uncertainty model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 185
becomes an input to functions for generating a MC sample The generated MC sample in turn isused as input to functions facilitating propagation of uncertainty Qualitative descriptions of the keyfunctions are given in Table 2 More details about functions arguments and output can be found in thepackage manual (Sawicka et al 2017) and in the examples below
Table 2 Key functions in package spup
Function Description
makeCRM() Define a spatial correlogram modeldefineUM() Define marginal uncertainty distributions for model input-
sparameters for subsequent Monte Carlo analysis Outputclass depends on the arguments provided
defineMUM() Allows the user to define joint uncertainty distributions forcontinuous model inputsparameters for subsequent MonteCarlo analysis
genSample() Methods for generating a Monte Carlo sample of uncertainvariables
template() Defines a container class to store all templates with modelinputs
executable() Produces an R function wrapper around a model that can becalled using system2() from R
render() Replaces the tags in moustaches in template file or characterobject by text
propagate() Runs the model repeatedly with Monte Carlo realizations ofthe uncertain inputparameters
Application examples
Example 1 - Uncertainty propagation analysis with auto- and cross- correlated variables
In many geographical studies variables are cross-correlated As a result uncertainty in one variablemay be statistically dependent on uncertainty in the other For example soil properties such as organiccarbon (OC) and total nitrogen (TN) content are cross-correlated These variables are used to derive theCN ratio which is important information to evaluate soil management and increase crop productivityErrors in OC and TN maps will propagate into the CN ratio map The cross-correlation between theuncertainties in OC and TN will affect the degree of uncertainty in the CN ratio
The example data for CN calculations are a 250m resolution mean OC and TN of a 33km x 33kmarea adjacent to lake Alaotra in Madagascar (Figure 2) (Hengl et al 2017) The datasets include fourspatial objects a mean OC and TN of the area with their standard deviations assumed to be equal to10 of the mean
load packageslibrary(spup)library(raster)library(purrr)
set seedsetseed(12345)
load and view the datadata(OC OC_sd TN TN_sd)class(OC) class(TN)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC main = Mean of Organic Carbon xaxt = n yaxt = n)plot(TN main = Mean of Total Nitrogen xaxt = n yaxt = n)
The first step in uncertainty propagation analysis is to define an uncertainty model for the uncertaininput variables here OC and TN First the marginal uncertainty model is defined for each variableseparately and next the joint uncertainty model is defined for the variables together In case of OCand TN the ε (Eq 1) are spatially correlated For each of the variables the makeCRM() function collatesall necessary information into a list We assume that the spatial autocorrelation of the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 186
Mean of Organic Carbon
20
40
60
80
100
Mean of Total Nitrogen
101520253035
Figure 2 Maps of means of soil organic carbon and soil total nitrogen near lake Alaotra in Madagascar
errors are both described by a spherical correlation function with a short-distance correlation of 06for OC and 04 for TN with a range parameter of 1000m (Figure 3) It is important at this step toensure that the correlation function types as well as the ranges are the same for each variable Thisis a requirement for further analysis because spup employs the linear model of co-regionalization(Wackernagel 2003)
define spatial correlogram modelsOC_crm lt- makeCRM(acf0 = 06 range = 1000 model = Sph)TN_crm lt- makeCRM(acf0 = 04 range = 1000 model = Sph)
par(mfrow = c(1 2) mar = c(3 25 2 1) mgp = c(17 05 0) oma = c(0 0 0 0)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_crm main = OC correlogram)plot(TN_crm main = TN correlogram)
0 200 400 600 800 1000 1200
00
02
04
06
08
10
OC correlogram
Distance
Cor
rela
tion
0 200 400 600 800 1000 1200
00
02
04
06
08
10
TN correlogram
Distance
Cor
rela
tion
Figure 3 Spatial correlograms of soil OC and TN in the study area
Spatial correlograms summarise patterns of spatial autocorrelation in data and model residualsThey show the degree of correlation between values at two locations as a function of the separationdistance between the locations In the case above as is usually the case the correlation declines withdistance Here the correlation is zero for distances greater than 1000m More information aboutcorrelograms is included in the spup DEM vignette In order to complete the description of eachindividual uncertain variable the defineUM() function collates all information about the OC and TNuncertainty
define uncertainty model for the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 182
background for these calculations is presented in Brown and Heuvelink (2007) and Heuvelink (2007)In case of spatial variables that are cross-correlated with other spatial variables the linear model ofcoregionalization (Goovaerts 1997) is assumed
Table 1 summarises common assumptions and simplifications in uncertainty propagation analysisfor three categories of data continuous discrete and categorical These assumptions are included inthe implementation of spup
Step 2 ndash Repeatedly sample from spatial pdfs for uncertain inputs
When an uncertain variable is characterised by a pdf simulation relies on a pseudo-random numbergenerator The most common sampling method is independent identically distributed (IID) samplingin which case each realization is generated as independent draws from the same pdf In case ofa single parameter or univariate distribution a realization can be easily drawn from various pdfsusing algorithms implemented in the stats package in R (see httpscranr-projectorgwebviewsDistributionshtml for details) For a spatially distributed variable (eg a DEM) that has amultivariate normal distribution spup relies on the unconditional Gaussian simulation algorithmimplemented in the gstat package (Pebesma 2004) For simulation from multivariate normal pdfs ofnon-spatial variables spup uses the mvtnorm package (Genz et al 2017 Genz and Bretz 2009)
In case the input is high-dimensional straightforward random drawing from the jpdf may notyield a sample that is representative across the whole range of allowable values for each variableunless the sample size is extremely large Therefore stratified sampling methods where values areselected for each variable from each of a pre-specified number of intervals with equal probability mass(Iman and Conover 1982) are also implemented in spup The latter can also be done in a spatialcontext (Pebesma and Heuvelink 1999)
Step 3 ndash Run a model with sampled inputs and store model outputs
Step 3 consists of running a model (eg an environmental model) for all sample elements (ldquosimulatedrealitiesrdquo) generated in Step 2 It is crucial that all models are automated and can be run in batch modeas in many practical cases the number of model runs for a Monte Carlo analysis should be at least100 and often many more (Heuvelink 1998) In general the MC sample size must be large enough toguarantee that the outcome of the uncertainty propagation analysis is sufficiently accurate (Heuvelink2006) The limitation here is that the required sample size cannot be calculated beforehand because itis derived from the MC output
It is important to plan what information one needs to retrieve from the set of model outputsStrategies will vary if the user is interested in the combined or separate effect of uncertain input dataor parameters The simplest approach to estimating the uncertainty contribution of a single uncertaininput or parameter is to perform the uncertainty propagation analysis with only the input or oneor more parameters made uncertain The remaining uncertain parameters are then assumed certainand fixed on their central value Comparison of the output uncertainties of different inputs (eg ratioof variances) provides a measure of the relative contribution More details on stochastic sensitivityanalysis can be found in Saltelli et al (2000)
Running the model for multiple simulated realities resulting from step 2 may be computationallydemanding particularly when the model is complex and requires much computing time The compu-tation time can be reduced as the MC method is very suited for parallel computing with multi-core ma-chines and for grid computing technology (Leyva-Suarez et al 2015) In this way computation timescan be dramatically reduced Numerous high-performance and parallel computing packages havebeen developed in R suiting various approaches A continuously maintained descriptive list of these isavailable online at httpscranr-projectorgwebviewsHighPerformanceComputinghtml (Ed-delbuettel 2017)
Step 4 ndash Compute and visualise summary statistics of model outputs
The resulting set of model outputs forms a random sample from the model output probability distribu-tion This means that output pdf parameters such as the mean median variance standard deviationinterquartile range percentiles coefficient of variation and threshold exceedance probabilities canbe estimated from the sample For example the percentiles of the sample can be computed by thequantile() function in R The accuracy of the sample estimates can also be computed (de Gruijteret al 2006) although this is currently not implemented in spup The sample of output values shouldbe stored in case the model output is used as uncertain input for a next model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 183Ta
ble
1C
omm
onas
sum
ptio
nsfo
rde
finin
gun
cert
aint
ym
odel
sw
ith
apr
obab
ility
dist
ribu
tion
func
tion
for
cont
inuo
usan
ddi
scre
teva
riab
les
and
cate
gori
calv
aria
bles
Qua
ntif
ying
the
univ
aria
tepd
fU
ncer
tain
tyin
spat
iall
ydi
stri
bute
dva
riab
les
Cro
ss-c
orre
lati
onbe
twee
nva
riab
les
Con
tinu
ous
vari
-ab
le(e
g
rain
fall
po
llut
ant
conc
en-
trat
ion
elev
atio
n)
Ap
df
isof
ten
assu
med
tofo
llow
the
norm
ald
istr
ibu
tion
wit
hm
ean
microan
dst
and
ard
dev
iati
onσ
Non
-nor
mal
dis
-tr
ibu
tion
s(s
uch
asth
eex
pon
enti
alor
logn
orm
aldi
stri
butio
n)m
ayal
sobe
as-
sum
edF
ord
istr
ibut
ions
supp
orte
din
spup
see
the
spup
man
ual
A
lter
na-
tive
ly
vari
able
sm
aybe
tran
sfor
med
toen
sure
that
the
tran
sfor
med
vari
able
has
ano
rmal
dis
trib
uti
on
Com
mon
tran
sfor
mat
ions
are
squ
are
root
log
a-ri
thm
and
the
Box-
Cox
tran
sfor
mH
ard
min
ima
and
max
ima
can
beim
pose
dby
usin
gtr
unca
ted
dist
ribu
tions
that
leav
eth
esh
ape
ofd
istr
ibu
tion
su
ncha
nged
exce
pt
that
belo
wth
em
inim
um
and
abov
eth
em
axim
um
the
pro
babi
lity
(den
sity
)is
sett
oze
ro
For
cont
inu
ous
unc
erta
inin
pu
tsth
atar
esp
atia
llyco
rrel
ated
the
norm
aldi
s-tr
ibut
ion
isof
ten
impo
sed
beca
use
with
-ou
tit
the
unc
erta
inty
quan
tifi
cati
onw
ould
beco
me
too
com
plex
The
refo
re
itis
reco
mm
ende
dto
assu
me
that
the
in-
puto
rso
me
tran
sfor
mat
ion
ofit
ism
ul-
tiva
riat
eno
rmal
lyd
istr
ibu
ted
and
de-
fine
the
unce
rtai
nty
inte
rms
ofth
eno
r-m
ally
dis
trib
ute
d(t
rans
form
ed)
vari
-ab
leI
nad
ditio
nlsquos
econ
d-or
der
stat
ion-
arity
rsquois
also
ofte
nas
sum
ed(G
oova
erts
19
97D
iggl
ean
dR
ibei
ro2
007)
ind
icat
-in
gth
atth
esp
atia
lcor
rela
tion
betw
een
erro
rsat
two
loca
tions
depe
nds
only
onth
ed
ista
nce
vect
orbe
twee
nth
elo
ca-
tion
sT
his
enab
les
usto
repr
esen
tspa
-ti
alco
rrel
atio
nw
ith
asi
mp
lefu
ncti
on(c
orre
logr
am)
The
stat
isti
cal
dep
end
enci
esbe
twee
njo
intl
yno
rmal
ly-d
istr
ibut
edun
cert
ain
vari
able
sar
efu
llych
arac
teri
sed
wit
ha
corr
elat
ion
mat
rix
The
corr
elat
ion
ma-
trix
isa
squa
res
ymm
etri
can
dpo
sitiv
e-se
mid
efini
tem
atri
xw
ithun
itva
lues
onth
edi
agon
alan
dva
lues
betw
een
-1an
d1
onth
eof
f-di
agon
als
Cor
rela
tions
can
bees
timat
edus
ing
pair
edob
serv
atio
nsof
the
vari
able
sof
inte
rest
H
owev
er
itis
imp
orta
ntto
note
that
the
corr
ela-
tion
betw
een
vari
able
sas
deri
ved
from
pai
red
obse
rvat
ions
need
not
beth
esa
me
asth
eco
rrel
atio
nbe
twee
nm
ea-
sure
men
tor
inte
rpol
atio
ner
rors
asso
-ci
ated
wit
hth
ese
vari
able
sE
g
DO
Can
dN
H4
conc
entr
atio
nsof
rive
rw
a-te
rar
ety
pic
ally
pos
itiv
ely
corr
elat
ed
whi
leth
eir
resp
ecti
vem
easu
rem
ente
r-ro
rsar
eno
tif
mea
sure
din
depe
nden
tly
Dis
cret
eva
riab
le(e
g
fish
coun
tnu
mbe
rof
wil
d-fir
esin
agi
ven
area
and
tim
epe
riod
)
The
pd
fca
nbe
rep
rese
nted
bya
par
a-m
etri
csh
ape
eg
Pois
son
dist
ribu
tion
w
ith
mea
nor
rate
λw
here
microZ=
σZ=
λI
nca
seno
appr
opri
ate
shap
eis
avai
l-ab
lea
llp
ossi
ble
outc
omes
and
asso
ci-
ated
prob
abili
ties
mus
tbe
tabu
late
dor
liste
din
ano
n-pa
ram
etri
cpd
f
Whe
nd
iscr
ete
orca
tego
rica
lvar
iabl
esar
esp
atia
llyd
istr
ibu
ted
the
sim
ple
stap
proa
chis
toas
sum
esp
atia
lsta
tistic
alin
depe
nden
ceor
perf
ects
pati
alde
pen-
denc
eM
ore
adva
nced
appr
oach
esth
atal
low
inte
rmed
iate
leve
lsof
stat
isti
cal
dep
end
ence
incl
ud
eth
eM
arko
vra
n-d
omfi
eld
appr
oach
(Bla
keet
al
2011
)an
dth
eG
ener
alis
edLi
near
Geo
stat
isti
-ca
lMod
el(D
iggl
ean
dR
ibei
ro2
007)
It
isal
sopo
ssib
leto
div
ide
orcl
uste
rth
ear
eain
tosu
b-re
gion
sw
ith
aco
mpl
ete
dep
end
ence
wit
hin
and
ind
epen
den
cebe
twee
nsu
b-re
gion
s
Cro
ss-d
epen
denc
ies
betw
een
unce
rtai
nca
tego
rica
lvar
iabl
esar
ead
dre
ssed
bytr
eati
ngal
lcom
bina
tion
sof
cate
gori
esas
sep
arat
ecl
asse
sE
ach
com
bina
tion
isas
sign
eda
prob
abili
tyT
his
incr
ease
sth
enu
mbe
rof
clas
ses
dra
mat
ical
lys
oth
atge
nera
lisat
ion
isof
ten
need
edin
pra
ctic
ean
dth
eto
taln
um
ber
ofco
m-
bine
dcl
asse
sis
redu
ced
tote
nor
few
er
Cat
egor
ical
vari
-ab
le(e
g
land
use
buil
ding
type
)
For
mos
tcat
egor
ical
vari
able
sa
par
a-m
etri
csh
ape
may
not
beav
aila
ble
Inth
atca
se
each
pos
sibl
eou
tcom
ean
das
soci
ated
prob
abili
tym
ustb
elis
ted
ina
non-
para
met
ric
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 184
It is important that the uncertainty statistics are communicated in an efficient way that is simulta-neously informative and understandable to users that have varied backgrounds in statistics Thereshould be ample explanation of the results and a visual representation of the uncertainty (MacEachren1992 Hengl et al 2004) For non-spatial and non-temporal data a number of simple statistical plotscan be used to visualise uncertainty represented by probability distributions If the full probabilitydistribution function is known this can be visualised in pdf or cumulative distribution function (cdf)plots Error bars interquartile range and box plots can be used to show the distribution of valuesUncertainties about categorical data can be shown using stacked bars for the probability for each ofthe categories or entropy that provides a summary measure of the spread of probabilities over thecategories
It is important to distinguish between presentation techniques and presentation modes for un-certaintly visualisation of spatial data General presentation techniques are (i) adjacent maps (ii)sequential presentation and (iii) bi-variate maps (MacEachren et al 2005) These techniques can bepresented in three modes static dynamic and interactive (Kinkeldey et al 2014) A common exampleof adjacent maps for continuous variables is to put maps of the mean and standard deviation nextto each other For visualising categorical attribute uncertainty the simplest method is also usingadjacent maps for example by showing a map of the the most probable category next to a map of theprobability of that category Sequential presentation may be shown in dynamic mode
The spup package
The spup package is developed in R to provide a simple solution for those who wish to includeuncertainty analysis in their studies with emphasises on studies including spatial variables The spuppackage implements the methodology described in Section Methodology implemented in spup Wedescribe spup version 13-1 available on CRAN The development version is available on gitHub athttpsgithubcomksawickaspup The package is freely available under the GPL3
Three example datasets are provided with the spup package
1 Digital Elevation Model of Zlatibor region in Serbia (3x45km 30m resolution) (Hengl et al2008)
2 Soil organic carbon and total nitrogen content of the south region of Lake Alaotra in Madagascar(33x33km 250m resolution) (Hengl et al 2017)
3 Rotterdam neighbourhood buildings distribution (Kadaster The Netherlands)
These datasets are used in Section Application examples and in the vignettes included in the packageAdditionally the package includes simple R and C functions that represent environmental modelsused in examples
Define uncertainty
model (UM)
Realiza-tions
(model inputs)
Propag-ation
Realiza-tions
(model output)
makeCRM()defineUM()defineMUM()
genSample() propagate()
template() render() executable()
Workflow
Case model inputs as objects in R and a model written in R
Case model inputs saved in files on disk and a model written in a language callable from R
Visualization
The package provides extensive vignettes that include guidance on uncertainty visualization using existing R functions
Figure 1 Flowchart presenting workflow with functions implemented in spup
Figure 1 presents a flowchart with the workflow and key functions implemented in spup Thepackage is designed in a way that the key functions correspond with the steps presented in Sec-tion Methodology implemented in spup The output of functions for defining the uncertainty model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 185
becomes an input to functions for generating a MC sample The generated MC sample in turn isused as input to functions facilitating propagation of uncertainty Qualitative descriptions of the keyfunctions are given in Table 2 More details about functions arguments and output can be found in thepackage manual (Sawicka et al 2017) and in the examples below
Table 2 Key functions in package spup
Function Description
makeCRM() Define a spatial correlogram modeldefineUM() Define marginal uncertainty distributions for model input-
sparameters for subsequent Monte Carlo analysis Outputclass depends on the arguments provided
defineMUM() Allows the user to define joint uncertainty distributions forcontinuous model inputsparameters for subsequent MonteCarlo analysis
genSample() Methods for generating a Monte Carlo sample of uncertainvariables
template() Defines a container class to store all templates with modelinputs
executable() Produces an R function wrapper around a model that can becalled using system2() from R
render() Replaces the tags in moustaches in template file or characterobject by text
propagate() Runs the model repeatedly with Monte Carlo realizations ofthe uncertain inputparameters
Application examples
Example 1 - Uncertainty propagation analysis with auto- and cross- correlated variables
In many geographical studies variables are cross-correlated As a result uncertainty in one variablemay be statistically dependent on uncertainty in the other For example soil properties such as organiccarbon (OC) and total nitrogen (TN) content are cross-correlated These variables are used to derive theCN ratio which is important information to evaluate soil management and increase crop productivityErrors in OC and TN maps will propagate into the CN ratio map The cross-correlation between theuncertainties in OC and TN will affect the degree of uncertainty in the CN ratio
The example data for CN calculations are a 250m resolution mean OC and TN of a 33km x 33kmarea adjacent to lake Alaotra in Madagascar (Figure 2) (Hengl et al 2017) The datasets include fourspatial objects a mean OC and TN of the area with their standard deviations assumed to be equal to10 of the mean
load packageslibrary(spup)library(raster)library(purrr)
set seedsetseed(12345)
load and view the datadata(OC OC_sd TN TN_sd)class(OC) class(TN)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC main = Mean of Organic Carbon xaxt = n yaxt = n)plot(TN main = Mean of Total Nitrogen xaxt = n yaxt = n)
The first step in uncertainty propagation analysis is to define an uncertainty model for the uncertaininput variables here OC and TN First the marginal uncertainty model is defined for each variableseparately and next the joint uncertainty model is defined for the variables together In case of OCand TN the ε (Eq 1) are spatially correlated For each of the variables the makeCRM() function collatesall necessary information into a list We assume that the spatial autocorrelation of the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 186
Mean of Organic Carbon
20
40
60
80
100
Mean of Total Nitrogen
101520253035
Figure 2 Maps of means of soil organic carbon and soil total nitrogen near lake Alaotra in Madagascar
errors are both described by a spherical correlation function with a short-distance correlation of 06for OC and 04 for TN with a range parameter of 1000m (Figure 3) It is important at this step toensure that the correlation function types as well as the ranges are the same for each variable Thisis a requirement for further analysis because spup employs the linear model of co-regionalization(Wackernagel 2003)
define spatial correlogram modelsOC_crm lt- makeCRM(acf0 = 06 range = 1000 model = Sph)TN_crm lt- makeCRM(acf0 = 04 range = 1000 model = Sph)
par(mfrow = c(1 2) mar = c(3 25 2 1) mgp = c(17 05 0) oma = c(0 0 0 0)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_crm main = OC correlogram)plot(TN_crm main = TN correlogram)
0 200 400 600 800 1000 1200
00
02
04
06
08
10
OC correlogram
Distance
Cor
rela
tion
0 200 400 600 800 1000 1200
00
02
04
06
08
10
TN correlogram
Distance
Cor
rela
tion
Figure 3 Spatial correlograms of soil OC and TN in the study area
Spatial correlograms summarise patterns of spatial autocorrelation in data and model residualsThey show the degree of correlation between values at two locations as a function of the separationdistance between the locations In the case above as is usually the case the correlation declines withdistance Here the correlation is zero for distances greater than 1000m More information aboutcorrelograms is included in the spup DEM vignette In order to complete the description of eachindividual uncertain variable the defineUM() function collates all information about the OC and TNuncertainty
define uncertainty model for the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 183Ta
ble
1C
omm
onas
sum
ptio
nsfo
rde
finin
gun
cert
aint
ym
odel
sw
ith
apr
obab
ility
dist
ribu
tion
func
tion
for
cont
inuo
usan
ddi
scre
teva
riab
les
and
cate
gori
calv
aria
bles
Qua
ntif
ying
the
univ
aria
tepd
fU
ncer
tain
tyin
spat
iall
ydi
stri
bute
dva
riab
les
Cro
ss-c
orre
lati
onbe
twee
nva
riab
les
Con
tinu
ous
vari
-ab
le(e
g
rain
fall
po
llut
ant
conc
en-
trat
ion
elev
atio
n)
Ap
df
isof
ten
assu
med
tofo
llow
the
norm
ald
istr
ibu
tion
wit
hm
ean
microan
dst
and
ard
dev
iati
onσ
Non
-nor
mal
dis
-tr
ibu
tion
s(s
uch
asth
eex
pon
enti
alor
logn
orm
aldi
stri
butio
n)m
ayal
sobe
as-
sum
edF
ord
istr
ibut
ions
supp
orte
din
spup
see
the
spup
man
ual
A
lter
na-
tive
ly
vari
able
sm
aybe
tran
sfor
med
toen
sure
that
the
tran
sfor
med
vari
able
has
ano
rmal
dis
trib
uti
on
Com
mon
tran
sfor
mat
ions
are
squ
are
root
log
a-ri
thm
and
the
Box-
Cox
tran
sfor
mH
ard
min
ima
and
max
ima
can
beim
pose
dby
usin
gtr
unca
ted
dist
ribu
tions
that
leav
eth
esh
ape
ofd
istr
ibu
tion
su
ncha
nged
exce
pt
that
belo
wth
em
inim
um
and
abov
eth
em
axim
um
the
pro
babi
lity
(den
sity
)is
sett
oze
ro
For
cont
inu
ous
unc
erta
inin
pu
tsth
atar
esp
atia
llyco
rrel
ated
the
norm
aldi
s-tr
ibut
ion
isof
ten
impo
sed
beca
use
with
-ou
tit
the
unc
erta
inty
quan
tifi
cati
onw
ould
beco
me
too
com
plex
The
refo
re
itis
reco
mm
ende
dto
assu
me
that
the
in-
puto
rso
me
tran
sfor
mat
ion
ofit
ism
ul-
tiva
riat
eno
rmal
lyd
istr
ibu
ted
and
de-
fine
the
unce
rtai
nty
inte
rms
ofth
eno
r-m
ally
dis
trib
ute
d(t
rans
form
ed)
vari
-ab
leI
nad
ditio
nlsquos
econ
d-or
der
stat
ion-
arity
rsquois
also
ofte
nas
sum
ed(G
oova
erts
19
97D
iggl
ean
dR
ibei
ro2
007)
ind
icat
-in
gth
atth
esp
atia
lcor
rela
tion
betw
een
erro
rsat
two
loca
tions
depe
nds
only
onth
ed
ista
nce
vect
orbe
twee
nth
elo
ca-
tion
sT
his
enab
les
usto
repr
esen
tspa
-ti
alco
rrel
atio
nw
ith
asi
mp
lefu
ncti
on(c
orre
logr
am)
The
stat
isti
cal
dep
end
enci
esbe
twee
njo
intl
yno
rmal
ly-d
istr
ibut
edun
cert
ain
vari
able
sar
efu
llych
arac
teri
sed
wit
ha
corr
elat
ion
mat
rix
The
corr
elat
ion
ma-
trix
isa
squa
res
ymm
etri
can
dpo
sitiv
e-se
mid
efini
tem
atri
xw
ithun
itva
lues
onth
edi
agon
alan
dva
lues
betw
een
-1an
d1
onth
eof
f-di
agon
als
Cor
rela
tions
can
bees
timat
edus
ing
pair
edob
serv
atio
nsof
the
vari
able
sof
inte
rest
H
owev
er
itis
imp
orta
ntto
note
that
the
corr
ela-
tion
betw
een
vari
able
sas
deri
ved
from
pai
red
obse
rvat
ions
need
not
beth
esa
me
asth
eco
rrel
atio
nbe
twee
nm
ea-
sure
men
tor
inte
rpol
atio
ner
rors
asso
-ci
ated
wit
hth
ese
vari
able
sE
g
DO
Can
dN
H4
conc
entr
atio
nsof
rive
rw
a-te
rar
ety
pic
ally
pos
itiv
ely
corr
elat
ed
whi
leth
eir
resp
ecti
vem
easu
rem
ente
r-ro
rsar
eno
tif
mea
sure
din
depe
nden
tly
Dis
cret
eva
riab
le(e
g
fish
coun
tnu
mbe
rof
wil
d-fir
esin
agi
ven
area
and
tim
epe
riod
)
The
pd
fca
nbe
rep
rese
nted
bya
par
a-m
etri
csh
ape
eg
Pois
son
dist
ribu
tion
w
ith
mea
nor
rate
λw
here
microZ=
σZ=
λI
nca
seno
appr
opri
ate
shap
eis
avai
l-ab
lea
llp
ossi
ble
outc
omes
and
asso
ci-
ated
prob
abili
ties
mus
tbe
tabu
late
dor
liste
din
ano
n-pa
ram
etri
cpd
f
Whe
nd
iscr
ete
orca
tego
rica
lvar
iabl
esar
esp
atia
llyd
istr
ibu
ted
the
sim
ple
stap
proa
chis
toas
sum
esp
atia
lsta
tistic
alin
depe
nden
ceor
perf
ects
pati
alde
pen-
denc
eM
ore
adva
nced
appr
oach
esth
atal
low
inte
rmed
iate
leve
lsof
stat
isti
cal
dep
end
ence
incl
ud
eth
eM
arko
vra
n-d
omfi
eld
appr
oach
(Bla
keet
al
2011
)an
dth
eG
ener
alis
edLi
near
Geo
stat
isti
-ca
lMod
el(D
iggl
ean
dR
ibei
ro2
007)
It
isal
sopo
ssib
leto
div
ide
orcl
uste
rth
ear
eain
tosu
b-re
gion
sw
ith
aco
mpl
ete
dep
end
ence
wit
hin
and
ind
epen
den
cebe
twee
nsu
b-re
gion
s
Cro
ss-d
epen
denc
ies
betw
een
unce
rtai
nca
tego
rica
lvar
iabl
esar
ead
dre
ssed
bytr
eati
ngal
lcom
bina
tion
sof
cate
gori
esas
sep
arat
ecl
asse
sE
ach
com
bina
tion
isas
sign
eda
prob
abili
tyT
his
incr
ease
sth
enu
mbe
rof
clas
ses
dra
mat
ical
lys
oth
atge
nera
lisat
ion
isof
ten
need
edin
pra
ctic
ean
dth
eto
taln
um
ber
ofco
m-
bine
dcl
asse
sis
redu
ced
tote
nor
few
er
Cat
egor
ical
vari
-ab
le(e
g
land
use
buil
ding
type
)
For
mos
tcat
egor
ical
vari
able
sa
par
a-m
etri
csh
ape
may
not
beav
aila
ble
Inth
atca
se
each
pos
sibl
eou
tcom
ean
das
soci
ated
prob
abili
tym
ustb
elis
ted
ina
non-
para
met
ric
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 184
It is important that the uncertainty statistics are communicated in an efficient way that is simulta-neously informative and understandable to users that have varied backgrounds in statistics Thereshould be ample explanation of the results and a visual representation of the uncertainty (MacEachren1992 Hengl et al 2004) For non-spatial and non-temporal data a number of simple statistical plotscan be used to visualise uncertainty represented by probability distributions If the full probabilitydistribution function is known this can be visualised in pdf or cumulative distribution function (cdf)plots Error bars interquartile range and box plots can be used to show the distribution of valuesUncertainties about categorical data can be shown using stacked bars for the probability for each ofthe categories or entropy that provides a summary measure of the spread of probabilities over thecategories
It is important to distinguish between presentation techniques and presentation modes for un-certaintly visualisation of spatial data General presentation techniques are (i) adjacent maps (ii)sequential presentation and (iii) bi-variate maps (MacEachren et al 2005) These techniques can bepresented in three modes static dynamic and interactive (Kinkeldey et al 2014) A common exampleof adjacent maps for continuous variables is to put maps of the mean and standard deviation nextto each other For visualising categorical attribute uncertainty the simplest method is also usingadjacent maps for example by showing a map of the the most probable category next to a map of theprobability of that category Sequential presentation may be shown in dynamic mode
The spup package
The spup package is developed in R to provide a simple solution for those who wish to includeuncertainty analysis in their studies with emphasises on studies including spatial variables The spuppackage implements the methodology described in Section Methodology implemented in spup Wedescribe spup version 13-1 available on CRAN The development version is available on gitHub athttpsgithubcomksawickaspup The package is freely available under the GPL3
Three example datasets are provided with the spup package
1 Digital Elevation Model of Zlatibor region in Serbia (3x45km 30m resolution) (Hengl et al2008)
2 Soil organic carbon and total nitrogen content of the south region of Lake Alaotra in Madagascar(33x33km 250m resolution) (Hengl et al 2017)
3 Rotterdam neighbourhood buildings distribution (Kadaster The Netherlands)
These datasets are used in Section Application examples and in the vignettes included in the packageAdditionally the package includes simple R and C functions that represent environmental modelsused in examples
Define uncertainty
model (UM)
Realiza-tions
(model inputs)
Propag-ation
Realiza-tions
(model output)
makeCRM()defineUM()defineMUM()
genSample() propagate()
template() render() executable()
Workflow
Case model inputs as objects in R and a model written in R
Case model inputs saved in files on disk and a model written in a language callable from R
Visualization
The package provides extensive vignettes that include guidance on uncertainty visualization using existing R functions
Figure 1 Flowchart presenting workflow with functions implemented in spup
Figure 1 presents a flowchart with the workflow and key functions implemented in spup Thepackage is designed in a way that the key functions correspond with the steps presented in Sec-tion Methodology implemented in spup The output of functions for defining the uncertainty model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 185
becomes an input to functions for generating a MC sample The generated MC sample in turn isused as input to functions facilitating propagation of uncertainty Qualitative descriptions of the keyfunctions are given in Table 2 More details about functions arguments and output can be found in thepackage manual (Sawicka et al 2017) and in the examples below
Table 2 Key functions in package spup
Function Description
makeCRM() Define a spatial correlogram modeldefineUM() Define marginal uncertainty distributions for model input-
sparameters for subsequent Monte Carlo analysis Outputclass depends on the arguments provided
defineMUM() Allows the user to define joint uncertainty distributions forcontinuous model inputsparameters for subsequent MonteCarlo analysis
genSample() Methods for generating a Monte Carlo sample of uncertainvariables
template() Defines a container class to store all templates with modelinputs
executable() Produces an R function wrapper around a model that can becalled using system2() from R
render() Replaces the tags in moustaches in template file or characterobject by text
propagate() Runs the model repeatedly with Monte Carlo realizations ofthe uncertain inputparameters
Application examples
Example 1 - Uncertainty propagation analysis with auto- and cross- correlated variables
In many geographical studies variables are cross-correlated As a result uncertainty in one variablemay be statistically dependent on uncertainty in the other For example soil properties such as organiccarbon (OC) and total nitrogen (TN) content are cross-correlated These variables are used to derive theCN ratio which is important information to evaluate soil management and increase crop productivityErrors in OC and TN maps will propagate into the CN ratio map The cross-correlation between theuncertainties in OC and TN will affect the degree of uncertainty in the CN ratio
The example data for CN calculations are a 250m resolution mean OC and TN of a 33km x 33kmarea adjacent to lake Alaotra in Madagascar (Figure 2) (Hengl et al 2017) The datasets include fourspatial objects a mean OC and TN of the area with their standard deviations assumed to be equal to10 of the mean
load packageslibrary(spup)library(raster)library(purrr)
set seedsetseed(12345)
load and view the datadata(OC OC_sd TN TN_sd)class(OC) class(TN)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC main = Mean of Organic Carbon xaxt = n yaxt = n)plot(TN main = Mean of Total Nitrogen xaxt = n yaxt = n)
The first step in uncertainty propagation analysis is to define an uncertainty model for the uncertaininput variables here OC and TN First the marginal uncertainty model is defined for each variableseparately and next the joint uncertainty model is defined for the variables together In case of OCand TN the ε (Eq 1) are spatially correlated For each of the variables the makeCRM() function collatesall necessary information into a list We assume that the spatial autocorrelation of the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 186
Mean of Organic Carbon
20
40
60
80
100
Mean of Total Nitrogen
101520253035
Figure 2 Maps of means of soil organic carbon and soil total nitrogen near lake Alaotra in Madagascar
errors are both described by a spherical correlation function with a short-distance correlation of 06for OC and 04 for TN with a range parameter of 1000m (Figure 3) It is important at this step toensure that the correlation function types as well as the ranges are the same for each variable Thisis a requirement for further analysis because spup employs the linear model of co-regionalization(Wackernagel 2003)
define spatial correlogram modelsOC_crm lt- makeCRM(acf0 = 06 range = 1000 model = Sph)TN_crm lt- makeCRM(acf0 = 04 range = 1000 model = Sph)
par(mfrow = c(1 2) mar = c(3 25 2 1) mgp = c(17 05 0) oma = c(0 0 0 0)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_crm main = OC correlogram)plot(TN_crm main = TN correlogram)
0 200 400 600 800 1000 1200
00
02
04
06
08
10
OC correlogram
Distance
Cor
rela
tion
0 200 400 600 800 1000 1200
00
02
04
06
08
10
TN correlogram
Distance
Cor
rela
tion
Figure 3 Spatial correlograms of soil OC and TN in the study area
Spatial correlograms summarise patterns of spatial autocorrelation in data and model residualsThey show the degree of correlation between values at two locations as a function of the separationdistance between the locations In the case above as is usually the case the correlation declines withdistance Here the correlation is zero for distances greater than 1000m More information aboutcorrelograms is included in the spup DEM vignette In order to complete the description of eachindividual uncertain variable the defineUM() function collates all information about the OC and TNuncertainty
define uncertainty model for the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 184
It is important that the uncertainty statistics are communicated in an efficient way that is simulta-neously informative and understandable to users that have varied backgrounds in statistics Thereshould be ample explanation of the results and a visual representation of the uncertainty (MacEachren1992 Hengl et al 2004) For non-spatial and non-temporal data a number of simple statistical plotscan be used to visualise uncertainty represented by probability distributions If the full probabilitydistribution function is known this can be visualised in pdf or cumulative distribution function (cdf)plots Error bars interquartile range and box plots can be used to show the distribution of valuesUncertainties about categorical data can be shown using stacked bars for the probability for each ofthe categories or entropy that provides a summary measure of the spread of probabilities over thecategories
It is important to distinguish between presentation techniques and presentation modes for un-certaintly visualisation of spatial data General presentation techniques are (i) adjacent maps (ii)sequential presentation and (iii) bi-variate maps (MacEachren et al 2005) These techniques can bepresented in three modes static dynamic and interactive (Kinkeldey et al 2014) A common exampleof adjacent maps for continuous variables is to put maps of the mean and standard deviation nextto each other For visualising categorical attribute uncertainty the simplest method is also usingadjacent maps for example by showing a map of the the most probable category next to a map of theprobability of that category Sequential presentation may be shown in dynamic mode
The spup package
The spup package is developed in R to provide a simple solution for those who wish to includeuncertainty analysis in their studies with emphasises on studies including spatial variables The spuppackage implements the methodology described in Section Methodology implemented in spup Wedescribe spup version 13-1 available on CRAN The development version is available on gitHub athttpsgithubcomksawickaspup The package is freely available under the GPL3
Three example datasets are provided with the spup package
1 Digital Elevation Model of Zlatibor region in Serbia (3x45km 30m resolution) (Hengl et al2008)
2 Soil organic carbon and total nitrogen content of the south region of Lake Alaotra in Madagascar(33x33km 250m resolution) (Hengl et al 2017)
3 Rotterdam neighbourhood buildings distribution (Kadaster The Netherlands)
These datasets are used in Section Application examples and in the vignettes included in the packageAdditionally the package includes simple R and C functions that represent environmental modelsused in examples
Define uncertainty
model (UM)
Realiza-tions
(model inputs)
Propag-ation
Realiza-tions
(model output)
makeCRM()defineUM()defineMUM()
genSample() propagate()
template() render() executable()
Workflow
Case model inputs as objects in R and a model written in R
Case model inputs saved in files on disk and a model written in a language callable from R
Visualization
The package provides extensive vignettes that include guidance on uncertainty visualization using existing R functions
Figure 1 Flowchart presenting workflow with functions implemented in spup
Figure 1 presents a flowchart with the workflow and key functions implemented in spup Thepackage is designed in a way that the key functions correspond with the steps presented in Sec-tion Methodology implemented in spup The output of functions for defining the uncertainty model
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 185
becomes an input to functions for generating a MC sample The generated MC sample in turn isused as input to functions facilitating propagation of uncertainty Qualitative descriptions of the keyfunctions are given in Table 2 More details about functions arguments and output can be found in thepackage manual (Sawicka et al 2017) and in the examples below
Table 2 Key functions in package spup
Function Description
makeCRM() Define a spatial correlogram modeldefineUM() Define marginal uncertainty distributions for model input-
sparameters for subsequent Monte Carlo analysis Outputclass depends on the arguments provided
defineMUM() Allows the user to define joint uncertainty distributions forcontinuous model inputsparameters for subsequent MonteCarlo analysis
genSample() Methods for generating a Monte Carlo sample of uncertainvariables
template() Defines a container class to store all templates with modelinputs
executable() Produces an R function wrapper around a model that can becalled using system2() from R
render() Replaces the tags in moustaches in template file or characterobject by text
propagate() Runs the model repeatedly with Monte Carlo realizations ofthe uncertain inputparameters
Application examples
Example 1 - Uncertainty propagation analysis with auto- and cross- correlated variables
In many geographical studies variables are cross-correlated As a result uncertainty in one variablemay be statistically dependent on uncertainty in the other For example soil properties such as organiccarbon (OC) and total nitrogen (TN) content are cross-correlated These variables are used to derive theCN ratio which is important information to evaluate soil management and increase crop productivityErrors in OC and TN maps will propagate into the CN ratio map The cross-correlation between theuncertainties in OC and TN will affect the degree of uncertainty in the CN ratio
The example data for CN calculations are a 250m resolution mean OC and TN of a 33km x 33kmarea adjacent to lake Alaotra in Madagascar (Figure 2) (Hengl et al 2017) The datasets include fourspatial objects a mean OC and TN of the area with their standard deviations assumed to be equal to10 of the mean
load packageslibrary(spup)library(raster)library(purrr)
set seedsetseed(12345)
load and view the datadata(OC OC_sd TN TN_sd)class(OC) class(TN)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC main = Mean of Organic Carbon xaxt = n yaxt = n)plot(TN main = Mean of Total Nitrogen xaxt = n yaxt = n)
The first step in uncertainty propagation analysis is to define an uncertainty model for the uncertaininput variables here OC and TN First the marginal uncertainty model is defined for each variableseparately and next the joint uncertainty model is defined for the variables together In case of OCand TN the ε (Eq 1) are spatially correlated For each of the variables the makeCRM() function collatesall necessary information into a list We assume that the spatial autocorrelation of the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 186
Mean of Organic Carbon
20
40
60
80
100
Mean of Total Nitrogen
101520253035
Figure 2 Maps of means of soil organic carbon and soil total nitrogen near lake Alaotra in Madagascar
errors are both described by a spherical correlation function with a short-distance correlation of 06for OC and 04 for TN with a range parameter of 1000m (Figure 3) It is important at this step toensure that the correlation function types as well as the ranges are the same for each variable Thisis a requirement for further analysis because spup employs the linear model of co-regionalization(Wackernagel 2003)
define spatial correlogram modelsOC_crm lt- makeCRM(acf0 = 06 range = 1000 model = Sph)TN_crm lt- makeCRM(acf0 = 04 range = 1000 model = Sph)
par(mfrow = c(1 2) mar = c(3 25 2 1) mgp = c(17 05 0) oma = c(0 0 0 0)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_crm main = OC correlogram)plot(TN_crm main = TN correlogram)
0 200 400 600 800 1000 1200
00
02
04
06
08
10
OC correlogram
Distance
Cor
rela
tion
0 200 400 600 800 1000 1200
00
02
04
06
08
10
TN correlogram
Distance
Cor
rela
tion
Figure 3 Spatial correlograms of soil OC and TN in the study area
Spatial correlograms summarise patterns of spatial autocorrelation in data and model residualsThey show the degree of correlation between values at two locations as a function of the separationdistance between the locations In the case above as is usually the case the correlation declines withdistance Here the correlation is zero for distances greater than 1000m More information aboutcorrelograms is included in the spup DEM vignette In order to complete the description of eachindividual uncertain variable the defineUM() function collates all information about the OC and TNuncertainty
define uncertainty model for the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 185
becomes an input to functions for generating a MC sample The generated MC sample in turn isused as input to functions facilitating propagation of uncertainty Qualitative descriptions of the keyfunctions are given in Table 2 More details about functions arguments and output can be found in thepackage manual (Sawicka et al 2017) and in the examples below
Table 2 Key functions in package spup
Function Description
makeCRM() Define a spatial correlogram modeldefineUM() Define marginal uncertainty distributions for model input-
sparameters for subsequent Monte Carlo analysis Outputclass depends on the arguments provided
defineMUM() Allows the user to define joint uncertainty distributions forcontinuous model inputsparameters for subsequent MonteCarlo analysis
genSample() Methods for generating a Monte Carlo sample of uncertainvariables
template() Defines a container class to store all templates with modelinputs
executable() Produces an R function wrapper around a model that can becalled using system2() from R
render() Replaces the tags in moustaches in template file or characterobject by text
propagate() Runs the model repeatedly with Monte Carlo realizations ofthe uncertain inputparameters
Application examples
Example 1 - Uncertainty propagation analysis with auto- and cross- correlated variables
In many geographical studies variables are cross-correlated As a result uncertainty in one variablemay be statistically dependent on uncertainty in the other For example soil properties such as organiccarbon (OC) and total nitrogen (TN) content are cross-correlated These variables are used to derive theCN ratio which is important information to evaluate soil management and increase crop productivityErrors in OC and TN maps will propagate into the CN ratio map The cross-correlation between theuncertainties in OC and TN will affect the degree of uncertainty in the CN ratio
The example data for CN calculations are a 250m resolution mean OC and TN of a 33km x 33kmarea adjacent to lake Alaotra in Madagascar (Figure 2) (Hengl et al 2017) The datasets include fourspatial objects a mean OC and TN of the area with their standard deviations assumed to be equal to10 of the mean
load packageslibrary(spup)library(raster)library(purrr)
set seedsetseed(12345)
load and view the datadata(OC OC_sd TN TN_sd)class(OC) class(TN)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC main = Mean of Organic Carbon xaxt = n yaxt = n)plot(TN main = Mean of Total Nitrogen xaxt = n yaxt = n)
The first step in uncertainty propagation analysis is to define an uncertainty model for the uncertaininput variables here OC and TN First the marginal uncertainty model is defined for each variableseparately and next the joint uncertainty model is defined for the variables together In case of OCand TN the ε (Eq 1) are spatially correlated For each of the variables the makeCRM() function collatesall necessary information into a list We assume that the spatial autocorrelation of the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 186
Mean of Organic Carbon
20
40
60
80
100
Mean of Total Nitrogen
101520253035
Figure 2 Maps of means of soil organic carbon and soil total nitrogen near lake Alaotra in Madagascar
errors are both described by a spherical correlation function with a short-distance correlation of 06for OC and 04 for TN with a range parameter of 1000m (Figure 3) It is important at this step toensure that the correlation function types as well as the ranges are the same for each variable Thisis a requirement for further analysis because spup employs the linear model of co-regionalization(Wackernagel 2003)
define spatial correlogram modelsOC_crm lt- makeCRM(acf0 = 06 range = 1000 model = Sph)TN_crm lt- makeCRM(acf0 = 04 range = 1000 model = Sph)
par(mfrow = c(1 2) mar = c(3 25 2 1) mgp = c(17 05 0) oma = c(0 0 0 0)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_crm main = OC correlogram)plot(TN_crm main = TN correlogram)
0 200 400 600 800 1000 1200
00
02
04
06
08
10
OC correlogram
Distance
Cor
rela
tion
0 200 400 600 800 1000 1200
00
02
04
06
08
10
TN correlogram
Distance
Cor
rela
tion
Figure 3 Spatial correlograms of soil OC and TN in the study area
Spatial correlograms summarise patterns of spatial autocorrelation in data and model residualsThey show the degree of correlation between values at two locations as a function of the separationdistance between the locations In the case above as is usually the case the correlation declines withdistance Here the correlation is zero for distances greater than 1000m More information aboutcorrelograms is included in the spup DEM vignette In order to complete the description of eachindividual uncertain variable the defineUM() function collates all information about the OC and TNuncertainty
define uncertainty model for the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 186
Mean of Organic Carbon
20
40
60
80
100
Mean of Total Nitrogen
101520253035
Figure 2 Maps of means of soil organic carbon and soil total nitrogen near lake Alaotra in Madagascar
errors are both described by a spherical correlation function with a short-distance correlation of 06for OC and 04 for TN with a range parameter of 1000m (Figure 3) It is important at this step toensure that the correlation function types as well as the ranges are the same for each variable Thisis a requirement for further analysis because spup employs the linear model of co-regionalization(Wackernagel 2003)
define spatial correlogram modelsOC_crm lt- makeCRM(acf0 = 06 range = 1000 model = Sph)TN_crm lt- makeCRM(acf0 = 04 range = 1000 model = Sph)
par(mfrow = c(1 2) mar = c(3 25 2 1) mgp = c(17 05 0) oma = c(0 0 0 0)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_crm main = OC correlogram)plot(TN_crm main = TN correlogram)
0 200 400 600 800 1000 1200
00
02
04
06
08
10
OC correlogram
Distance
Cor
rela
tion
0 200 400 600 800 1000 1200
00
02
04
06
08
10
TN correlogram
Distance
Cor
rela
tion
Figure 3 Spatial correlograms of soil OC and TN in the study area
Spatial correlograms summarise patterns of spatial autocorrelation in data and model residualsThey show the degree of correlation between values at two locations as a function of the separationdistance between the locations In the case above as is usually the case the correlation declines withdistance Here the correlation is zero for distances greater than 1000m More information aboutcorrelograms is included in the spup DEM vignette In order to complete the description of eachindividual uncertain variable the defineUM() function collates all information about the OC and TNuncertainty
define uncertainty model for the OC and TN
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 187
OC_UM lt- defineUM(distribution = norm distr_param = c(OC OC_sd)crm = OC_crm id = OC)
TN_UM lt- defineUM(distribution = norm distr_param = c(TN TN_sd)crm = TN_crm id = TN)
class(OC_UM)[1] MarginalNumericSpatialclass(TN_UM)[1] MarginalNumericSpatial
Both variables are of the same class MarginalNumericSpatial This is one of the requirementsfor defining a multivariate uncertainty model The defineMUM() function collates information aboutuncertainty in each variable and information about their cross-correlation
define multivariate uncertainty modelmySpatialMUM lt- defineMUM(UMlist = list(OC_UM TN_UM)
cormatrix = matrix(c(1 07 07 1)nrow = 2 ncol = 2))
class(mySpatialMUM)[1] JointNumericSpatial
In this example a geostatistical model for OC and TN is defined that assumes multivariate normalityand has spatial correlation functions as follows
ρOC(h) = 1 for h = 0
ρOC(h) = 06 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOC(h) = 0 for h ge 1000
(2)
ρTN(h) = 1 for h = 0
ρTN(h) = 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρTN(h) = 0 for h ge 1000
(3)
ρOCTN(h) = 07 for h = 0
ρOCTN(h) = 07 middotradic
06 middot 04 middot 1minus 32
h1000
+12(
h1000
)3 for 0 lt h lt 1000
ρOCTN(h) = 0 for h ge 1000
(4)
where h is Euclidean distance and where the mathematical definition of the spherical correlationfunction (ie the semivariogram) has been used (Webster and Oliver 2007)
Generating possible realities of the selected variables is completed by using the genSample()function
create possible realizations from the joint distribution of OC and TNMC lt- 100OCTN_sample lt- genSample(UMobject = mySpatialMUM n = MC samplemethod = ugs
nmax = 20 asList = FALSE)
Note the argument asList has been set to FALSE This indicates that the sampling function willreturn an object of a class of the distribution parameters class This is useful if there is a need tovisualise the sample or compute summary statistics quickly
A first assessment of uncertainty is done by plotting the means and standard deviations of thesampled OC and TN Note that if the sample size is very large then the sample mean and standarddeviation would approximate the mean and standard deviation (Figure 4)
compute and plot OC and TN sample statistics eg mean and standard deviationOC_sample lt- OCTN_sample[[1MC]]TN_sample lt- OCTN_sample[[(MC+1)(2MC)]]OC_sample_mean lt- mean(OC_sample)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 188
TN_sample_mean lt- mean(TN_sample)OC_sample_sd lt- calc(OC_sample fun = sd)TN_sample_sd lt- calc(TN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(OC_sample_mean main = Mean of OC realizations xaxt = n yaxt = n)plot(TN_sample_mean main = Mean of TN realizations xaxt = n yaxt = n)
Mean of OC realizations
20
40
60
80
100
Mean of TN realizations
101520253035
Figure 4 Maps of means of sampled realizations of OC and TN
In order to perform uncertainty propagation analysis using spup the model through whichuncertainty is propagated needs to be defined as an R function
CN modelC_N_model_raster lt- function (OC TN) OCTN
The propagation of uncertainty occurs when the model is run with uncertain inputs Running themodel with a sample of realizations of uncertain input variable(s) yields an equally large sample ofmodel outputs that can be further analysed We use the propagate() function to run the CN ratiomodel with the OC and TN realizations To run propagate() the samples of the uncertain inputvariables must be saved in lists and then collated into a list of lists The existing OCTN_sample objectcan be coerced or generated automatically by setting asList = TRUE in genSample()
coerce a raster stack to a listl lt- list()l[[1]] lt- map(1100 function(x)OCTN_sample[[x]])l[[2]] lt- map(101200 function(x)OCTN_sample[[x]])OCTN_sample lt- l
run uncertainty propagationCN_sample lt- propagate(realizations = OCTN_sample model = C_N_model_raster n = MC)
Uncertainty in CN predictions can be visualised by calculating and plotting the relative error(Figure 5) The relative error gives an indication of the accuracy relative to its size
coerce CNs list to a raster stackCN_sample lt- stack(CN_sample)names(CN_sample) lt- paste(CN c(1nlayers(CN_sample)) sep = )
compute and plot the slope sample statisticsCN_mean lt- mean(CN_sample)CN_sd lt- calc(CN_sample fun = sd)
par(mfrow = c(1 2) mar = c(1 1 2 2) mgp = c(17 05 0) oma = c(0 0 0 1)las = 1 cexmain = 1 tcl = -02 cexaxis = 08 cexlab = 08)
plot(CN_mean main = Mean of CN xaxt = n yaxt = n)plot((CN_sdCN_mean)100 main = Relative error of CN [] xaxt = n yaxt = n)
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 189
Mean of CN
10
20
30
40
50
Relative error of CN []
910111213141516
Figure 5 Maps of standard deviation and relative error of CN ratio sample in the study area
Further analysis may include identification of all locations where the CN ratio is in a specificrange with decreasing probability For example identifying areas where the CN ratio is higher than20 might help farmers to identify which plots require action to improve soil quality (Figure 6)
calculate quantilesCN_sample_df lt- as(CN_sample SpatialGridDataFrame)CN_q lt- quantile_MC_sgdf(CN_sample_df probs = c(001 01 05 09) narm = TRUE)
CN_q$good4crops99perc lt- ifelse(CN_q$prob1perc gt 20 1 0)CN_q$good4crops90perc lt- ifelse(CN_q$prob10perc gt 20 1 0)CN_q$good4crops50perc lt- ifelse(CN_q$prob50perc gt 20 1 0)CN_q$good4crops10perc lt- ifelse(CN_q$prob90perc gt 20 1 0)
CN_q$good4crops lt- CN_q$good4crops99perc + CN_q$good4crops90perc +CN_q$good4crops50perc + CN_q$good4crops10perc
CN_q$good4crops[CN_q$good4crops == 4] lt- No improvement neededCN_q$good4crops[CN_q$good4crops == 3] lt- Possibly improvement neededCN_q$good4crops[CN_q$good4crops == 2] lt- Likely improvement neededCN_q$good4crops[CN_q$good4crops == 1] lt- Definitely improvement neededCN_q$good4crops[CN_q$good4crops == 0] lt- Definitely improvement needed
CN_q$good4crops lt- factor(CN_q$good4cropslevels = c(Definitely improvement needed
Likely improvement neededPossibly improvement neededNo improvement needed))
spplot(CN_q good4crops colregions = c(red3 sandybrown greenyellowforestgreen) main = Areas with sufficient CN for cropping)
Example 2 - Uncertainty propagation analysis with categorical data
In many aspects of life information take the form of categorical data For example in a city neigh-bourhood or a district each building may be assigned a function such as housing office recreation orother The city council may impose different tax levels depending on the building function Supposethat the function of a building is assigned depending on the percentage of the building used for living(ie the residential use) and number of addresses in the building If the residential area is greaterthan 80 and has at least one address registered then the building is classified as ldquoresidentialrdquo If theresidential area is smaller than 80 and at least one address is present then the building is classified asldquoofficerdquo If no address is present the building function is classified as ldquootherrdquo The city council imposesannual tax of euro1000 for residential buidings euro10000 for office buildlings and euro10 for other buildingsThe 80 threshold is approximate and some buildings classified as ldquootherrdquo could have an assigned
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 190
Areas with sufficient CN for cropping
Definitely improvement neededLikely improvement neededPossibly improvement neededNo improvement needed
Figure 6 Map of soil quality classification (depending on CN ratio) for crop production
address that has not yet been entered into the tax system Therefore the council wishes to calculatethe uncertainty in tax revenue introduced by erroneous building classification For this example wewill use the spatial distribution of buildings in a neighborhood of Rotterdam NL (Figure 7)
load packageslibrary(sp)library(spup)library(purrr)library(png)
setseed(12345)
load datadata(woon)
Netherlands contour and Rotterdam locationNL lt- readPNG(RotterdamNLpng) collate info about figure size and typeNL_map lt- list(gridraster NL x = 89987 y = 436047 width = 120 height = 152
defaultunits = native) collate info about a scale bar location in the figure type and colourscale lt- list(SpatialPolygonsRescale layoutscalebar()
offset = c(90000 435600) scale = 100fill = c(transparent black))
collate info about minimum value on a scale bartext1 lt- list(sptext c(89990 435600) 0 cex = 08) collate info about maximum value on a scale bartext2 lt- list(sptext c(90130 435600) 500 m cex = 08) collate info about North arrowarrow lt- list(SpatialPolygonsRescale layoutnortharrow()
offset = c(89990 435630) scale = 50) plot woon object with a location miniature North arrow and scale bar defined abovespplot(woon check dolog = TRUE colregions = transparent
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 191
colorkey = FALSE keyspace = list(x = 01 y = 093 corner = c(01))splayout = list(scale text1 text2 arrow NL_map)main = Neighbourhood in Rotterdam NL)
Neighbourhood in Rotterdam NL
0 500 m
Figure 7 Map of a neighbourhood of Rotterdam used as study area Contours represent buildings
The woon object is a SpatialPolygonDataFrame where each building is represented by one polygon(Figure 7) The attributes include
bull vbos The number of addresses present in the building
bull woonareash The percentage residential area
bull Function The assigned category depending on vbos and woonareash where 1 representsresidental 2 office and 3 other
bull residential Probability that the building is residential
bull office Probability that the building is an office buildling
bull other Probability that the building has another function
Figure 8 illustrates the probabilities associated with each building for the three possible categories
plot probabilities for each polygonspplot(woon[c(456)])
residential office other
01
02
03
04
05
06
07
08
Figure 8 Probabilities of correct classification of each building
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 192
In case of categorical variables the uncertainty is described by a non-parametric pdf In this case itis a vector of probabilities that a building belongs to a certain category In case of spatially distributedvariables this must be done for each polygon hence the dataset has maps of these probabilities savedin the same object We further assume that uncertainties are spatially independent implying that thejoint pdf of all buildings in the neighbourhood is the product of the marginal pdfs for all buildingsThus we can generate possible realities for all buildings independently To unite all informationof the uncertainty model for the building function we use the defineUM() function that collates allinformation into one object
define uncertainty model for the building functionwoonUM lt- defineUM(TRUE categories = c(residential office other)
cat_prob = woon[ c(46)])
create possible realizations of the building functionwoon_sample lt- genSample(woonUM 100 asList = FALSE)
view several realizationswoon_s lt- woon_sampledatawoon_s lt- lapply(woon_sampledata asfactor)woon_sampledata lt- asdataframe(woon_s)rm(woon_s)
spplot(woon_sample[c(3412)] colregions = c(5ab4ac f5f5f5 d8b365)main = list(label = Examples of building function realizations cex = 1))
Examples of building function realizations
sim3 sim4
sim1 sim2
office
other
residential
Figure 9 Examples of Monte Carlo realizations of possible classifications for each building
Examples of building functions Monte Carlo realizations are shown in Figure 9
To propagate uncertainty we run the model repeatedly with the sample created above The taxmodel is defined as
define tax modeltax lt- function (building_Function)building_Function$tax2pay lt- NA
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 193
building_Function$tax2pay[building_Function$Function == residential] lt- 1000building_Function$tax2pay[building_Function$Function == office] lt- 10000building_Function$tax2pay[building_Function$Function == other] lt- 10total_tax lt- sum(building_Function$tax2pay)total_tax
As in the previous CN ratio example in order to run the propagation function the sample of anuncertain input variable must be saved in a list We must either coerce the existing woon_sample objector get it automatically by setting up asList = TRUE argument in genSample()
coerce SpatialPolygonDataFrame to a list of individual SpatialPolygonDataFrameswoon_sample lt- map(1ncol(woon_sample) function(x)woon_sample[x])for (i in 1100) names(woon_sample[[i]]) lt- Function
run uncertainty propagationtax_sample lt- propagate(woon_sample model = tax n = 100)
tax_sample lt- unlist(tax_sample)ci95perc lt- c(mean(tax_sample) - 196(sd(tax_sample)10)mean(tax_sample) + 196(sd(tax_sample)10))ci95perc[1] 2281978 2312449
The result of the uncertainty propagation shows that on average the city council should obtain atax revenue of approximately euro2300000 and that the associated 95 confidence interval is (euro2281978euro2312449)
Example 3 - Uncertainty propagation analysis with a model written in C
Environmental models are often developed in languages other than R such as C or FORTRAN thatcan significantly speed up processing In this example we demonstrate how to perform uncertaintyanalysis with a basic model written in C
We begin by showcasing functions to manipulate model inputs stored in ASCII files For externalmodels this additional code is needed to (i) modify ASCII input files and (ii) run the externalmodel For rendering ASCII input files the mustache templating framework is available on GitHub athttpsmustachegithubio and in the R package whisker
Suppose we have a simple linear regression model Y = b0 + b1 lowast X that requires an input fileinputtxt The file contains values for the two parameters b0 and b1 as follows
library(spup)library(dplyr)library(readr)library(whisker)library(purrr)
setseed(12345)
read_lines(inputtxt)[1] -0789 0016
Function template() allow user to define a container class to store templates with model inputsThe aim of this class is to organise model input files and perform necessary checks A print() methodis available for the class template A template is simply an ASCII file with
1 The additional extension template
2 Input that needs to be modified is replaced by mustache-style tags
The corresponding template file should be named inputtxttemplate and should replace the originalnumbers with b0 and b1 placed in moustaches
function template() reads the file into R as an object of class templatemy_template lt- template(inputtxttemplate)my_template gtread_lines[1] b0 b1
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 194
Rendering is the process of replacing the tags in moustaches with text Rendering creates a new filecalled inputtxt
my_template gtrender(b0 = 3 b1 = 4)[1] inputtxt
Below is an example external model written in the C language This code can be saved in a file withthe c extension for example lsquodummy_modelcrsquo The model below calculates a value of a simple linearregression
include ltstdiohgtint main()
FILE fpdouble x[9] = 10 20 30 40 50 60 70 80 90double ydouble b0double b1int i
fp = fopen(inputtxt r)if (fp == NULL)
printf(Cant read inputtxtn)return 1
fscanf(fp lf lfn ampb0 ampb1)fclose(fp)
fp = fopen(outputtxt w)if (fp == NULL)
printf(Cant create outputtxtn)return 1
else
for (i=0 ilt9 i++) y = b0 + b1 x[i]fprintf(fp 102fn y)
fclose(fp)
return 0
To compile this code to a MS-Windows executable one can use GCC at the DOS command promptas follows gcc dummy_modelc -o dummy_model This creates a file dummy_modelexe which can bewrapped in R as follows
dummy_model lt- executable(dummy_modelexe)
Running the rendering procedure passes values for b0 and b1 to the model which gives
render the templaterender(my_template b0 = 31 b1 = 42)
run external modeldummy_model()
read output (output file of dummy_model is outputtxt)scan(file = outputtxt quiet = TRUE)[1] 73 115 157 199 241 283 325 367 409
To perform the uncertainty propagation analysis we derive multiple realizations of the modeloutput in steps as follows (i) render the template (ii) run the model (iii) read the results and (iv)process the results For example
number of Monte Carlo runsn_realizations lt- 100
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 195
n_realizations gtpurrrrerun(
render templaterender(my_template b0 = rnorm(n = 1) b1 = runif(n = 1))
run modeldummy_model()
read outputscan(examplesoutputtxt quiet = TRUE)
) gtset_names(paste0(r 1n_realizations)) gtas_data_frame gtapply(MARGIN = 1 FUN = quantile)
[1] [2] [3] [4] [5] [6] [7] [8] [9]0 -1660 -09300 -07400 -0730 -0710 -0700 -0680 -0660 -065025 -0060 04775 08625 1203 1720 1970 2345 2607 284850 0745 12400 17200 2310 2965 3375 3910 4405 485075 1518 21425 27725 3453 4147 4832 5453 6135 6947100 2990 33800 42700 5170 6080 6990 7890 8800 9710
Summary and future directions
In this paper we presented the R package spup which implements methodologies for spatial uncer-tainty propagation analysis The package architecture and its core components were described andthree examples were presented We explained the package functions for examining the uncertaintypropagation starting from input data and model parameters via the environmental model to modelpredictions Sources of uncertainty include model specification stochastic simulation and propagationof uncertainty using MC techniques We include recommendations for visualizing results We alsoexplained how numerical and categorical data types are handled and how we accomodate spatialauto-correlation within an attribute and cross-correlation between attributes The MC realizations maybe used as an input to environmental models written in R or other programming languages that canbe called from R The presented examples and the vignettes included in the spup package provideinsight into the selection of appropriate static uncertainty visualizations that are understandable toaudiences of differing levels of statistical literacy As an effective and easy tool spup has potential tobe used for multi-disciplinary research model-based decision support and educational purposes
The package could benefit from further development including facilitating uncertainty analysiswith time series one of the most common types of data in environmental studies For uncertaintypropagation the package has implemented the MC approach with efficient sampling algorithms suchas stratified random sampling implementing Latin Hypercube sampling would complement thisapproach Further direction may include interactive visualization methods could be developed via theshiny package (Chang et al 2017) As it is based on MC methodology spup is suitable to be usedwith parallel computing
Acknowledgements
We thank Sytze de Bruin Damiano Luzzi and Stefan van Dam for valuable contributions to thedevelopment of spup We thank Filip Biljecki and Branislav Bajat for providing the data used in theRotterdam and Zlatibor examples This project has received funding from the European UnionrsquosSeventh Framework Programme for Research Technological Development and Demonstration undergrant agreement no 607000
Authors contributions
Kasia Sawicka is the main developer of spup and author of the text in this article Gerard Heuvelink isa co-author of spup he contributed to this article with his statistical and programming knowledgeand edited the text Dennis Walvoort is a co-author of spup and contributed to the development of thearticle
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 196
Bibliography
B M Adams L E Bauman W J Bohnhoff K R Dalbey M S Ebeida J P Eddy M S Eldred P DHough K T Hu J D Jakeman L P Swiler and D M Vigil Dakota a multilevel parallel object-oriented framework for design optimization parameter estimation uncertainty quantification andsensitivity analysis Version 54 userrsquos manual Report Sandia Technical Report SAND2010-2183Sandia National Laboratories 2009 [p180]
G Andrianov S Burriel S Cambier A Dutfoy I Dutka-Malen E de Rocquigny B Sudret P BenjaminR Lebrun F Mangeant and M Pendola Openturns an open source initiative to treat uncertaintiesrisksrsquon statistics in 520 a structured industrial approach In ESRELrsquo2007 Safety and ReliabilityConference 2007 [p180]
L Bastin D Cornford R Jones G B M Heuvelink E Pebesma C Stasch S Nativi P Mazzettiand M Williams Managing uncertainty in integrated environmental modelling The uncertwebframework Environmental Modelling amp Software 39116ndash134 2013 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201202008 [p180]
D P Bertsekas and J N Tsitsiklis Introduction to Probability Athena Scientific 2nd edition 2008 ISBN9781886529236 [p181]
A Blake P Kohli and C Rother Markov Random Fields for Vision and Image Processing MIT Press 2011[p183]
E W Boyer R B Alexander W J Parton C Li K Butterbach-Bahl S D Donner R W Skaggs andS J D Grosso Modeling denitrification in terrestrial and aquatic ecosystems at regional scalesEcological Applications 16(6)2123ndash2142 2006 ISSN 1939-5582 URL httpsdoiorg1018901051-0761(2006)016[2123mditaa]20co2 [p180]
J D Brown and G B M Heuvelink The data uncertainty engine (due) A software tool for assessingand simulating uncertain environmental variables Computers amp Geosciences 33(2)172ndash190 2007ISSN 0098-3004 URL httpsdoiorg101016jcageo200606015 [p180 182]
W Chang J Cheng J Allaire Y Xie and J McPherson Shiny Web Application Framework for R 2017URL httpsCRANR-projectorgpackage=shiny R package version 105 [p195]
J J de Gruijter D J Brus M F P Bierkens and M Knotters Sampling for Natural Resource MonitoringSpringer 2006 URL httpsdoiorg1010073-540-33161-1 [p182]
P J Diggle and P J Ribeiro Model-Based Geostatistics Springer-Verlag 2007 ISBN 0387485368 URLhttpsdoiorg101007978-0-387-48536-2 [p181 183]
D Eddelbuettel Cran task view High-performance and parallel computing with r 2017 [p182]
S L R Ellison Support for Metrological Applications 2017 URL httpsCRANR-projectorgpackage=metRology R package version 09-26-2 [p180]
R Fisher N McDowell D Purves P Moorcroft S Sitch P Cox C Huntingford P Meir andF Ian Woodward Assessing uncertainties in a second-generation dynamic vegetation modelcaused by ecological scale limitations New Phytologist 187(3)666ndash681 2010 ISSN 1469-8137 URLhttpsdoiorg101111j1469-8137201003340x [p180]
A Genz and F Bretz Computation of Multivariate Normal and t Probabilities Lecture Notes in StatisticsSpringer-Verlag Heidelberg 2009 ISBN 9783642016882 [p182]
A Genz F Bretz T Miwa X Mi F Leisch F Scheipl and T Hothorn mvtnorm Multivariate Normaland t Distributions 2017 URL httpsCRANR-projectorgpackage=mvtnorm R package version10-6 [p182]
P Goovaerts Geostatistics for Natural Resources Evaluation Oxford University Press New York 1997ISBN 9780195115383 [p182 183]
B Graumller E Pebesma and G Heuvelink Spatio-temporal interpolation using gstat The R Journal 8204ndash218 2016 ISSN 2073-4857 [p181]
P Hamel and A J Guswa Uncertainty analysis of a spatially explicit annual water-balance modelCase study of the cape fear basin north carolina Hydrol Earth Syst Sci 19(2)839ndash853 2015 ISSN1607-7938 URL httpsdoiorg105194hess-19-839-2015 [p180]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 197
J M Hammersley and D C Handscomb Monte Carlo Methods Chapman and Hall London 1979[p181]
T Hengl D J J Walvoort A Brown and D G Rossiter A double continuous approach to visualizationand analysis of categorical maps International Journal of Geographical Information Science 18(2)183ndash202 2004 ISSN 1365-8816 URL httpsdoiorg10108013658810310001620924 [p184]
T Hengl B Bajat D Blagojevic and H I Reuter Geostatistical modeling of topography usingauxiliary maps Computers amp Geosciences 34(12)1886ndash1899 2008 ISSN 0098-3004 URL httpsdoiorg101016jcageo200801005 [p184]
T Hengl G B M Heuvelink and E E van Loon On the uncertainty of stream networks derivedfrom elevation data The error propagation approach Hydrol Earth Syst Sci 14(7)1153ndash1165 2010ISSN 1607-7938 URL httpsdoiorg105194hess-14-1153-2010 [p180]
T Hengl J Mendes de Jesus G B M Heuvelink M Ruiperez Gonzalez M Kilibarda A BlagoticW Shangguan M N Wright X Geng B Bauer-Marschallinger M A Guevara R Vargas R AMacMillan N H Batjes J G B Leenaars E Ribeiro I Wheeler S Mantel and B KempenSoilgrids250m Global gridded soil information based on machine learning PLOS ONE 12(2)e0169748 2017 URL httpsdoiorg101371journalpone0169748 [p184 185]
G B M Heuvelink Error Propagation in Environmental Modelling with GIS Taylor and Francis London1998 [p182]
G B M Heuvelink Uncertainty in Remote Sensing and GIS book section Analysing UncertaintyPropagation in GIS Why is it not that Simple pages 155ndash165 John Wiley amp Sons 2006 ISBN9780470035269 URL httpsdoiorg1010020470035269ch10 [p182]
G B M Heuvelink Error-aware gis at work Real-world applications of the data uncertainty engineIn The International Archives of the Photogrammetry Remote Sensing and Spatial Information Sciences2007 [p181 182]
G B M Heuvelink P A Burrough and A Stein Propagation of errors in spatial modelling with gisInternational Journal of Geographical Information Systems 3(4)303ndash322 1989 ISSN 0269-3798 URLhttpsdoiorg10108002693798908941518 [p181]
G B M Heuvelink J D Brown and E E van Loon A probabilistic framework for representingand simulating uncertain environmental variables International Journal of Geographical InformationScience 21(5)497ndash513 2007 ISSN 1365-8816 URL httpsdoiorg10108013658810601063951[p181]
G C G B Hugelius Spatial upscaling using thematic maps An analysis of uncertainties in permafrostsoil carbon estimates Global Biogeochemical Cycles 26(2)nandashna 2012 ISSN 1944-9224 URLhttpsdoiorg1010292011gb004154 [p180]
R L Iman and W J Conover A distribution-free approach to inducing rank correlation amonginput variables Communications in Statistics - Simulation and Computation 11(3)311ndash334 1982 ISSN0361-0918 URL httpsdoiorg10108003610918208812265 [p182]
H I Jager A W King N H Schumaker T L Ashwood and B L Jackson Spatial uncertaintyanalysis of population models Ecological Modelling 185(1)13ndash27 2005 ISSN 0304-3800 URLhttpsdoiorg101016jecolmodel200410016 [p180]
C Kinkeldey A M MacEachren and J Schiewe How to assess visual communication of uncertaintya systematic review of geospatial uncertainty visualisation user studies The Cartographic Journal51(4)372ndash386 2014 ISSN 0008-7041 URL httpsdoiorg1011791743277414y0000000099[p184]
A M Lechner C M Raymond V M Adams M Polyakov A Gordon J R Rhodes M MillsA Stein C D Ives and E C Lefroy Characterizing spatial uncertainty when integrating socialdata in conservation planning Conserv Biol 28(6)1497ndash511 2014 ISSN 0888-8892 URL httpsdoiorg101111cobi12409 [p180]
P A W Lewis and E J Orav Simulation Methodology for Statisticians Operations Analysts and Engineersvolume 1 Wadsworth amp BrooksCole 1989 ISBN 9780534094508 [p181]
E Leyva-Suarez G S Herrera and L M de la Cruz A parallel computing strategy for monte carlosimulation using groundwater models Geofiacutesica Internacional 54(3)245ndash254 2015 ISSN 0016-7169URL httpsdoiorg101016jgi201504020 [p182]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 198
A M MacEachren Visualizing uncertain information Cartographic Perspective 1310ndash19 1992 [p184]
A M MacEachren A Robinson S Hopper S Gardner R Murray M Gahegan and E Het-zler Visualizing geospatial information uncertainty What we know and what we need toknow Cartography and Geographic Information Science 32(3)139ndash160 2005 ISSN 1523-0406 URLhttpsdoiorg1015591523040054738936 [p184]
S Marelli and B Sudret Vulnerability Uncertainty and Risk book section UQLab A Framework forUncertainty Quantification in Matlab pages 2554ndash2563 American Society of Civil Engineers 2014ISBN 978-0-7844-1360-9 URL httpsdoiorg1010619780784413609257 [p180]
M Muthusamy A Schellart S Tait and G B M Heuvelink Geostatistical upscaling of rain gaugedata to support uncertainty analysis of lumped urban hydrological models Hydrol Earth Syst SciDiscuss 20161ndash27 2016 ISSN 1812-2116 URL httpsdoiorg105194hess-2016-279 [p180]
C O Nijhof M A Huijbregts L Golsteijn and R van Zelm Spatial variability versus parameteruncertainty in freshwater fate and exposure factors of chemicals Chemosphere 149101ndash7 2016 ISSN0045-6535 URL httpsdoiorg101016jchemosphere201601079 [p180]
L Nol G B M Heuvelink A Veldkamp W de Vries and J Kros Uncertainty propagation analysisof an n2o emission model at the plot and landscape scale Geoderma 159(1ndash2)9ndash23 2010 ISSN0016-7061 URL httpsdoiorg101016jgeoderma201006009 [p180]
E J Pebesma Multivariable geostatistics in s The gstat package Computers amp Geosciences 30(7)683ndash691 2004 ISSN 0098-3004 URL httpsdoiorg101016jcageo200403012 [p181 182]
E J Pebesma and G B M Heuvelink Latin hypercube sampling of gaussian random fields Techno-metrics 41(4)303ndash312 1999 ISSN 00401706 URL httpsdoiorg1023071271347 [p182]
D Pennock T Yates A Bedard-Haughn K Phipps R Farrell and R McDougal Landscape controlson n2o and ch4 emissions from freshwater mineral soil wetlands of the canadian prairie potholeregion Geoderma 155(3ndash4)308ndash319 2010 ISSN 0016-7061 URL httpsdoiorg101016jgeoderma200912015 [p180]
F Pianosi F Sarrazin and T Wagener A matlab toolbox for global sensitivity analysis EnvironmentalModelling amp Software 7080ndash85 2015 ISSN 1364-8152 URL httpsdoiorg101016jenvsoft201504009 [p180]
R E Plant Spatial Data Analysis in Ecology and Agriculture Using R CRC Press 2012 ISBN 1439819130[p181]
A Saltelli S Tarantola and F Campolongo Sensitivity anaysis as an ingredient of modeling StatisticalScience pages 377ndash395 2000 ISSN 0883-4237 URL httpsdoiorg101214ss1009213004[p182]
K Sawicka G B M Heuvelink and D J J Walvoort Spup Uncertainty Propagation Analysis 2017 Rpackage version 01-1 [p180 185]
G I Schueller and H J Pradlwarter Computational stochastic structural analysis (cossan) mdash asoftware tool Structural Safety 28(1ndash2)68ndash82 2006 ISSN 0167-4730 URL httpsdoiorg101016jstrusafe200503005 [p180]
A-N Spiess Propagate Propagation of Uncertainty 2014 URL httpsCRANR-projectorgpackage=propagate R package version 10-4 [p180]
I Ucar Errors Error Propagation for R Vectors 2017 URL httpsCRANR-projectorgpackage=errors R package version 002 [p180]
M Van Oijen J Rougier and R Smith Bayesian calibration of process-based forest models Bridgingthe gap between models and data Tree Physiology 25(7)915ndash927 2005 ISSN 0829-318X URLhttpsdoiorg101093treephys257915 [p181]
E I Vanguelova E Bonifacio B De Vos M R Hoosbeek T W Berger L Vesterdal K ArmolaitisL Celi L Dinca O J Kjoslashnaas P Pavlenda J Pumpanen U Puumlttsepp B Reidy P Simoncic B Tobinand M Zhiyanski Sources of errors and uncertainties in the assessment of forest soil carbon stocksat different scalesmdashreview and recommendations Environmental Monitoring and Assessment 188(11)630 2016 ISSN 1573-2959 URL httpsdoiorg101007s10661-016-5608-5 [p180]
H Wackernagel Multivariate Geostatistics An Introduction with Applications Springer 2003 [p186]
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859
CONTRIBUTED RESEARCH ARTICLES 199
R Webster and M A Oliver Geostatistics for Environmental Scientists John Wiley amp Sons 2nd edition2007 [p181 187]
X Yu A Lamacova C Duffy P Kram and J Hruska Hydrological model uncertainty due to spatialevapotranspiration estimation methods Computers amp Geosciences 90 Part B90ndash101 2016 ISSN0098-3004 URL httpsdoiorg101016jcageo201505006 [p180]
Kasia SawickaCentre for Ecology amp HydrologyDeiniol RoadBangorLL57 2UWUnited Kingdom(Previously at Soil Geography and Landscape GroupWageningen UniversityPO Box 476700AA WageningenThe Netherlands)ORCiD 0000-0002-7553-3149katwic55cehacuk
Gerard BM HeuvelinkSoil Geography and Landscape groupWageningen UniversityPO Box 476700AA WageningenThe NetherlandsORCiD 0000-0003-0959-9358gerardheuvelinkwurml
Dennis JJ WalvoortWageningen Environmental ResearchPO Box 476700AA WageningenThe Netherlandsdenniswalvoortwurnl
The R Journal Vol 102 December 2018 ISSN 2073-4859