Listen Sie alle Enterprise-Geodatabases und Feature-Classes sowie deren Metadaten auf
#Dieses Skript ist nützlich für die Prüfung von Metadaten. Das Skript kann über mehrere enterprise Geodatabases hinweg ausgeführt werden und erstellt eine Ausgabe-CSV-Datei mit den folgenden Spalten: „Geodatabase“, „Feature Dataset“, „Feature Class“, „Spatial Reference“, „Zeilenanzahl“, „Spaltenanzahl“, „Metadatentitel“, „Metadatenbeschreibung“, „Metadatenzusammenfassung“, „Metadatennachweise“, „Metadatenzugriff“. Einschränkungen‘.
Um dieses Skript zu verwenden, müssen Sie Zeile 19 ändern, um auf Ihre SDE-Verbindungsdateien zu verweisen.
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)