อ่านไฟล์ Geodatabase โดยใช้ R?


12

ไฟล์ฐานข้อมูลภูมิศาสตร์ (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
ฐานข้อมูล Geod จัดเก็บรูปทรงเรขาคณิตในเขตข้อมูล Blob ไม่ใช่ dbf (แต่จะสร้างรูปร่างไฟล์)
Mapperz

1
ฉันจะแนะนำให้ใช้ผู้ให้บริการ oledb ของ Esri สำหรับฐานข้อมูลไฟล์ทางภูมิศาสตร์แต่ปรากฏว่าR ไม่สามารถอ่าน oledbได้ อาจต้องการลบล้างคำถามนั้นและคำถามนี้ด้วย
Kirk Kuykendall

คำตอบ:


4

ทางออกที่ง่ายคือการใช้ Table to dBase (หลายตัว) เพื่อส่งออกตารางของคุณ (คลิกขวา FGDB> ส่งออก> ไปยัง dBase (หลายรายการ) คุณยังสามารถใช้เครื่องมือนี้เพื่อส่งออกตารางแอตทริบิวต์ที่มีอยู่ในคลาสคุณลักษณะ FGDB เพียงลากและวางตาราง และหรือคุณสมบัติคลาสลงในเครื่องมือและระบุโฟลเดอร์ผลลัพธ์แน่นอนว่าคุณสามารถวนลูปผ่านโฟลเดอร์ที่มีไฟล์ dBase ใหม่โดยใช้ R

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


เมนูนี้ใช้งานได้ - เมนูแบบเลื่อนลงของฉันไม่เหมือนกัน (ฉันขอโทษฉันไม่เข้าใจระบบไฟล์ ArcMap ทั้งหมด) แต่ฉันพบว่าฉันสามารถส่งออกตารางโดยคลิกขวาที่รายการตารางในสารบัญและ สร้างไฟล์. dbf ที่อ่านได้ ขอบคุณ!
น่าน

9

ฐานข้อมูลไฟล์ Geod ไม่ได้จัดเก็บข้อมูลของพวกเขาในรูปแบบ dbf FGDB ใช้วิธีการจัดเก็บข้อมูลภายในของตัวเอง

ESRI เผยแพร่APIหากใช้เพื่อรวบรวม GDAL ด้วยการสนับสนุนฐานข้อมูลไฟล์คุณอาจใช้ปลั๊กอิน gdal ของ R เพื่อเข้าถึงข้อมูลของคุณได้ อย่างไรก็ตามโซลูชันที่ง่ายที่สุดอาจแปลงข้อมูลของคุณให้เป็นรูปร่างไฟล์จากนั้นคุณสามารถใช้เครื่องมือ dbf ของ R


หรือเพียงแค่ส่งออกตารางคุณลักษณะเป็น dbf แทนที่จะแปลงคลาสคุณลักษณะทั้งหมด
Baltok

1
โอ้จริงเหรอ! คุณยังสามารถใช้แถบเครื่องมือ Xtools เพื่อส่งออกตารางแอตทริบิวต์ไปยัง Excel ได้โดยตรง แถบเครื่องมือเวอร์ชันฟรีรวมถึงความสามารถในการส่งออกของ Excel xtoolspro.com
HeyOverThere

@ HeyOverThere- ขอบคุณที่ชี้ให้เห็นว่าคุณถูกต้อง - ตารางเหล่านี้คือ "ไฟล์ Geodatabase Tables" ซึ่งอธิบายว่าทำไมฉันไม่พบมันเป็นไฟล์. dbf ฉันจะใช้วิธีการส่งออกของ Aaron อย่างไรการแปลงข้อมูลทั้งหมดของฉันให้กลายเป็นไฟล์รูปร่างจะต้องใช้เวลามากขึ้น
น่าน

ดูเหมือนว่าลิงก์ 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))) 

ด้านบนจะส่งออก shapefile จากฐานข้อมูลภูมิศาสตร์จากนั้นคุณจะต้องนำเข้าสู่ R

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.