Đọc tập tin Geodatabase bằng R?


12

Cơ sở dữ liệu địa lý tệp (fgdb) bao gồm nhiều bảng cơ sở dữ liệu địa lý tệp. Theo như tôi biết thì chúng tồn tại dưới dạng dbftệp, nhưng nằm trong a Database.gdb.

Trong ArcCatalog, đường dẫn tệp giống như C:\Users\...\Database.gdb\Stats_AA.

Làm thế nào để đọc tất cả các dbftệp này vào R(một phần mềm thống kê)? Con đường chính xác để cung cấp là gì? Hàm được sử dụng là read.dbf(trong gói nước ngoài).

Các biến thể của

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

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

đừng làm việc "Biểu mẫu" chính xác của tên tệp sẽ được sử dụng là gì, hoặc tôi có cần xuất tất cả các bảng cơ sở dữ liệu địa lý tệp sang một số biểu mẫu hoặc vị trí khác không?


1
cơ sở dữ liệu địa lý lưu trữ hình học trong các trường blob không phải dbf (nhưng shapefile thì có).
Mapperz

1
Tôi sẽ đề nghị sử dụng nhà cung cấp oledb của Esri cho cơ sở dữ liệu địa lý tệp , tuy nhiên có vẻ như R không thể đọc được oledb . Có thể muốn nêu lên câu hỏi đó, và câu hỏi này .
Kirk Kuykendall

Câu trả lời:


4

Một giải pháp đơn giản là sử dụng Bảng để dBase (nhiều) để xuất các bảng của bạn (Nhấp chuột phải vào FGDB> Xuất> Tới dBase (nhiều). Bạn cũng có thể sử dụng công cụ này để xuất các bảng thuộc tính có trong các lớp tính năng FGDB. và hoặc các lớp tính năng vào công cụ và chỉ định một thư mục đầu ra. Tất nhiên, sau đó bạn có thể lặp qua thư mục chứa các tệp dBase mới bằng R.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


Điều này hoạt động - menu thả xuống của tôi trông không giống nhau (tôi xin lỗi, tôi không hiểu đầy đủ về hệ thống tệp ArcMap) nhưng tôi thấy tôi có thể xuất các bảng bằng cách nhấp chuột phải vào chính mục trong bảng Mục lục và tạo tập tin .dbf có thể đọc được. Cảm ơn!
Nan

9

Tệp cơ sở dữ liệu địa lý không lưu trữ dữ liệu của họ dưới dạng dbf, shapefiles làm. FGDB sử dụng phương thức lưu trữ nội bộ của riêng họ.

ESRI đã xuất bản một API , nếu sử dụng nó để biên dịch GDAL với hỗ trợ cơ sở dữ liệu địa lý tệp, bạn có thể sử dụng các plugin gdal của R để có quyền truy cập vào dữ liệu của mình theo cách đó. Tuy nhiên, giải pháp đơn giản nhất có lẽ là chuyển đổi dữ liệu của bạn thành shapefile, sau đó bạn có thể sử dụng các công cụ dbf của R.


Hoặc chỉ xuất bảng thuộc tính dưới dạng dbf thay vì chuyển đổi toàn bộ lớp tính năng.
Baltok

1
Ồ đó là sự thật! Bạn cũng có thể sử dụng thanh công cụ Xtools để xuất bảng thuộc tính trực tiếp sang Excel. Phiên bản miễn phí của thanh công cụ bao gồm khả năng xuất Excel. xtoolspro.com
HeyOverThere

@ HeyOverThere- cảm ơn bạn đã chỉ ra rằng, bạn đã đúng - các bảng này là "Bảng cơ sở dữ liệu địa lý tệp" giải thích lý do tại sao tôi không thể tìm thấy chúng dưới dạng tệp .dbf. Tôi đang thực hiện phương pháp xuất khẩu của Aaron, tuy nhiên, việc chuyển đổi tất cả dữ liệu của tôi thành shapefile sẽ tốn nhiều thời gian hơn.
Nan

Liên kết API dường như đã chết. Bạn có thể vui lòng cập nhật nó?
Aaron

Có vẻ như ESRI đã thực hiện một số cách dọn dẹp nhà cửa. Liên kết được cập nhật để trỏ đến vị trí mới
HeyOverThere

4

Tôi gặp vấn đề tương tự. Theo tôi, thật bất tiện khi sử dụng ArcMap. Thay vào đó, tôi đã gọi python từ R bằng cách sử dụng đoạn mã sau. Nó đòi hỏi bạn phải có Arcpy, thật không may.

Tập lệnh 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)

Mã 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))) 

Ở trên sẽ xuất ra một shapefile từ cơ sở dữ liệu địa lý, sau đó bạn sẽ phải nhập vào R.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.