Der folgende Abschnitt gehört zur Seite [[mikeurban:anleitungen:import_anschlussleitungen|Anschlussleitungen berücksichtigen]]: ==== ArcMap Python-Fenster (Demoversion der ET GeoWizards) ==== **(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 = 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") **(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: * Forward Slash (/) * Doppelter Backslash (\\) * r"Pfadangabe mit Backslash" 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. {{ :mikeurban:downloads:import_anschlussleitung_pythonfenster.png?350 |}} **(13)** Sie starten die Befehle, indem Sie den Mauscursor ans Ende des Textblocks setzen und zwei Mal 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. {{ :mikeurban:downloads:import_anschlussleitung_pythonfenster2.png?350 |}} **(14) Lassen Sie das Python-Fenster geöffnet!** **(15)** Starten Sie die ET GeoWizards, wählen Sie im Register "Convert" das Werkzeug "Polyline To Point" und klicken Sie auf "GO". {{ :mikeurban:downloads:import_anschlussleitung_et1.png?350 |}} **(16)** Im nächsten Dialogfenster wählen Sie das bereits existierende Thema "Anschlussleitung" aus. Für die Ergebnisdatei geben Sie den Dateinamen "Anschlussleitung2Punkte" an, und zwar im von Ihnen erstellten temporären Verzeichnis für die Shape-Dateien. Klicken Sie auf "Next". {{ :mikeurban:downloads:import_anschlussleitung_et2.png?350 |}} **(17)** Im nächsten Dialogfenster wählen Sie nur die Option "Nodes". Klicken Sie auf "Finish". {{ :mikeurban:import_anschlussleitungen_et3.png?350 |}} **(18)** Nachdem der Layer "Anschlussleitung2Punkte" erstellt worden ist, können Sie mit den Python-Fenster fortfahren. Kopieren Sie die folgenden Zeilen in den linken Teil des Python-Fensters. # Anschlussleitungen werden bearbeitet # ************************************ 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") **(19)** Wieder starten Sie die Befehle, indem Sie den Mauscursor ans Ende des Textblocks setzen und zwei Mal drücken. **(20)** Nach Abschluss des letzten Befehls öffnen Sie die Attributtabelle des Themas "Hausanschluss" und kontrollieren Sie, ob Sie ganz rechts eine Spalte "Zielknoten" finden, in der KnotenIDs stehen. **(21)** Schließen Sie ArcMap. ==== Dateimanager ==== **(22)** Sie können die neu erstellte Karte und das temporäre Verzeichnis für die Shape-Dateien jetzt wieder löschen. **(23)** Fahren Sie fort mit [[mikeurban:anleitungen:import_anschlussleitungen#teil_bimport_der_hausanschluesse_schritt_fuer_schritt|Teil B: Import der Hausanschlüsse Schritt für Schritt]].Anschlussleitung2Punkte2Hausanschluss1