HOW TO

Sichern von ArcGIS Online-Elementen in einer Datenbankverbindung mithilfe von ArcGIS API for Python

Last Published: January 5, 2021

Zusammenfassung

Die Funktionalität für Datensicherungen von Elementen in einer gezippten File-Geodatabase (FGDB) ist möglicherweise eingeschränkt. Die Speicherung der Daten in einer Datenbank erleichtert den Zugriff zum Anzeigen dieser Daten. Das Sichern von ArcGIS Online-Elementen in einer Datenbankverbindung mit ArcGIS API for Python macht es möglich, dass mehrere Elemente gleichzeitig heruntergeladen, extrahiert und kopiert werden können.

Vorgehensweise

  1. Importieren Sie die erforderlichen Module, und legen Sie die Option zum Überschreiben von Ausgaben auf True fest.
from arcgis.gis import GIS import arcpy import os import zipfile import glob import shutil arcpy.env.overwriteOutput = True
  1. Geben Sie den Pfad zum Projekt und die Anmeldeinformationen an.
gis=GIS("https://arcgis.com","username","password") folders = [] root = r"Path To Location Where AGOL Items are Downloaded" items = ['ItemID1', 'ID2', 'ID3', 'ID4'] destination = r"Path To Location Where Downloaded zipped folders are extracted" outputPath = r"Full File Path to SDE Connection\<connectionname>.sde"
  1. Laden Sie die gewünschten Elemente herunter, die dann als gezippte FGDBs gespeichert werden, und erstellen Sie eine Liste der heruntergeladenen Elemente.
#the variable 'items' can be replaced to get all items in ArcGIS Online if the need is to back up all items for item in items: test = gis.content.get(item) fgdb_title = test.title fgdb_title=fgdb_title.replace('_', '') result = test.export(fgdb, "File Geodatabase") result.download(root) result.delete() folders.append(root +'\\' +fgdb_title + '.zip') print(folders)
  1. Extrahieren Sie die heruntergeladenen gezippten FGDBs in einem neuen Ordner.
for folder in folders: with zipfile.ZipFile(folder) as zf: folder.replace('_','') zf.extractall(destination)
  1. Entfernen Sie die lokalen Dateien (optional).
Hinweis: Wenn beim Ausführen des Skripts ein Fehler wegen vorhandener Dateien auftritt, dann ist Schritt 5 zum Entfernen der lokalen Dateien nicht erforderlich.
for FGDB in FGDBlist: item_delete = (destination+FGDB+'\\') #Removes FGDBs in Destination folder(optional) shutil.rmtree(item_delete)
  1. Rufen Sie die extrahierten FGDBs ab, und konstruieren Sie eine Schleife, in der sie durchlaufen werden. Benennen Sie bei Bedarf die Feature-Classes um, und kopieren Sie die jeweilige Feature-Class in die SDE-Verbindung.
FGDBlist=os.listdir(destination) for FGDB in FGDBlist: gdb_var=(destination+FGDB+'\\') arcpy.env.workspace=(gdb_var) featureclasses = arcpy.ListFeatureClasses() print(featureclasses) for FC in featureclasses: rename = arcpy.Rename_management(FC, FC + "_copy", "FeatureClass") print(rename) arcpy.FeatureClassToFeatureClass_conversion(gdb_var + FC + "_copy", outputPath, FC + "_copy")

Artikel-ID: 000024135

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln