आर्कजीआईएस के बाहर उपयोग के लिए संलग्नक के साथ सुविधाओं का निर्यात करना?


14

आर्कगिस 10 में जियोडैटैबस में संग्रहीत कक्षाओं की सुविधा के लिए अलग-अलग सुविधाओं से जुड़ने की नई क्षमता है । इसका उपयोग एक विशिष्ट स्थान पर कई चित्रों को जोड़ने के लिए किया जाएगा, अग्नि हाइड्रेंट एक लोकप्रिय उदाहरण लगता है (यह जानना महत्वपूर्ण है कि क्या आप गड्ढे को रोकने के लिए इंटरनेट पर एक कुत्ते हैं जो मुझे लगता है)।

डेटाबेस में एक अटैचमेंट सक्षम सुविधा वर्ग की संरचना त्रिकोणीय है:

  • सुविधा वर्ग ही,
  • संलग्नक और संबंधित मेटाडेटा (फ़ाइल नाम, आकार, आदि), और
  • एक संबंध वर्ग जो दोनों के बीच 1-टू-कई संबंधों को परिभाषित करता है।

3 आइटम जिसमें एक अनुलग्नक-सक्षम सुविधा वर्ग शामिल है

मेरा प्रश्न है: इस डेटा को कैसे निर्यात करें - फीचर क्लास, अटैचमेंट, अटैचमेंट मेटाडेटा - आर्कगिस के बाहर खपत के लिए ? *

FC निर्यात करना आसान है, FeatureClassToFeatureClass गैर-अनुलग्नक सक्षम FC पर समान कार्य करता है। अनुलग्नकों की तालिका निर्यात करना? इतना नहीं। TableToTable to output.dbf केवल संलग्न फ़ाइल मेटाडेटा को निकालता है, असमर्थित फ़ील्ड प्रकार के साथ आउट करने के लिए output.csv त्रुटियों और आउटपुट जानकारी तालिका सामान्य फ़ील्ड त्रुटि के साथ विफल हो जाती है।

यह सब आश्चर्य की बात नहीं है क्योंकि उन फ़ाइल प्रकारों में बाइनरी ब्लॉब डेटाटाइप का समर्थन नहीं होता है। मैं एक ऐसे टूल को खोजने की उम्मीद / उम्मीद कर रहा था जो संलग्न बायनेरिज़ को उनके मूल प्रारूप में बदल देगा, जैसे

सिस्टम आरेख फ़ाइल करने के लिए तालिका

तो, इसके बारे में कैसे? डेटा को बाहर निकालने के लिए मुझे क्या करने की आवश्यकता है?

* विडंबना यह है कि इस क्यू को जन्म देने वाले क्षण की मेरी परियोजना को आर्कगिस के भीतर उपयोग के लिए निर्यात करना है, न कि आर्कगिस डेस्कटॉप ...

जवाबों:


4

http://support.esri.com/em/knowledgebase/techarticles/detail/41763

आर्कजीआईएस 10.1+ के लिए

from arcpy import da
import os

inTable = arcpy.GetParameterAsText(0)
fileLocation = arcpy.GetParameterAsText(1)

with da.SearchCursor(inTable,['DATA','ATT_NAME']) as cursor:
   for row in cursor:
      binaryRep = row[0]
      fileName = row[1]
      # save to disk
      open(fileLocation + os.sep + fileName, 'wb').write(binaryRep.tobytes())
      del row
      del binaryRep
      del fileName

धन्यवाद ian! यह काम करता है, लेकिन वास्तव में एक वास्तविक समाधान के लिए सिर्फ एक प्रारंभिक बिंदु है। निर्यात की गई फ़ाइलें सिर्फ एक सामान्य फ़ोल्डर में डंप होती हैं, जो स्रोत रिकॉर्ड से संबंध खो देती हैं। टिप्पणियों में फ़ाइल नाम के रूप में Record_ID का उपयोग करने के लिए वर्णित एक विधि है; मेरे लिए बहुत खतरनाक है, और कई अनुलग्नकों को समायोजित नहीं किया है, लेकिन यह डिफ़ॉल्ट से बेहतर है।
मैट विल्की

एक अजगर दृष्टिकोण के साथ मदद करने के लिए कुछ और संसाधन: * फ़ोरम ।arcgis.com / threads/ * gist.github.com/oevans/6992139 * github.com/bgeomapping/arcgis-rest-toolbox
मैट

3

GDB को XML में निर्यात करना (GDB पर निर्यात पर राइट क्लिक करके) XML से पूरी तरह से फीचर्स + अटैचमेंट निर्यात कर सकते हैं। इसके अलावा, यदि आप अधिक स्वचालित दृष्टिकोण की तलाश कर रहे हैं, तो आर्कजीआईएस 10.1 में एक्सएमएल एक्सपोर्ट के लिए एक नया टूलबॉक्स है। आप XML को नए GDBs में आयात कर सकते हैं या सीधे उसके सभी डेटा को अन्य अनुप्रयोगों के लिए पार्स करके उपयोग कर सकते हैं।


1
यह दृष्टिकोण पेचीदा लगता है, हालांकि मेरे पास कोई उपकरण नहीं है (मुझे नहीं लगता) जो कि .xml का उपयोग करने में सक्षम होगा। इसलिए मैं दूसरे के लिए सिर्फ एक अपारदर्शी प्रारूप का व्यापार करूंगा। हालाँकि .xml के साथ कम से कम पहुँच और पुन: उपयोग की क्षमता है । जब हम 10.1 परिनियोजित होते हैं, तो मैं इस पथ का पता लगाऊंगा।
मैट विल्की

2

मैंने अगले तरीकों की कोशिश नहीं की है, इसलिए इसके बारे में मेरे विचार:

यदि आप ArcGIS .NET एपीआई के साथ सुविधाजनक हैं, तो आप फ़ाइलों को ब्लॉब्स निर्यात करने के लिए C # का उपयोग कर सकते हैं। इस स्निपेट पर एक नज़र डालें

यह भी हो सकता है कि आप व्यक्तिगत GDB के लिए अनुलग्नक तालिका को निर्यात करने का प्रयास कर सकते हैं और फिर वहाँ बूँदें निर्यात करने का प्रयास कर सकते हैं। उसी तरह से आप एसडीई तालिका में निर्यात कर सकते हैं और इसे प्रदर्शन करने के लिए आपको डीबीएमएस (एसक्यूएल?) का उपयोग कर सकते हैं।


1

निम्न स्क्रिप्ट ने डिस्क में फ़ीचर लेयर अटैचमेंट्स को होस्ट किया है: पायथन के लिए आर्कजीआईएस एपीआई के माध्यम से फ़ीचर लेयर अटैचमेंट्स डाउनलोड करना । यह पायथन के लिए नवीनतम आर्किस एपीआई का उपयोग करता है जो किसी भी वेब जीआईएस के साथ सीधे संपर्क करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.