Я пытаюсь прочитать таблицу непосредственно из файловой базы геоданных ESRI в R. Пример файла данных можно скачать здесь . База данных содержит класс точечных объектов (Zone9_2014_01_Broadcast) и две связанные таблицы (Zone9_2014_01_Vessel и Zone9_2014_01_Voyage). Вы можете прочитать шейп readOGR
- rgeos
файл в R используя пакет:
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"): функции не найдены. Дополнительно: Предупреждение: в 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
. Чтобы открыть напрямую как data.table
, используйте функцию arc.select
.