Создайте список фрейма данных Spatial Polygon из списка фрейма данных

Я хочу создать список фреймов данных Spatial Polygon из списка фреймов данных. Список пространственных многоугольников называется list_sp_Tanzania, а список фреймов данных называется list_df_Tanzania_Modis500. Каждый список содержит 61 объект, и каждый объект содержит несколько полигонов.

str(list_df_Tanzania_Modis500)
$ :'data.frame':    30 obs. of  11 variables:
  ..$ ID        : int [1:30] 296 298 321 323 324 330 331 361 419 453 ...
  ..$ LU_1990   : int [1:30] 11 11 11 11 11 11 11 11 11 11 ...
  ..$ LU_2000   : num [1:30] 12 12 12 12 12 12 12 12 12 12 ...
  ..$ CHLU_90_00: chr [1:30] "1112" "1112" "1112" "1112" ...
  ..$ LU_2005   : num [1:30] 12 12 12 12 12 12 12 12 12 15 ...
  ..$ CHLU_00_05: chr [1:30] "1212" "1212" "1212" "1212" ...
  ..$ Tile      : Factor w/ 1 level "S11_E039": 1 1 1 1 1 1 1 1 1 1 ...
  ..$ UNIQ_ID   : Factor w/ 30 levels "S11_E039_296",..: 1 2 3 4 5 6 7 8 9 10 ...
  ..$ AREA      : num [1:30] 219337 347133 393961 181875 105137 ...
  ..$ Sour_90_00: chr [1:30] "Modis500_2000" "Modis500_2000" "Modis500_2000" "Modis500_2000" ...
  ..$ Sour_00_05: chr [1:30] "Modis500_2005" "Modis500_2005" "Modis500_2005" "Modis500_2005" ...

str(list_sp_Tanzania)
[[61]]
class       : SpatialPolygons 
features    : 30 
extent      : 38.95413, 39.04577, -11.04522, -10.95469  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0

К сожалению, я не могу предоставить данные с dput, потому что это s4 objects, и я не смог найти подобных примеров. Надеюсь, что кто-то может мне как-то помочь.


person Simon Besnard    schedule 22.10.2014    source источник
comment
Я не могу понять, как связаны ваши два списка, но в основном с data.frame из 30 строк и SpatialPolygons из 30 функций вы делаете SpatialPolygons (df, ps), необязательно с аргументами для управления сопоставлением iD. Если list_df_Tanzania_Modis500 является списком, вам нужно df ‹- list_df_Tanzania_Modis500 [[1]]. Аналогично для list_sp_Tanzania, но я не понимаю части [[61]]?   -  person mdsumner    schedule 22.10.2014
comment
Часть [[61]] является 61-м пространственным многоугольным объектом в списке. Он говорит о 30 объектах, что означает, что в 61-м пространственном многоугольном объекте 30 полигонов.   -  person Simon Besnard    schedule 22.10.2014


Ответы (1)


Вот решение.

fun <- function(x, y) {
  SpatialPolygonsDataFrame(x, y, match.ID = F)
}

list_Spdf_Tanzania_Modis500 <- mapply(FUN = fun, 
                                      x = list_sp_Tanzania, 
                                      y = list_df_Tanzania_Modis500)
person Simon Besnard    schedule 22.10.2014