Générer des liens d'étirement caoutchouté (Mise à jour)
Récapitulatif
Détecte l'endroit où les entités linéaires source correspondent spatialement aux entités linéaires cible et génère des lignes représentant les liens entre des emplacements source et des emplacements cible correspondant pour l'étirement caoutchouté.
Illustration
Utilisation
-
Les entités linéaires provenant des sources de données différentes et couvrant la même zone, par exemple, des routes gérées par une municipalité et des routes pour la même ville issues d'un fournisseur de données commerciales, peuvent ne pas s'aligner parfaitement à cause d'une collecte de données incohérente ou pour toute autre raison. Les décalages spatiaux entre entités correspondantes ne sont souvent pas uniformes. Si vous savez que les données provenant d'une source sont moins précises que celles d'une autre, vous pouvez améliorer la précision des données grâce à l'ajustement d'étirement caoutchouté, en utilisant cet outil pour générer des liens d'étirement caoutchouté, suivi de l'outil Effectuer l'étirement caoutchouté d'entités pour exécuter l'ajustement. Les deux ensembles d'entités linéaires sont appelés entités source et entités cible (généralement plus précises). Cet outil détecte les lignes source et les lignes cible correspondantes au sein de la distance de recherche spécifiée et génère des liens d'étirement caoutchouté (également appelés liens de déplacement) entre elles.
-
L’union des étendues en entrée est utilisée comme étendue de traitement. Le nombre d'entités source et cible participantes est indiqué dans les messages de traitement.
La classe d'entités en sortie contient des lignes représentant des liens d'étirement caoutchouté comme entrée pour l'outil Effectuer l'étirement caoutchouté d'entités. Un lien standard connecte un emplacement source à un emplacement cible apparié, non identique.
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.
Outre la classe d'entités linéaires en sortie, une classe d'entités ponctuelles dérivée est créée par cet outil, qui contient les liens d'identité. Un lien d'entité connecte un emplacement source à un emplacement cible identique apparié. Les emplacements dotés de liens d'identité ne sont pas déplacés dans l'étirement caoutchouté. Si aucun emplacement source identique et aucun emplacement cible n'est apparié, aucun lien d'identité n'est généré. Par conséquent, la classe d'entités ponctuelles en sortie est vide. Vous avez seulement besoin de fournir la classe d'entités ponctuelles comme entrée pour l'outil Effectuer l'étirement caoutchouté d'entités si elle n'est pas vide. La classe d'entités ponctuelles en sortie se trouve au même emplacement que la classe d'entités en sortie et porte le même nom que la classe d'entités en sortie, mais avec le suffixe _pnt. Par exemple, si la classe d'entités en sortie est nommée outputLinks, la classe d'entités ponctuelles en sortie est nommée outputLinks_pnt.
Les deux sorties (les liens d'étirement caoutchouté standard et les liens d'identité) possèdent les champs suivants :
- SRC_FID : identifiants d'entités source aux points de départ des liens. La valeur est -1 si l'emplacement est partagé par plusieurs entités source (par exemple, un carrefour routier).
- TGT_FID : identifiants d'entités cible aux points de fin des liens. La valeur est -1 si l'emplacement est partagé par plusieurs entités cible (par exemple, un carrefour routier).
-
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.
L'appariement d'entités se fait en analysant la topologie des lignes, les motifs et les caractéristiques géométriques. Une fois les entités appariées spatialement, les liens d'étirement sont générés entre emplacements source et emplacements cible. Pour les entités source qui sont des courbes paramétriques (vraies), les liens sont générés à des emplacements densifiés le long des courbes.
Si vous spécifiez une ou plusieurs paires de champs pour le paramètre Apparier des champs, les candidats appariés spatialement sont vérifiés par rapport aux valeurs de ces champs afin de déterminer la bonne correspondance. Supposons, par exemple, que les entités source et cible possèdent toutes deux un champ STREET_NAME contenant des noms de rues. Si une entité source correspond spatialement à deux entités cible, mais qu'un seul candidat cible 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.
-
La Table d'appariement en sortie est facultative. Cette table d'appariement fournit des informations d'appariement d'entités complètes, notamment les FID source et cible, les groupes d'appariement, les relations d'appariement et le niveau de confiance de l'appariement dérivé des conditions d'appariement spatiales et d'attributs. Ces informations peuvent vous aider à comprendre les situations d'appariement et faciliter l'inspection a posteriori, la post-édition et l'analyse supplémentaire. Pour plus d'informations, reportez-vous à la rubrique À propos de l'appariement d'entités et de la table d'appariement.
La précision de l'appariement des entités dépend de la qualité et de la complexité des données, ainsi que des similitudes entre les 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.
Toutes les entrées doivent être exprimées dans le même système de coordonnées.
Syntaxe
Paramètre | Explication | Type de données |
source_features |
Entités linéaires en tant qu'entités source pour la génération de liens d'étirement caoutchouté. Tous les liens débutent aux entités source. | Feature Layer |
target_features |
Entités linéaires en tant qu'entités cible pour la génération de liens d'étirement caoutchouté. Tous les liens prennent fin aux entités cible. | Feature Layer |
out_feature_class |
Classe d'entités en sortie contenant les lignes représentant des liens d'étirement caoutchouté. | 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) |
Liste des champs des entités source et cible. Si elle 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 |
out_match_table (Facultatif) |
Table en sortie contenant des informations d'appariement d'entités complètes. | Table |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Générer des liens d'étirement caoutchouté en mode immédiat.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateRubbersheetLinks_edit("source_Roads.shp", "target_Roads.shp",
"rubbersheet_Links.shp", "25 Feet")
Le script autonome suivant dessous est un exemple d'application de la fonction Générer des liens d'étirement caoutchouté 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")