ਖੋਜ ਲਈ ਕੁਝ ਲਿਖੋ...

ਕੋਡ

ਇਹ ਪੰਨਾ ਕੁਝ ਉਪਯੋਗੀ ਕੋਡ ਦਿਖਾਉਂਦਾ ਹੈ ਜੋ ਅਸੀਂ ਆਪਣੇ ਗਾਹਕਾਂ ਨਾਲ ਸਵੈਚਲਿਤ ਜੀਓਪ੍ਰੋਸੈਸਿੰਗ ਅਤੇ ਹੋਰ ਕੰਮਾਂ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ ਸਾਂਝਾ ਕਰਦੇ ਹਾਂ। ਇਹਨਾਂ ਹੋਰ ਕਾਰਜਾਂ ਦੀ ਇੱਕ ਉਦਾਹਰਨ ਵਿੱਚ ਡਾਟਾ ਵਸਤੂ ਸੂਚੀਆਂ ਬਣਾ ਕੇ ਡੇਟਾ ਆਡਿਟਿੰਗ ਸ਼ਾਮਲ ਹੈ ਜੋ CSV ਫਾਈਲਾਂ ਵਿੱਚ ਆਉਟਪੁੱਟ ਹੋ ਸਕਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਅਸੀਂ ਇੱਥੇ ਇੱਕ ਸਕ੍ਰਿਪਟ ਸ਼ਾਮਲ ਕੀਤੀ ਹੈ ਜੋ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਮਲਟੀਪਲ ਫਾਈਲ ਜੀਓਡਾਟਾਬੇਸ ਵਿੱਚ ਸਥਾਨਿਕ ਡੇਟਾ ਲਈ ਸਾਰੇ ਮੈਟਾਡੇਟਾ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦੀ ਹੈ, ਫਿਰ ਨਤੀਜਿਆਂ ਨੂੰ ਇੱਕ CSV ਫਾਈਲ ਵਿੱਚ ਆਊਟਪੁੱਟ ਦਿੰਦੀ ਹੈ। ਕਿਸੇ ਵੀ ਗੁੰਮ ਹੋਏ ਮੈਟਾਡੇਟਾ ਨੂੰ ਬੈਚ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਫਿਰ ਇੱਕ ਦੂਜੀ ਸਕ੍ਰਿਪਟ ਚਲਾਈ ਜਾ ਸਕਦੀ ਹੈ।

ਜੇਕਰ ਕੋਈ ਸਕ੍ਰਿਪਟ ਹੈ ਜੋ ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੀ ਸੂਚੀ ਵਿੱਚ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਸਾਨੂੰ ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ ਕਿਉਂਕਿ ਅਸੀਂ ਇਸ ਤਰ੍ਹਾਂ ਦੀਆਂ ਸੈਂਕੜੇ ਸਕ੍ਰਿਪਟਾਂ ਲਿਖੀਆਂ ਹਨ, ਅਤੇ ਸਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਸਕ੍ਰਿਪਟ ਹੈ ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ, ਜਾਂ ਅਸੀਂ ਤੁਹਾਡੇ ਲਈ ਸਕ੍ਰਿਪਟ ਲਿਖ ਸਕਦੇ ਹਾਂ। ਇਸੇ ਤਰ੍ਹਾਂ ਇਹਨਾਂ ਵਿੱਚੋਂ ਬਹੁਤ ਸਾਰੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ArcPy ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ, ਹਾਲਾਂਕਿ, ਲੋੜ ਪੈਣ 'ਤੇ ਅਸੀਂ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਵੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ArcPy ਤੋਂ ਬਿਨਾਂ ਦੁਬਾਰਾ ਲਿਖ ਸਕਦੇ ਹਾਂ, ਅਤੇ ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਅਸੀਂ ਪਹਿਲਾਂ ਹੀ ਕੁਝ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ArcPy ਤੋਂ ਬਿਨਾਂ ਲਿਖ ਚੁੱਕੇ ਹਾਂ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕੋ ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ArcGIS ਸੌਫਟਵੇਅਰ ਨਹੀਂ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਸਾਨੂੰ ਦੱਸੋ ਕਿ ਜੇਕਰ ਤੁਹਾਨੂੰ ਕਿਸੇ ਵੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਚਲਾਉਣ ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਹੈ, ਅਤੇ ਯਾਦ ਰੱਖੋ ਕਿ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਵੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਚਲਾਉਣ ਵੇਲੇ ਜੋ ਡੇਟਾ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕਰਦੇ ਹਨ, ਜੇਕਰ ਤੁਹਾਨੂੰ ਆਪਣੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਵਾਪਸ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਤਾਂ ਤੁਹਾਡੇ ਡੇਟਾ ਦਾ ਬੈਕਅੱਪ ਲੈਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਸਾਰੇ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਜੀਓਡੇਟਾਬੇਸ ਅਤੇ ਫੀਚਰ ਕਲਾਸਾਂ, ਅਤੇ ਉਹਨਾਂ ਦੇ ਮੈਟਾਡੇਟਾ ਦੀ ਸੂਚੀ ਬਣਾਓ

#

ਇਹ ਸਕ੍ਰਿਪਟ ਮੈਟਾਡੇਟਾ ਆਡਿਟ ਕਰਨ ਲਈ ਉਪਯੋਗੀ ਹੈ। ਸਕ੍ਰਿਪਟ ਨੂੰ ਮਲਟੀਪਲ Enterprise† ਜੀਓਡਾਟਾਬੇਸਾਂ ਵਿੱਚ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਹਨਾਂ ਕਾਲਮਾਂ ਦੇ ਨਾਲ ਇੱਕ ਆਉਟਪੁੱਟ CSV ਫਾਈਲ ਬਣਾਏਗੀ: 'ਜੀਓਡਾਟਾਬੇਸ', 'ਫੀਚਰ ਡੇਟਾਸੈਟ', 'ਫੀਚਰ ਕਲਾਸ', 'ਸਪੇਸ਼ੀਅਲ ਰੈਫਰੈਂਸ', 'ਰੋ ਕਾਉਂਟ', 'ਕਾਲਮ ਕਾਉਂਟ', 'ਮੇਟਾਡੇਟਾਡੇਟ', 'ਮੇਟਾਡਾਟਾਡੇਟ', 'ਵਿਵਰਣ'। ਸੰਖੇਪ', 'ਮੈਟਾਡੇਟਾ ਕ੍ਰੈਡਿਟ', 'ਮੈਟਾਡੇਟਾ ਐਕਸੈਸ ਸੀਮਾਵਾਂ'।

ਇਸ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਆਪਣੀਆਂ SDE ਕਨੈਕਸ਼ਨ ਫਾਈਲਾਂ ਵੱਲ ਪੁਆਇੰਟ ਕਰਨ ਲਈ ਲਾਈਨ 19 ਨੂੰ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ।

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)