Прочитайте лише частину файлу форм ESRI в R


10

У мене дуже великий файл форм ESRI (> 8000 полігонів, .shp файл> 32 Мб), який я хочу прочитати в R в Windows 7.

Мені знайомі rgdal і readOGR (). Однак з таким розміром форм-файлу читання всього файлу форми в пам'яті є дуже повільним процесом. Крім того, мене цікавлять лише кілька кластеризованих багатокутників (<100) з 8000, які містяться у формі файлу. Процес, для якого мені потрібно це зробити, дуже повторюється, тобто файл форми потрібно завантажувати багато разів, тому він зараз дуже повільний.

Отже, мені цікаво, чи можна читати лише частину файлу форми, щоб прискорити процес. Здається непрактичним завантажувати такий великий обсяг даних, а потім відкидати більшість із них.


Яку платформу ви використовуєте? Якщо у вас є доступ до ArcGIS, я припускаю, що ви можете написати сценарій у ArcPy, що робить вибір підмножини, а потім виконує процес R із скрипту python. Це, безумовно, можливо ... Запустіть пошук Google для виконання коду R з python.
GeoJohn

3
Можливо, спробуйте експортувати у новий shapefile ту частину ваших даних, яка вам важлива, а потім попрацюйте над нею у R.
ami

це, ймовірно, буде працювати з sf. Але збережіть його у форматі робочої області R за допомогою saveRDS. Є способи зберігати загальний вміст у SQLite чи подібних, але я сумніваюся, що це потрібно
mdsumner

Відповіді:


8

Єдине, що спадає на думку, - це використовувати нову бібліотеку "sfr" та пов'язаний з нею простий клас функцій для підмножини. Наразі бібліотека sfr доступна на GitHub, і ось підручник для початку роботи.

Я не вірю, що ви можете передавати дані на основі запиту підмножини, однак це дозволить значно скоротити час читання і, мабуть, майбутнє R просторових класів .

Іншим варіантом буде зберігання ваших просторових даних у базі даних (наприклад, PostGIS) та запит із бази даних. Це може бути надзвичайно ефективним способом боротьби з великими даними.


2
sfПакет доступний на CRAN починаючи з версії 0.2 (2016-10-26): cran.r-project.org/web/packages/sf/index.html
RCS

1

Я думаю, що використання ГІС, такого як QGIS та вибір необхідних функцій, був би хорошим підходом.
Якщо вам потрібно об'єднати результати, ви можете створити один файл із 7900 полігонами, які ви не хочете обробляти, обробляйте 100 полігонів та приєднуйтесь після обробки.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.