برای جستجو چیزی تایپ کنید...

کد

این صفحه برخی از کدهای مفیدی را نشان می دهد که با مشتریان خود به اشتراک می گذاریم تا به آنها در خودکارسازی پردازش جغرافیایی و سایر وظایف کمک کنیم. نمونه ای از این وظایف دیگر شامل ممیزی داده ها با ایجاد لیست های موجودی داده است که می تواند به فایل های CSV خروجی شود. به عنوان مثال، ما یک اسکریپت را در اینجا قرار داده ایم که تمام ابرداده های داده های مکانی را در پایگاه های جغرافیایی چند فایل در یک فهرست فهرست می کند، سپس نتایج را به یک فایل CSV خروجی می دهد. سپس می‌توان یک اسکریپت دوم را برای به‌روزرسانی دسته‌ای هر متادیتای گمشده اجرا کرد.

اگر اسکریپتی وجود دارد که می‌خواهید در لیست زیر مشاهده کنید، لطفاً برای ما پیام ارسال کنید، زیرا ما صدها اسکریپت از این قبیل را نوشته‌ایم، و ممکن است از قبل اسکریپتی داشته باشیم که آنچه شما می‌خواهید را انجام می‌دهد، یا می‌توانید اسکریپت را برای آن بنویسید. به همین ترتیب بسیاری از این اسکریپت ها از ArcPy استفاده می کنند، با این حال، در صورت نیاز می توانیم هر یک از این اسکریپت ها را بدون ArcPy بازنویسی کنیم، و در برخی موارد، قبلاً برخی از اسکریپت ها را بدون ArcPy نوشته ایم تا اگر نرم افزار ArcGIS ندارید، بتوانید از آنها استفاده کنید. کد استودیو برای IDE ما. لطفاً اگر در اجرای هر یک از اسکریپت‌ها مشکلی دارید به ما اطلاع دهید و به یاد داشته باشید که هنگام اجرای هر یک از این اسکریپت‌ها که داده‌ها را تغییر می‌دهند، مهم است که از داده‌های خود نسخه پشتیبان تهیه کنید تا در صورت نیاز به بازگرداندن تغییرات خود به عقب برگردید.

فهرستی از پایگاه‌های جغرافیایی سازمانی و کلاس‌های ویژگی، و فراداده‌های آنها

#

این اسکریپت برای ممیزی ابرداده مفید است. این اسکریپت را می توان در چندین پایگاه جغرافیایی enterprise اجرا کرد، و یک فایل CSV خروجی با این ستون ها ایجاد می کند: "Geodatabase"، "Feature Dataset"، "Feature Class"، "Spatial Reference"، "Row Count"، "Colum CountMatait, "ColumMatale" توضیحات'، 'خلاصه فراداده'، 'اعتبارات فراداده'، 'محدودیت های دسترسی به فراداده'.

برای استفاده از این اسکریپت، باید خط 19 را تغییر دهید تا به فایل های اتصال SDE شما اشاره کند.

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)