Générer des liens d'ajustement des bords (Mise à jour)
Récapitulatif
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.
Illustration
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 à la fois en utilisant cet outil pour générer des liens d'ajustement des bords, suivi de l'outil Ajuster les bords des entités pour ajuster les entités de manière 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é 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'ajustement des bords. Ces valeurs représentent le nombre de candidats détectés dans la distance de recherche, les situations de correspondance des attributs, ainsi que les continuités entre entités source et entités adjacentes. Les plages de valeurs s'échelonnent entre 0 et 100, 100 représentant le niveau de confiance le plus élevé. Plus la valeur de EM_CONF est élevée, plus il y a de chances que le lien soit correct. Voir des exemples dans la rubrique À propos de l'ajustement des bords.
-
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 leurs formes 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 lignes adjacente appariée.
Vous pouvez afficher ces liens sur une carte comme vous le feriez avec d'autres entités linéaires. Vous pouvez tracer les lignes 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 des champs, les entités appariées spatialement sont vérifiées par rapport aux valeurs de ces champs. Supposons, par exemple, que les entités de mise à jour 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 la meilleure correspondance. 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.
Vous devez réduire 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 toujours utile que, au sein d'un jeu de données en entrée, les entités soient correctes sur le plan topologique, possèdent une géométrie valide, et qu'elles soient 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 superflu, modifier un lien en déplaçant son sommet de début ou de fin, ou ajouter un nouveau lien le cas échéant. Veillez à mettre à jour les valeurs SRC_FID et TGT_FID en conséquence.
Syntaxe
Paramètre | Explication | Type de données |
source_features |
Entités linéaires en tant qu'entités source 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 adjacentes aux entités source. 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 d'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, l'unité de l'entité est spécifiée. | Linear unit |
match_fields [[source_field, target_field],...] (Facultatif) |
Champs provenant des entités source et cible, où les champs cible 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
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Générer des liens d'ajustement des bords en mode immédiat.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateEdgematchLinks_edit("countyA_Roads.shp",
"countyB_Roads.shp", "em_Links.shp"
"25 Feet")
Le script autonome suivant dessous est un exemple d'application simple de la fonction Générer des liens d'ajustement des bords dans un environnement de scripts.
# Name: GenerateRubbersheetLinks_example_script2.py
# Description: Generates links for rubbersheeting spatial adjustment. The links go
# from base road data to newly updated road data. The links are then
# analyzed for potential errors; they are finally used to adjust the
# base roads (a copy is made) to better align with the updated roads.
# Author: Esri
# -----------------------------------------------------------------------
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.overwriteOutput = True
env.workspace = r"D:\conflationTools\ScriptExamples\data.gdb"
# Set local variables
sourceFeatures = "baseRoads"
targetFeatures = "updateRoads"
grlOutput = "grlinks_out"
grlOutputPts = "grlinks_out_pnt"
search_distance = "300 Feet"
match_fields = "FULLNAME RD_NAME"
qaLocations = "qa_locations"
# Generate rubbersheet links
arcpy.GenerateRubbersheetLinks_edit(sourceFeatures, targetFeatures, grlOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of GenerateRubbersheetLinks may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct links before using
# them for rubbersheeting.
#
# One of the common errors are 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.Intersect_analysis(grlOutput, qaLocations, "", "", "POINT")
# Delete coincident points
arcpy.DeleteIdentical_management(qaLocations, "Shape")
# ====================================================================================
# Note 2: At this point you can manually inspect locations in qaLocations; delete or
# modify links as needed.
# ====================================================================================
# Make a copy of the sourceFeatures for rubbersheeting
arcpy.CopyFeatures_management(sourceFeatures, "sourceFeatures_Copy")
# Use the links for rubbersheeting
arcpy.RubbersheetFeatures_edit("sourceFeatures_Copy", grlOutput, grlOutputPts, "LINEAR")