J'ai un très grand fichier de formes ESRI (> 8000 polygones, le fichier .shp est> 32 Mo), que je veux lire dans R sur Windows 7.
Je connais rgdal et readOGR (). Cependant, avec cette taille de fichier de formes, la lecture de l'ensemble du fichier de formes en mémoire est un processus très lent. De plus, je ne suis intéressé que par quelques polygones groupés (<100) sur les 8 000 contenus dans le fichier de formes. Le processus pour lequel je dois le faire est très répétitif, c'est-à-dire que le fichier de formes doit être chargé plusieurs fois, il est donc actuellement très lent.
Par conséquent, je me demande s'il est possible de lire uniquement une partie du fichier de formes afin d'accélérer le processus. Il semble peu pratique de charger une telle quantité massive de données, puis d'en supprimer la plupart.
Réponses:
La seule chose qui me vient à l'esprit est de tirer parti de la nouvelle bibliothèque "sfr" et de sa classe d'entités simple associée pour le sous-ensemble. La bibliothèque sfr est actuellement disponible sur GitHub et voici un tutoriel pour vous aider à démarrer.
Je ne crois pas que vous pouvez diffuser des données sur la base d' une requête sous - ensemble cependant, ceci à une vitesse de location en temps de lecture considérablement et est censé être l' avenir des classes spatiales R .
Une autre option serait de stocker vos données spatiales dans une base de données (par exemple, PostGIS) et d'interroger à partir de la base de données. Cela peut être un moyen extrêmement efficace de traiter des données volumineuses.
la source
sf
package est disponible sur CRAN depuis la version 0.2 (2016-10-26): cran.r-project.org/web/packages/sf/index.htmlJe pense que l'utilisation d'un SIG tel que QGIS et la sélection des fonctionnalités dont vous avez besoin serait une bonne approche.
Si vous devez fusionner les résultats, vous pouvez créer un fichier avec les 7900 polygones que vous ne souhaitez pas traiter, puis traiter les 100 polygones et les rejoindre après le traitement.
la source
Vous pouvez créer un sous-ensemble d'un fichier de formes à l'aide de la
org2ogr
commande, comme illustré ici:ogr2ogr sélection d'entités par attributs
Vous devrez cependant déterminer une condition pour sélectionner les fonctionnalités que vous souhaitez.
la source