Gibt es eine effektive Grenze für die Geoverarbeitungsaufgabe Geocode-Adressen?

8

Das Problem, mit dem ich konfrontiert bin, hat folgenden Hintergrund:

Wir geokodieren ein riesiges Verzeichnis von Datensätzen. Es sind mehr als 100 Millionen Adressen. Ich habe die Adressen in einen so kleinen geografischen Grund aufgeteilt, wie ich es für machbar halte, heißt es. Trotzdem kann ein einzelner Staat mehr als 5 Millionen Datensätze zum Geocodieren haben. Das von mir erstellte Arcpy-Skript durchläuft die Adressen der einzelnen Bundesstaaten und führt den richtigen Geokodierungsprozess mit dem entsprechenden Locator aus.

Das Problem:

Manchmal dauert es 36 Stunden, manchmal nur 20, aber das Skript stoppt mit einem Fehler, den ich noch nie gesehen habe (dies ist aus der XML-Protokolldatei):
ERROR 001143: Background server threw an excecption.

  • Wenn das Skript in ArcCatalog oder im Python-Fenster von Arcmap ausgeführt wird, wird eine rote Fehlermeldung angezeigt Runtime error <class 'arcgisscripting.ExecuteError'>: ERROR 001143: Background server threw an excecption.
  • Wenn das Skript in IDLE ausgeführt wird, wird die Verarbeitung einfach fehlerfrei eingestellt und die Shell neu gestartet (mit der typischen =====RESTART=====Überschrift).

Ich weiß, dass dieses Arcpy-Skript mit kleineren Datensätzen funktioniert, da ich es seit Monaten verwende. Was könnte die Ursache für diesen Fehler sein? Muss ich meine Adresslisten in kleinere Beträge aufteilen, damit sie zuverlässig geocodiert werden können?

BEARBEITEN: Ich habe die Ereignisanzeigeprotokolle gemäß @DE Wright aufgespürt und dies ist das, was ich unter dem letzten Fehler aufgeführt habe

Faulting application name: pythonw.exe, version: 0.0.0.0, time stamp: 0x4ba3e4e2
Faulting module name: Geocoding.dll, version: 10.0.1.2800, time stamp: 0x4cbcbb71
Exception code: 0xc0000005
Fault offset: 0x000be1f3
Faulting process id: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
Report Id: %13

Nicht gerade aufschlussreich ...

Nathanus
quelle
Führen Sie dies mit einem Serverdienst aus, gegen den Sie Geokodierung durchführen? Es klingt so; In diesem Fall wird möglicherweise ein Zeitlimit für Webdienste oder eine Transaktionsanzahl angezeigt, bei der die Dienste recycelt werden, wodurch Ihr Prozess unterbrochen wird.
DEWright
Ich fürchte, alle Daten sind lokal, was mich so verwirrt.
Nathanus
Verwenden Sie ArcGIS 10? Es gibt einen aktualisierten Prozess, wenn die Software ausgeführt wird. Sie können ihn in Ihrem Task-Manager namens ARCSOCM.exe sehen. Dies ist im Wesentlichen ein ESRI-Server-Prozess, der lokal auf Ihrem Computer ausgeführt wird, um den Hintergrundprozess zu verarbeiten. Was Sie vielleicht sehen, ist, dass dieser Prozess fehlschlägt oder Sie in die Luft jagt. Sie können versuchen, Ihre Ereignisanzeige auf dem Computer zu überprüfen und festzustellen, ob App-Fehler protokolliert werden. das kann manchmal Informationen geben.
DEWright
Leider heißen sie ArcSOCP.exe und ArcSOMP.exe. Dies sind diese lokalen Prozesse, die ausgeführt werden.
DEWright
1
Meine Locators sind staatlich groß. Ich würde wahrscheinlich die Vorverarbeitung mit einem * nix split-Befehl durchführen, um die Textdateien einfach in 1-2 Millionen Blöcke in Datensatzgröße aufzuteilen, bevor sie in Tabellen umgewandelt werden. Obwohl der zusätzliche Schritt, Tabellen zu erstellen, Zeitverschwendung sein kann, da Sie Textdateien geocodieren können.
Nathanus

Antworten:

1

Hier ist ein Whitepaper von 09, das auch einige gute Themen enthält, wie Sie Ihre Daten effizienter einrichten können - http://esri.com/library/whitepapers/pdfs/arcgis-server-in-practice.pdf - und hier ist der Link zum Download, der hilfreicher sein sollte - http://resources.arcgis.com/gallery/file/geocoding/… - Sie sollten beide finden, um Ihnen sehr zu helfen.

Sie können mir auch direkt weitere Fragen stellen, da wir viele Prozesse im Vollzustand durchführen und stets auf der Suche nach Zusammenarbeit sind.

DEWright
quelle
Ich denke, ich könnte eine Diskussion mit jemandem gebrauchen, der mit den Geocodierungs- "Standards" von ESRI vertraut ist. Wie kann ich Sie kontaktieren?
Nathanus
Sie finden meine Google Mail-Adresse unter meinem Profil, wir können dort beginnen.
DEWright
0

Vielleicht hilft Ihnen diese Antwort . Die Verarbeitung und Geocodierung von 100 Millionen Adressen sollte nicht länger als einen Tag dauern. Denken Sie daran, dass wir die Adressen nicht nur geokodieren, sondern auch standardisieren und überprüfen. Wenn Geokodierung die einzige Aufgabe wäre, wäre sie noch schneller.

Jeffrey
quelle