Lesen oder Erstellen eines leeren Shapefiles in R.

Oct 28 2020

Ich habe mehrere Polygon-Shapefiles, die ich mithilfe einer Schleife in R zu einem zusammenführen muss. Ich möchte mit einem leeren Shapefile beginnen und es mit den vorhandenen Shapefiles zusammenführen. Alle Shapefiles werden vor dem Zusammenführen gehackt, dass sie dieselben Felder haben.

Ich kann mir zwei Möglichkeiten vorstellen:

  1. Erstellen Sie ein leeres Shapefile in ArcMap und lesen Sie es in R. Ich habe dies mit readOGR versucht und eine Fehlermeldung erhalten:
library(rgdal)
EI_GIS_ALL = readOGR(dsn = EI_GIS_ALL_dsn, layer=EI_GIS_ALL_FileName)
Error in readOGR(dsn = EI_GIS_ALL_dsn, layer = EI_GIS_ALL_FileName) : 
  no features found
  1. Erstellen Sie ein leeres Shapefile in R und führen Sie es mit union mit vorhandenen Shapefiles zusammen. Die Vereinigung ist wie in Mayccas Lösung beim Zusammenführen mehrerer SpatialPolygonDataFrames zu 1 SPDF in R?

Irgendwelche Vorschläge?

Antworten

1 Spacedman Oct 28 2020 at 01:31

Wahrscheinlich einfacher, ein anderes Muster zu verwenden, z. B. eine spezielle Behandlung des ersten Artikels:

first=TRUE
for(shp in shapefiles){
   # this function reads in a shapefile from shp and returns sp object:
   shpdata = read_in_and_check(shp)
   if(first){
      output=shpdata
      first=FALSE
   } else {
      output=bind(output, shpdata)
   }
}

oder fügen Sie Ihre Formen in eine Liste ein und verwenden Sie sie do.callmit bind:

# shpdatas becomes a list of sp-class objects:
shpdatas = lapply(shapefiles, read_in_and_check)
output = do.call(bind, shpdatas)