Я намагаюся прочитати таблицю безпосередньо з бази даних геоданих ESRI у Р. Приклад файлу даних можна завантажити тут . База даних містить точковий клас функцій (Zone9_2014_01_Broadcast) та дві пов'язані таблиці (Zone9_2014_01_Vessel та Zone9_2014_01_Voyage). Ви можете прочитати файл форми у R за readOGR
допомогою rgeos
пакету:
library(rgeos)
library(downloader)
download("https://coast.noaa.gov/htdata/CMSP/AISDataHandler/2014/01/Zone9_2014_01.zip", dest="Zone9_2014_01.zip", mode="wb")
unzip("Zone9_2014_01.zip", exdir = ".")
# Not Run (loads large point file)
# broadcast <- readOGR(dsn = "Zone9_2014_01.gdb", layer = "Zone9_2014_01_Broadcast")
Дві пов'язані таблиці також показують, коли ви використовуєте ogrListLayers
або ogrInfo
. Однак ogrInfo
дає попередження:
Попереджувальне повідомлення: У ogrInfo ("Zone9_2014_01.gdb", layer = "Zone9_2014_01_Vessel"): ogrInfo: усі функції NULL
І якщо ви спробуєте використовувати readOGR
на таблицях, ви отримаєте помилку:
vessel <- readOGR(dsn = "Zone9_2014_01.gdb", layer = "Zone9_2014_01_Vessel")
Помилка readOGR (dsn = "Zone9_2014_01.gdb", layer = "Zone9_2014_01_Vessel"): відсутні функції, крім цього: Попереджувальне повідомлення: In ogrInfo (dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,: ogrInfo: всі функції NULL
Таким чином, виявляється, що readOGR може читати лише географічні особливості. Чи є спосіб імпортувати таблиці безпосередньо в R або є єдиним рішенням спочатку експортувати їх з ArcGIS у вигляді файлів * .dbf (або * .txt), як у цій відповіді?
Крім того, якщо хтось може надіслати дзвінки з R до сценарію python, який автоматизує експорт файлів * csv (бажано) або * .dbf, це було б прийнятною обробкою. Рішення просто має бути масштабованим та автоматизованим.
arcgisbbinding
у R. Функція arc.open()
відкриє таблицю як arc.dataset-class object
. Щоб відкрити безпосередньо як a data.table
, використовуйте функцію arc.select
.