Ajuster les bords des entités (Mise à jour)
Récapitulatif
Modifie les entités linéaires en entrée en ajustant spatialement leurs formes, guidé par les liens d'ajustement des bords spécifiés, afin qu'elles soient connectées avec les lignes du jeu de données adjacent.
Illustration
Utilisation
-
Cet outil est destiné à être utilisé après l'outil Générer des liens d'ajustement des bords. Il ajuste spatialement les formes des lignes en entrée, guidé par les entités de liens en entrée créées par l'outil Générer des liens d'ajustement des bords, afin qu'elles soient connectées correctement avec les entités linéaires adjacentes le long des zones limites. Les entités de liens en entrée doivent comporter des champs SRC_FID et ADJ_FID.
Cet outil déduit de nouveaux emplacements de connexion à partir des liens d'ajustement des bords, puis modifie les entités correspondantes de sorte qu'elles prennent fin aux nouveaux emplacements. Selon les entrées (Entités en entrée, Entités adjacentes et Entités limites) que vous fournissez, les nouveaux emplacements de connexion sont déterminés et les entités pertinentes ajustées en conséquence. Cet ajustement garantit que les entités appariées sont connectées, comme décrit ci-après :
- Lorsque vous fournissez uniquement des Entités en entrée, les extrémités des liens d'ajustement des bords sont prises comme nouveaux emplacements de connexion. Les lignes en entrée associées aux liens d'ajustement des bords (c'est-à-dire que leurs identifiants d'entités correspondent aux valeurs SRC_FID des liens) sont ajustées de manière à prendre fin aux extrémités des liens. Cela garantit qu'elles sont connectées aux entités adjacentes prévues, qui auraient dû participer à la génération de liens d'ajustement des bords.
- Lorsque vous fournissez à la fois des Entités en entrée et des Entités adjacentes, les points du milieu des liens d'ajustement des bords sont pris comme nouveaux emplacements de connexion. Les lignes en entrée associées et les lignes adjacentes associées (c'est-à-dire que leurs identifiants d'entités correspondent aux valeurs ADJ_FID des liens) sont ajustées de manière à prendre fin et à être connectées aux points du milieu des liens.
- Lorsque vous ajoutez les Entités limites, vous devez également spécifier Entités adjacentes. L'outil recherche les emplacements sur les limites qui sont les plus proches des points du milieu des liens comme nouveaux emplacements de connexion. Les lignes en entrée et les lignes adjacentes associées aux liens d'ajustement des bords sont ajustées de manière à être connectées aux emplacements des limites.
Le paramètre Méthode offre trois options d'ajustement des bords pour ajuster les entités. Chaque option s'applique soit uniquement aux entités en entrée, soit à la fois aux entités en entrée et aux entités adjacentes, comme expliqué ci-dessus.
- MOVE_ENDPOINT : déplace uniquement l'extrémité de la ligne en entrée vers le nouvel emplacement de connexion.
- ADD_SEGMENT : ajoute un segment droit à l'extrémité de la ligne en entrée pour qu'elle prenne fin au nouvel emplacement de connexion.
- ADJUST_VERTICES : ajuste l'extrémité d'une ligne avec le nouvel emplacement de connexion. Les sommets restants sont également ajustés de manière à ce que leurs changements de position soient progressivement réduits vers l'extrémité opposée de la ligne.
Cet outil modifie les données en entrée. Reportez-vous à la rubrique Outils sans sortie pour obtenir plus d'informations, ainsi que des stratégies pour éviter les mouvements de données indésirables.
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 |
in_features |
Entités linéaires en entrée à ajuster. | Feature Layer |
in_link_features |
Entités linéaires en entrée représentant les liens d'ajustement des bords. | Feature Layer |
method (Facultatif) |
Méthode d'ajustement des bords à utiliser pour ajuster soit uniquement les entités en entrée, soit à la fois les entités en entrée et les entités adjacentes, aux nouveaux emplacements de connexion.
| String |
adjacent_features (Facultatif) |
Entités linéaires qui sont adjacentes aux entités en entrée. Si elles sont spécifiées, les entités en entrée et les entités adjacentes sont ajustées de manière à se rejoindre à leurs nouveaux emplacements, soit les points du milieu des liens d'ajustement des bords, soit les emplacements les plus proches des points du milieu des liens sur les entités limites (si elles sont spécifiées). Vous devez fournir des entités adjacentes si vous fournissez des entités limites. | Feature Layer |
border_features (Facultatif) |
Entités linéaires ou surfaciques représentant des limites entre les entités en entrée et les entités adjacentes. Lorsque vous spécifiez les entités limites, vous devez également spécifier les entités adjacentes. Les entités en entrée et les entités adjacentes sont ajustées de manière à se rejoindre aux nouveaux emplacements de connexion les plus proches des points du milieu des liens sur les entités limites. | Feature Layer |
Exemple de code
Le script de fenêtre Python suivant illustre l'utilisation de l'outil Ajuster les bords des entités en mode immédiat.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.EdgematchFeatures_edit("cityA_Roads.shp", "em_Links.shp"
"MOVE_ENDPOINT")
Le script Python autonome suivant est un exemple d'application de la fonction Ajuster les bords des entités dans un environnement de scripts.
# Name: EdgematchFeatures_example_script2.py
# Description: Performs edgematching spatial adjustment using links produced by
# GenerateEdgematchLinks. The links go from input features to adjacent
# features. The links are then checked for intersecting conditions, which
# might not be desired; they are finally used to adjust input features
# (a copy is made) to connect with the matched adjacent feautures.
# 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
inFeatures = "roads1"
adjFeatures = "roads2"
gelOutput = "gelinks_out"
search_distance = "200 Feet"
match_fields = "NAME ROAD_NAME"
qaLocations = "qa_locations"
# Generate rubbersheet links
arcpy.GenerateEdgematchLinks_edit(inFeatures, adjFeatures, gelOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of GenerateEdgematchLinks may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct links before using
# them for edgematching.
#
# One of the possible errors are undesired 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(gelOutput, 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 inFeatures for edgematching
inFeature_Copy = inFeatures + "_Copy"
arcpy.CopyFeatures_management(inFeatures, inFeature_Copy)
# Use the links to adjust the copy of the input features
arcpy.EdgematchFeatures_edit(inFeature_Copy, gelOutput, "MOVE_ENDPOINT")