Calcular a inclinação de uma linha sobre uma superfície é simples usando a ferramenta Add Surface Information no ArcGIS Pro. Esta ferramenta sobrepõe a feição de linha com uma superfície, como um conjunto de dados LAS ou raster, para extrair os valores de elevação e calcular o valor da inclinação.
Mas o que fazer quando você não tem uma camada de superfície para o cálculo?
Como calcular a inclinação
Vamos primeiro decompor o cálculo da inclinação para entender melhor suas necessidades específicas de dados. A inclinação é calculada dividindo a variação de elevação pela distância horizontal percorrida. Isso às vezes é chamado de "elevação sobre distância". O valor resultante deste cálculo pode ser multiplicado por 100 para obter um valor percentual.

Quando uma camada de superfície não está disponível para calcular valores de elevação, você deve usar valores de atributo ou valores Z da feição de linha. A variação de elevação pode ser calculada subtraindo a elevação inicial da elevação final, e o valor da distância pode ser acessado pelo comprimento da forma.
Uma vez que você tenha determinado seus valores disponíveis, pode usar Arcade para calcular o valor da inclinação.
Caso de uso para calcular inclinação usando valores z
Imagine que você está usando um dispositivo móvel para realizar levantamento topográfico. Um dos pontos de dados que você coleta é o escoamento da propriedade. Isso é feito coletando dois pontos para formar uma linha de drenagem. Normalmente, os dados são coletados e depois acessados por um editor que calcula manualmente a inclinação da linha e insere em um campo de atributo.
Depois de aprender um pouco sobre ArcGIS Arcade, você descobre que pode usar uma regra de atributo e Arcade para calcular a inclinação durante a coleta de dados. Regras de cálculo podem executar a expressão da inclinação imediatamente após coletar a feição. Isso é calculado com base nos valores z do vértice inicial e final da linha. O valor retornado é então escrito no campo SLOPE na tabela de atributos.
Aqui está um exemplo de expressão que usa valores z para calcular a inclinação:
// Se a geometria estiver vazia ou tiver comprimento zero, retorne o valor original da inclinação.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
// Obtenha o caminho da linha.
var paths = Geometry($feature)['paths'];
// Obtenha o primeiro e último vértice, e selecione o menor dos dois.
var down_elevation = min(paths[0][0]['z'], paths[-1][-1]['z'])
// Obtenha o primeiro e último vértice, e selecione o maior dos dois.
var up_elevation = max(paths[0][0]['z'], paths[-1][-1]['z'])
// Calcule a inclinação usando as três variáveis.
return ABS((up_elevation - down_elevation)/Length(Geometry($feature)))
Nota: Ao usar esta expressão, atualize os campos para corresponder aos seus dados.
Caso de uso para calcular inclinação usando campos
Imagine que você recebeu uma classe de feição de dutos e foi solicitado a adicionar um novo campo e calcular a inclinação para cada feição. As feições de linha não têm suporte a z nem possuem valores de elevação para cada vértice. Após revisar a tabela de atributos, você encontra dois campos contendo valores de elevação para o início e fim de cada duto.
Você decide calcular o campo SLOPE usando uma expressão Arcade. A expressão usa os valores dos campos UPELEV e DOWNELEV para calcular a variação da elevação da linha. A distância de cada duto é calculada usando uma função geométrica. Esses três valores são as entradas para o cálculo da inclinação e o valor retornado é calculado no campo SLOPE.
Aqui está um exemplo de expressão que usa valores dos campos para calcular a inclinação:
// Se algum dos campos não estiver preenchido, retorne o valor original da inclinação.
if (IsEmpty($feature.UPELEV) || IsEmpty($feature.DOWNELEV))
{
return $feature.SLOPE;
}
// Se a geometria estiver vazia ou tiver comprimento zero, retorne o valor original da inclinação.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
// Calcule a inclinação usando os dois campos e função geométrica.
return ABS(($feature.UPELEV - $feature.DOWNELEV)/Length(Geometry($feature)));
Nota: Ao usar esta expressão, atualize os campos para corresponder aos seus dados.
ArcGIS Arcade é uma linguagem de expressão usada para formatar e manipular dados no ArcGIS. Estes casos de uso para calcular inclinação em uma regra de atributo e cálculo em campo são apenas dois exemplos do Arcade. Essas expressões podem ser usadas em outras aplicações para retornar valores de inclinação, como rotulagem, pop-ups e formulários. Você pode reutilizar e modificar essas expressões exemplo para atender às necessidades do seu projeto específico.
Para treinamento adicional na linguagem de expressão Arcade, confira o curso Get Started with ArcGIS Arcade da Esri: https://go.esri.com/arcade-course