Mag-type ng hahanapin...

Code

Ang page na ito ay nagpapakita ng ilan sa mga kapaki-pakinabang na code na ibinabahagi namin sa aming mga kliyente upang matulungan sila sa pag-automate ng geoprocessing at iba pang mga gawain. Kasama sa isang halimbawa ng iba pang gawaing ito ang pag-audit ng data sa pamamagitan ng paggawa ng mga listahan ng imbentaryo ng data na maaaring i-output sa mga CSV file. Halimbawa, nagsama kami ng script dito na naglilista ng lahat ng metadata para sa spatial na data sa maraming geodatabase ng file sa isang direktoryo, pagkatapos ay naglalabas ng mga resulta sa isang CSV file. Ang pangalawang script ay maaaring patakbuhin upang i-batch ang pag-update ng anumang nawawalang metadata.

Kung mayroong script na gusto mong makita sa listahan sa ibaba, mangyaring magpadala sa amin ng mensahe dahil nakasulat na kami ng daan-daang script na tulad nito, at maaaring mayroon na kaming script na ginagawa ang gusto mo, o maaari naming isulat ang script para sa iyo. Gayundin, marami sa mga script na ito ang gumagamit ng ArcPy, gayunpaman, maaari naming muling isulat ang alinman sa mga script na ito nang walang ArcPy kung kinakailangan, at sa ilang mga kaso, naisulat na namin ang ilan sa mga script na walang ArcPy, upang magamit mo ang mga ito kung wala kang ArcGIS software.

Lahat ng aming Python script ay gumagamit ng Visual Studio Code, at ang aming IDE ay gumagamit ng Visual Studio Code, at ang aming IDE ay gumagamit ng Visual Studio Code, at kami ay gumagamit ng Visual Studio Code Mangyaring ipaalam sa amin kung mayroon kang anumang mga isyu sa pagpapatakbo ng alinman sa mga script, at tandaan kapag nagpapatakbo ng alinman sa mga script na ito na nagbabago ng data, mahalagang i-back up ang iyong data kung sakaling kailanganin mong ibalik ang iyong mga pagbabago.

Ilista ang lahat ng Enterprise Geodatabase at Feature Class, at ang Metadata ng mga ito

#

Ang script na ito ay kapaki-pakinabang para sa pag-audit ng metadata. Ang script ay maaaring patakbuhin sa maraming enterprise geodatabase, at gagawa ng output na CSV file na may mga column na ito: 'Geodatabase', 'Feature Dataset', 'Feature Class', 'Spatial Reference', 'Row Count', 'Column Count', 'Metadata Title', 'Metadata Title', 'Metadata Title', 'Metadata Title' Credits', 'Metadata Access Constraints'.

Upang gamitin ang script na ito, kailangan mong baguhin ang Linya 19 upang tumuro sa iyong mga SDE connection file.

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)