Читання бази даних геоданих за допомогою R?


12

Файл geodatabase (fgdb) включає численні таблиці геоданих баз даних. Наскільки я знаю, вони існують як dbfфайли, але знаходяться в межах Database.gdb.

В ArcCatalog шлях файлу нагадує C:\Users\...\Database.gdb\Stats_AA.

Як прочитати всі ці dbfфайли R(статистичне програмне забезпечення)? Який правильний шлях постачання? Використовувана функція read.dbf(у закордонному пакеті).

Варіанти

test<-read.dbf(file="C:/Users..Database.gdb/Stats_AA.dbf") 

і

test<-read.dbf(file="C:/Users..Database/Stats_AA.dbf") 

не працюють. Яка правильна "форма" імені файлу, який потрібно використовувати, чи мені потрібно експортувати всі таблиці баз даних геоданих в якусь іншу форму чи місцеположення?


1
Бази геоданих зберігають геометрію в полях blob не dbf (але shapefile робить).
— Mapperz

1
Я збирався запропонувати використовувати постачальник oledb Esri для файлових баз даних , однак, схоже, R не може прочитати oledb . Можливо, ви хочете підтримати це питання, а також це .
— Кірк Куйкендалл

Відповіді:


4

Простим рішенням є використання таблиці для dBase (кілька) для експорту ваших таблиць (клацніть правою кнопкою миші FGDB> Експорт> до dBase (кілька). Ви також можете використовувати цей інструмент для експорту таблиць атрибутів, що містяться в класах функцій FGDB. Просто перетягуйте таблиці та або класи функцій в інструменті та вкажіть папку виводу. Звичайно, тоді ви можете переглядати папку, що містить нові файли dBase, використовуючи R.

введіть тут опис зображення

введіть тут опис зображення


Це працює - моє спадне меню виглядає не однаково (вибачте, я не повністю розумію файлові системи ArcMap), але я виявив, що можу експортувати таблиці, клацнувши правою кнопкою миші на саму запис таблиці в змісті, і створити читабельний .dbf файл. Дякую!
— Нан

9

Бази даних геоданих не зберігають свої дані як dbf, як це роблять shapefiles. FGDB використовують власний метод внутрішнього зберігання.

ESRI опублікував API , якщо використовувати його для компіляції GDAL з підтримкою файлової бази даних, ви можете використовувати плагіни gdal R, щоб отримати доступ до ваших даних таким чином. Однак найпростішим рішенням є, мабуть, перетворення даних у shapefile, тоді ви можете використовувати інструменти dbf R.


Або просто експортуйте таблицю атрибутів як dbf, а не конвертуючи весь клас функцій.
— Балток

1
О, це правда! Ви також можете використовувати панель інструментів Xtools для експорту таблиці атрибутів безпосередньо в Excel. Безкоштовна версія панелі інструментів включає можливість експорту Excel. xtoolspro.com
— HeyOverThere

@ HeyOverThere - спасибі за вказівку на це, ви неправі - ці таблиці "Файли таблиць бази даних", що пояснює, чому я не зміг їх знайти як .dbf файли. Я йду з підходом до експорту Аарона, однак перетворення всіх моїх даних у форматні файли буде забирати більше часу.
— Нан

Здається, посилання API мертве. Чи можете ви оновити його?
— Аарон

Схоже, ESRI робив чистку будинку. Посилання оновлено, щоб вказати на нове місце розташування
— HeyOverThere

4

Я зіткнувся з тією ж проблемою. На мою думку, ArcMap незручно використовувати. Натомість я викликав python від R, використовуючи наступний код. Це, на жаль, вимагає від вас Arcpy.

Сценарій Python:

import os,sys
import arcpy
from arcpy import env
from sys import argv ### This is needed to import variables

script, featureClass, inFeatures, outLocation, outFeatureClass = argv
env.workspace = featureClass ### set working directory
arcpy.FeatureClassToFeatureClass_conversion(inFeatures, outLocation,outFeatureClass)

R код:

script = "./Path To Python Script/Example.py"
featureClass = './Path To Geodatabase/Example.gdb'
inFeatures = "featureClass"
outLocation = "./Path To Outfile Location"
outFeatureClass = "test.shp"
system2('python', args = c(shQuote(script),shQuote(featureClass),shQuote(inFeatures),shQuote(outLocation),shQuote(outFeatureClass))) 

Вищенаведене буде виводити файл форми з бази даних геоданих, тоді вам доведеться імпортувати в Р.

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