Mehr

So beheben Sie einen schweren Absturz von CopyFeatures_management()


Ich habe ein Skript, das verwendetarcpy.CopyFeatures_management(FEATURE_CLASS_SDE, FEATURE_CLASS_LOCAL)um eine Feature-Class aus unserer Enterprise-SDE in eine lokale File-Geodatabase zu kopieren. Zum größten Teil funktioniert es gut. Gelegentlich scheitert es jedoch auf spektakuläre Weise.

Wenn es fehlschlägt, erhalte ich eine Meldung, die besagt, dass Python nicht mehr mit einem Minidump funktioniert. Das ist es. Ich habe die Zeile, die die Kopie durchführt, in einem Versuch umbrochen ... außer um weitere Informationen zu erhalten, aber die Ausnahme wird nicht abgefangen.

Irgendwelche Ideen, wie ich das weiter beheben kann?

ArcGIS 10.1 SP1 mit QIP (Build 3300)

Update 1: Wenn ich das Skript in PyCharm ausführe, kann ich das Problem nicht reproduzieren. Wenn ich das Skript aus einer Batchdatei auf derselben Workstation aufrufe, tritt das Problem auf. Diese Workstation verfügt über 8 GB RAM, viel freien Festplattenspeicher, und wenn ich Resource Monitor anschaue, sehe ich keine Anzeichen dafür, dass die Ressourcen fast knapp werden. Python.exe verwendet etwa 300 MB. Es gibt 95k Funktionen in dieser SDE FC.


Wenn der Absturz beim Kopieren aus einer lokalen Geodatabase nicht auftritt, würde ich mir zunächst einige Aspekte der Quell-Geodatabase ansehen:

  1. Die Feature-Class

Fehlerhafte Features können Probleme beim Exportieren von Daten, Fehler wie sich selbst schneidende oder nicht geschlossene Polygone, Ringe in der falschen Richtung usw. verursachen. Die meisten DBMS verfügen über Methoden zur Validierung der Geometrie der Features, wie beispielsweise die SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT-Prozedur von Oracle.

Sie könnten versuchen, den Export mit einer Teilmenge der Feature-Class auszuführen, beispielsweise in 500 Feature-Batches nach Objekt-ID, um zu sehen, ob der Fehler vorhersehbar ist und immer auf derselben Objekt-ID liegt.

  1. Tritt der Absturz bei verschiedenen Feature-Classes in derselben ArcSDE-Geodatabase auf?

  2. Gibt es etwas in den ArcSDE- und RDBMS-Protokollen?

Wenn Sie beispielsweise eine direkte Verbindung zu ArcSDE verwenden, können Sie die sdedc_.LogDatei auf Ihrer Workstation nach Fehlern, die beim Export aufgetreten sind - sie befindet sich normalerweise in Ihrem temporären Profilverzeichnis.

Wenn Sie den ArcSDE-Anwendungsserver verwenden, verfügt er über eine eigene Protokolldatei, die der DBA/SysAdmin für Sie abrufen kann.

Es gibt einige Hinweise, die Ihnen jedoch helfen können, herauszufinden, wo das Problem liegt.


Schau das Video: How to Open Personal Geodatabase in QGIS (Oktober 2021).