أكثر

الوصول إلى امتداد Spatial Analyst من البرنامج النصي المستقل؟

الوصول إلى امتداد Spatial Analyst من البرنامج النصي المستقل؟


إذا قمت بتشغيل هذا البرنامج النصي:

استيراد Arcpy arcpy.AddMessage (arcpy.CheckExtension ("Spatial")) من arcpy.sa استيراد Con من arcpy import env fDir = r'd:  scratch  fdir 'outFolder = r'd:  aerials  images' env.workspace = outFolder fDir = arcpy.Raster (fDir) Gter = Con (fDir> 1،2) Gter.save ("TEST")

الناتج من ArcGIS هو:

عندما أقوم بتشغيله كنص مستقل ، فإن القصة مختلفة تمامًا:

كيف يمكنني الوصول إلى امتداد Spatial Analyst من برنامج نصي مستقل؟


الطريقة التي أستخدمها هي:

if arcpy.CheckExtension ("Spatial") == "Available": arcpy.AddMessage ("Checking out Spatial") arcpy.CheckOutExtension ("Spatial") else: arcpy.AddError ("تعذر الحصول على امتداد المحلل المكاني") arcpy. AddMessage (Arcpy.GetMessages (0)) sys.exit (0)

ثم في نهاية النص:

arcpy.CheckInExtension ("المكانية")

وهو ما قاله كين بشكل عام ، يبدو أن المشكلة هنا هي أنه لسبب خارجي لا يمكن لـ Arcpy الحصول على ترخيص ... عند استخدامarcpy.saفي نص برمجي مستقل ، من الممكن أن يكون لديك أكثر من ترخيص تم التحقق منه (ربما يكون هذا خطأ يستحق إبلاغ Esri) ... تحقق من مدير المهام لديك للتأكد من عدم وجود ArcCatalog / ArcMap نصف معطل وما زال يحمل ترخيصًا ونوافذ نصية بها لم يتم الخروج منه وكذلك المحررين الذين قاموا باستيراد Arcpy (يقوم PyWin بذلك إذا كنتاستيراد آركبيفي النافذة التفاعلية).

أسوأ حالة إعادة تشغيل جهاز الكمبيوتر الخاص بك ... إنه لأمر مدهش كم عدد الأشياء التي يتم إصلاحها.


أعتقد أنه يجب عليك أيضًا التحقق من التمديد.

استيراد نظام استيراد arcpy إذا كان arcpy.CheckExtension ("Spatial") == "Available": arcpy.CheckOutExtension ("Spatial") من arcpy.sa استيراد Con من arcpy import env fDir = r'd:  scratch  fdir 'outFolder = r'd:  aerials  images 'env.workspace = outFolder fDir = arcpy.Raster (fDir) Gter = Con (fDir> 1،2) Gter.save ("TEST") else: arcpy.AddMessage ("لا يوجد محلل مكاني" ملحق متوفر. ") sys.exit (0)