Aranacak bir şey yazın...

Kod

Bu sayfada, müşterilerimizle coğrafi işleme ve diğer görevlerin otomatikleştirilmesinde yardımcı olmak için paylaştığımız bazı yararlı kodlar gösterilmektedir. Bu diğer görevlerin bir örneği, CSV dosyalarına çıktısı alınabilecek veri envanteri listeleri oluşturarak veri denetimini içerir. Örneğin, buraya, bir dizindeki birden fazla dosya coğrafi veri tabanındaki uzamsal verilere ilişkin tüm meta verileri listeleyen ve ardından sonuçları bir CSV dosyasına çıkaran bir komut dosyası ekledik. Eksik meta verileri toplu olarak güncellemek için ikinci bir komut dosyası çalıştırılabilir.

Aşağıdaki listede görmek istediğiniz bir komut dosyası varsa, lütfen bize bir mesaj gönderin çünkü bunlar gibi yüzlerce komut dosyası yazdık ve zaten istediğinizi yapan bir komut dosyamız olabilir veya komut dosyasını sizin için yazabiliriz. Aynı şekilde bu scriptlerin birçoğu ArcPy kullanıyor, ancak gerekirse bu scriptlerden herhangi birini ArcPy olmadan yeniden yazabiliriz ve bazı durumlarda, bazı scriptleri ArcPy olmadan zaten yazdık, böylece ArcGIS yazılımınız yoksa bunları kullanabilirsiniz.

Tüm Python scriptlerimiz Python 3 kullanıyor ve IDE'miz için Visual Studio Code kullanıyoruz. Komut dosyalarından herhangi birini çalıştırırken herhangi bir sorunla karşılaşırsanız lütfen bize bildirin ve verileri değiştiren bu komut dosyalarından herhangi birini çalıştırırken, değişikliklerinizi geri almanız gerekebileceği ihtimaline karşı verilerinizi yedeklemenin önemli olduğunu unutmayın.

Tüm Kurumsal Coğrafi Veritabanlarını ve Özellik Sınıflarını ve bunların Meta Verilerini listeleyin

#

Bu komut dosyası meta verileri denetlemek için kullanışlıdır. Komut dosyası birden fazla enterprise coğrafi veri tabanında çalıştırılabilir ve şu sütunlarla bir çıktı CSV dosyası oluşturur: 'Coğrafi Veritabanı', 'Özellik Veri Kümesi', 'Özellik Sınıfı', 'Uzamsal Referans', 'Satır Sayısı', 'Sütun Sayısı', 'Meta Veri Başlığı', 'Meta Veri Açıklaması', 'Meta Veri Özeti', 'Meta Veri Kredi', 'Meta Veri Erişim Kısıtlamaları'.

Bu betiği kullanmak için, Satır 19'u SDE bağlantı dosyalarınızı işaret edecek şekilde değiştirmeniz gerekir.

import csv
import os

from arcpy import Describe
from arcpy import env
from arcpy import GetCount_management
from arcpy import ListDatasets
from arcpy import ListFeatureClasses
from arcpy import ListFields
from arcpy import metadata as md

# the output CSV file name
output_csv_file = 'enterprise_gdbs_results.csv'

# or use this to make the output CSV file name the same as the script name
# output_csv_file = os.path.basename(__file__).replace('.py','.csv')

# change this path to use your SDE connection files
sde_connection_files = 'c:/gis/sde_connection_files'

with open(output_csv_file,'w',newline='') as csv_file:
    csv_writer = csv.writer(csv_file, delimiter=',')
    column_headers = [
        'Geodatabase', 'Feature Dataset', 'Feature Class', 
        'Spatial Reference', 'Row Count', 'Column Count', 
        'Metadata Title', 'Metadata Description', 'Metadata Summary',
        'Metadata Credits', 'Metadata Access Constraints'
    ]
    
    csv_writer.writerow(column_headers)

    for (folder, dirs, files) in os.walk(sde_connection_files):
        for file in files:
            if(not file.startswith('_') and file.endswith('.sde')):
                geodatabase = file.split('@')[1]

                wksp = os.path.join(folder,file)
                env.workspace = wksp

                datasets = ListDatasets(feature_type='feature')
                datasets = [''] + datasets if datasets is not None else []

                for dataset in datasets:
                    for feature_class in ListFeatureClasses(dataset):
                        desc = Describe(feature_class)
                        spatial_reference = desc.SpatialReference.factoryCode
                        count = GetCount_management(feature_class)[0]
                        column_count = len(ListFields(feature_class))
                        metadata = md.Metadata(feature_class)

                        row = [
                            geodatabase,dataset,feature_class,
                            spatial_reference,count,column_count,
                            metadata.title,metadata.description,
                            metadata.summary,metadata.credits,
                            metadata.accessConstraints    
                        ]

                        print(row)
                        
                        csv_writer.writerow(row)