Calculer la pente d'une ligne sur une surface est simple en utilisant l'outil Add Surface Information dans ArcGIS Pro. Cet outil superpose la ligne avec une surface, telle qu'un jeu de données LAS ou raster, pour extraire les valeurs d'altitude et calculer la valeur de la pente.<\/P>
Mais que faire lorsque vous n'avez pas de couche de surface pour le calcul ?<\/STRONG><\/EM><\/P>Comment calculer la pente<\/H2>Décomposons d'abord le calcul de la pente pour mieux comprendre vos besoins spécifiques en données. La pente est calculée en divisant le changement d'altitude par la distance horizontale parcourue. Cela s'appelle parfois « montée sur course ». La valeur de sortie de ce calcul peut être multipliée par 100 pour obtenir un pourcentage.<\/P>
<\/span><\/P>Lorsqu'une couche de surface n'est pas disponible pour calculer les valeurs d'altitude, vous devez utiliser soit les valeurs d'attributs soit les valeurs Z de la ligne. Le changement d'altitude peut être calculé en soustrayant l'altitude de départ de l'altitude finale, et la valeur de distance peut être obtenue à partir de la longueur de la forme.<\/P>Une fois que vous avez déterminé vos valeurs disponibles, vous pouvez utiliser Arcade pour calculer la valeur de la pente.<\/P>Cas d'utilisation pour calculer la pente en utilisant les valeurs z<\/H2>Imaginez que vous utilisez un appareil mobile pour effectuer un relevé paysager. L'un des points de données que vous collectez est le drainage des propriétés. Cela se fait en collectant deux points pour former une ligne de drainage. Habituellement, les données sont collectées puis consultées par un éditeur qui calcule manuellement la pente de la ligne et l'entre dans un champ d'attribut.<\/P>Après avoir appris un peu sur ArcGIS Arcade, vous découvrez que vous pouvez utiliser une règle d'attribut et Arcade pour calculer la pente lors de la collecte des données. Les règles de calcul peuvent exécuter l'expression de pente immédiatement après la collecte de l'entité. Ceci est calculé en fonction des valeurs z du sommet initial et final de la ligne. La valeur retournée est ensuite écrite dans le champ SLOPE dans la table attributaire.
Voici un exemple d'expression qui utilise les valeurs z pour calculer la pente:<\/P> <\/P> <\/P>\/\/ Si la géométrie est vide ou a une longueur nulle, retourner la valeur originale de pente.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
\/\/ Obtenir le chemin de la ligne.
var paths = Geometry($feature)['paths'];
\/\/ Obtenir le premier et le dernier sommet, et sélectionner le plus bas des deux.
var down_elevation = min(paths[0][0]['z'], paths[-1][-1]['z'])
\/\/ Obtenir le premier et le dernier sommet, et sélectionner le plus haut des deux.
var up_elevation = max(paths[0][0]['z'], paths[-1][-1]['z'])
\/\/ Calculer la pente en utilisant les trois variables.
return ABS((up_elevation - down_elevation)\/Length(Geometry($feature))) <\/code><\/pre> <\/P> <\/P>Note : Lors de l'utilisation de cette expression, mettez à jour les champs pour correspondre à vos données.<\/EM><\/P>Cas d'utilisation pour calculer la pente en utilisant des champs<\/H2>Imaginez que vous avez reçu une classe d'entités pipeline et qu'on vous a demandé d'ajouter un nouveau champ et de calculer la pente pour chaque entité. Les lignes ne sont pas activées en z et n'ont pas de valeurs d'altitude pour chaque sommet. Après avoir examiné la table attributaire, vous trouvez deux champs contenant les valeurs d'altitude du début et de la fin du pipeline.<\/P>Vous décidez de calculer le champ SLOPE en utilisant une expression Arcade. L'expression utilise les valeurs des champs attributaires UPELEV et DOWNELEV pour calculer le changement d'altitude de la ligne. La distance de chaque pipeline est calculée à l'aide d'une fonction géométrique. Ces trois valeurs sont les entrées du calcul de pente et la valeur retournée est enregistrée dans le champ SLOPE. <\/P>Voici un exemple d'expression qui utilise les valeurs des champs pour calculer la pente:<\/P> <\/P> <\/P>\/\/ Si l'un des champs n'est pas renseigné, retourner la valeur originale de pente.
if (IsEmpty($feature.UPELEV) || IsEmpty($feature.DOWNELEV))
{
return $feature.SLOPE;
}
\/\/ Si la géométrie est vide ou a une longueur nulle, retourner la valeur originale de pente.
if (IsEmpty(Geometry($feature)) || Length(Geometry($feature)) == 0)
{
return $feature.SLOPE;
}
\/\/ Calculer la pente en utilisant les deux champs et une fonction géométrique.
return ABS(($feature.UPELEV - $feature.DOWNELEV)\/Length(Geometry($feature))); <\/code><\/pre> <\/P> <\/P>Note : Lors de l'utilisation de cette expression, mettez à jour les champs pour correspondre à vos données.<\/EM><\/P>ArcGIS Arcade est un langage d'expression utilisé pour formater et manipuler des données dans ArcGIS. Ces cas d'utilisation pour calculer la pente dans une règle d'attributs et un calcul de champ ne sont que deux exemples avec Arcade. Ces expressions peuvent être utilisées dans d'autres applications pour retourner des valeurs de pente, telles que l'étiquetage, les pop-ups et les formulaires. Vous pouvez réutiliser et modifier ces expressions exemples afin qu'elles répondent aux besoins spécifiques de votre projet. <\/P>Pour une formation complémentaire sur le langage d'expression Arcade, consultez le cours Esri Get Started with ArcGIS Arcade : <\/SPAN>https://go.esri.com/arcade-course<\/SPAN><\/SPAN><\/A> <\/SPAN><\/P>