Der folgende Abschnitt gehört zur Seite Anschlussleitungen berücksichtigen:
(9) Blenden Sie in ArcMap das Python-Fenster ein (Menü Geoprocessing > Python)
(10) Kopieren Sie den nachfolgenden Code in einen Texteditor.
# CODE # Umgebungsvariablen # ****************** Pfad_Workspace = <VOLLSTÄNDIGER PFAD ZUM TEMPORÄREN VERZEICHNIS> Bufferdist = 0.1 Searchdist = 0.2 # Vorbereitende Schritte # ********************** import arcpy arcpy.env.workspace = Pfad_Workspace arcpy.env.overwriteOutput = True arcpy.ImportToolbox(Pfad_ET-Toolbox) MXD = arcpy.mapping.MapDocument("Current") LYRhausanschluss = arcpy.mapping.ListLayers(MXD,"Hausanschluss")[0] STRINGhausanschluss = LYRhausanschluss.datasetName + ".Zielknoten" # Erstellung eines Buffers um die Anschlussleitungen # ************************************************** arcpy.Buffer_analysis("Anschlussleitung","AnschlussleitungBuffer1",Bufferdist,"FULL","ROUND","ALL") arcpy.MultipartToSinglepart_management("AnschlussleitungBuffer1","AnschlussleitungBuffer2") arcpy.AddField_management("AnschlussleitungBuffer2","ALID","LONG") codeblock = """rec=0 def autoIncrement1(): global rec pStart = 1 pInterval = 1 if (rec == 0): rec = pStart else: rec = rec + pInterval return rec""" expression = "autoIncrement1()" arcpy.CalculateField_management("AnschlussleitungBuffer2","ALID",expression,"PYTHON",codeblock) # Hausanschlüsse werden bearbeitet # ******************************** arcpy.AddField_management("Hausanschluss","tempHAID","LONG") arcpy.CalculateField_management("Hausanschluss","tempHAID",expression,"PYTHON",codeblock) arcpy.SpatialJoin_analysis("Hausanschluss","AnschlussleitungBuffer2","Hausanschluss1","JOIN_ONE_TO_ONE","KEEP_ALL","","COMPLETELY_WITHIN") # Anschlussleitungen werden bearbeitet # ************************************ arcpy.FeatureVerticesToPoints_management("Anschlussleitung","Anschlussleitung2Punkte","BOTH_ENDS") arcpy.SpatialJoin_analysis("Anschlussleitung2Punkte","AnschlussleitungBuffer2","Anschlussleitung2Punkte2","JOIN_ONE_TO_ONE","KEEP_ALL","","COMPLETELY_WITHIN") arcpy.CalculateField_management("mw_Pipe","Coeff3",0) arcpy.CalculateField_management("mw_Pipe","Coeff4",1) arcpy.CreateRoutes_lr("mw_Pipe","MUID","mw_Pipe_Routen","TWO_FIELDS","Coeff3","Coeff4","UPPER_LEFT",1,0,"IGNORE","INDEX") arcpy.LocateFeaturesAlongRoutes_lr("Anschlussleitung2Punkte2","mw_Pipe_Routen","MUID",Searchdist,"ALPosition.dbf","RID POINT MEAS","FIRST","DISTANCE","ZERO","FIELDS") arcpy.AddField_management("ALPosition","Zielknoten","TEXT","","",40) arcpy.AddJoin_management("ALPosition","RID","mw_Pipe","MUID","KEEP_ALL") # RID kommt von den Routen, ist die MUID arcpy.SelectLayerByAttribute_management("ALPosition","NEW_SELECTION",'MEAS <=0.5') arcpy.CalculateField_management("ALPosition","ALPosition.Zielknoten","!mw_Pipe.FROMNODE!","PYTHON") arcpy.SelectLayerByAttribute_management("ALPosition","NEW_SELECTION",'MEAS >0.5') arcpy.CalculateField_management("ALPosition","ALPosition.Zielknoten","!mw_Pipe.TONODE!","PYTHON") arcpy.SelectLayerByAttribute_management("ALPosition","CLEAR_SELECTION") arcpy.RemoveJoin_management("ALPosition","mw_Pipe") arcpy.AddField_management("Hausanschluss1","Zielknoten","TEXT","","",40) arcpy.AddJoin_management("Hausanschluss1","ALID","ALPosition","ALID","KEEP_ALL") arcpy.SelectLayerByAttribute_management("Hausanschluss1","NEW_SELECTION","ALPosition.Zielknoten IS NOT NULL") arcpy.CalculateField_management("Hausanschluss1","Hausanschluss1.Zielknoten","!ALPosition.Zielknoten!","PYTHON") arcpy.SelectLayerByAttribute_management("Hausanschluss1","CLEAR_SELECTION") arcpy.RemoveJoin_management("Hausanschluss1","ALPosition") arcpy.AddField_management("Hausanschluss","Zielknoten","TEXT","","",40) arcpy.AddJoin_management("Hausanschluss","tempHAID","Hausanschluss1","tempHAID","KEEP_ALL") arcpy.CalculateField_management("Hausanschluss",STRINGhausanschluss,"!Hausanschluss1.Zielknoten!","PYTHON") arcpy.RemoveJoin_management("Hausanschluss","Hausanschluss1") arcpy.DeleteField_management("Hausanschluss","tempHAID")
(11) Adaptieren Sie den Code im Texteditor.
In der Codezeile 6 Pfad_Workspace müssen Sie den vollständigen Pfad zu Ihrem temporären Arbeitsverzeichnis angeben (siehe Schritt 4). Pfadangaben werden in Python folgendermaßen getrennt:
Pfad_Workspace = "E:/Projekte/MeinProjekt" Pfad_Workspace = "E:\\Projekte\\MeinProjekt" Pfad_Workspace = r"E:\Projekte\MeinProjekt"
(12) Fügen Sie den adaptierten Text im Python-Fenster ein.
(13) Sie starten die Befehle, indem Sie den Mauscursor ans Ende des Textblocks setzen und zwei Mal <Enter> drücken. Der ganze Textblock wird nun abgearbeitet. In der Statusleiste im unterer Rand des ArcMap-Fensters wird der gerade ausgeführte Befehl gezeigt, im rechten Teil des Python-Fensters können Sie den Gesamtfortschritt verfolgen. Fehlermeldungen werden rot, Warnungen gelb geschrieben.
Dass ArcMap fertig ist, erkennen Sie daran, dass der Curser unten im Python-Fenster blinkt und auf eine weitere Eingabe wartet. In ArcMap werden im Laufe der Bearbeitung etlichen neue Layer hinzugefügt.
(14) Öffnen Sie die Attributtabelle des Themas "Hausanschluss" und kontrollieren Sie, ob Sie ganz rechts eine Spalte "Zielknoten" finden, in der KnotenIDs stehen.
(15) Schließen Sie ArcMap.
(16) Fahren Sie fort mit Teil B: Import der Hausanschlüsse Schritt für Schritt..Zielknoten,40) arcpy.AddJoin_management(.Zielknoten,40) arcpy.AddJoin_management(