Effectuer l’étirement élastique d’entités (Mise à jour)

Synthèse

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

Illustration

Illustration de l’outil Effectuer l’étirement caoutchouté d’entités

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 Générer des liens d’étirement élastique. L’étirement apporte des ajustements spatiaux pour aligner les emplacements d’entités en entrée avec des emplacements d’entités cibles plus précis, selon les liens d’étirement spécifiés. Les entités de lien en entrée représentent les liens standard ; les entités ponctuelles en entrée représentent les liens d’identité qui contiennent les positions source non déplacées lors de l'étirement. Les entités de liens en entrée et les entités de liens d’identité doivent toutes deux comporter des 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 Méthode détermine la méthode d’interpolation utilisée pour créer les TIN temporaires dans l'étirement.

    • Linéaire : cette méthode crée une surface TIN rapide, mais ne prend pas réellement en compte le voisinage. Elle est légèrement plus rapide et fournit de bons résultats lorsque vous utilisez de nombreux liens d'étirement caoutchouté répartis uniformément dans les données que vous ajustez.
    • Voisin naturel : cette méthode est plus lente, mais plus précise si vous utilisez de nombreux liens d’étirement et qu’ils sont éparpillés à travers votre jeu de données. Dans ce cas, la méthode linéaire sera moins précise.

Paramètres

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

Entités en entrée qui seront ajustées. Il peut s’agir de points, de lignes, de polygones ou d’annotations.

Feature Layer
Entités de liens en entrée

Entités linéaires en entrée représentant des liens standard d'étirement.

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é d'étirement.

Feature Layer
Méthode
(Facultatif)

Spécifier la méthode d’étirement qui sera utilisée pour ajuster les entités.

  • LinéaireCette méthode est légèrement plus rapide et fournit de bons résultats lorsque vous utilisez de nombreux liens répartis uniformément dans les données que vous ajustez. 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.

Feature Layer

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

Entités en entrée qui seront ajustées. 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 d'étirement.

Feature Layer
in_identity_links
(Facultatif)

Entités ponctuelles en entrée représentant les liens d’identité d'étirement.

Feature Layer
method
(Facultatif)

Spécifier la méthode d’étirement qui sera utilisée pour ajuster les entités.

  • LINEARCette méthode est légèrement plus rapide et fournit de bons résultats lorsque vous utilisez de nombreux liens répartis uniformément dans les données que vous ajustez. 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.

Feature Layer

Exemple de code

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

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.edit.RubbersheetFeatures("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 then used to adjust the
             base roads (a copy is made) to better align with the updated roads.
"""

# Import system modules
import arcpy

# Set environment settings
arcpy.env.overwriteOutput = True
arcpy.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.edit.GenerateRubbersheetLinks(sourceFeatures, targetFeatures, grlOutput, search_distance, match_fields)

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

         One of the common 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(grlOutput, 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 sourceFeatures for rubbersheeting
arcpy.management.CopyFeatures(sourceFeatures, "sourceFeatures_Copy")

# Use the links for rubbersheeting
arcpy.edit.RubbersheetFeatures("sourceFeatures_Copy", grlOutput, grlOutputPts, "LINEAR")