[R-sig-Geo] ODP: spsample and NA
Agustin Lobo
Agustin.Lobo at ija.csic.es
Thu Jun 21 09:41:24 CEST 2007
The test with meuse.grid works:
#copied from file:SpatialGridDataFrame-class.html
coordinates(meuse.grid) = c("x", "y") # promote toSpatialPointsDataFrame
gridded(meuse.grid) <- TRUE # promote to SpatialPixelsDataFrame
x = as(meuse.grid, "SpatialGridDataFrame") # creates the full grid
#Now me:
> unique(x at data$soil)
[1] NA 1 2 3
> table(x at data$soil)
1 2 3
1665 1084 354
test.stsamp <- spsample(x, n = 10, "stratified")
o <- overlay(x, test.stsamp)
> o
coordinates part.a part.b dist soil ffreq
5556 (179156, 330917) 0 1 0.1030270 1 1
6670 (180039, 330336) 0 1 0.0703333 1 2
2240 (180677, 332606) 1 0 0.0975136 1 1
But don't know how to make that my raster behave in the same way. What
does it mean "cast to SpatialPixels first"? I thought that as
X comes from an imported raster it was an sp object already.
Also, there are several components in the x coming from meuse.grid:
str(x)
Formal class 'SpatialGridDataFrame' [package "sp"] with 6 slots
..@ data :'data.frame': 8112 obs. of 5 variables:
.. ..$ part.a: num [1:8112] NA NA NA NA NA NA NA NA NA NA ...
.. ..$ part.b: num [1:8112] NA NA NA NA NA NA NA NA NA NA ...
.. ..$ dist : num [1:8112] NA NA NA NA NA NA NA NA NA NA ...
.. ..$ soil : num [1:8112] NA NA NA NA NA NA NA NA NA NA ...
.. ..$ ffreq : Factor w/ 3 levels "1","2","3": NA NA NA NA NA NA NA
NA NA NA ...
how does spsample know which layer has to be used for the stratification?
Thanks!
Agus
Roger Bivand escribió:
> I think that if you cast to SpatialPixels first, the problem will go away, because the all-NA cases are dropped with their coordinates. Could you try the same example with meuse.grid and see how it goes?
>
> Roger
>
> ---
> Roger Bivand, NHH, Helleveien 30, N-5045 Bergen, Roger.Bivand at nhh.no
>
> ________________________________
>
> Od: r-sig-geo-bounces at stat.math.ethz.ch w imieniu Agustin Lobo
> Wysłano: Śr 20.06.2007 10:11
> Do: R-sig-Geo at stat.math.ethz.ch
> Temat: [R-sig-Geo] spsample and NA
>
>
>
> It is often the case, at least with raster (grid) objects,
> that you are not interested on a part of the raster.
> For example because it's outside a non.rectangular region of study
> and/or because some types of terrain (some classes) are outside
> the scope of the study. In any case, those parts can be
> represented by NA.
>
> Unfortunately, while some functions like table() would not
> include the NA in the statistics, spsample includes
> the NA as just another class, which implies that a fraction
> of the resulting coordinates will lay on the NA
> part of the raster. This makes it difficult, to get N valid (i.e., not
> on NA parts) points using spsample. Is there any way around this?
> For example, if I want 10 points on non-NA cells of
> raster X, I would like
>
> spsample(X, 10, "stratified")
>
> to provide 10 positions on non-NA cells.
>
> At the moment, I get:
>
> x <- GDAL.open("C:/ALOBO/dipu2006/STLL_VEG2006/ESTRAT3_OBAC.tif")
> ESTRAT3OBAC <- asSGDF_GROD(x, output.dim=c(100,100))
> GDAL.close(x)
>
> ESTRAT3OBAC at data[ESTRAT3OBAC at data==55537]<- NA
>
> X <- ESTRAT3OBAC
> X$cut <- as.ordered(cut(X$band1, c(0,10,100),include.lowest=TRUE))
> table(X$cut)
>
> [0,10] (10,100]
> 83 1961
>
> summary(X$cut)
> [0,10] (10,100] NA's
> 83 1961 7956
> table(X$cut)
>
> [0,10] (10,100]
> 83 1961
>
> Xspsample <- spsample(X,10,"stratified")
> Xo <- overlay(X,Xspsample)
> summary(Xo)
> Object of class SpatialPointsDataFrame
> Coordinates:
> min max
> x1 410995.6 414954.4
> x2 4608002.1 4610566.0
> Is projected: TRUE
> proj4string : [ +proj=utm +zone=31 +ellps=intl +units=m +no_defs]
> Number of points: 9
> Data attributes:
> band1 cut
> Min. : 67 [0,10] :0
> 1st Qu.: 97 (10,100]:3
> Median : 159 NA's :6
> Mean :24745
> 3rd Qu.:55537
> Max. :55537
>
> That is, I get 6 positions on NA values of X
>
> Thanks!
>
> Agus
>
> --
> Dr. Agustin Lobo
> Institut de Ciencies de la Terra "Jaume Almera" (CSIC)
> LLuis Sole Sabaris s/n
> 08028 Barcelona
> Spain
> Tel. 34 934095410
> Fax. 34 934110012
> email: Agustin.Lobo at ija.csic.es
> http://www.ija.csic.es/gt/obster
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
>
>
--
Dr. Agustin Lobo
Institut de Ciencies de la Terra "Jaume Almera" (CSIC)
LLuis Sole Sabaris s/n
08028 Barcelona
Spain
Tel. 34 934095410
Fax. 34 934110012
email: Agustin.Lobo at ija.csic.es
http://www.ija.csic.es/gt/obster
More information about the R-sig-Geo
mailing list