Leggi solo parte di un file di forma ESRI in R


10

Ho un file di forma ESRI molto grande (> 8000 poligoni, il file .shp è> 32 MB), che voglio leggere in R su Windows 7.

Conosco rgdal e readOGR (). Tuttavia, con questa dimensione del file di forma, la lettura dell'intero file di forma in memoria è un processo molto lento. Inoltre, sono interessato solo ad alcuni poligoni raggruppati (<100) degli 8.000 contenuti nel file di forma. Il processo per il quale devo fare questo è altamente ripetitivo, cioè lo shapefile deve essere caricato molte volte, quindi attualmente è molto lento.

Quindi, mi chiedo se sia possibile leggere solo una parte del file di forma per accelerare il processo. Sembra poco pratico caricare una così grande quantità di dati e quindi scartarli.


Quale piattaforma stai usando? Se hai accesso ad ArcGIS, suppongo che potresti eseguire lo script in ArcPy di ​​qualcosa che effettua la selezione del sottoinsieme e quindi esegue un processo R dallo script Python. Questo è sicuramente possibile ... Esegui una ricerca su Google per eseguire il codice R da Python.
GeoJohn,

3
Forse prova a esportare in un nuovo shapefile quella parte dei tuoi dati che è importante per te, e poi lavoraci su R.
ami

probabilmente funzionerà con sf. Ma salvalo nel formato dell'area di lavoro R con saveRDS. Ci sono modi per archiviare genericamente in SQLite o simili, ma dubito che sia necessario
mdsumner

Risposte:


8

L'unica cosa che mi viene in mente è di sfruttare la nuova libreria "sfr" e la relativa classe di caratteristiche semplici per il sottoinsieme. La libreria sfr è attualmente disponibile su GitHub ed ecco un tutorial per iniziare.

Non credo che si può trasmettere dati in base a una query sottoinsieme tuttavia, questo sarebbe a velocità locazione fino tempi di lettura notevolmente ed è presumibilmente il futuro delle classi spaziali R .

Un'altra opzione sarebbe quella di archiviare i dati spaziali in un database (ad es. PostGIS) e di interrogarli dal database. Questo può essere un modo estremamente efficiente per gestire dati di grandi dimensioni.


2
Il sfpacchetto è disponibile su CRAN dalla versione 0.2 (26-10-2016): cran.r-project.org/web/packages/sf/index.html
rcs

1

Penso che l'utilizzo di un GIS come QGIS e la selezione delle funzioni necessarie sarebbe un buon approccio.
Se è necessario unire nuovamente i risultati, è possibile creare un file con i 7900 poligoni che non si desidera elaborare, quindi elaborare i 100 poligoni e ricongiungersi dopo l'elaborazione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.