Ich habe ein sehr großes ESRI-Shapefile (> 8000 Polygone, .shp-Datei ist> 32 MB), das ich unter Windows 7 in R einlesen möchte.
Ich bin mit rgdal und readOGR () vertraut. Bei dieser Größe des Shapefiles ist das Einlesen des gesamten Shapefiles in den Speicher jedoch ein sehr langsamer Prozess. Darüber hinaus interessieren mich nur einige wenige Cluster-Polygone (<100) der 8.000, die im Shapefile enthalten sind. Der Prozess, für den ich dies tun muss, ist sehr repetitiv, dh das Shapefile muss viele Male geladen werden, daher ist es derzeit sehr langsam.
Daher frage ich mich, ob es möglich ist, nur einen Teil des Shapefiles einzulesen, um den Prozess zu beschleunigen. Es erscheint unpraktisch, eine so große Datenmenge zu laden und dann das meiste davon zu verwerfen.
Antworten:
Das einzige, was mir in den Sinn kommt, ist die Nutzung der neuen "sfr" -Bibliothek und der zugehörigen einfachen Feature-Class für die Teilmenge. Die sfr-Bibliothek ist derzeit auf GitHub verfügbar. Hier finden Sie ein Tutorial , mit dem Sie beginnen können.
Ich glaube nicht, dass Sie Daten basierend auf einer Teilmengenabfrage streamen können, dies würde jedoch die Lesezeiten erheblich beschleunigen und ist angeblich die Zukunft von R-Raumklassen .
Eine andere Möglichkeit wäre, Ihre Geodaten in einer Datenbank (z. B. PostGIS) zu speichern und aus der Datenbank abzufragen. Dies kann eine äußerst effiziente Möglichkeit sein, mit großen Datenmengen umzugehen.
quelle
sf
Paket ist auf CRAN seit Version 0.2 (26.10.2016) verfügbarIch denke, dass die Verwendung eines GIS wie QGIS und die Auswahl der benötigten Funktionen ein guter Ansatz wäre.
Wenn Sie die Ergebnisse wieder zusammenführen müssen, können Sie eine Datei mit den 7900 Polygonen erstellen, die Sie nicht verarbeiten möchten, dann die 100 Polygone verarbeiten und nach der Verarbeitung wieder verbinden.
quelle
Mit dem folgenden
org2ogr
Befehl können Sie eine Teilmenge eines Shapefiles erstellen :ogr2ogr wählt Features nach Attributen aus
Sie müssen jedoch eine Bedingung für die Auswahl der gewünschten Funktionen herausfinden.
quelle