HOW TO

Löschen des Geoverarbeitungsverlaufs aus einer Geodatabase in ArcMap mithilfe von Python

Last Published: August 17, 2021

Zusammenfassung

Geoverarbeitungswerkzeuge fügen Metadaten zu ihrer Ausführung in einer Geodatabase ein. Diese Metadaten sind Name und Position des Werkzeugs und die verwendeten Parameter, wenn die Protokollierung der Geoverarbeitung aktiviert wurde. GIS-Administratoren und -Manager müssen manchmal den Geoverarbeitungsverlauf in den Metadaten einer Feature-Class oder eines Workspace löschen.

Das folgende Skript beschreibt, wie dies mit einem Python-Skript erreicht werden kann. Außerdem finden Sie einen Workflow zum Entfernen des Geoverarbeitungsverlaufs in einem Enterprise-Geodatabase-Workspace.

Vorgehensweise

Entfernen des Geoverarbeitungsverlaufs in Feature-Classes

In den folgenden Anweisungen wird beschrieben, wie dies mit einem Python-Skript erreicht werden kann. Das folgende Skript automatisiert diesen Prozess für alle Feature-Classes in einer Geodatabase, einschließlich der Feature-Classes, die in einem Feature-Dataset gespeichert sind.

Hinweis: Führen Sie das Verfahren in der 32-Bit-Version von Python durch.

Führen Sie nach dem Aktualisieren der Variablen das beigefügte Python-Skript aus:

import arcpy import os, string ''' Update the following five variables before running the script.''' version = "10.5" myWorkspace = r"C:\XML_out\dbinstance_testgdb.sde" gp_history_xslt = r"C:\Program Files (x86)\ArcGIS\Desktop{}\Metadata\Stylesheets\gpTools\remove geoprocessing history.xslt".format(version) output_dir = r"C:\XML_out" db_type = "SQL" #Set this to either "SQL" or "Oracle" if your db has spatial views. If not you may set it to "". def RemoveHistory(myWorkspace, gp_history_xslt, output_dir): ##Removes GP History for feature dataset stored feature classes, and feature classes in the File Geodatabase.     arcpy.env.workspace = myWorkspace     for fds in arcpy.ListDatasets('','feature') + ['']:         for fc in arcpy.ListFeatureClasses('','',fds):             data_path = os.path.join(myWorkspace, fds, fc)             if isNotSpatialView(myWorkspace, fc):                 removeAll(data_path, fc, gp_history_xslt, output_dir) def isNotSpatialView(myWorkspace, fc): ##Determines if the item is a spatial view and if so returns True to listFcsInGDB()         if db_type <> "":         desc = arcpy.Describe(fc)         fcName = desc.name         #Connect to the GDB         egdb_conn = arcpy.ArcSDESQLExecute(myWorkspace)         #Execute SQL against the view table for the specified RDBMS         if db_type == "SQL":             db, schema, tableName = fcName.split(".")             sql = r"IF EXISTS(select * FROM sys.views where name = '{0}') SELECT 1 ELSE SELECT 0".format(tableName)         elif db_type == "Oracle":             schema, tableName = fcName.split(".")             sql = r"SELECT count(*) from dual where exists (select * from user_views where view_name = '{0}')".format(tableName)             egdb_return = egdb_conn.execute(sql)             if egdb_return == 0:                 return True             else:                 return False         else: return True     else: return True def removeAll(data_path, feature, gp_history_xslt, output_dir): ##Remove all GP History metadata from a feature class.     arcpy.ClearWorkspaceCache_management()     name_xml = os.path.join(output_dir, str(feature)) + ".xml"     arcpy.XSLTransform_conversion(data_path, gp_history_xslt, name_xml)     print "Completed xml coversion on {0}".format(feature)     arcpy.MetadataImporter_conversion(name_xml, data_path)     print "Imported XML on {0}".format(feature) def makeDirectory(output_dir): ##Creates directory to store the xml tables of converted metadata. If the ##directory already exists, the files will be created there.     if not arcpy.Exists(output_dir):         os.mkdir(output_dir) if __name__ == "__main__":     makeDirectory(output_dir)     RemoveHistory(myWorkspace, gp_history_xslt, output_dir) print "Done Done"

Entfernen des Geoverarbeitungsverlaufs in einem Enterprise-Geodatabase-Workspace

  1. Stellen Sie eine Verbindung mit einer Enterprise-Geodatabase als Geodatabase-Administrator her.
  2. Führen Sie das Geoverarbeitungswerkzeug XSLT-Transformation aus, um eine XML-Datei aus der Datenbank, in der der Geoverarbeitungsverlauf entfernt wurde, zu erstellen.
    • Metadatenquelle: Die Datenbankverbindung
    • Eingabe-XSLT: Das Esri Werkzeug an der folgenden Position:
C:\Programme (x86)\ArcGIS\Desktop10.5\Metadata\Stylesheets\gpTools\remove geoprocessing history.xslt
  • Ausgabedatei: Geben Sie eine Position zum Speichern der XML-Ausgabedatei an.
Das Fenster des Werkzeugs
  1. Führen Sie das Geoverarbeitungswerkzeug Metadatenimport aus, um die XML-Ausgabedatei in die Enterprise-Geodatabase zu importieren.
    • Metadatenquelle: Die XML-Ausgabedatei, die in Schritt 2 generiert wurde
    • Metadatenziel: Die Datenbankverbindung
Das Fenster des Werkzeugs

Artikel-ID:000011751

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden