Leer solo parte de un archivo de forma ESRI en R

10

Tengo un archivo de forma ESRI muy grande (> 8000 polígonos, el archivo .shp es> 32 MB), que quiero leer en R en Windows 7.

Estoy familiarizado con rgdal y readOGR (). Sin embargo, con este tamaño de shapefile, leer todo el shapefile en la memoria es un proceso muy lento. Además, solo estoy interesado en algunos polígonos agrupados (<100) de los 8,000 que están contenidos en el archivo de forma. El proceso para el que necesito hacer esto es muy repetitivo, es decir, el archivo de forma debe cargarse muchas veces, por lo que actualmente es muy lento.

Por lo tanto, me pregunto si es posible leer solo una parte del archivo de forma para acelerar el proceso. Parece poco práctico cargar una cantidad tan enorme de datos y luego descartar la mayor parte.

bmz
fuente
¿Qué plataforma estás usando? Si tiene acceso a ArcGIS, supongo que puede escribir algo en ArcPy que haga la selección del subconjunto y luego ejecute un proceso R desde el script de Python. Esto es definitivamente posible ... Ejecute una búsqueda en Google para ejecutar código R desde python.
GeoJohn
3
Tal vez intente exportar a un nuevo archivo shape esa parte de sus datos que es importante para usted, y luego trabaje en ella en R.
ami
probablemente funcionará con sf. Pero guárdelo en formato de espacio de trabajo R con saveRDS. Hay formas de almacenar genéricamente en SQLite o similar, pero dudo que sea necesario
mdsumner

Respuestas:

8

Lo único que viene a la mente es aprovechar la nueva biblioteca "sfr" y su clase de entidad simple asociada para el subconjunto. La biblioteca sfr está actualmente disponible en GitHub y aquí hay un tutorial para comenzar.

No creo que se puede transmitir datos en base a una consulta subconjunto sin embargo, esto haría a la velocidad de arrendamiento hasta los tiempos de lectura considerablemente y es supuestamente el futuro de las clases espaciales R .

Otra opción sería almacenar sus datos espaciales en una base de datos (por ejemplo, PostGIS) y consultar desde la base de datos. Esta puede ser una forma extremadamente eficiente de manejar grandes datos.

Jeffrey Evans
fuente
2
El sfpaquete está disponible en CRAN desde la versión 0.2 (2016-10-26): cran.r-project.org/web/packages/sf/index.html
rcs
1

Creo que usar un SIG como QGIS y seleccionar las características que necesita sería un buen enfoque.
Si necesita fusionar los resultados, puede crear un archivo con los 7900 polígonos que no desea procesar, luego procesar los 100 polígonos y volver a unirse después del procesamiento.

MichaelStoner
fuente