Gibt es eine Möglichkeit, einem ArcGIS-Modell beliebige Codefragmente hinzuzufügen?
Ich stelle mir etwas Ähnliches vor wie den "show code block", den Ausdrucksgenerator in der erweiterten Beschriftung oder im Feldrechner .
Zum Beispiel könnte mein aktuelles Projekt stark davon profitieren, den Benutzernamen der Person abzurufen, die das Tool ausführt. Ich weiß, dass dies in Python einfach ist import os; os.environ.get('USERNAME')
. Ich denke, ich könnte dieses Snippet schreiben, get_username.py
es einer Toolbox in Arccatalog hinzufügen, dieses Tool dann dem Modell hinzufügen und es als erforderlichen Modellparameter für mein aktuelles Tool verwenden. Das ist eine Menge Arbeit für eine so kleine Sache, und beim nächsten Mal möchte ich vielleicht etwas anderes, wie eine Inline-Variablensubstitution oder eine zusammengesetzte Variable .
Ich denke, ein Code-Snippet-Tool oder ähnliches könnte all diese Anforderungen auf generische, allgemein hilfreiche Weise erfüllen.
quelle
Antworten:
Neue Antwort auf einen alten Beitrag, um zu verdeutlichen, wie ein wiederverwendbares Modell erstellt werden kann.
Öffnen Sie das Modell Einfügen-> Nur Modellwerkzeuge-> Wert berechnen.
Geben Sie im Ausdruck Folgendes ein:
getuser()
Geben Sie im Codeblock Folgendes ein:
(Siehe " Abrufen des Benutzernamens in einem bestimmten Format " für die Quelle des Benutzernamen-Code-Snippets von @ChadCooper.)
Wählen Sie als Datentyp
String
.Benennen Sie den Ausgabekreis in um
username
. Das Endergebnismodell sieht folgendermaßen aus:Anschließend können Sie dieses Modell einfach in zukünftige Modelle ziehen und in zukünftigen Modellen oder Skripten auf die Variable% username% verweisen. Stellen Sie nur sicher, dass dieses Modell ausgeführt wird, bevor Sie versuchen, auf die Variable% username% zuzugreifen. Sie können dies unter Verwendung einer Vorbedingung tun .
quelle
Tatsächlich können Sie dies mit dem Tool Wert berechnen (Datenverwaltung) tun .
Es ist nicht besonders elegant (der gesamte Quellcode für das Tool wird bei jeder Ausführung im Protokoll gedruckt), und der Editor (eigentlich nur ein Textfeld) ist miserabel.
Ich würde vorschlagen, Module zu schreiben, aus denen Sie dann Funktionen importieren und aufrufen können, und dann müssten Sie nur sehr kurze Schnipsel in den Dialog schreiben. Ansonsten ist es einfach nicht sehr sauber.
Der Wert berechnen ist auf allen Lizenzstufen für Arcgis v10 verfügbar. Mit v9.x steht Arcview nur zur Verfügung, wenn die Spatial- oder 3D Analyst-Erweiterungen installiert sind ( ref ).
quelle
%USERNAME%
in eine .sde-Datenbankverbindung einfügen ). Einverstanden, dass der Editor diesen Namen nicht verdient, funktioniert gut als Einfügeziel.Vielleicht verstehe ich die Frage falsch, aber es scheint, dass die Funktionalität des Python-Skript-Tools in ArcToolBox genau das ist, wonach Sie suchen:
http://help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#/Integrating_scripts_within_a_model/002w0000006n000000/
http://help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#//001500000006000000.htm
Sie können auch mehrere andere Skriptsprachen verwenden / kombinieren (R in diesem Beispiel):
http://help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#//002w0000007w000000
quelle