[R-sig-Geo] spplot of SpatialGridDateFrame (sparsely populated with data) fails

rolandh at uni-muenster.de rolandh at uni-muenster.de
Thu Mar 27 12:59:34 CET 2014


Hello R-users!

I want to plot SpatialGridDataFrames with spplot() and I get some strange /
unexpected / irregular results in some special cases:

For testing and illustration issues I have created 4 SpatialGridDataFrames by
aggregation from the same SpatialPointDataFrame (attribute)  (which is
populated with a lot of NA values). When I check the data, I see that there is
just one grid cell that is populated with data in the SpatialGridDataFrames.

If I try to plot these four SpatialGridDataFrames with spplot(), just one of
the spplots finishes successfully.
The others throw an error...


Overview of the creation of the SpatialGridDataFrames and the errors /
returns:

a) spGridDF_builtByMeanAsAggFct
Packages used: raster, sp.
I built a raster layer and aggregated the data by using the method rasterize()
and the aggregation function "mean".
Then I used as(... , "SpatialGridDataFrame"). When I try to plot with spplot()
I get:
Error in validObject(.Object) :
  invalid class “SpatialPoints” object: invalid object for slot "coords" in
  class "SpatialPoints": got class "numeric", should be or extend class
  "matrix"
I get the same error when I use "median" or "sd" as aggregation function.

b) spGridDF_builtByMinAsAggFct
Here I did the same as above (!) but I just used "min" (!) as aggregation
function and spplot() finishes successfully! The plot contains one grid cell.
That is fine and it is what I expected. I also get a plot when I use "max" as
aggregation function.
I do not understand the relationship of the selected aggregation function and
the spplot result (error, success).

c) spGridDF_builtByPkgSP_minAsAggFct
Packages used: sp
After the creation of the grid I aggregated the data using the method
aggregate() with "min" as aggregation function.
When I try to plot with spplot() I get:
Error in seq.default(zrng[1], zrng[2], length.out = cuts + 2) :
  'from' cannot be NA, NaN or infinite
Zusätzlich: Warnmeldungen: (warnings)
1: In asMethod(object) :
  complete map seems to be NA's -- no selection was made
2: In min(x) : kein nicht-fehlendes Argument für min; gebe Inf zurück
3: In max(x) : kein nicht-fehlendes Argument für max; gebe -Inf zurück

d) spGridDF_builtByPkgSP_withoutNA_minAsAggFct
In this case I did the same as above [case c)], but I removed the NA values in
the SpatialPointDataFrame with subset(spdf_wgs,
complete.cases(spdf_wgs[[attribute]])) before I used the aggregate() method.
When I try to plot with spplot() I get (again):
Error in validObject(.Object) :
  invalid class “SpatialPoints” object: invalid object for slot "coords" in
  class "SpatialPoints": got class "numeric", should be or extend class
  "matrix"


If you want to check the data, you may get an .RData file containing the 4
SpatialGridDataFrames and the SpatialPointDataFrame on:
https://github.com/LarsGH/Geosoftware2GroupC/tree/master/R/spplot_problem.RData


What may be the problem causing spplot to fail?

And, even more important, how may I avoid that problem?


I would be very happy if someone could please help me.

Thank you very much in advance!

Greetings!

Roland


###
>sessionInfo()

R version 3.0.3 (2014-03-06)
Platform: i686-pc-linux-gnu (32-bit)

locale:
 [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C               LC_TIME=de_DE.UTF-8
 LC_COLLATE=de_DE.UTF-8
 [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8
 LC_PAPER=de_DE.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
 LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
 [1] colorRamps_2.3      plyr_1.8            Cairo_1.5-5
 latticeExtra_0.6-26 RColorBrewer_1.0-5
 [6] ggmap_2.3           ggplot2_0.9.3.1     raster_2.2-12
 lattice_0.20-27     RCurl_1.95-4.1
[11] bitops_1.0-6        maptools_0.8-27     rgdal_0.8-14        sp_1.0-14
futile.logger_1.3.7
[16] rjson_0.2.13

loaded via a namespace (and not attached):
 [1] colorspace_1.2-4     dichromat_2.0-0      digest_0.6.4
 foreign_0.8-59       futile.options_1.0.0
 [6] grid_3.0.3           gtable_0.1.2         labeling_0.2
 lambda.r_1.1.6       mapproj_1.2-2
[11] maps_2.3-6           MASS_7.3-30          munsell_0.4.2        png_0.1-7
proto_0.3-10
[16] reshape2_1.2.2       RgoogleMaps_1.2.0.5  RJSONIO_1.0-3
scales_0.2.3         stringr_0.6.2
[21] tools_3.0.3
###

###
>library(help=sp)

                Information on package ‘sp’

Description:

Package:            sp
Version:            1.0-14
Date:               2013-10-15
Title:              classes and methods for spatial data
Authors at R:          c(person("Edzer", "Pebesma", role = c("aut", "cre"), email
=
                    "edzer.pebesma at uni-muenster.de"), person("Roger",
                    "Bivand", role = "aut", email =
                    "Roger.Bivand at nhh.no"), person("Barry", "Rowlingson", role
                    = "ctb"),
                    person("Virgilio", "Gomez-Rubio", role = "ctb"))
Depends:            R (>= 2.14.0)
Imports:            methods, graphics, utils, lattice, grid
Suggests:           RColorBrewer, rgdal (>= 0.8-7), rgeos (>= 0.2-20), gstat
Description:        A package that provides classes and methods for spatial
data. The classes
                    document where the spatial location information resides,
                    for 2D or 3D data.
                    Utility functions are provided, e.g. for plotting data as
                    maps, spatial
                    selection, as well as methods for retrieving coordinates,
                    for subsetting, print,
                    summary, etc.
License:            GPL (>= 2)
URL:                https://r-forge.r-project.org/projects/rspatial/
                    http://rspatial.r-forge.r-project.org/
Collate:            AAA.R Class-CRS.R CRS-methods.R Class-Spatial.R
Spatial-methods.R projected.R
                    Class-SpatialPoints.R SpatialPoints-methods.R
                    Class-SpatialPointsDataFrame.R
                    SpatialPointsDataFrame-methods.R Class-GridTopology.R
                    Class-SpatialGrid.R
                    Class-SpatialGridDataFrame.R Class-SpatialLines.R
                    SpatialLines-methods.R
                    Class-SpatialLinesDataFrame.R
                    SpatialLinesDataFrame-methods.R
                    Class-SpatialPolygons.R Class-SpatialPolygonsDataFrame.R
                    SpatialPolygons-methods.R
                    SpatialPolygonsDataFrame-methods.R
                    GridTopology-methods.R SpatialGrid-methods.R
                    SpatialGridDataFrame-methods.R
                    SpatialPolygons-internals.R point.in.polygon.R
                    SpatialPolygons-displayMethods.R
                    zerodist.R image.R stack.R bpy.colors.R bubble.R mapasp.R
                    select.spatial.R
                    gridded.R asciigrid.R spplot.R over.R overlay.R spsample.R
                    recenter.R dms.R
                    gridlines.R spdists.R rbind.R flipSGDF.R chfids.R
                    loadmeuse.R compassRose.R
                    surfaceArea.R spOptions.R subset.R disaggregate.R
                    sp_spat1.R merge.R
Packaged:           2013-10-23 11:03:37 UTC; edzer
Author:             Edzer Pebesma [aut, cre], Roger Bivand [aut], Barry
Rowlingson [ctb], Virgilio
                    Gomez-Rubio [ctb]
Maintainer:         Edzer Pebesma <edzer.pebesma at uni-muenster.de>
NeedsCompilation:   yes
Repository:         CRAN
Date/Publication:   2013-10-24 09:38:03
Built:              R 3.0.2; i686-pc-linux-gnu; 2013-12-11 13:36:45 UTC; unix
###



More information about the R-sig-Geo mailing list