Nhập nội dung để tìm kiếm...

Mã số

Trang này hiển thị một số mã hữu ích mà chúng tôi chia sẻ với khách hàng của mình để giúp họ tự động hóa xử lý địa lý và các tác vụ khác. Một ví dụ về các tác vụ khác này bao gồm kiểm tra dữ liệu bằng cách tạo danh sách kiểm kê dữ liệu có thể xuất ra tệp CSV. Ví dụ: chúng tôi đã đưa vào đây một tập lệnh liệt kê tất cả siêu dữ liệu cho dữ liệu không gian trong nhiều cơ sở dữ liệu địa lý tệp trong một thư mục, sau đó xuất kết quả thành tệp CSV. Sau đó, tập lệnh thứ hai có thể được chạy để cập nhật hàng loạt bất kỳ siêu dữ liệu bị thiếu nào.

Nếu có tập lệnh mà bạn muốn xem trong danh sách bên dưới, vui lòng gửi tin nhắn cho chúng tôi vì chúng tôi đã viết hàng trăm tập lệnh như thế này và chúng tôi có thể đã có tập lệnh thực hiện những gì bạn muốn hoặc chúng tôi có thể viết tập lệnh cho bạn. Tương tự như vậy, nhiều tập lệnh trong số này sử dụng ArcPy, tuy nhiên, chúng tôi có thể viết lại bất kỳ tập lệnh nào trong số này mà không cần ArcPy nếu cần và trong một số trường hợp, chúng tôi đã viết một số tập lệnh không có ArcPy để bạn có thể sử dụng chúng nếu không có phần mềm ArcGIS.

Tất cả các tập lệnh Python của chúng tôi đều sử dụng Python 3 và chúng tôi sử dụng Visual Studio Code cho IDE của mình. Vui lòng cho chúng tôi biết nếu bạn gặp bất kỳ sự cố nào khi chạy bất kỳ tập lệnh nào và hãy nhớ rằng khi chạy bất kỳ tập lệnh nào sửa đổi dữ liệu, điều quan trọng là phải sao lưu dữ liệu của bạn trong trường hợp bạn cần hoàn nguyên các thay đổi của mình.

Liệt kê tất cả các Cơ sở dữ liệu địa lý doanh nghiệp và các lớp tính năng cũng như Siêu dữ liệu của chúng

#

Tập lệnh này hữu ích cho việc kiểm tra siêu dữ liệu. Tập lệnh có thể chạy trên nhiều cơ sở dữ liệu địa lý enterprise và sẽ tạo tệp CSV đầu ra với các cột sau: 'Cơ sở dữ liệu địa lý', 'Tập dữ liệu tính năng', 'Lớp đối tượng', 'Tham chiếu không gian', 'Đếm hàng', 'Số cột', 'Tiêu đề siêu dữ liệu', 'Mô tả siêu dữ liệu', 'Tóm tắt siêu dữ liệu', 'Tín dụng siêu dữ liệu', 'Truy cập siêu dữ liệu' Ràng buộc'.

Để sử dụng tập lệnh này, bạn cần thay đổi Dòng 19 để trỏ đến tệp kết nối SDE của mình.

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)