أكثر

Arcpy: MakeFeatureLayer_management: أين الملف؟

Arcpy: MakeFeatureLayer_management: أين الملف؟


أحاول فهم Arcpy / python ، وأنا في حيرة من أمري حول مكان وجود ملف الطبقة أثناء العملية.

هذا هو الكود الخاص بي:

import os، sys import arcpy gdb = "C:  Example.gdb" featureClass = "C:  Example.gdb  feature" arcpy.MakeFeatureLayer_management (featureClass، "OutLayer"، "" Field_Name  "= 'الاسم الأول '") arpy.CopyFeatures_management (" Outlayer "،" C:  Example.gdb  test ")

يبدو أن هذا يعمل ، لكنني لا أفهم أين يوجد "Outlayer". إذا قمت بتشغيل الرمز مرة أخرى ، فإنني أتلقى رسالة مفادها أنه لا يمكنني ذلك لأن "Outlayer" موجود بالفعل. إنه ليس في ملف gdb. أو gdb الافتراضي. عندما أحدد مسارًا (على سبيل المثال C: GIS OutLayer) فإنه لا يكون موجودًا. أخيرًا ، عندما أبحث عنه باستخدام مستكشف Windows ، لا يمكنني العثور على الملف. إنه ليس مهمًا ، ولكن مجرد محاولة معرفة ما يجري.


"الطبقة الخارجية" تجلس في الذاكرة. إنه تمثيل طبقة المعالم لفئة المعالم الخاصة بك ، وفي حالتك مجموعة فرعية من الميزات كما قدمت جملة where. فكر في الأمر على أنه طبقة في ArcMap مع استعلام تعريف.

إذا قمت بتعيين ملفarcpy.env.overwriteOutput = صحيحأو حذف المرجع إلى طبقة المعالم بشكل صريح ، فلا يجب أن تواجه أي مشاكل في الكتابة فوقها.

إليك مثال للتوضيح ، يمكنك أن ترى أن طبقة المعالم لها نفس مصدر البيانات وأضفت طريقة لإظهار كيف يمكنك رؤية أي طبقات موجودة في الذاكرة:

>>> استيراد arcpy >>> shp = r'C:  TEMP  UofM_cc.shp '>>> lyr = arcpy.management.MakeFeatureLayer (shp،' temp_layer '). getOutput (0) >>> طباعة lyr.dataSource C:  TEMP  UofM_cc.shp >>> # انظر الطبقات في الذاكرة >>> الطبقات = [globals () [v] لـ v في dir () if isinstance (globals () [v]، arcpy.mapping.Layer) ] >>> طبقات [] >>> # الحصول على أسماء متغيرة للطبقات في الذاكرة >>> layer_vars = [v for v في dir () if isinstance (globals () [v]، arcpy.mapping.Layer)] >>> layer_vars ['lyr' ] >>>

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

عند استخدام أداة Update Diagram على الرسوم التخطيطية التي ينفذها المنشئ القياسي والتي تم إنشاؤها من تتبع شبكة هندسية ، يعمل التحديث من نتيجة التتبع المحدثة بناءً على معلمات التتبع التي استمرت في مجموعة البيانات التخطيطية في المرة الأولى التي تم فيها إنشاء الرسم التخطيطي من أثر مميز.

عندما يجب أن يعمل التحديث من الميزات التي تؤلف شبكة هندسية أو مجموعة بيانات شبكة ، فليس من الضروري تحديد جميع طبقات المعالم في معلمة بيانات الإدخال. إذا تم تحديد خيار إضافة عقد متصلة لخصائص Standard Builder ، فيمكن تحديد طبقات المعالم المتعلقة بميزات الحافة أو عناصر شبكة الحافة فقط ، حتى إذا كانت جميع طبقات المعالم المتعلقة بالشبكة الهندسية أو مجموعة بيانات الشبكة (الوصلات والحواف) سوف تستخدم للتحديث.

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


الطبقة الموجودة في الذاكرة أو ملف الطبقة المخزن على القرص أو طبقة المعالم في ArcMap ليتم حفظها على القرص كملف طبقة (.lyr).

ملف طبقة الإخراج (.lyr) المراد إنشاؤه.

يحدد ما إذا كان ملف طبقة الإخراج (.lyr) سيخزن مسارًا نسبيًا لبيانات المصدر المخزنة على القرص ، أو المسار المطلق.

  • مطلق - سيخزن ملف طبقة الإخراج مسارًا مطلقًا لبيانات المصدر المخزنة على القرص. هذا هو الافتراضي.
  • نسبي - ملف طبقة الإخراج سيخزن مسارًا نسبيًا لبيانات المصدر المخزنة على القرص. إذا تم نقل ملف طبقة الإخراج ، فسيتم تحديث مسار المصدر الخاص به إلى حيث يجب أن تكون بيانات المصدر فيما يتعلق بالمسار الجديد.

إصدار ملف الطبقة الذي سيتم حفظ الإخراج به. الافتراضي هو CURRENT.