There are two forms of sp objects for grids, SpatialPixelsDataFrame and SpatialGridDataFrame, and you need the former to avoid NAs. I am not sure how to proceed without access to a copz of zour data to see whz spsample is including the NA cells.
 
Roger
 
--- Roger Bivand, NHH, Helleveien 30, N-5045 Bergen, Roger.Bivand@nhh.no

________________________________

Od: Agustin Lobo w imieniu Agustin Lobo
Wysłano: Cz 21.06.2007 09:41
Do: Roger Bivand
DW: R-sig-Geo@stat.math.ethz.ch
Temat: Re: ODP: [R-sig-Geo] spsample and NA



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@data$soil)
[1] NA  1  2  3

 > table(x@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@nhh.no
>
> ________________________________
>
> Od: r-sig-geo-bounces@stat.math.ethz.ch w imieniu Agustin Lobo
> Wysłano: Śr 20.06.2007 10:11
> Do: R-sig-Geo@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@data[ESTRAT3OBAC@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@ija.csic.es
> http://www.ija.csic.es/gt/obster
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo@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@ija.csic.es
http://www.ija.csic.es/gt/obster



	[[alternative HTML version deleted]]


