Dear Dan,
the error occurs because your prior.stvgm is far from the structure of
your data. The following model provides better starting values:
prior.stvgm=vgmST(stModel="sumMetric",
space=vgm(0.1,"Exp",0.5,0.3),
time=vgm(0.1,"Exp",0.5,0.3),
joint=vgm(0.1,"Exp",0.5,0.3),
stAni=1)
To get a first "estimate", it is always useful to look at a plot of the
sample variogram (as in the spatial case):
plot(sample.stvgm, wireframe=T, scales=list(arrows=F))
From the plot, one can read spatial and temporal ranges, the magnitude
of variability and the ratios of nuggets and sills. Sometimes, one is
better of by starting with a simpler model (e.g. "pure" metric), as the
routines are more robust for less parameters, to get a first impression
of the range of parameters. Furthermore, the plot suggests that a much
smaller spatial upper boundary is sufficient, as the variogram surface
is mainly flat in the spatial dimension.
Spatio-temporal geostatistics remains tricky in terms of numerical
routines and model interpretation, we try to give some guidance
regarding gstat's functionalities in [1].
HTH,
Ben
[1] https://journal.r-project.org/archive/accepted/na-pebesma-heuvelink.pdf
On 21.06.2016 17:16, Dan Turenne wrote:
Hello again,
After some tinkering with my code last night I got the sample variogram to work
however now I have encountered another issue. When attempting to use the
fit.stVariogram function to fit the sample variogram I receive this error:
Error in optim(extractPar(model), fitFun, ..., method = method, lower = lower,
:
non-finite value supplied by optim
even if I specify the upper and lower arguments to be finite. Could this error
be cause by the initial values that I set for the space, time and joint
variograms? If so can anyone recommend a good paper/article about how to fit
these three variograms? I have attached a link to my script and data below, if
anyone has any insight as to why I am getting this error it would be
appreciated. I tried to be as thorough as I could in my code commenting,
please let me know if anything is unclear.
https://www.dropbox.com/sh/7ccy5wu68gxf6sf/AACmk0AFxQvetunq4YPc9DXla?dl=0
________________________________
From: R-sig-Geo <r-sig-geo-boun...@r-project.org> on behalf of Edzer Pebesma
<edzer.pebe...@uni-muenster.de>
Sent: June 21, 2016 1:52 AM
To: r-sig-geo@r-project.org
Subject: Re: [R-sig-Geo] Spatio Temporal kriging in Gstat
This might be due to a bug (or feature) in the software caused by the
sparseness in your data, which might be different from that used to test
the software. Please make the data available (off-list), along with an R
script, so we can try to reproduce the error message and look into it.
On 21/06/16 04:11, Dan Turenne wrote:
My apologies, I accidentally sent an unfinished email, here is the complete
version of my question
Hello R-Sig-Geo,
As part of my masters thesis I am attempting to use spatio-temporal regression
kriging to make predictions with temperature data, and I was hoping that
someone might be able to give some insight as to how the algorithms work in
gstat. My data consists of daily temperature observations from April 1 to July
31, 2000. There are observations from 164 stations across these 122 days,
however not all stations have observations on all days, making for a total of
19282 records.
I have tried to use an STSDF object but I have not had any success. I created
an sp object of length 164 with the station locations:
sp = data.frame(long = stations$long, lat = stations$lat)
coordinates(sp) = ~ long+lat
Then I created a vector of length 122 with the times the observations were
recorded and a data vector of length 19282:
beginDate = as.Date(2000/04/01)
endDate = as.Date(2000/07/31)
times = as.POSIXct(seq(beginDate,endDate,by="days"))
data=data.frame(temps$residual)
And I also made an index detailing where observations are available, it looks
like this with the first column representing spatial index and the second
representing the time index
1 1
2 1
3 1
4 1
st=STSDF(sp,time,data,index,endTime=delta(time))
however when I try to calculate the sample variogram I get the following error:
sample.stVariogram=variogramST(residual~1,data=st, tunit="days", tlags=1:7,
progress=TRUE)
Error in apply(do.call(cbind, lapply(ret, function(x) x$np)), 1, sum, :
dim(X) must have a positive length
In addition: There were 50 or more warnings (use warnings() to see the first
50)
All 50 of the errors are :
In is.na(data[[as.character(as.list(formula)[[2]])]]) :
is.na() applied to non-(list or vector) of type 'NULL'
Can anyone see what I am doing wrong or give me any pointers? This error is
rather cryptic and I'm not quite sure what I'm doing wrong. Any help would be
appreciated.
Many Thanks,
Daniel Turenne
University of Manitoba
[[alternative HTML version deleted]]
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
R-sig-Geo - R Special Interest Group on using Geographical
...<https://stat.ethz.ch/mailman/listinfo/r-sig-geo>
stat.ethz.ch
R-sig-Geo -- R Special Interest Group on using Geographical data and Mapping
About R-sig-Geo
--
Edzer Pebesma
Institute for Geoinformatics (ifgi), University of M�nster
Heisenbergstra�e 2, 48149 M�nster, Germany; +49 251 83 33081
Journal of Statistical Software: http://www.jstatsoft.org/
Computers & Geosciences: http://elsevier.com/locate/cageo/
Spatial Statistics Society http://www.spatialstatistics.info
[[alternative HTML version deleted]]
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
--
Dr. Benedikt Gräler
Institute of Hydrology
Ruhr University Bochum
Universitätsstraße 150
44801 Bochum
ben.graeler.org
+49 (0234) 32 - 27619
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo