আর জি ব্যবহার করে ফাইল জিওডাটাবেসে ফিচার ক্লাস পড়ছেন?


27

আমার কাছে জিওডাটাবেজে থাকা একটি বৈশিষ্ট্য রয়েছে যা রফতানি করা শেফফিল হিসাবে 2 জিবি থেকে বড়। রাস্টার ফাইল থেকে ডেটা সহ বহুভুজকে বিশিষ্ট করতে আমার আর একটি এক্সট্র্যাক্ট ফাংশন চালানো দরকার। টেবিল হিসাবে বৈশিষ্ট্যটি রফতানি কোনও সমাধান নয়। আমি কীভাবে কোনও এএসরি ফাইল জিওডাটাবেজে থাকা বৈশিষ্ট্য শ্রেণিগুলি পড়তে পারি?

উত্তর:


38

আপনি এসরি ফাইল জিওডাটাবেসগুলিতে বৈশিষ্ট্য শ্রেণিতে অ্যাক্সেস করতে 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
পূর্বে, আপনি কেবল তখনই এটি করতে পারতেন যদি আপনি ইএসআরআই ফাইলজিওডাটাবেস এপিআই ডাউনলোড করেন এবং এর বিরুদ্ধে জিডিএল সংকলন করেন। আপনি জিডিএল ইনস্টল করতে ওএসজিও 4 ডাব্লু ব্যবহার করলে স্বয়ংক্রিয়ভাবে এগুলি করার বিকল্প রয়েছে। তবে, এটি জিডিএল-র পরবর্তী প্রকাশে পরিবর্তিত হতে পারে এবং এটি এখন দেশীয় হতে পারে, যদি আমি ভুল হয় তবে আমি ক্ষমা চাই।
জেফরি ইভান্স

3
@ জেফ্রেএভানস এখন এটি স্থানীয়।
হারুন

4
এটি উইন্ডোজের স্থানীয় হলেও এটি বর্তমানে অন্য প্ল্যাটফর্মগুলির জন্য অন্তত অন্তর্ভুক্ত বলে মনে হচ্ছে না (কমপক্ষে দেবিয়ান জেসি)।
সুতি.রকউড

1
+1 সুন্দরভাবে কাজ করে। এটি জানতে সহায়তা করে যে layerজিডিবিতে যখন কেবল একটি বৈশিষ্ট্য শ্রেণি রয়েছে তখন যুক্তিটি বাদ দেওয়া যেতে পারে।
হোবার

2
যারা gdbফাইল সম্পর্কে কিছুই জানেন না তাদের জন্য fgdbএই উত্তরে এখানে একটি ডিরেক্টরি রয়েছে এবং ogrListLayers()এই ডিরেক্টরিতে কাজ করে ...
মাইকেলচিরিকো

2

ইতিমধ্যে এই উত্তরে পোস্ট হিসাবে , এটি এখন এর সাথে খুব সুন্দরভাবে কাজ করে sf:

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

তবে একটি fgdb লেখার বিষয়টি প্রয়োগ করা হয়নি ( এখনও? ), আপনার কাছে আরকিজিআইএস / আর্কম্যাপ লাইসেন্সের পাশাপাশি আর গ্রন্থাগার থাকতে হবে arcgisbinding( https://github.com/R-ArcGIS/r-bridge দেখুন )

st_drivers()$write[st_drivers()$long_name == "ESRI FileGDB"]
#> [1] FALSE
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.