Strange output on PM10 gstat spatiotemporal kriging

94 Views Asked by At

first post here :) Really simple questions in bold. I want to do kriging using PM10 daily data for 8 static stations in Santiago, Chile, from 1997-2012, into 34 centroids which map different counties. I explain what I've done so far with some questions in between. I'm using just 2008 (less missing values) data as first experiment.

DESCRIPTION:

DATA: I have a column with days from 1997 to 2012 and 8 columns with PM10 station data. I imported to R this data, and established time: time <-as.POSIXlt(data$date) with no error:

" 1997-04-05 UTC 1997-04-12 UTC.... 2012-12-27 UTC"

I imported stations with it's coordinates and built its projections.

coordinates(stations)=~longitud+latitud
proj4string(stations) <- CRS("+proj=longlat + ellps=WGS84")

In order to create the STFDF, I first built the vector PM10 of data with 8 stations, ordered:

PM10<-as.vector(cbind(data $PM10bosque,data $PM10cerrillos,data $PM10cerronavia,data $PM10condes,data $PM10florida,data $PM10independencia,data $PM10parqueoh,data $PM10pudahuel))
PM10<-data.frame(PM10)
DFPM=STFDF(stations, time, PM10)
DFPM<-as(DFPM,"STSDF") 

, the last line because I am working with missing data. Then the estimated variogram and its modelling (which I know it's poor) was done with:

varPM10 <- variogramST(PM10~1,data=DFPM,tunit="days",assumeRegular=F,na.omit=T)
sepVgm <- vgmST("separable",space=vgm(0,"Exp", 8, 700),time =vgm(200,"Exp", 15, 700), sill=100)
sepVgm <- fit.StVariogram(varPM10, sepVgm)

Which results in: Variograms

Then I used KrigeST this way:

gridPM10 <-STF(centroids,time) (centroids defined previously the same way as stations)
krigedPM10<-krigeST(PM10~1, DFPM, newdata=gridPM10,modelList=sepVgm)

The result of ploting one station data and kriged data for that station county's centroid is:

Kriging result for Cerillos county and its station data

which seems as if the estimation ocurrs for time windows by a set of dates. First question: Does anybody know why this kriging has this shape?

Then I wondered what would happen if I just used distance as predictor so I coded instead:

varPM10 <- variogramST(PM10~1,data=DFPM,tunit="days", tlags=0:0, assumeRegular=F,na.omit=T)

Second question: Is this a reasonable way to try just distnace as predictor? If not, any advise about how to adjust my code do I can do this is very appretiated. Anyway, this is the result:

Variogram with tlag=0:0

using sepVgm <- vgmST("separable",space=vgm(1,"Per", 8, 700),time =vgm(200,"Exp", 15, 700), sill=100)

By the way, how would you guys fit this?

, then the output really surprised me: Kriging result with tlags=0:0

Third question: Why I am getting this result? I know the variogram modelling is poor, but even if that's true I understand the program should use the station data of the corresponding date so at least it should change in time.

0

There are 0 best solutions below