Het berekenen van de helling van een lijn over een oppervlak is eenvoudig met behulp van de Add Surface Information-tool in ArcGIS Pro. Deze tool legt de lijnfeature over een oppervlak, zoals een LAS- of rasterdataset, om de hoogtewaarden te extraheren en de hellingswaarde te berekenen.<\/P>
Maar wat doe je als je geen oppervlaklaag hebt voor de berekening? <\/STRONG><\/EM><\/P>Hoe helling te berekenen<\/H2>Laten we eerst de hellingsberekening opsplitsen om je specifieke databehoeften beter te begrijpen. De helling wordt berekend door de hoogteverandering te delen door de horizontale afstand die wordt afgelegd. Dit wordt soms rise over run genoemd. De uitvoerwaarde van deze berekening kan worden vermenigvuldigd met 100 om een percentagewaarde te krijgen.<\/P>
<\/span><\/P>Wanneer een oppervlaklaag niet beschikbaar is om hoogtewaarden te berekenen, moet je ofwel attribuutwaarden of Z-waarden van de lijnfeature gebruiken. De hoogteverandering kan worden berekend door de beginnende hoogte af te trekken van de eindhoogte, en de afstandswaarde kan worden opgevraagd uit de vormlengte.<\/P>Zodra je je beschikbare waarden hebt bepaald, kun je Arcade gebruiken om de hellingswaarde te berekenen.<\/P>Gebruikssituatie voor het berekenen van helling met z-waarden<\/H2>Stel je voor dat je een mobiel apparaat gebruikt om landschapsmetingen uit te voeren. Een van de datapunten die je verzamelt is eigendomsafwatering. Dit gebeurt door twee punten te verzamelen om een afwateringslijn te vormen. Meestal worden de gegevens verzameld en vervolgens geraadpleegd door een redacteur die handmatig de helling van de lijn berekent en deze invoert in een attribuutveld.<\/P>Na wat geleerd te hebben over ArcGIS Arcade, ontdek je dat je een attribuutregel en Arcade kunt gebruiken om de helling tijdens het verzamelen van gegevens te berekenen. Berekeningsregels kunnen de hellingsuitdrukking onmiddellijk uitvoeren nadat het object is verzameld. Dit wordt berekend op basis van de z-waarden van het begin- en eindpunt van de lijn. De teruggegeven waarde wordt vervolgens geschreven naar het hellingsveld in de attributentabel.
Hier is een voorbeeld van een expressie die z-waarden gebruikt om helling te berekenen:<\/P> <\/P> <\/P>\/\/ Als de geometrie leeg is of een lengte van nul heeft, retourneer dan de oorspronkelijke hellingswaarde.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
\/\/ Haal het lijnpad op.
var paths = Geometry($feature)['paths'];
\/\/ Haal het eerste en laatste vertex op, en selecteer de laagste van de twee.
var down_elevation = min(paths[0][0]['z'], paths[-1][-1]['z'])
\/\/ Haal het eerste en laatste vertex op, en selecteer de hoogste van de twee.
var up_elevation = max(paths[0][0]['z'], paths[-1][-1]['z'])
\/\/ Bereken helling met behulp van deze drie variabelen.
return ABS((up_elevation - down_elevation)\/Length(Geometry($feature))) <\/code><\/pre> <\/P> <\/P>Opmerking: Pas bij gebruik van deze expressie de velden aan zodat ze overeenkomen met jouw gegevens.<\/EM><\/P>Gebruikssituatie voor het berekenen van helling met velden<\/H2>Stel je voor dat je een leiding-featureclass hebt ontvangen en gevraagd bent om een nieuw veld toe te voegen en voor elke feature de helling te berekenen. De lijnfeatures zijn niet z-ingeschakeld en hebben geen hoogtewaarden voor elk vertex. Na het bekijken van de attributentabel vind je twee velden met hoogtewaarden voor het begin en einde van elke leiding.<\/P>Je besluit het hellingsveld te berekenen met behulp van een Arcade-expressie. De expressie gebruikt waarden uit de UPELEV- en DOWNELEV-attribuutvelden om de hoogteverandering van de lijn te berekenen. De afstand van elke leiding wordt berekend met behulp van een geometriefunctie. Deze drie waarden zijn input voor de hellingsberekening en de teruggegeven waarde wordt opgeslagen in het SLOPE-veld. <\/P>Hier is een voorbeeld van een expressie die veldwaarden gebruikt om helling te berekenen:<\/P> <\/P> <\/P>\/\/ Als een van beide velden niet is ingevuld, retourneer dan de oorspronkelijke hellingswaarde.
if (IsEmpty($feature.UPELEV) || IsEmpty($feature.DOWNELEV))
{
return $feature.SLOPE;
}
\/\/ Als geometrie leeg is of lengte nul heeft, retourneer dan oorspronkelijke hellingswaarde.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
\/\/ Bereken helling met behulp van beide velden en geometriefunctie.
return ABS(($feature.UPELEV - $feature.DOWNELEV)\/Length(Geometry($feature))); <\/code><\/pre> <\/P> <\/P>Opmerking: Pas bij gebruik van deze expressie de velden aan zodat ze overeenkomen met jouw gegevens.<\/EM><\/P>ArcGIS Arcade is een expressietaal die wordt gebruikt om gegevens in ArcGIS op te maken en te manipuleren. Deze gebruikssituaties voor het berekenen van helling in een attribuutregel en veldberekening zijn slechts twee voorbeelden van Arcade. Deze expressies kunnen ook in andere toepassingen worden gebruikt om hellingswaarden terug te geven, zoals labeling, pop-ups en formulieren. Je kunt deze voorbeeldexpressies hergebruiken en aanpassen aan jouw specifieke projectbehoeften. <\/P>Voor verdere training in de Arcade-expressietaal, bekijk Esri's Aan de slag met ArcGIS Arcade: <\/SPAN>https://go.esri.com/arcade-course<\/SPAN><\/SPAN><\/A> <\/SPAN><\/P>