R का उपयोग करके फाइल जियोडैटेबेस में फीचर क्लास पढ़ना?


27

मेरे पास एक फीचर है जिसमें एक जियोडैटेबेस है जो 2 जीबी से अधिक है जो एक निर्यात आकार के रूप में है। मैं एक raster फ़ाइल से डेटा के साथ बहुभुज को विशेषता देने के लिए R में एक एक्सट्रैक्ट फंक्शन चलाने की आवश्यकता है। तालिका के रूप में सुविधा का निर्यात करना समाधान नहीं है। मैं एक Esri फ़ाइल जियोडैटेबेस के भीतर समाहित फ़ीचर क्लासेस को कैसे पढ़ सकता हूँ?

जवाबों:


38

आप Esri फ़ाइल जियोडैट डेटाबेस में सुविधा वर्गों तक पहुँचने के लिए rgdal का उपयोग कर सकते हैं ।

require(rgdal)

# The input file geodatabase
fgdb <- "C:/path/to/your/filegeodatabase.gdb"

# List all feature classes in a file geodatabase
subset(ogrDrivers(), grepl("GDB", name))
fc_list <- ogrListLayers(fgdb)
print(fc_list)

# Read the feature class
fc <- readOGR(dsn=fgdb,layer="some_featureclass")

# Determine the FC extent, projection, and attribute information
summary(fc)

# View the feature class
plot(fc)

2
पहले, आप ऐसा केवल तभी कर सकते थे जब आप ESRI फ़ाइलगैडाबेस API डाउनलोड करते थे और इसके विरुद्ध GDAL संकलित करते थे। यदि आप GDAL को स्थापित करने के लिए OSGeo4W का उपयोग करते हैं तो स्वचालित रूप से ऐसा करने का विकल्प है। हालाँकि, यह GDAL के बाद के रिलीज में बदल गया है और यह अब देशी हो सकता है, अगर मैं गलत हूं तो मैं माफी मांगता हूं।
जेफरी इवांस

3
@JeffreyEvans यह अब मूल है।
आरोन

4
हालांकि यह खिड़कियों के लिए मूल है, यह वर्तमान में अन्य प्लेटफार्मों (कम से कम डेबियन जेसी) के लिए शामिल नहीं लगता है।
कपास। रॉकवुड

1
+1 अच्छी तरह से काम करता है। यह जानने में मदद करता है कि layerजीडीबी में सिर्फ एक फीचर क्लास होने पर तर्क छोड़ा जा सकता है।
whuber

2
उन लोगों के लिए जो gdbफाइलों के बारे में कुछ नहीं जानते हैं , fgdbइस जवाब में यहां एक निर्देशिका है और ogrListLayers()इस निर्देशिका पर काम करता है ...
माइकलक्रिको

2

जैसा कि पहले से ही इस जवाब में पोस्ट किया गया है , यह अब भी बहुत अच्छी तरह से काम करता है sf:

require(sf)
fc <- sf::st_read("C:/path/to/your/filegeodatabase.gdb", layer = "some_featureclass")

लेकिन एक fgdb ist में लिखना अभी तक कार्यान्वित नहीं हुआ है , आपके पास एक आरसीजीआईएस / आर्कपॉपर लाइसेंस के साथ-साथ आर लाइब्रेरी arcgisbinding( https://github.com/R-ArcGIS/r-bridge ) भी होना चाहिए।

st_drivers()$write[st_drivers()$long_name == "ESRI FileGDB"]
#> [1] FALSE
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.