Der folgende Abschnitt gehört zur Seite [[mikeurban:anleitungen:import_anschlussleitungen_2009|Anschlussleitungen berücksichtigen - Version 2009]]: Diese Seite bezieht sich auf die älteren Softwäreversionen MIKE URBAN 2009 bzw. ArcGIS 9.1. Die Befehlszeile für die aktuelle MIKE URBAN Software finden Sie [[mikeurban:anleitungen:import_anschlussleitungen_befehlszeilen|hier]] ===== Erklärung der Befehlszeilen - Version 2009 ===== Verzeichnis für die Shapedateien festlegen: Workspace Anschlussleitungen in Shape-Datei exportieren: CopyFeatures Anschlussleitung Anschlussleitung1 Anschlussleitungen buffern und zerlegen: Buffer Anschlussleitung1 AnschlussleitungBuffer1 '0.1 Meters' FULL ROUND ALL MultipartToSinglepart AnschlussleitungBuffer1 AnschlussleitungBuffer2 Buffer mit eindeutiger ID "ALID" versehen: AddField AnschlussleitungBuffer2 ALID LONG CalculateField AnschlussleitungBuffer2 ALID rec VB "Static rec As Long \nDim pStart As Long \nDim pInterval As Long \npStart = 1 \npInterval = 1 \nIf (rec = 0) Then \nrec = pStart \nElse \nrec = rec + pInterval \nEnd If" AnschlussleitungBuffer2 "ALID" auf Anschlussleitungen übertragen: SpatialJoin Anschlussleitung1 AnschlussleitungBuffer2 Anschlussleitung2 JOIN_ONE_TO_ONE KEEP_ALL "ALID 'ALID' true true false 9 Long 0 9 ,First,#,AnschlussleitungBuffer2.shp,ALID,-1,-1" IS_WITHIN '0 Unknown' # Hausanschlüsse mit temporärer, eindeutiger ID "tempHAID" versehen: AddField Hausanschluss tempHAID LONG CalculateField Hausanschluss tempHAID rec VB "Static rec As Long \nDim pStart As Long \nDim pInterval As Long \npStart = 1 \npInterval = 1 \nIf (rec = 0) Then \nrec = pStart \nElse \nrec = rec + pInterval \nEnd If" Hausanschluss Hausanschlüsse in Shape-Datei exportieren: CopyFeatures Hausanschluss Hausanschluss1 "ALID" auf die Hausanschlüsse übertragen: SpatialJoin Hausanschluss1 AnschlussleitungBuffer2 Hausanschluss2 JOIN_ONE_TO_ONE KEEP_ALL "tempHAID 'tempHAID' true true false 0 Long 0 0 ,First,#,Hausanschluss,tempHAID,-1,-1;ALID 'ALID' true true false 9 Long 0 9 ,First,#,AnschlussleitungBuffer2.shp,ALID,-1,-1" IS_WITHIN '0 Unknown' Anschlussleitungen in Endpunkte auflösen: ET_GPPolylineToPoints Anschlussleitung2 Anschlussleitung2Punkte Node Aus "mw_Pipe" Routen erstellen, damit anschließend der jeweils nächste Knoten gesucht werden kann: CalculateField mw_Pipe Coeff3 0 VB CalculateField mw_Pipe Coeff4 1 VB CreateRoutes mw_Pipe MUID mw_Pipe_Routen TWO_FIELDS Coeff3 Coeff4 UPPER_LEFT 1 0 IGNORE INDEX Tabelle "ALPosition" mit der Position der Anschlussleitungen erstellen: LocateFeaturesAlongRoutes Anschlussleitung2Punkte mw_Pipe_Routen MUID '0.2 Meters' ALPosition.dbf 'RID POINT MEAS' FIRST DISTANCE ZERO FIELDS Zur Tabelle "ALPosition" das Feld "Zielknoten" hinzufügen: AddField ALPosition Zielknoten TEXT # # 40 "mw_Pipe" reinjoinen: AddJoin ALPosition RID mw_Pipe MUID KEEP_ALL Zeilen auswählen, die näher am Anfangsknoten liegen, das sind die Zeilen mit MEAS <= 0.5, und Inhalt von "FROMNODE" ins Feld "Zielknoten" schreiben: SelectLayerByAttribute ALPosition NEW_SELECTION 'ALPosition.MEAS <= 0.5' CalculateField ALPosition ALPosition.Zielknoten [mw_Pipe.FROMNODE] VB Zeilen auswählen, die näher am Endkonten liegen, das sind die Zeilen mit MEAS > 0.5, und Inhalt von "TONODE" ins Feld "Zielknoten" schreiben: SelectLayerByAttribute ALPosition NEW_SELECTION 'ALPosition.MEAS > 0.5' CalculateField ALPosition ALPosition.Zielknoten [mw_Pipe.TONODE] VB Auswahl und Join aufheben: SelectLayerByAttribute ALPosition CLEAR_SELECTION RemoveJoin ALPosition mw_Pipe Feld "Zielknoten" zu "Hausanschluss2" hinzufügen: AddField Hausanschluss2 Zielknoten TEXT # # 40 "ALPosition" reinjoinen, nur Zeilen auswählen, die auch einen Zielknoten haben, Inhalt des Felds Zielknoten übertragen, Join entfernen: AddJoin Hausanschluss2 ALID ALPosition ALID KEEP_ALL SelectLayerByAttribute Hausanschluss2 NEW_SELECTION "ALPosition.Zielknoten IS NOT NULL" CalculateField Hausanschluss2 Hausanschluss2.Zielknoten [ALPosition.Zielknoten] VB SelectLayerByAttribute Hausanschluss2 CLEAR_SELECTION RemoveJoin Hausanschluss2 ALPosition Feld "Zielknoten" zu "Hausanschluss" hinzufügen: AddField Hausanschluss Zielknoten TEXT # # 40 "Hausanschluss" und "Hausanschluss2" mit Index versehen, damit Join schneller wird: AddIndex Hausanschluss tempHAID idx_Hausanschluss_tempHAID NON_UNIQUE ASCENDING AddIndex Hausanschluss2 tempHAID idx_Hausanschluss2_tempHAID NON_UNIQUE ASCENDING "Hausanschluss2" reinjoinen, Inhalt des Felds "Zielknoten" übertragen, Join entfernen: AddJoin Hausanschluss tempHAID Hausanschluss2 tempHAID KEEP_ALL CalculateField Hausanschluss Zielknoten [Hausanschluss2.Zielknoten] VB RemoveJoin Hausanschluss Hausanschluss2 Index von "Hausanschluss" entfernen und Feld "tempHAID" entfernen: RemoveIndex Hausanschluss idx_Hausanschluss_tempHAID DeleteField Hausanschluss tempHAID ALID 0.5' CalculateField ALPosition ALPosition.Zielknoten [mw_Pipe.TONODE] VBmw_PipeHausanschluss2