Page Title

Benutzer-Werkzeuge

Webseiten-Werkzeuge


mikeurban:anleitungen:import_anschlussleitungen_etdemo

Der folgende Abschnitt gehört zur Seite 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 = <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")

(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.

(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.

(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".

(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".

(17) Im nächsten Dialogfenster wählen Sie nur die Option "Nodes". Klicken Sie auf "Finish".

(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 <Enter> 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 Teil B: Import der Hausanschlüsse Schritt für Schritt.Anschlussleitung2Punkte2Hausanschluss1

mikeurban/anleitungen/import_anschlussleitungen_etdemo.txt · Zuletzt geändert: 2016/05/18 13:07 von julian