Die Berechnung der Steigung einer Linie über eine Oberfläche ist einfach mit dem Add Surface Information-Werkzeug in ArcGIS Pro. Dieses Werkzeug überlagert das Linien-Feature mit einer Oberfläche, wie z. B. einem LAS- oder Raster-Datensatz, um die Höhenwerte zu extrahieren und den Steigungswert zu berechnen.<\/P>
Aber was tun Sie, wenn Sie keine Oberflächenschicht für die Berechnung haben?<\/STRONG><\/EM><\/P>Wie man die Steigung berechnet<\/H2>Lassen Sie uns zunächst die Steigungsberechnung aufschlüsseln, um Ihre spezifischen Datenanforderungen besser zu verstehen. Die Steigung wird berechnet, indem die Höhenänderung durch die horizontal zurückgelegte Entfernung geteilt wird. Dies wird manchmal als „rise over run“ bezeichnet. Der Ausgabewert dieser Berechnung kann mit 100 multipliziert werden, um einen Prozentwert zu erhalten.<\/P>
<\/span><\/P>Wenn keine Oberflächenschicht zur Berechnung der Höhenwerte verfügbar ist, müssen Sie entweder Attributwerte oder Z-Werte aus dem Linien-Feature verwenden. Die Höhenänderung kann berechnet werden, indem die Start-Höhe von der End-Höhe subtrahiert wird, und der Distanzwert kann aus der Formlänge abgerufen werden.<\/P>Sobald Sie Ihre verfügbaren Werte bestimmt haben, können Sie Arcade verwenden, um den Steigungswert zu berechnen.<\/P>Anwendungsfall zur Berechnung der Steigung mit Z-Werten<\/H2>Stellen Sie sich vor, Sie verwenden ein mobiles Gerät zur Landschaftsvermessung. Einer der gesammelten Datenpunkte ist die Grundstücksentwässerung. Dies geschieht durch das Sammeln von zwei Punkten, um eine Entwässerungslinie zu bilden. Normalerweise werden die Daten gesammelt und dann von einem Bearbeiter manuell die Steigung der Linie berechnet und in ein Attributfeld eingegeben.<\/P>Nachdem Sie etwas über ArcGIS Arcade gelernt haben, stellen Sie fest, dass Sie eine Attributregel und Arcade verwenden können, um die Steigung während der Datenerfassung zu berechnen. Berechnungsregeln können den Steigungsausdruck sofort nach dem Erfassen des Features ausführen. Dies wird basierend auf den Z-Werten des Start- und Endknotens der Linie berechnet. Der Rückgabewert wird dann in das Steigungsfeld in der Attributtabelle geschrieben.
Hier ist ein Beispiel für einen Ausdruck, der Z-Werte verwendet, um die Steigung zu berechnen:<\/P> <\/P> <\/P>\/\/ Wenn die Geometrie leer ist oder eine Länge von null hat, geben Sie den ursprünglichen Steigungswert zurück.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
\/\/ Holen Sie sich den Linienpfad.
var paths = Geometry($feature)['paths'];
\/\/ Holen Sie sich den ersten und letzten Scheitelpunkt und wählen Sie den niedrigeren von beiden.
var down_elevation = min(paths[0][0]['z'], paths[-1][-1]['z'])
\/\/ Holen Sie sich den ersten und letzten Scheitelpunkt und wählen Sie den höheren von beiden.
var up_elevation = max(paths[0][0]['z'], paths[-1][-1]['z'])
\/\/ Berechnen Sie die Steigung mit den drei Variablen.
return ABS((up_elevation - down_elevation)\/Length(Geometry($feature))) <\/code><\/pre> <\/P> <\/P>Hinweis: Aktualisieren Sie bei Verwendung dieses Ausdrucks die Felder entsprechend Ihren Daten.<\/EM><\/P>Anwendungsfall zur Berechnung der Steigung mit Feldern<\/H2>Stellen Sie sich vor, Sie haben eine Pipeline-Feature-Class erhalten und wurden gebeten, ein neues Feld hinzuzufügen und die Steigung für jedes Feature zu berechnen. Die Linien-Features sind nicht z-fähig und haben keine Höhenwerte für jeden Scheitelpunkt. Nach Überprüfung der Attributtabelle finden Sie zwei Felder mit Höhenwerten für den Anfang und das Ende jeder Pipeline.<\/P>Sie entscheiden sich, das Steigungsfeld mit einem Arcade-Ausdruck zu berechnen. Der Ausdruck verwendet die Werte aus den Attributfeldern UPELEV und DOWNELEV, um die Höhenänderung der Linie zu berechnen. Die Entfernung jeder Pipeline wird mit einer Geometriefunktion berechnet. Diese drei Werte sind die Eingaben für die Steigungsberechnung und der Rückgabewert wird im SLOPE-Feld gespeichert. <\/P>Hier ist ein Beispiel für einen Ausdruck, der Feldwerte verwendet, um die Steigung zu berechnen:<\/P> <\/P> <\/P>\/\/ Wenn eines der Felder nicht befüllt ist, geben Sie den ursprünglichen Steigungswert zurück.
if (IsEmpty($feature.UPELEV) || IsEmpty($feature.DOWNELEV))
{
return $feature.SLOPE;
}
\/\/ Wenn die Geometrie leer ist oder eine Länge von null hat, geben Sie den ursprünglichen Steigungswert zurück.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
\/\/ Berechnen Sie die Steigung mit den beiden Feldern und der Geometriefunktion.
return ABS(($feature.UPELEV - $feature.DOWNELEV)\/Length(Geometry($feature))); <\/code><\/pre> <\/P> <\/P>Hinweis: Aktualisieren Sie bei Verwendung dieses Ausdrucks die Felder entsprechend Ihren Daten.<\/EM><\/P>ArcGIS Arcade ist eine Ausdruckssprache zur Formatierung und Manipulation von Daten in ArcGIS. Diese Anwendungsfälle zur Berechnung der Steigung in einer Attributregel und Feldberechnung sind nur zwei Beispiele für Arcade. Diese Ausdrücke können in anderen Anwendungen verwendet werden, um Steigungswerte zurückzugeben, wie z.B. Beschriftungen, Pop-ups und Formulare. Sie können diese Beispielausdrücke wiederverwenden und anpassen, um den Anforderungen Ihres spezifischen Projekts gerecht zu werden. <\/P>Für weitere Schulungen zur Arcade-Ausdruckssprache sehen Sie sich Esris Einstieg in ArcGIS Arcade an: <\/SPAN>https://go.esri.com/arcade-course<\/SPAN><\/SPAN><\/A> <\/SPAN><\/P>