أكثر

نقطة الاختبار في أداء تراكب المضلع لـ Intersect و Spatial Join و Near in ArcGIS for Desktop؟

نقطة الاختبار في أداء تراكب المضلع لـ Intersect و Spatial Join و Near in ArcGIS for Desktop؟


في الإجابات والتعليقات ، حدد نقاطًا داخل مضلع وقم بتحديث السمات فكر في يقترح أن الارتباط المكاني (التحليل) و / أو القريب (التحليل) يمكن أسرع من التقاطع (التحليل) لإجراء نقطة في تراكب المضلع لنقل سمات المضلع إلى النقاط التي تتقاطع معها.

لقد فاجأني هذا لأنني كنت أتوقع دائمًا أن يكون Intersect أسرع قليلاً من Spatial Join ، وأعتقد أنه سيكون أسرع بكثير من القريب. لسوء الحظ ، ليس لدي ترخيص المستوى المتقدم لـ ArcGIS for Desktop لذلك لا يمكنني اختبار الأداء بالقرب.

هل لدى أي شخص اختبار قابل للتكرار يشير إلى أن الارتباط القريب و / أو الارتباط المكاني أسرع من التقاطع؟

سأقدم كإجابة على الاختبار الذي أجريته على Intersect vs Spatial Join حيث أقوم بإنشاء شبكة صيد 10 × 10 من المضلعات وشبكة صيد 100 × 100 من النقاط التي تغطي نفس النطاق (0،0،10،10) ثم إجراء تقاطع الفانيليا و وصلة الفانيليا المكانية (تقاطع) للاثنين.


يشير الاختبار السريع الذي أجريته ، باستخدام ArcGIS 10.2.2 لسطح المكتب على نظام التشغيل Windows 7 SP1 ، إلى أن التقاطع أسرع من الانضمام المكاني.

يتم تشغيل هذا الاختبار من IDLE:

استيراد arcpy ، الوقت إن لم يكن arcpy.Exists (r "C:  temp  test.gdb"): arcpy.CreateFileGDB_management (r "C:  temp"، "test.gdb") إذا كان arcpy موجودًا (r "C:  temp  test.gdb  fnPoly100 "): arcpy.Delete_management (r" C:  temp  test.gdb  fnPoly100 ") إذا كان Arcpy.Exists (r" C:  temp  test.gdb  fnPoly10000 "): arcpy .Delete_management (r "C:  temp  test.gdb  fnPoly10000") إذا كان Arcpy. موجودًا (r "C:  temp  test.gdb  fnPoint10000"): arcpy.Delete_management (r "C:  temp  test. gdb  fnPoint10000 ") arcpy.CreateFishnet_management (" C: /temp/test.gdb/fnPoly100 "،" 0 0 "،" 0 1 "،" 1 "،" 1 "،" 10 "،" 10 "،" # "،" NO_LABELS "،" # "،" POLYGON ") arcpy.CreateFishnet_management (" C: /temp/test.gdb/fnPoly10000 "،" 0 0 "،" 0 1 "،" 0.1 "،" 0.1 "،" 100 "،" 100 "،" # "،" LABELS "،" # "،" POLYGON ") arcpy.Delete_management (r" C:  temp  test.gdb  fnPoly10000 ") arcpy.Rename_management (" C: / temp /test.gdb/fnPoly10000_label"،"C:/temp/test.gdb/fnPoint10000"،"FeatureClass ") إذا كان arcpy.Exists (r" C:  temp  test.gdb  SpatialJoinResult "): arcpy.Delete_management (r "C:  temp  test.gdb  SpatialJoinResult") start = time.clock () arcpy.SpatialJ oin_analysis ("C: /temp/test.gdb/fnPoint10000" ، "C: /temp/test.gdb/fnPoly100" ، "C: /temp/test.gdb/SpatialJoinResult" ، "JOIN_ONE_TO_ONE" ، "KEEP_ALL" ، " "" Shape_Length "Shape_Length" خطأ صحيح صحيح 8 Double 0 0، First، #، C: /temp/test.gdb/fnPoly100،Shape_Length،-1،-1؛ Shape_Area "Shape_Area" خطأ صحيح صحيح 8 مزدوج 0 0 ، الأول ، #، C: /temp/test.gdb/fnPoly100،Shape_Area،-1،-1 "" "،" INTERSECT "،" # "،" # ") انقضت = (time.clock () - start) print ( "استغرق الارتباط المكاني" + str (انقضاء) + "ثوانٍ") إذا كان arcpy موجودًا (r "C:  temp  test.gdb  IntersectResult"): arcpy.Delete_management (r "C:  temp  test.gdb  IntersectResult ") start = time.clock () arcpy.Intersect_analysis (" C: /temp/test.gdb/fnPoint10000 # ؛ C: /temp/test.gdb/fnPoly100 # "،" C: /temp/test.gdb/ انقضاء IntersectResult "،" ALL "،" # "،" INPUT ") = (time.clock () - start) print (" Intersect أخذ "+ str (المنقضي) +" ثوانٍ ")

أسفرت عن هذه النتائج:

استغرق الانضمام المكاني 3.13998451416 ثانية

استغرق التقاطع 2.3185308145 ثانية

قمت بإجراء اختباري باستخدام التقاطع أولاً عدة مرات ، ثم الانضمام المكاني أولاً عدة مرات ، وكان Intersect دائمًا هو الفائز في هذه البيانات.


شاهد الفيديو: How to join an Excel spreadsheet onto an attribute table in ArcMap