Mehr

Fehler mit ungültigem Ausdruck 000358 bei Verwendung des Arbeitsbereichs in_memory?


Feature-Layer mit einem SQL-Auswahlausdruck für eine Geometrieeigenschaft wie Länge erstellen schlägt fehl, wenn die Quell-Feature-Class in einem in ErinnerungArbeitsplatz. Ein ansonsten identisches Modell funktioniert problemlos, wenn sich die Feature-Class-Quelle in einem regulären Arbeitsbereich (file-gdb) befindet.

FEHLER 000358: Ungültiger Ausdruck Shape_Length = 0 Ausführung fehlgeschlagen (Ebene von Linien mit Nulllänge).

Ich verwende ArcGIS Desktop 10.3.1, glaube aber nicht, dass das Problem versionsspezifisch ist.

Scheitern:

Erfolg:


Antwort vom technischen Support von Esri Canada:

Das Verhalten, das Sie stoßen, ist eine bekannte Einschränkung in Speicherschichten. Sie haben tatsächlich kein shape_length-Feld, auf das sie zugreifen können. Wenn Sie beispielsweise die Ausgabe des Werkzeugs XY zu Linie zu Ihrer Anzeige hinzufügen und dann die Attributtabelle öffnen, sollte kein Feld shape_length verfügbar sein.

Davon abgesehen glaube ich, dass es eine einfache Lösung gibt. Wenn Sie in Ihrem Modell ein Werkzeug "Geometrieattribute hinzufügen" zwischen dem Werkzeug XY zu Linie und dem Werkzeug Layer von Linien mit Nulllänge hinzufügen und das Werkzeug Geometrieattribute hinzufügen auffordern, um die Länge zu berechnen, wird ein LÄNGE-Feld hinzugefügt, das Sie im Layer verwenden können des Werkzeugs Linien mit Nulllänge.

In meinem Fall besteht die einfachste Änderung darin, in_memory überhaupt nicht zu verwenden, da der Leistungsgewinn vernachlässigbar ist. Ich habe den Speicher als Abkürzung verwendet, um am Ende des Modells keinen Löschschritt hinzuzufügen. Die Informationen für das, was vor sich geht, sind jedoch wichtig und werden sicherlich an anderer Stelle auftauchen.