Daha çox

Formalı bir sənəddə bütün sahələr üçün bütün boş qeydləri tapın


ArcGIS 10.3 atribut pəncərəsində bir sütunda sahə kalkulyatorunu aşağıdakı şəkildə istifadə edə biləcəyimi düşündüm:

def RemoveNULL (x): x Xeyrdirsə: return "elif x ==": return '0' else: return x RemoveNULL (str (! myxField!))

Həqiqətən etmək istədiyim bir shapefile'deki bütün sahələr üçün null qeydləri tapmaq üçün bir yol tapmaq (həqiqətən boş və ya) və onları sıfıra dəyişdirmək, lakin digər dəyərləri qorumaq (ikiqat və ya int ədədi). mətnə ​​əhəmiyyət vermirəm.


Bu cür şeylər üçün xüsusiyyət qatlarını və seçimlərini istifadə etməyi çox sevirəm. Aşağıda bütün müvafiq sahələrimi tapıram, sonra seçməyə çalışınBoşluqlar / ". Seçim varsa, hesablayıram.

Ssenarisini sınamamışam, buna görə mükəmməl olmaya bilər.

def removeNumericNulls (inFeatureClass): arcpy import # Müvafiq sahə növləri fieldTypes = ["Double", "Single", "Integer", "SmallInteger"] # Get field fields = [] fieldType for fieldTypes: fields + = [f.name ar in in arcpy.ListFields (inFeatureClass, field_type = fieldType)] # sahə sahələri üçün arcpy.MakeFeatureLayer_management (inFeatureClass, "lyr") seçiminə icazə verən #Feature lay: nulls seçmək üçün #SQL fieldDelim = arcpy.AddFieldDelimers (") field) sql = "{} IS NULL VEYA {} =" ". format (fieldDelim) # nulls seçin arcpy.SelectLayerByAttribute_management (" lyr "," ", sql) # Seçim olmasa keçin / arcpy deyilsə boş dəyər yoxdur. Təsvir ("lyr"). FIDSet: davam edin #Calc field arcpy.CalculateField_management ("lyr", field, "0") arcpy.Delete_management ("lyr")


Videoya baxın: Ömər Cumanov - Oruclu ikən tüpürcək udmaq (Sentyabr 2021).