Effectuer l'étirement caoutchouté d'entités (Mise à jour)

Synthèse

Modifie les entités en entrée en les ajustant dans l’espace par déformation élastique grâce aux liens d’étirement caoutchouté spécifiés, afin qu’elles soient mieux alignées avec les entités cible prévues.

Illustration

Entités élastiques

Utilisation

    Attention :

    Cet outil modifie les données en entrée. Pour plus d’informations et connaître les stratégies permettant d’empêcher les modifications de données indésirables, reportez-vous à la rubrique Outils qui modifient ou mettent à jour les données en entrée.

  • Cet outil est destiné à être utilisé après l’outil Generate Rubbersheet Links (Générer des liens d’étirement caoutchouté). La déformation élastique effectue des ajustements spatiaux dans le but d’aligner l’emplacement des entités en entrée sur des emplacements plus précis des entités cible grâce aux liens d’étirement caoutchouté spécifiés. Les entités linéaires en entrée correspondent aux liens réguliers ; les entités points en entrée correspondent aux liens d’identité qui ne modifient pas les positions source lors de la déformation élastique. Les entités linéaires en entrée et les entités linéaires d’identité doivent inclure les champs SRC_FID et TGT_FID.

  • Remarque :

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

  • Le paramètre Method (Méthode) définit la méthode d’interpolation utilisée pour créer les TIN temporaires lors de la déformation élastique.

    • Linear (Linéaire) : cette méthode crée une surface TIN sans prendre réellement en compte le voisinage. Elle est légèrement plus rapide et donne de bons résultats lorsque de nombreux liens de déformation élastique sont répartis de manière homogène parmi les données à ajuster.
    • Natural neighbor (Voisin naturel) : cette méthode, plus lente, est également plus précise lorsque vous ne disposez pas d’un grand nombre de liens de déformation élastique et qu’ils sont disséminés dans tout votre jeu de données. Dans ce cas, le voisin linéaire sera moins précis.

Paramètres

ÉtiquetteExplicationType de données
Entités en entrée

Entités en entrée à ajuster. Il peut s’agir de points, de lignes, de polygones ou d’annotations.

Feature Layer
Entités linéaires en entrée

Entités linéaires en entrée représentant des liens standard de déformation élastique.

Feature Layer
Entités ponctuelles en entrée en tant que liens d'identité
(Facultatif)

Entités ponctuelles en entrée représentant les liens d’identité de déformation élastique.

Feature Layer
Méthode
(Facultatif)

Spécifier la méthode de déformation élastique à utiliser pour ajuster les entités.

  • LinéaireCette méthode est légèrement plus rapide et donne de bons résultats lorsque de nombreux liens de déformation élastique sont répartis de manière homogène parmi les données à ajuster. Il s’agit de l’option par défaut.
  • Voisin naturelAdoptez cette méthode lorsque vous utilisez quelques liens très éloignés.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Entités en entrée modifiées

Entités en entrée mises à jour.

Couche d’entités

arcpy.edit.RubbersheetFeatures(in_features, in_link_features, {in_identity_links}, {method})
NomExplicationType de données
in_features

Entités en entrée à ajuster. Il peut s’agir de points, de lignes, de polygones ou d’annotations.

Feature Layer
in_link_features

Entités linéaires en entrée représentant des liens standard de déformation élastique.

Feature Layer
in_identity_links
(Facultatif)

Entités ponctuelles en entrée représentant les liens d’identité de déformation élastique.

Feature Layer
method
(Facultatif)

Spécifier la méthode de déformation élastique à utiliser pour ajuster les entités.

  • LINEARCette méthode est légèrement plus rapide et donne de bons résultats lorsque de nombreux liens de déformation élastique sont répartis de manière homogène parmi les données à ajuster. Il s’agit de l’option par défaut.
  • NATURAL_NEIGHBORAdoptez cette méthode lorsque vous utilisez quelques liens très éloignés.
String

Sortie obtenue

NomExplicationType de données
out_feature_class

Entités en entrée mises à jour.

Couche d’entités

Exemple de code

Exemple 1 d'utilisation de l'outil Effectuer l'étirement caoutchouté d'entités (fenêtre Python)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.RubbersheetFeatures_edit("source_Roads.shp","rubbersheet_Links.shp",
                               "rubbersheet_Links_pnt.shp", "LINEAR")
Exemple 2 d’utilisation de l’outil RubbersheetFeatures (script autonome)

Le script autonome suivant est un exemple d'application de la fonction RubbersheetFeatures dans un environnement de scripts.

# Name:        RubbersheetFeatures_example_script2.py
# Description: Performs rubbersheeting spatial adjustment using links produced by
#              GenerateRubbersheetLinks, assuming newly updated roads are more
#              accurate than existing base roads. The links go from base road data
#              to corresponding 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")

Environnements

Cas particuliers

Informations de licence

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

Rubriques connexes