أكثر

توقف قص البرنامج النصي Python النقطية فجأة؟

توقف قص البرنامج النصي Python النقطية فجأة؟


لقد قمت بإنشاء أداة في ArcGIS استنادًا إلى نص Python النصي الذي سيقطع مجموعة بيانات نقطية كبيرة إلى مربعات أصغر استنادًا إلى فئة معالم مضلع شبكة صيد السمك. يتكرر البرنامج النصي من خلال كل ميزة في شبكة صيد السمك ويستخدم الميزة المحددة لقص البيانات النقطية. لسبب ما ، يستمر في التوقف بعد السمة 58 (هناك 89 إجماليًا). حاولت استخدامه على خطوط نقطية مختلفة ولكن مع نفس المعلمات وتوقف بعد الميزة 53. أي فكرة لماذا هذا يحدث؟

هنا هو الرمز ذو الصلة

للعمل في شبكة صيد السمك: arcpy.SelectLayerByAttribute_management ("fishnetlayer"، "NEW_SELECTION"، '"FID" =' + str (select)) arcpy.Clip_management (inRaster، "#"، "BE_Seg_" + str (بلاط) + ". png ">

حسنًا ، مجرد طلقة في الظلام ، ولكن بدلاً من

للفذ في شبكة صيد السمك: #etc

حاول التكرار مع هذا:

cnt = int (arcpy.GetCount_management ("fishnetlayer"). getOutput (0)) لـ i in range (cnt): arcpy.SelectLayerByAttribute_management ("fishnetlayer"، "NEW_SELECTION"، '"FID" =' + str (i)) #إلخ

يجب أن يعمل ذلك لأنني يصدق أن ملفات الأشكال تحتوي دائمًا على ترقيم FID تسلسلي حتى إذا تم حذف ميزة (على عكس فئات ميزات .gdb ، حيث تحتفظ الميزة بـ OBJECTID الأصلي إلى الأبد).

على أي حال ، إذا لم تكن مشكلة في الذاكرة مثل @ Alex Tereshenkov المذكورة ، فإن الأمر يستحق فحص بنية الحلقات الخاصة بك.


كحل بديل ، يمكنك استخدام أداة Split Raster (إدارة البيانات) للقيام بذلك. فيما يلي مثال أساسي ، على الرغم من أنه يمكنك ضبط المعلمات لتشمل المربعات المتداخلة ، إلخ.

import arcpy، os outws = r'C:  temp  split_raster 'raster = r'C:  temp  split_raster  yourRaster.tif' fishnet = r'C:  temp  split_raster  fishnet.shp 'arcpy.SplitRaster_management (raster ، outws، os.path.basename (raster) .split (".") [0]، "POLYGON_FEATURES"، "TIFF"، split_polygon_feature_class = شبكة صيد السمك)

شاهد الفيديو: حل شامل ل مشكل توقف البرامج و الالعاب عن العمل program has stopped working