Générer des liens d’ajustement des bords (Mise à jour)

Synthèse

Recherche des entités linéaires correspondantes mais déconnectées le long des bords de la zone des données source et de la zone de données adjacentes, puis génère des liens d'ajustement des bords à partir des lignes source vers les lignes adjacentes appariées.

En savoir plus sur l’ajustement des bords

Illustration

Illustration de l’outil Générer des liens d'ajustement des bords

Utilisation

  • Les entités linéaires de jeux de données adjacents séparés, par exemple des routes de comtés voisins, peuvent présenter des interruptions ou être décalées le long de leurs bords accolés, à cause de l’incohérence de la collecte de données ou pour d’autres raisons. Vous pouvez résoudre le problème d’ajustement des bords entre deux jeux de données en même temps en utilisant cet outil pour générer des liens d’ajustement des bords. Utilisez ensuite l’outil Ajuster les bords des entités pour ajuster les entités afin qu’elles se connectent. Les deux ensembles d’entités linéaires sont appelés entités source et entités adjacentes. Cet outil détecte les lignes source et adjacentes disjointes mais correspondantes au sein de la distance de recherche spécifiée et génère des lignes représentant des liens d'ajustement des bords (également appelés liens de déplacement) entre elles.

    Lorsque deux entités correspondantes déconnectées le long d’un bord se trouvent dans la distance de recherche l’une par rapport à l’autre, mais que leurs extrémités sont plus éloignées l’une de l’autre que la distance de recherche, elles ne sont pas prises en compte pour l’ajustement des bords.

  • Remarque :

    Toutes les entrées doivent être exprimées dans le même système de coordonnées.

    La classe d’entités en sortie utilise le même système de coordonnées que les entrées.

  • La classe d’entités en sortie contient des entités linéaires représentant les liens d’ajustement des bords avec les champs suivants.

    • SRC_FID : identifiant d’entité source aux points de départ des liens.
    • ADJ_FID : identifiant d’entité adjacente aux points de fin des liens.
    • EM_CONF : valeurs représentant le niveau de confiance de l’appariement des contours. Ces valeurs représentent le nombre de candidats détectés dans la distance de recherche, les situations d’appariement des attributs, ainsi que les continuités entre entités source et entités adjacentes. La valeur est comprise entre 0 et 100, 100 représentant le niveau de confiance le plus élevé. Plus la valeur EM_CONF est élevée, plus il y a de chances que le lien soit correct. Consultez des exemples dans la rubrique À propos de l’appariement des contours.
  • Le paramètre Distance de recherche est utilisé dans la recherche de candidats d'appariement. Utilisez une distance suffisamment importante pour détecter la plupart des décalages entre entités correspondantes, mais pas trop importante, afin de ne pas entraîner un traitement superflu d'un trop grand nombre de candidats et de ne pas obtenir des correspondance erronées.

  • Une fois les candidats à l’ajustement détectés, les caractéristiques de leur forme sont analysées. Un ajustement est déterminé entre les entités source et les entités adjacentes qui représente la meilleure continuation. Une ligne représentant le lien d’ajustement des bords est générée à partir de l’extrémité de la ligne source vers l’extrémité de la ligne adjacente appariée.

    Vous pouvez afficher ces liens sur une carte comme vous le feriez avec d’autres entités linéaires. Les lignes peuvent être tracées avec une flèche à leur extrémité pour produire une carte similaire à l’illustration ci-dessus.

  • Si vous spécifiez une ou plusieurs paires de champs pour le paramètre Apparier les champs, les entités appariées spatialement sont comparées aux valeurs de ces champs. Supposons, par exemple, que les entités de remplacement et de base possèdent toutes deux un champ STREET_NAME contenant des noms de rues. Si une entité source correspond spatialement à deux entités adjacentes, mais qu’un seul candidat adjacent possède la même valeur de champ STREET_NAME que l’entité source, celui-ci constitue le meilleur appariement. La comparaison de chaînes de texte ne respecte pas la casse : First St est égal à first st.

    Les conditions d’appariement des attributs ont une incidence sur les valeurs du champ EM_CONF, comme indiqué ci-dessus.

  • La précision de l'ajustement des bords dépend de la qualité et de la complexité des données le long des bords des deux entrées.

    Réduisez les erreurs de données et sélectionner des entités pertinentes en entrée grâce à un pré-traitement. En général, il est utile lorsque les entités d’un jeu de données en entrée sont correctes sur le plan topologique, possèdent une géométrie valide et sont monoparties et non dupliquées ; dans le cas contraire, des résultats inattendus pourraient survenir.

  • Nous vous recommandons d'examiner les résultats et d'apporter les corrections qui s'imposent. Lors de l’inspection a posteriori et de la post-édition, vous pouvez faire appel aux outils de mise à jour existants pour modifier les liens, par exemple, pour supprimer un lien, modifier un lien en déplaçant son sommet de début ou de fin ou ajouter un nouveau lien. Mettez à jour les valeurs des champs SRC_FID et TGT_FID en conséquence.

Paramètres

ÉtiquetteExplicationType de données
Entités source

Entités linéaires qui seront utilisées en tant qu’entités sources pour l’ajustement des bords. Tous les liens d'ajustement des bords débutent aux entités source.

Feature Layer
Entités adjacentes

Entités linéaires qui sont adjacentes aux entités sources. Tous les liens d'ajustement des bords prennent fin aux entités adjacentes.

Feature Layer
Classe d’entités en sortie

Classe d’entités en sortie contenant les lignes représentant des liens d’ajustement des bords.

Feature Class
Distance de recherche

Distance utilisée pour rechercher des candidats à l’appariement. La distance doit être indiquée et elle doit être supérieure à zéro. Vous pouvez choisir une unité préférée. Par défaut, il s’agit de l’unité de l’entité.

Linear Unit
Champs d'appariement
(Facultatif)

Champs provenant des entités sources et cibles dans lesquelles les champs cibles proviennent des entités adjacentes. Si cette option est renseignée, des candidats à l’appariement sont recherchés dans chaque paire de champs afin de déterminer la correspondance adéquate.

Value Table

arcpy.management.GenerateEdgematchLinks(source_features, adjacent_features, out_feature_class, search_distance, {match_fields})
NomExplicationType de données
source_features

Entités linéaires qui seront utilisées en tant qu’entités sources pour l’ajustement des bords. Tous les liens d'ajustement des bords débutent aux entités source.

Feature Layer
adjacent_features

Entités linéaires qui sont adjacentes aux entités sources. Tous les liens d'ajustement des bords prennent fin aux entités adjacentes.

Feature Layer
out_feature_class

Classe d’entités en sortie contenant les lignes représentant des liens d’ajustement des bords.

Feature Class
search_distance

Distance utilisée pour rechercher des candidats à l’appariement. La distance doit être indiquée et elle doit être supérieure à zéro. Vous pouvez choisir une unité préférée. Par défaut, il s’agit de l’unité de l’entité.

Linear Unit
match_fields
[[source_field, target_field],...]
(Facultatif)

Champs provenant des entités sources et cibles dans lesquelles les champs cibles proviennent des entités adjacentes. Si cette option est renseignée, des candidats à l’appariement sont recherchés dans chaque paire de champs afin de déterminer la correspondance adéquate.

Value Table

Exemple de code

Exemple d'utilisation 1 de l'outil Générer des liens d'ajustement des bords (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction GenerateEdgematchLinks en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.edit.GenerateEdgematchLinks("countyA_Roads.shp",
                                  "countyB_Roads.shp", "em_Links.shp"
                                  "25 Feet")
Exemple d’utilisation de l’outil GenerateEdgematchLinks 2 (script autonome)

Le script autonome ci-après est un exemple d’application simple de la fonction GenerateEdgematchLinks dans un environnement de scripts.

"""
Name:        EdgematchFeatures_example_script2.py
Description: Performs edgematching spatial adjustment using links produced by
             GenerateEdgematchLinks. The links go from input features to adjacent 
             features. The links are then checked for intersecting conditions, which
             may not be desired. They are then used to adjust input features 
             (a copy is made) to connect to the matched adjacent features.
"""

# Import system modules.
import arcpy

# Set environment settings.
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"D:\conflationTools\ScriptExamples\data.gdb"

# Set local variables.
inFeatures = "roads1"
adjFeatures = "roads2"
gelOutput = "gelinks_out"

search_distance = "200 Feet"
match_fields = "NAME ROAD_NAME"

qaLocations = "qa_locations"

# Generate rubbersheet links.
arcpy.edit.GenerateEdgematchLinks(inFeatures, adjFeatures, gelOutput, search_distance, match_fields)

"""
Note 1:  The result of GenerateEdgematchLinks may contain errors; see the tool reference.
         Inspection and editing may be necessary to ensure correct links before using
         them for edgematching.

         One of the possible errors is intersecting or touching links.  
         Their locations can be found by the process below.
"""

# Find locations where links intersect or touch. The result contains coincident points.
arcpy.analysis.Intersect(gelOutput, qaLocations, "", "", "POINT")

# Delete coincident points.
arcpy.management.DeleteIdentical(qaLocations, "Shape")

"""
Note 2:  You can manually inspect locations in qaLocations and delete or
         modify links as needed.
"""

# Make a copy of the inFeatures for edgematching.
inFeature_Copy = inFeatures + "_Copy"
arcpy.management.CopyFeatures(inFeatures, inFeature_Copy)

# Use the links to adjust the copy of the input features.
arcpy.edit.EdgematchFeatures(inFeature_Copy, gelOutput, "MOVE_ENDPOINT")