Fonctionnement des outils de calcul du chemin de distance

Disponible avec une licence Spatial Analyst.

Alors que la distance euclidienne est représentée par une ligne droite, à vol d'oiseau (entre des emplacements), les outils de distance de chemin explorent le mouvement d'un voyageur sur une étendue. Les outils de distance de chemin permettent habituellement de créer le chemin de moindre coût entre une source et une destination, tout en tenant compte de la distance de surface et de facteurs horizontaux et verticaux.

Exemples de problèmes résolus par l'analyse de distance de chemin

  • Identifier la meilleure piste de randonnée pour atteindre un emplacement distant.
  • Calculer la distance et le coût réels d'une route proposée en tenant compte des montées et des pentes que présente le relief.
  • Déterminer l'itinéraire d'un navire en tenant compte des courants marins et du vent.

Formule générale pour l'analyse de distance de chemin

Le coût du déplacement d'une cellule vers une autre est déterminé par les facteurs suivants :

  1. Les caractéristiques de surface (surface de coût).
  2. Les caractéristiques du moyen de déplacement. Il peut s'agir du mode de déplacement, notamment à pied, en VTT, etc.
  3. Les caractéristiques du mouvement lors du déplacement d'une cellule vers une autre, à savoir en montée ou en pente, par exemple.

La formule générale de distance de coût est la suivante :

Cost = Cost of travel  *  Characteristics  *  Movement characteristics       over surface       of the mover        on the surface

Les outils de distance de chemin tiennent compte des caractéristiques de surface et de la surface de coût, qui est expliquée ci-dessous. Reportez-vous à la rubrique Impact des caractéristiques de la source sur l'analyse de distance de coût pour savoir comment contrôler les caractéristiques du moyen de déplacement dans les outils relatifs à la distance de chemin. Le raster de surface et les facteurs horizontaux et verticaux des outils de distance de chemin vous permettent de définir les caractéristiques de mouvement d'une cellule à une autre.

Calcul d’une distance de chemin

L’outil Distance de chemin permet d'analyser la distance de coût en tenant compte des facteurs de coût horizontaux et verticaux et de la distance de surface réelle. L'outil Allocation de distance de chemin emploie le même algorithme, mais le résultat est un raster qui désigne la source la plus proche pour chaque cellule et chaque emplacement. L'outil Antécédence de distance de chemin identifie la direction du voisin qui est la prochaine cellule sur le chemin de coût le moins cumulé par rapport à la source la plus proche.

Tous ces outils utilisent essentiellement le même algorithme pour calculer la sortie. La différence repose essentiellement sur la sortie principale de chaque outil.

Les outils de calcul des distances de chemin créent un raster en sortie dans lequel chacune des cellules se voit attribuer le coût cumulé depuis la cellule source de plus faible coût. L'algorithme utilise la représentation de cellule nœud/lien. Dans cette représentation, le centre d'une cellule est interprété comme un nœud, et chaque nœud est connecté à ses nœuds adjacents par des liens.

Chacun des liens est associé à une impédance. L'impédance est dérivée des coûts associés aux cellules situées à chaque extrémité du lien (à partir de la surface de coût) et de la direction du mouvement.

Pour simplifier la discussion, les formules dans la section suivante identifient comment le coût de déplacement est cumulé entre les cellules sur une surface de coût ; la modification du coût pour prendre en compte la distance entre les surfaces et les facteurs horizontaux et verticaux sera traitée dans une prochaine section.

Coûts de déplacement liés aux nœuds

Le coût du déplacement d’un noeud à l’autre dépend de l’orientation des noeuds dans l’espace. La relation entre les cellules a également une incidence sur le coût de déplacement.

Coût du nœud adjacent

Lors d'un déplacement entre une cellule et l'une des quatre cellules voisines directement connectées, le coût de déplacement à travers les liens jusqu'au nœud voisin est le coût de la cellule 1 plus le coût de la cellule 2, divisé par 2 :

a1 = (cost1 + cost2) / 2
  • cost1 : coût de déplacement à travers la cellule 1.

    cost2 : coût de déplacement à travers la cellule 2.

    a1 : coût attribué au lien de la cellule 1 à la cellule 2.

    Calcul du coût de cellules adjacentes

Coût perpendiculaire cumulé

Le coût cumulé est déterminé par la formule suivante :

accum_cost = a1 + (cost2 + cost3) / 2
  • cost2 : coût de déplacement à travers la cellule 2.

    cost3 : coût de déplacement à travers la cellule 3.

    accum_cost : coût cumulé pour passer à la cellule 3 depuis la cellule 1.

Dans l’illustration ci-dessous, a2 désigne le coût de déplacement de la cellule 2 à la cellule 3.

Calcul du coût de cellules non adjacentes

Coût de nœud en diagonale

Si le mouvement est diagonal, le coût de déplacement à travers le lien est 1,414214 (soit la racine carrée de deux) multiplié par le coût de déplacement à travers la cellule 1, plus le coût de déplacement à travers la cellule 2, divisé par 2 :

a1 = 1.414214(cost1 + cost2) / 2
Calcul du coût de cellules diagonales

Lorsque vous déterminez le coût cumulé d'un mouvement diagonal, la formule suivante est utilisée :

accum_cost = a1 + 1.414214(cost2 + cost3) / 2

Liste des cellules de coût cumulé

La création d'un raster de distance de coût cumulé à l'aide de la théorie des graphes est une façon d'identifier la cellule de plus faible coût et de l'ajouter à une liste en sortie. Il s'agit d'un processus itératif qui s'applique d'abord aux cellules source. Chaque cellule a pour objectif d'être attribuée rapidement à un raster de distance de coût en sortie.

Comparaison d’une distance de chemin et d’une distance de coût

Le traitement effectué avec l’outil Distance de chemin est similaire à celui que vous effectuez avec l’outil Distance de coût (reportez-vous à la rubrique Fonctionnement des outils de distance de coût). D'abord, les cellules source sont identifiées. Ensuite, le coût du déplacement vers chaque voisin adjacent à une cellule source est déterminé. Puis, chacune des cellules voisines est classée de la moins coûteuse à la plus coûteuse. L'emplacement de cellule de moindre coût est supprimé de cette liste active. Le coût cumulé le plus faible de déplacement vers chacun des voisins de la cellule supprimée est déterminé et ces emplacements sont ajoutés à la liste active. L'emplacement de cellule de moindre coût suivant dans la liste active est supprimé.

Traitement de la liste des valeurs de coût cumulé (3)

Le processus est répété jusqu'à ce que toutes les cellules du raster se voient attribuer un coût cumulé. La différence entre les outils Distance de coût et Distance de chemin réside dans la manière dont le coût de déplacement d'une cellule vers une autre est calculé.

Formule pour calculer une distance de chemin

Dans le cas d’une cellule, les outils de calcul d’une distance de chemin doivent permettre de définir le chemin le plus rentable pour chaque emplacement et de se rapprocher de la cellule issue de la source la moins onéreuse. Pour chaque cellule, vous devez identifier le chemin de plus faible coût cumulé à partir d'une source, la source qui garantit le chemin de moindre coût et le chemin de moindre coût.

Distance de chemin

Le coût de déplacement entre les cellules sur la surface de coût est déterminé par les formules décrites ci-dessus. Dans l'outil Distance de chemin, ces coûts (identifiés par Cost_Surface dans les équations ci-dessous) peuvent être modifiés par la distance de surface (Surface_distance) et les facteurs horizontaux et verticaux. La formule utilisée pour calculer le coût total de déplacement de la cellule a vers la cellule b varie si ce déplacement est perpendiculaire ou diagonal :

  • Perpendiculaire
    Cost_distance = (((Cost_surface(a) * HF(a)) + (Cost_surface(b) * HF(b)))/2)                * Surface_distance(ab) * VF(ab)
  • Diagonal
    Cost_distance = (((Cost_surface(a) * HF(a)) + (Cost_surface(b) * HF(b)))/2)                * 1.414214 * Surface_distance(ab) * VF(ab)

  • Cost_surface(a) : coût de déplacement pour la cellule a

    Cost_surface(b) : coût de déplacement pour la cellule b

    HF(a) : facteur horizontal pour la cellule a

    HF(b) : facteur horizontal pour la cellule b

    Surface_distance(ab) : distance de surface de a à b

    VF(ab) : facteur vertical de a à b

Notez bien que la division de la friction des segments par deux est reportée jusqu'à ce que le facteur horizontal soit intégré.

Si aucune surface de coût n'est spécifiée, un coût d'unité de distance de 1 est utilisé (revient à appliquer un raster de coût avec les valeurs 1). Les facteurs horizontaux et verticaux sont tous les deux appliqués à l'unité de distance. Les facteurs horizontaux et verticaux négatifs ne sont pas autorisés. Toutefois, comme les deux facteurs sont des multiplicateurs du coût cumulé de chaque cellule, un facteur inférieur à 1 mais supérieur à 0 réduit le coût total de cette cellule. Un facteur vertical de zéro, ou la valeur zéro pour les deux segments des facteurs horizontaux, entraîne un coût nul pour la cellule.

Distance de coût cumulée

Le coût de déplacement cumulé de la cellule a à la cellule c, en passant par la cellule b, est le suivant :

Accum_cost_distance = a1 + (((Cost_surface(b) * HF(b)) + (Cost_surface(c) * HF(c)))/2)                      * Surface_distance(bc) * VF(bc)
  • a1 : coût total du déplacement de la cellule a à la cellule b

    Cost_surface(b) : coût de déplacement pour la cellule b

    Cost_surface(c) : coût de déplacement pour la cellule c

    HF(b) : facteur horizontal pour la cellule b

    HF(c) : facteur horizontal pour la cellule c

    Surface_distance(bc) : distance de surface de b à c

    VF(bc) : facteur vertical de b à c

Paramètres horizontaux et verticaux

Il existe plusieurs types de paramètres que vous pouvez utiliser pour contrôler les facteurs de friction horizontaux et verticaux. Avec chacun de ces facteurs, vous pouvez employer plusieurs modificateurs pour optimiser l’analyse.

Pour plus d'informations sur ces paramètres, consultez la section suivante :

Rubriques connexes