मेरे पास पायथन कोड है जिसे निम्नलिखित वर्कफ़्लो के माध्यम से पॉइंट शेपफाइल्स लेने के लिए डिज़ाइन किया गया है:
- अंक मिलाएं
- एकीकृत अंक, जैसे कि एक दूसरे के 1 मीटर के भीतर कोई भी बिंदु एक बिंदु बन जाता है
- फ़ीचर लेयर बनाएँ, जहाँ z <10 वाले पॉइंट चुने गए हैं
- बफर अंक
- बहुभुज 1 मीटर रिज़ॉल्यूशन को रेखापुंज करने के लिए
- पुनर्वर्गीकृत करें, जहां 1 - 9 = 1; NoData = 0
प्रत्येक शेपफाइल में लगभग 250,000 से 350,000 अंक होते हैं जो ~ 5x7 किमी को कवर करते हैं। इनपुट के रूप में उपयोग किए जाने वाले बिंदु डेटा पेड़ के स्थानों का प्रतिनिधित्व करते हैं। प्रत्येक बिंदु (यानी पेड़) का एक संबद्ध "z" मूल्य है जो मुकुट त्रिज्या का प्रतिनिधित्व करता है और बफर प्रक्रिया में उपयोग किया जाता है। मेरा इरादा एक अलग प्रक्रिया में अंतिम बाइनरी आउटपुट का उपयोग करने के लिए चंदवा कवर का वर्णन करने वाले एक रेखापुंज का उत्पादन करना है।
मैंने चार शेपफाइल्स के साथ एक परीक्षण चलाया और इसने 700MB का रास्टर तैयार किया और 35 मिनट (i5 प्रोसेसर और 8 जीबी रैम) लिया। यह देखकर कि मुझे इस प्रक्रिया को 3500 आकार-प्रकार पर चलाने की आवश्यकता होगी, मैं इस प्रक्रिया को कारगर बनाने के लिए किसी भी सलाह की सराहना करूंगा (संलग्न कोड देखें)। सामान्यतया, जियोप्रोसेसिंग बड़े डेटा से निपटने का सबसे अच्छा तरीका क्या है? अधिक विशेष रूप से, क्या कोड या वर्कफ़्लो में कोई जुड़वाँ हैं जो दक्षता बढ़ाने में मदद कर सकते हैं?
संपादित करें :
भूगर्भिक कार्यों के लिए समय (कुल का%):
- मर्ज = 7.6%
- एकीकृत = 7.1%
- लिर = 0 की सुविधा
- बफर = 8.8%
- पॉली टू रैस्टर = 74.8%
- Reclassify = 1.6%
# Import arcpy module
import arcpy
# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")
# Script arguments
temp4 = arcpy.GetParameterAsText(0)
if temp4 == '#' or not temp4:
temp4 = "C:\\gdrive\\temp\\temp4" # provide a default value if unspecified
Reclassification = arcpy.GetParameterAsText(1)
if Reclassification == '#' or not Reclassification:
Reclassification = "1 9 1;NODATA 0" # provide a default value if unspecified
Multiple_Value = arcpy.GetParameterAsText(2)
if Multiple_Value == '#' or not Multiple_Value:
Multiple_Value = "C:\\t1.shp;C:\\t2.shp;C:\\t3.shp;C:\\t4.shp" # provide a default value if unspecified
# Local variables:
temp_shp = Multiple_Value
Output_Features = temp_shp
temp2_Layer = Output_Features
temp_Buffer = temp2_Layer
temp3 = temp_Buffer
# Process: Merge
arcpy.Merge_management(Multiple_Value, temp_shp, "x \"x\" true true false 19 Double 0 0 ,First,#,C:\\#########omitted to save space
# Process: Integrate
arcpy.Integrate_management("C:\\gdrive\\temp\\temp.shp #", "1 Meters")
# Process: Make Feature Layer
arcpy.MakeFeatureLayer_management(temp_shp, temp2_Layer, "z <10", "", "x x VISIBLE NONE;y y VISIBLE NONE;z z VISIBLE NONE;Buffer Buffer VISIBLE NONE")
# Process: Buffer
arcpy.Buffer_analysis(temp2_Layer, temp_Buffer, "z", "FULL", "ROUND", "NONE", "")
# Process: Polygon to Raster
arcpy.PolygonToRaster_conversion(temp_Buffer, "BUFF_DIST", temp3, "CELL_CENTER", "NONE", "1")
# Process: Reclassify
arcpy.gp.Reclassify_sa(temp3, "Value", Reclassification, temp4, "DATA")