Der folgende Abschnitt gehört zur Seite [[mikeurban:anleitungen:import_anschlussleitungen|Anschlussleitungen berücksichtigen]]: ==== ArcMap Python-Fenster (ArcInfo) ==== Mangels einer eigenen ArcInfo-Lizenz konnte der Befehl "Feature Vertices to Points" in Zeile 52 nicht getestet werden. Rückmeldungen bitte an [[support@telegdy.at]]. **(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") # 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: * 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. In ArcMap werden im Laufe der Bearbeitung etlichen neue Layer hinzugefügt. {{ :mikeurban:downloads:import_anschlussleitung_pythonfenster2.png?350 |}} **(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. ==== Dateimanager ==== **(16)** 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]]..Zielknoten,40) arcpy.AddJoin_management(.Zielknoten,40) arcpy.AddJoin_management(