Ketik sesuatu untuk dicari...

Kode

Halaman ini menunjukkan beberapa kode berguna yang kami bagikan dengan klien kami untuk membantu mereka mengotomatiskan geoproses dan tugas lainnya. Contoh tugas lainnya mencakup audit data dengan membuat daftar inventaris data yang dapat dihasilkan ke file CSV. Misalnya, kami telah menyertakan skrip di sini yang mencantumkan semua metadata untuk data spasial dalam beberapa file geodatabase dalam sebuah direktori, kemudian menampilkan hasilnya ke file CSV. Skrip kedua kemudian dapat dijalankan untuk memperbarui metadata yang hilang secara massal.

Jika ada skrip yang ingin Anda lihat dalam daftar di bawah, silakan kirimkan pesan kepada kami karena kami telah menulis ratusan skrip seperti ini, dan kami mungkin sudah memiliki skrip yang sesuai dengan keinginan Anda, atau kami dapat menulis skrip tersebut untuk Anda. Begitu juga dengan banyak skrip yang menggunakan ArcPy, namun, kami dapat menulis ulang skrip mana pun tanpa ArcPy jika diperlukan, dan dalam beberapa kasus, kami telah menulis beberapa skrip tanpa ArcPy, sehingga Anda dapat menggunakannya jika Anda tidak memiliki perangkat lunak ArcGIS.

Semua skrip Python kami menggunakan Python 3, dan kami menggunakan Visual Studio Code untuk IDE kami. Harap beri tahu kami jika Anda mengalami masalah saat menjalankan salah satu skrip, dan ingat saat menjalankan salah satu skrip yang mengubah data ini, penting untuk mencadangkan data Anda jika Anda perlu mengembalikan perubahan Anda.

Cantumkan semua Geodatabase Perusahaan dan Kelas Fitur, serta Metadatanya

#

Skrip ini berguna untuk mengaudit metadata. Skrip ini dapat dijalankan di beberapa geodatabase enterprise, dan akan membuat file CSV keluaran dengan kolom berikut: 'Geodatabase', 'Set Data Fitur', 'Kelas Fitur', 'Referensi Spasial', 'Jumlah Baris', 'Jumlah Kolom', 'Judul Metadata', 'Deskripsi Metadata', 'Ringkasan Metadata', 'Kredit Metadata', 'Metadata Batasan Akses'.

Untuk menggunakan skrip ini, Anda perlu mengubah Baris 19 agar menunjuk ke file koneksi SDE Anda.

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)