Daha çox

Arcpy təkrarlanan sahə adları, yeni xüsusiyyət sinifləri yaratmaq üçün dəyərlər

Arcpy təkrarlanan sahə adları, yeni xüsusiyyət sinifləri yaratmaq üçün dəyərlər


Sahələr siyahısından seçimlər əsasında yeni xüsusiyyət sinifləri yaratmaq istəyirəm. Hələlik seçim meyarları üçün GetParamatersAsText əvəzinə bir istifadəçi istəyi istifadə edirəm. Sahə siyahısından ilk sahə adını axtarmaq və sonra dəyərlər siyahısında ilk dəyəri axtarmaq, seçim etmək və sonra seçim adı = mövcud sahə adı və seçimi əsasında yeni bir xüsusiyyət sinfi yaratmaq üçün skriptə ehtiyacım var. "" & cari seçim dəyəri. Sonra ssenari növbəti seçim dəyərini axtarıb cari sahəyə tətbiq etməlidir və s. Seçim dəyərləri olmadıqda, skript növbəti sahənin adına keçir və yenidən ilk seçim dəyərinə əsasən seçim edir və seçim seçimləri və ya sahə adları olmayana qədər davam edir.

#designate tower yaradılan xidmət yeri SL = r "J:  workspace  Crown_Geocode  gisdb  təbəqələri.gdb  Rt8_15" # Rota nömrələrini seçin rtlist = [] True: route = raw_input ("Route Number (bitdikdə enter düyməsini basın: ") rtlist.append (marşrut) əgər marşrut =" ": fasilə # marşrut nömrəsinə və xidmət gününə əsasən yeni xüsusiyyət sinifləri yaradın arcpy.MakeFeatureLayer_management (" Rt8_15 "," Copy_Rt8_15 ") sahələri = (" MonRoute "," TueRoute " , "WedRoute", "ThuRoute", "FriRoute") sahələrdəki sahə, marşrutlardakı marşrut: arcpy.SelectLayerByAttribute_management ("Copy_Rt8_15", "NEW_SELECTION", 'field = route') arcpy.CopyFeatures_management ("Copy_Rt8" ????)

Nəticədə GetParametersAsText istifadə etmək istədiyimi qeyd etməliyəm.


Arcpy-də SQL ifadələrini qurmağa baxmalısınız. Həm də çıxış adınızı yaratmaq, simli manipulyasiya məsələsidir. Həmişə istifadə etməyi sevirəm.format (…)belə hallarda. SQL sorğunuzu yaradın və yeni xüsusiyyətlərinizi ixrac etmək üçün seçin. Yol modu üçün os modulundan istifadə etmək də faydalıdır.

import os import arcpy outLocation = r "J:  workspace  Crown_Geocode  gisdb  layer.gdb" # Burada aralıq skript ... arcpy.MakeFeatureLayer_management ("Rt8_15", "Copy_Rt8_15") fields = ("MonRoute", "TueRout" Sahələrdə sahə üçün WedRoute "," ThuRoute "," FriRoute "): marşrutlarda marşrut üçün: # Sahə ayırıcıları əlavə et delimFld = arcpy.AddFieldDelimiters (" Copy_Rt8_15 ", field) # Out name getName =" {0} _ {1 } ". format (sahə, marşrut) outFc = os.path.join (outLocation, outName) # Marşrutlar nömrələrdirsə: cəhd edin: sql =" {0} = {1} ". format (delimFld, route) arcpy.Select_analysis ("Copy_Rt8_15", outFc, sql) # rutlar xaricində sətirlərdir: sql = "{0} = '{1}'". Format (delimFld, route) arcpy.Select_analysis ("Copy_Rt8_15", outFc, sql) print "Created : ", outName

Videoya baxın: GEG4301 M6 ArcPy Mapping Module