z-Koordinaten auswerten

Hallo zusammen,

ich habe eine für mich schwierige Frage:

Ich habe zwei Layer. Eines davon mit Punkten und Koordinaten (x,y,z). Das andere besteht aus Strichen zwischen den Punkten. Es handelt sich dabei um eine grobe Straßenkarte

Ich möchte nun eine Auswertung fahren, welches Gefälle zwischen den einzelnen Punkten liegt. Dazu möchte ich die jeweiligen Striche mit den z-Koordinaten aus dem beginnenden Punkt und dem endenden Punkt bestücken. In dieser Art: Spalte "Z-StartEnde" mit den Zeileninhalten "z1,z2".

Wie kann ich das machen?
Hallo

Wahrscheinlich bist du am schnellsten, wenn du aus den 3D-Punkten eine TIN erstellst und die Linien dann auf 3D Features umrechnest. Dann kannst du auch das Gefälle der Linie berechnen.

vg
Jo
Vielen Dank für die Antwort.

Leider reichen meine Kenntnisse nicht aus, um mittels deiner Antwort zu einem Ergebnis zu kommen.

Könnte ich bitte präzisere Informationen dazu erhalten?

fg saedler
Ich habe mal ein bisschen gegoogelt und Hinweise gefunden, wie ich eine TIN erstellen kann.

Als ich das dann ausprobieren wollte, bekam ich eine Meldung, dass ich nicht die erforderliche Lizenz besitzen würde.

Gibt es da noch andere Möglichkeiten?
Mir fällt schon noch eine Variante ein, aber das ist definitiv komplizierter.

Im ModelBuilder ein Model erstellen, welches jeweils ein Linienobjekt selektiert "Select By Attributes" mit dem aktuellen Modellauf ("Wert" = %n%) - "Select by location" (Punkte auf der aktuellen Linie selektieren) - "Summary Statistics" (Min und Max z-Value) - "Append" an eine bestehende Tabelle

Zum Schluss die fertige Tabelle mit den Linien joinen und dann solltest du zwei Höhenwerte für jede Linie haben.


vg
Hallo Hannes17,

vielen Dank für deine Antwort.

Leider stehe ich immer noch vor diversen Rätseln.

Was meinst du mit dem aktuellen Modellauf?

Was meinst du mit dem "Wert"?

Befindet sich "Select by Attributes" in der ArcToolbox? (und wenn ja, wo?)

Für mich ist das alles Neuland, ich war bisher nur simpler Anwender.

Danke
saedler
Wenn du noch nie was mit dem ModelBuilder gemacht hast, dann wird das ein wenig schwierig. Aber man kann sich recht leicht mit dem ModelBuilder anfreunden. Die ESRI-Hilfe ist recht gut.

Grundsätzlich benötigst du für den Ansatz:
- eine eindeutige aufsteigende ID in deinen Linienobjekten (Bsp. "ID")
- das Model arbeitet mit Schleifen (ESRI-Hilfe "Iteration"); Über eine Variable steuerst du, wie oft das Model durchläuft (Bsp. 10x). Der erste Durchlauf hat den Wert 0. Diesen Wert verwendest du in deinem Modell für die Selektion einer Linie. Den Wert des aktuellen Durchlaufs erhälst du aus der Variable %n%.
Wenn du also in der Funktion "Select By Attributes" folgenden Code eingibst "ID" = %n%, wird jeweils das Linienobjekt mit der der "ID"
des aktuellen Durchlaufs selektiert.
-Im Anschluss daran hängst du noch eine "Select By Location" (selektiert die zwei Punkte auf der aktuell selektierten Linie) an.
-Danach ein "Summary Statistics" um die zwei Höhenwerte (Min, Max) in einer Tabelle auszugeben.
-Damit du nicht für jeden Durchlauf eine eigene Tabelle erhälst, baust du noch ein "Append" ein. Sprich du hängst das Ergebnis der "Summary Statistics" an eine bestehende Tabelle an. Somit hast du zum Schluss eine Tabelle mit einem Eintrag für jede Linie mit dem Min und Max Höhenwerten.

Am Besten du liest dir in der Esri-Hilfe die Erläuterungen zu den verschiedenen Tools durch.

vg
Jo
Hallo Hannes17,

versteh ich das richtig, dass alle Aktionen nur im Modelbuilder bzw. ArcCatalog durchgefuehrt werden oder auch in ArcMap?

Ich habe 500 Linien, bedeutet das, dass ich das Model 500 mal durchlaufen lassen muss?

Fuehre ich die Funktion "Select by Attributes" in ArcMap aus oder binde ich das als Element im Modelbuilder ein?
Der ModelBuilder ist ein Teil von ArcGIS.

Du kannst Modelle sowohl in ArcMap als auch aus dem ArcCatalog starten/nutzen.

Alle Funktionen, welche du benötigst, kombinierst du in einem Model.

Wie schon zuvor gesagt, vielleicht hilft es wenn du dir ein paar Dinge in der ESRI-Hilfe durchschaust.
Ich habe dir schnell das Model mit Beispielsdaten erstellt.
Du musst nur die Daten in der mdb mit deinen ersetzen.
Die Linien benötigen eine Attribut "ID" mit einer Zahl und die Punkte brauchen die Höhe als Attribut "Z".
Ansonsten musst du das Model einfach auf deine Daten anpassen.

Download

vg
Ich trage mal zusammen was ich hier habe.

- Ich arbeite in einer Personal Geodatabase
- Ich sehe die ArcToolbox und entnehme da der Toolbox "Analysis Tools" unter "Extract" das Werkzeug "Select"
- Wenn ich dann unter Expression angebe [ID] = %n% kriege ich "Warning empty output generated"

- Waehle ich fuer die Select by Location in der Toolbox "Overlay" das Werkzeug "Intersect" aus?

Vielen Dank fuer die Muehe und den Einsatz xD
ok danke.

ich werde mich daran austoben.

wenn ich dann immer noch nicht in der lage bin das zu schaffen, melde ich mich xD
Ich habe ein weiteres Problem in dem Zusammenhang.

Ich modifiziere gerade meine Tabelle und moechte die fortlaufende ID erstellen.

Ich verwende dafuer diese Anleitung: http://www.fiu.edu/~tardanic/idfield.pdf

Im Field Calculator laeuft das allerdings bei mir nicht, nur in der Toolbox und da kriege ich nach ca. 30.000 Positionen nur noch Fehlermeldungen bzw. er traegt nix mehr in das Feld ein.

Liegt das Problem an dem VB-Code oder am GIS?
Hallo saedler,

versuche es mal mit folgendem Ausdruck aus IANKOS Easy Calculate-Skripten!
Sollte funzen und dir die fortlaufende ID erstellen!
Gruß vom Ups



'=========================
'rec_Number.cal
'Author: Ianko Tchoukanski
'http://www.ian-ko.com
'=========================
Static rec As Long
Static i As Long
Dim lStart As Long
Dim lInterval As Long
'=================
'adjust start value and interval below
lStart = 1
lInterval = 1
'=================
If (i = 0) Then
rec = lStart
Else
rec = rec + lInterval
End If
i = i + 1
Hallo Ups,

vielen Dank fuer die Hilfe, hat einwandfrei funktioniert.

Hallo Hannes17,

ich habe leider Schwierigkeiten dein Modell zu validieren, ich habe deine Tabellen als Grundlage benutzt, aber ich erhalte immer den Fehler "Layer Name or Table View: Dataset Linien does not exist".

Ich wuerde auch mal gerne dein Modell durchlaufen lassen, was muss ich dafuer im Datenbestand aendern?

Gruss
saedler
Das heißt, dass das Modell die FeatureClass "Linien" nicht findet.

Das Modell Öffnen "Edit ..." und die Linien-FeatureClass löschen und durch deine ersetzen. Das Feld "ID" muss vorhanden sein.

vg
Hallo Hannes17,

ich kriege jetzt eine andere Fehlermeldung: Layer Name or Table View: Value is not valid. The value cannot be a feature class.

Ich kriege die Meldung sowohl bei meinen Daten, als auch bei deinen Daten.

- Ich habe ein Feld mit einer ID an meine Linien angehaengt
- Ich habe meine Tabellen an deine angeglichen (Spalten geloescht)

Mir gehen die Ideen aus...
Hallo,

ich habe das Problem gefunden, das Modell lauft jetzt rund.

Aber:

- Ich kriege als Ergenis immer nur einen Datensatz zurueck und nicht die 500 mit beiden Werten
- Ich habe gerade gemerkt, dass ich nicht von allen Linien die Punkte erhalten habe, sondern nur von einigen, soll heissen, es koennten mehrere linien zwischen zwei punkten liegen

Kann man das fixen? (es ist nicht weiter schlimm, wenn da nur ein Z-Wert steht, dass kann ich nachher ausfiltern)