Günlük işlerimizde oldukça fazla kullandığımız “file geodatabase” yani “gdb” uzantılı dosyalarımızda bulunan subtype ve domain sayılarını Python kodu ile hızlı bir şekilde bulabiliriz.

Üzerinde işlem yapılacak “gdb” dosyasını kullanıcının seçmesini sağlayabilir veya doğrudan dosya yolunu tanımlayabilirsiniz. Aşağıdaki örnekte kullanıcı tarafından seçilebilecek bir parametre olarak tanımlanmıştır.

gdb = arcpy.GetParameterAsText(0)

Domain listesini oluşturmak

İlk olarak belirtilen “gdb” dosyasındaki domain listesini alalım.

desc = arcpy.Describe(gdb)
domains = desc.domains

Bu noktadan sonra;

for domain in domains:

döngüsü ile domain bilgilerini yazdırabilir veya görüntüleyebilirsiniz.

Not: Eğer yazdığınız kodu ArcToolbox içinde kullanacaksanız;

print (msg)

komutu işe yaramayacaktır. Bu komut ancak ArcMap’in Python penceresinde kullanılabilir.

Subtype sayısını öğrenmek

arcpy.env.workspace = gdb
Tsubtype = 0
for dataset in arcpy.ListDatasets():
    for fcls in arcpy.ListFeatureClasses('','',dataset):
        fcls_path = os.path.join(gdb, fcls)
        subtypes = arcpy.da.ListSubtypes(fcls_path)
        for subtype in subtypes:
            Tsubtype = Tsubtype + 1

döngüsü ile subtype sayısını yazdırabilir veya görüntüleyebilirsiniz.

Not: Eğer yazdığınız kodu ArcToolbox içinde kullanacaksanız;

print (msg)

komutu işe yaramayacaktır. Bu komut ancak ArcMap’in Python penceresinde görüntülenebilir.

Domain ve değerlerini öğrenmek

Tdomain = 0
Tvalue = 0
domains2 = arcpy.da.ListDomains(gdb)
for domain in domains2:
    Tdomain = Tdomain + 1
    coded_values = domain.codedValues
    for val, desc in coded_values.items():
        Tvalue = Tvalue + 1

Yukarıdaki içi içe bulunan döngüden “Tdomain” değeri ile Domain sayısını, “Tvalue” değeri ile Domain değerlerinin sayısını öğrenebilirsiniz.

Esri Türkiye, 2019

Share This