Ich habe ein Python-Skript-basiertes Tool in ArcGIS. Einer der Parameter für das Werkzeug ist eine Eingabe-Rasterdatei, die ich (unter Verwendung der Eigenschaften des Werkzeugs in der Toolbox) als Rasterebene festgelegt habe. Dies bedeutet, dass ich beim Ausführen des Tools die Option habe, diesen Parameter aus einer Dropdown-Liste der aktuell geladenen Rasterebenen auszuwählen oder durch Navigieren nach einer neuen Rasterebene im Dateisystem zu suchen.
Ich verwende dann den Standardcode arcpy.GetParameterAsText(0)
, um den Parameter in mein Python-Skript zu übernehmen. Dies funktioniert gut, wenn ich eine Datei durch Durchsuchen des Dateisystems auswähle, da der Text im Dialogfeld den vollständigen Pfad zur Datei darstellt. Wenn ich jedoch nur aus der Dropdown-Liste auswähle, ist der Text, den ich zurückerhalte, nur der Dateiname (z. B. file.tif
). .
Der Code, den ich ausführe, muss den vollständigen Pfad zur Datei kennen - wie bekomme ich das?
Wenn ich davon ausgehen könnte, dass sich die Datei immer im Arbeitsbereich befindet, könnte ich den Dateinamen anhängen arcpy.env.workspace
, aber das kann ich nicht annehmen. Muss ich alle geladenen Ebenen durchlaufen, bis ich eine mit demselben Namen finde und dann ihren vollständigen Pfad finde, oder gibt es einen einfacheren Weg?