Générer des liens d'étirement caoutchouté (Mise à jour)

Synthèse

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

Générer des liens à déformation élastique

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 l’exactitude des données grâce à l’ajustement de la déformation élastique, en utilisant cet outil pour générer des liens à déformation élastique, suivi de l’outil Effectuer la déformation élastique 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.

  • Remarque :

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

  • 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éformation élastique comme entrée pour l’outil Effectuer la déformation élastique 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 la déformation élastique. 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 la déformation élastique 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éformation élastique 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 Champs d'appariement, les candidats appariés spatialement sont comparés à ces valeurs de champs afin de déterminer la correspondance exacte. 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 la correspondance 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.

Paramètres

ÉtiquetteExplicationType de données
Entités source

Entités linéaires en tant qu’entités source pour la génération de liens à déformation élastique. Tous les liens débutent aux entités source.

Feature Layer
Entités cible

Entités linéaires en tant qu’entités cible pour la génération de liens à déformation élastique. Tous les liens prennent fin aux entités cible.

Feature Layer
Classe d'entités en sortie

Classe d'entités en sortie contenant les lignes représentant des liens d'étirement caoutchouté.

Feature Class
Distance de recherche

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
Champs d'appariement
(Facultatif)

Liste des champs des entités source et cible. 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
Table d'appariement en sortie
(Facultatif)

Table en sortie contenant des informations d'appariement d'entités complètes.

Table

Sortie obtenue

ÉtiquetteExplicationType de données
Liens d'identité

Classe d’entités contenant les liens d’identité.

Classe d’entités

arcpy.edit.GenerateRubbersheetLinks(source_features, target_features, out_feature_class, search_distance, {match_fields}, {out_match_table})
NomExplicationType de données
source_features

Entités linéaires en tant qu’entités source pour la génération de liens à déformation élastique. 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éformation élastique. 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 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
out_match_table
(Facultatif)

Table en sortie contenant des informations d'appariement d'entités complètes.

Table

Sortie obtenue

NomExplicationType de données
out_point_feature_class

Classe d’entités contenant les liens d’identité.

Classe d’entités

Exemple de code

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

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction GenerateRubbersheetLinks 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")
Exemple 2 d’utilisation de l’outil GenerateRubbersheetLinks (script autonome)

Le script autonome suivant est un exemple d'application de la fonction GenerateRubbersheetLinks 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")

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Oui

Rubriques connexes