sp en S4

Georuimtelijke data visualiseren in R

Charlotte Wickham

Assistant Professor at Oregon State University

Twee types sp-object

summary(countries_sp)
Object van klasse SpatialPolygons
Coördinaten:
   min       max
x -180 180.00000
y  -90  83.64513
Geprojecteerd: FALSE 
proj4string :
[+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 
  +towgs84=0,0,0]
summary(countries_spdf)
Object van klasse SpatialPolygonsDataFrame
Coördinaten:
   min       max
x -180 180.00000
y  -90  83.64513
Geprojecteerd: FALSE 
proj4string :
[+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 
  +towgs84=0,0,0]
Data-attributen:
     name              iso_a3          
 Length:177         Length:177         
 Class :character   Class :character   
 Mode  :character   Mode  :character
Georuimtelijke data visualiseren in R

SpatialPolygons-object

str(countries_sp, max.level = 2)
Formele klasse 'SpatialPolygons' [package "sp"] met 4 slots
  ..@ polygons   :Lijst van 177
  .. .. [list output truncated]
  ..@ plotOrder  : int [1:177] 7 136 28 169 31 23 9 66 84 5 ...
  ..@ bbox       : num [1:2, 1:2] -180 -90 180 83.6
  .. ..- attr(*, "dimnames")=Lijst van 2
  ..@ proj4string:Formele klasse 'CRS' [package "sp"] met 1 slot
Georuimtelijke data visualiseren in R

SpatialPolygonsDataFrame-object

str(countries_spdf, max.level = 2)
Formele klasse 'SpatialPolygonsDataFrame' [package "sp"] met 5 slots
  ..@ data       :'data.frame':    177 obs. van 6 variabelen:
  ..@ polygons   :Lijst van 177
  .. .. [list output truncated]
  ..@ plotOrder  : int [1:177] 7 136 28 169 31 23 9 66 84 5 ...
  ..@ bbox       : num [1:2, 1:2] -180 -90 180 83.6
  .. ..- attr(*, "dimnames")=Lijst van 2
  ..@ proj4string:Formele klasse 'CRS' [package "sp"] met 1 slot
Georuimtelijke data visualiseren in R

S4

  • Een van R's objectgeoriënteerde (OO) systemen
  • Kern-OO-concepten
    • Class: definieert een objecttype, zijn attributen en relaties met andere classes
    • Methods: functies; gedrag hangt af van de class van de input
  • S4-objecten kunnen recursief zijn; elementen heten slots
  • http://adv-r.had.co.nz/OO-essentials.html#s4
Georuimtelijke data visualiseren in R

Slots benaderen

# 1. Gebruik een specifieke methode
proj4string(countries_sp)
"+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
# 2. Gebruik @ gevolgd door ongenaaimde slotnaam
countries_sp@proj4string
CRS arguments: +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
# 3. Gebruik slot() met gequote slotnaam
slot(countries_sp, "proj4string")
CRS arguments: +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
Georuimtelijke data visualiseren in R

Laten we oefenen!

Georuimtelijke data visualiseren in R

Preparing Video For Download...