أكثر

أسماء الحقول المتكررة ، والقيم لإنشاء فئات معالم جديدة

أسماء الحقول المتكررة ، والقيم لإنشاء فئات معالم جديدة


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

#designate إنشاء البرج طبقة موقع الخدمة SL = r "J:  workspace  Crown_Geocode  gisdb  Layers.gdb  Rt8_15" # حدد أرقام المسار rtlist = [] بينما True: route = raw_input ("رقم المسار (اضغط إدخال عند الانتهاء: ") rtlist.append (المسار) إذا كان المسار =" ": break #create new features class classes بناءً على رقم المسار ويوم الخدمة arcpy.MakeFeatureLayer_management (" Rt8_15 "،" Copy_Rt8_15 ") الحقول = (" MonRoute "،" TueRoute " ، "WedRoute"، "ThuRoute"، "FriRoute") للحقل في الحقول ، التوجيه في المسارات: arcpy.SelectLayerByAttribute_management ("Copy_Rt8_15"، "NEW_SELECTION"، 'field = route') arcpy.CopyFeatures_management ("Copy_Rt8_15"، ؟؟ ؟؟؟؟)

يجب أن أشير إلى أنني سأرغب في النهاية في استخدام GetParametersAsText.


يجب أن تبحث في بناء تعبيرات SQL في Arcpy. أيضًا ، يعد إنشاء اسم الإخراج الخاص بك مسألة معالجة في السلسلة. أنا دائما أحب استخدام.صيغة (… )في مثل هذه الحالات. قم بإنشاء استعلام SQL الخاص بك واستخدم التحديد لتصدير الميزات الجديدة. يعد استخدام وحدة نظام التشغيل للتتبع مفيدًا أيضًا.

استيراد نظام التشغيل arcpy outLocation = r "J:  workspace  Crown_Geocode  gisdb  Layers.gdb" # البرمجة النصية المتوسطة هنا ... arcpy.MakeFeatureLayer_management ("Rt8_15"، "Copy_Rt8_15") الحقول = ("MonRoute"، "TueRoute"، " WedRoute "،" ThuRoute "،" FriRoute ") للحقل في الحقول: للتوجيه في المسارات: # إضافة محددات الحقول delimFld = arcpy.AddFieldDelimiters (" Copy_Rt8_15 "، field) # Get out name outName =" {0} _ {1 } ". format (field، route) outFc = os.path.join (outLocation، outName) #If المسارات هي أرقام: جرب: sql =" {0} = {1} ". format (delimFld، route) arcpy.Select_analysis ("Copy_Rt8_15"، outFc، sql) #routes هي سلاسل باستثناء: sql = "{0} = '{1}'". تنسيق (delimFld، route) arcpy.Select_analysis ("Copy_Rt8_15"، outFc، sql) print "Created : "، outName