Dodawanie danych do obiektów przestrzennych

Wizualizacja danych geoprzestrzennych w R

Charlotte Wickham

Assistant Professor at Oregon State University

Dane o dochodach z ACS

str(nyc_income)
'data.frame':    288 obs. of  6 variables:
 $ name    : chr  "Census Tract 1, New York County, New York" 
 "Census Tract 2.01, New York County, New York" 
 "Census Tract 2.02, New York County, New York" 
 "Census Tract 5, New York County, New York" ...
 $ state   : int  36 36 36 36 36 36 36 36 36 36 ...
 $ county  : int  61 61 61 61 61 61 61 61 61 61 ...
 $ tract   : chr  "000100" "000201" "000202" "000500" ...
 $ estimate: num  NA 23036 29418 NA 18944 ...
 $ se      : num  NA 3083 1877 NA 1442 ...
Wizualizacja danych geoprzestrzennych w R

Dane poligonów obwodów spisowych

str(nyc_tracts, max.level = 2)
Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame':    288 obs. of  9 variables:
  ..@ polygons   :List of 288
  .. .. [list output truncated]
  ..@ plotOrder  : int [1:288] 175 225 97 209 249 232 208 247 244 207 ...
  ..@ bbox       : num [1:2, 1:2] -74 40.7 -73.9 40.9
  .. ..- attr(*, "dimnames")=List of 2
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
Wizualizacja danych geoprzestrzennych w R

Dane poligonów obwodów spisowych

str(nyc_tracts@data)
'data.frame':    288 obs. of  9 variables:
 $ STATEFP : chr  "36" "36" "36" "36" ...
 $ COUNTYFP: chr  "061" "061" "061" "061" ...
 $ TRACTCE : chr  "001401" "002201" "003200" "004000" ...
 $ AFFGEOID: chr  "1400000US36061001401" "1400000US36061002201" 
 "1400000US36061003200" "1400000US36061004000" ...
 $ GEOID   : chr  "36061001401" "36061002201" "36061003200" "36061004000" ...
 $ NAME    : chr  "14.01" "22.01" "32" "40" ...
 $ LSAD    : chr  "CT" "CT" "CT" "CT" ...
 $ ALAND   : num  93510 161667 217682 178340 124447 ...
 $ AWATER  : num  0 0 0 0 0 0 0 0 0 0 ...
  • Cel: Dodanie szacowanego medianu dochodów do tej ramki danych
Wizualizacja danych geoprzestrzennych w R

Odpowiedniość między poligonami a danymi

four_tracts
class       : SpatialPolygons 
features    : 4 
extent      : -73.99022, (xmin)
              -73.97875, (xmax)
              40.71413,  (ymin)
              40.73329   (ymax)
coord. ref. : +proj=longlat +datum=NAD83
              +no_defs +ellps=GRS80 
              +towgs84=0,0,0 
sapply(four_tracts@polygons,
       function(x) x@ID)
"156" "157" "158" "159"
four_data
    TRACTCE
159  004000
158  003200
157  002201
156  001401
Wizualizacja danych geoprzestrzennych w R

Odpowiedniość między poligonami a danymi

SpatialPolygonsDataFrame(Sr, data, match.ID = TRUE)

SpatialPolygonsDataFrame(four_tracts, four_data)
class       : SpatialPolygonsDataFrame 
features    : 4 
extent      : -73.99022, -73.97875, 40.71413, 40.73329  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=NAD83 +no_defs +ellps=GRS80 +towgs84=0,0,0 
variables   : 1
names       : TRACTCE 
min values  :  001401 
max values  :  004000
Wizualizacja danych geoprzestrzennych w R

Odpowiedniość między poligonami a danymi

SpatialPolygonsDataFrame(Sr, data, match.ID = TRUE)

SpatialPolygonsDataFrame(four_tracts, four_data)@data
    TRACTCE
156  001401
157  002201
158  003200
159  004000
Wizualizacja danych geoprzestrzennych w R

Odpowiedniość między poligonami a danymi

SpatialPolygonsDataFrame(four_tracts, four_data, match.ID = FALSE)@data
    TRACTCE
159  004000
158  003200
157  002201
156  001401

Odpowiedniość została utracona!

Wizualizacja danych geoprzestrzennych w R

Dodawanie nowych danych

  • Po utworzeniu nie ma kontroli, czy dane pozostają dopasowane do poligonów
  • Należy odtworzyć obiekt, starannie dopasowując poligony do właściwych wierszy
  • sp::merge(),merge() dla obiektów sp
Wizualizacja danych geoprzestrzennych w R

Czas na ćwiczenia!

Wizualizacja danych geoprzestrzennych w R

Preparing Video For Download...