[STATSGRASS] gioo78@libero.it

george gioo78 at libero.it
Wed Aug 2 06:14:47 EDT 2006


Hello all!
I have this problem with local kriging in Grass6.0 interface R:

Display my region in location XY
projection: 0 (x,y)
zone:       0
north:      1032
south:      687
west:       248.22524977
east:       395.35876476
nsres:      1
ewres:      1.00090827
rows:       345
cols:       147


GRASS 6.0.0 (XY):~ > R
> library(spgrass6)
Loading required package: sp
Loading required package: maptools
Loading required package: foreign
Loading required package: rgdal
Loading required package: abind
Loading required package: pixmap
Geospatial Data Abstraction Library extensions to R successfully loaded
> library(gstat)
# import my set data x|y|z 
> impvett<-read.table(file="/home/giorgio/Desktop/s50_p2_ba_bb.txt",
sep="|")
> str(impvett)
`data.frame':   1605 obs. of  3 variables:
 $ V1: num  249 251 253 255 257 ...
 $ V2: num  1032 1032 1032 1032 1032 ...
 $ V3: num  -0.117 -0.230  0.897  2.252  2.912 ...
> coordinate<-data.frame(impvett$V1,impvett$V2)
>  data<-data.frame(impvett$V3)
>  rilievo<-SpatialPointsDataFrame(coordinate,data,proj4string =
CRS(as.character(NA)),match.ID = TRUE)
> str(rilievo)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
  ..@ data       :Formal class 'AttributeList' [package "sp"] with 1
slots
  .. .. ..@ att:List of 1
  .. .. .. ..$ impvett.V3: num [1:1605] -0.117 -0.230  0.897  2.252
2.912 ...
  ..@ coords.nrs : num(0)
  ..@ coords     : num [1:1605, 1:2] 249 251 253 255 257 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : NULL
  .. .. ..$ : chr [1:2] "impvett.V1" "impvett.V2"
  ..@ bbox       : num [1:2, 1:2]  249  687  395 1032
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:2] "impvett.V1" "impvett.V2"
  .. .. ..$ : chr [1:2] "min" "max"
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
  .. .. ..@ projargs: chr NA

#import region setting and create grid
> G<-gmeta6()
> grd <- GridTopology(cellcentre.offset=c(G$west+(G$ewres/2)
+                         ,G$south+(G$nsres/2))
+                        ,cellsize=c(G$ewres, G$nsres)
+                      ,cells.dim=c(G$cols, G$rows))
> mask_SG <- SpatialGridDataFrame(grd
+                                   ,data=list(k=rep(1,G$cols*G$rows)))
> str(mask_SG)
Formal class 'SpatialGridDataFrame' [package "sp"] with 6 slots
  ..@ data       :Formal class 'AttributeList' [package "sp"] with 1
slots
  .. .. ..@ att:List of 1
  .. .. .. ..$ k: num [1:50715] 1 1 1 1 1 1 1 1 1 1 ...
  ..@ grid       :Formal class 'GridTopology' [package "sp"] with 3
slots
  .. .. ..@ cellcentre.offset: num [1:2] 249 688
  .. .. ..@ cellsize         : num [1:2] 1 1
  .. .. ..@ cells.dim        : int [1:2] 147 345
  ..@ grid.index : int(0)
  ..@ coords     : num [1:2, 1:2]  249  395  688 1032
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : NULL
  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
  ..@ bbox       : num [1:2, 1:2]  248  687  395 1032
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
  .. .. ..$ : chr [1:2] "min" "max"
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
  .. .. ..@ projargs: chr NA

# variogram
> cvgm<- variogram(impvett.V3~1,location=rilievo,cutoff=300,width=1)
> efitted <-
fit.variogram(cvgm,vgm(29.5,model="Exp",range=12,nugget=0,add.to=vgm(0.7,"Per",118,0)))
Warning: singular model in variogram fit

#ordinary kriging all data 
>  kr<-krige(impvett$V3~1,location=rilievo, newdata=mask_SG
model=efitted)
[using ordinary kriging]
> # ok!!!!

# !!!!!!!!!!!!!!!!ORDINARY LOCAL KRIGING!!!!!!!!!!!!!!!!!!!!

#case A) 
> kr<-krige(impvett$V3~1,location=rilievo, newdata=mask_SG,
model=efitted,maxdist=50)
[using ordinary kriging]

"chfactor.c", line 130: singular matrix in function LDLfactor()

gstat caught an error that occurred in the matrix library,
the reason for it was: singular matrix

HINT: Read the manual at http://www.gstat.org/ ;
look for: Trouble shooting -> Error messages -> From meschach

Error in predict.gstat(g, newdata = newdata, block = block, nsim =
nsim,  :
        matrix library error: gstat: matrix library error: singular
matrix

#case B)
> kr<-krige(impvett$V3~1,location=rilievo, newdata=mask_SG,
model=efitted,maxdist=300)
[using ordinary kriging]

"chfactor.c", line 130: singular matrix in function LDLfactor()

gstat caught an error that occurred in the matrix library,
the reason for it was: singular matrix

HINT: Read the manual at http://www.gstat.org/ ;
look for: Trouble shooting -> Error messages -> From meschach

Error in predict.gstat(g, newdata = newdata, block = block, nsim =
nsim,  :
        matrix library error: gstat: matrix library error: singular
matrix

#case C)
> kr<-krige(impvett$V3~1,location=rilievo, newdata=mask_SG,
model=efitted,nmax=50) 
[using ordinary kriging]

"chfactor.c", line 130: singular matrix in function LDLfactor()

gstat caught an error that occurred in the matrix library,
the reason for it was: singular matrix

HINT: Read the manual at http://www.gstat.org/ ;
look for: Trouble shooting -> Error messages -> From meschach

Error in predict.gstat(g, newdata = newdata, block = block, nsim =
nsim,  :
        matrix library error: gstat: matrix library error: singular
matrix


Where is the problem? 
I have followed examples on package gstat: with data meuse function
krige() work correctly!

Thanks 
George










More information about the grass-stats mailing list