<\/HEAD>
Ich habe es zum Laufen gebracht, aber ich kann immer noch nicht erkennen, was das Problem mit meiner ursprünglichen Python-Syntax war.<\/P>
<\/P>
Ich wollte einige Oberflächenwasseranalysen zu mehreren vorgeschlagenen Änderungen in einem Gebiet durchführen, um zu sehen, wie gut wir Überschwemmungen verhindern können, also habe ich ein Python-Skript aus einem Projekt von 2015 genommen und es so modifiziert, dass es in einem anderen Workspace läuft, um mir zu helfen, diese Schritte auf mehreren verschiedenen Oberflächen auszuführen. <\/P>
# -*- coding: utf-8 -*-<\/SPAN>
# ---------------------------------------------------------------------------<\/SPAN>
# Fill2Stream.py<\/SPAN>
# Erstellt am: 2015-03-06 10:28:41.00000<\/SPAN>
# (generiert von ArcGIS\/ModelBuilder)<\/SPAN>
# Beschreibung: zur Erzeugung von Fließrichtungs- und Akkumulationsrastern aus einem Höhenraster. <\/SPAN>
# Geändert am 2017-11-28 von PH, um diese Schritte bei der Analyse des Mud Lake Spillways auszuführen<\/SPAN>
# ---------------------------------------------------------------------------<\/SPAN>
# arcpy-Modul importieren<\/SPAN>
import<\/SPAN> arcpy
from<\/SPAN> arcpy.<\/SPAN>sa import<\/SPAN> *<\/SPAN>
# Notwendige Lizenzen auschecken<\/SPAN>
arcpy.<\/SPAN>CheckOutExtension(<\/SPAN>"spatial"<\/SPAN>)<\/SPAN>
arcpy.<\/SPAN>env.<\/SPAN>workspace =<\/SPAN> "G:\/elevation\/lidar_2005\/MudLake\/MudLakeTerrians.gdb"<\/SPAN>
arcpy.<\/SPAN>env.<\/SPAN>overwrite =<\/SPAN> "True"<\/SPAN>
# Lokale Variablen:<\/SPAN>
#DEMrs = "G:\\elevation\\lidar_2005\\MudLake\\MudLakeTerrians\\DEMFloodway"<\/SPAN>
DEMrs =<\/SPAN> "G:\\elevation\\lidar_2005\\MudLake\\MudLakeTerrians.gdb\\DEMFloodway"<\/SPAN>
#DEMrs = "DEMFloodway"<\/SPAN>
Fill =<\/SPAN> "DEMFWfill"<\/SPAN>
flowdir =<\/SPAN> "DEMFWdir"<\/SPAN>
drop_raster =<\/SPAN> "DEMFWDrop"<\/Span>
Accum = \"DEMFWaccum\"
print DEMrs
#Prozess: Fill
#outFill = Fill(DEMrs)
#outFill.save(Fill)
arcpy.gp.Fill_sa(DEMrs, Fill, \"\")
# Prozess: Fließrichtung
arcpy.gp.FlowDirection_sa(Fill, flowdir, \"NORMAL\", drop_raster)
# Prozess: Fließakkumulation
arcpy.gp.FlowAccumulation_sa(flowdir, Accum, \"\", \"FLOAT\")
# Prozess Streamline-Raster
strm =<\/span> Con(Raster, 1, 0)
strm10 = Con(Raster(Accum) > 10000, 1, 0)
strm.save("FWstrm")
strm10.save("FWstrm10")
Trotzdem erhielt ich jedes Mal beim Ausführen die Meldung "Zeile 32, in <module>
outFill = Fill(DEMrs)
TypeError: 'str' object is not callable".<\/P>Daher habe ich versucht, DEMrs mit und ohne den vollständigen Pfad zu setzen, den Namen der Variablen von DEM zu DEMrs zu ändern, falls DEM reserviert ist, den Namen der Variablen Fill in outFill zu ändern, die Richtung der Verzeichnisschlitze von \/ auf \\\ und \\\\\, und nichts schien zu funktionieren, bis ich die Form des Aufrufs des Fill-Werkzeugs von outFill = Fill(DEMrs) zu arcpy.gp.Fill_sa(DEMrs, Fill, "") änderte. Ich bin verwirrt darüber, warum das notwendig war, da die Hilfe scheinbar zeigt, dass das Fill-Werkzeug in einem Python-Skript so verwendet wird:<\/P><DIV class=\\\