Resumen
Busca entidades de línea coincidentes pero desconectadas a lo largo de los bordes del área de datos de origen y su área de datos adyacente y genera vínculos de ajuste de bordes desde las líneas de origen a las líneas adyacentes coincidentes.
Ilustración
Uso
Las entidades de línea de datasets adyacentes separados, tales como carreteras de países vecinos, pueden presentar huecos o desplazarse a lo largo de sus bordes coincidentes debido a una captura de datos incoherente u otras razones. Puede resolver el problema de ajuste de bordes entre dos datasets a la vez utilizando esta herramienta para generar vínculos de ajuste de bordes, seguida de la herramienta Entidades de ajuste de bordes para ajustar las entidades de forma que conecten. Para referirse a los dos conjuntos de entidades de línea se utilizan los términos entidades de origen y entidades adyacentes. Esta herramienta busca las líneas de origen y adyacentes separadas pero correspondientes dentro de una distancia de búsqueda especificada y genera líneas que representen vínculos de ajuste de bordes (conocidos como vínculos de desplazamiento) entre ellos.
Cuando dos entidades correspondientes desconectadas a lo largo del área del eje están dentro de la distancia de búsqueda de cada una, pero sus extremos están separados por una distancia superior a la distancia de búsqueda, no se tienen en cuenta para el ajuste de bordes.
La clase de entidad de salida utiliza el mismo sistema de coordenadas como entrada.
La clase de entidad de salida contiene entidades de línea que representan vínculos de ajuste de bordes con los campos siguientes.
- SRC_FID: el Id. de la entidad de origen en los puntos iniciales de los vínculos.
- ADJ_FID: el Id. de la entidad adyacente en los puntos finales de los vínculos.
- EM_CONF: valores que representan el nivel de confianza del ajuste de bordes. Estos valores representan el número de candidatos encontrados dentro de la distancia de búsqueda, las situaciones de coincidencia de atributos y las continuidades entre entidades origen y adyacentes. El valor fluctúa entre mayor que 0 y 100, donde 100 representa el mayor nivel de confianza. Cuanto mayor sea el valor EM_CONF, mayor será la probabilidad de que el vínculo sea correcto. Consulte ejemplos en Sobre el ajuste de bordes.
El parámetro Distancia de búsqueda se utiliza para buscar candidatos que coinciden. Utilice una distancia que sea lo suficientemente grande para captar la mayoría de cambios entre las entidades correspondientes, pero no demasiado para generar el procesamiento innecesario de un exceso de candidatos y obtener potencialmente coincidencias erróneas.
Una vez que se han encontrado candidatos para el ajuste, se analizan las características de sus formas. Un ajuste se determina entre la entidad origen y las entidades adyacentes que constituyan la mejor continuación. Se genera una línea que representa el vínculo de ajuste de borde desde el extremo de la línea de origen hasta el extremo de la línea adyacente ajustada.
Puede visualizar estos vínculos en un mapa como con cualquier otra entidad de línea. Las líneas se pueden trazar con una flecha en los extremos para generar un mapa parecido al de la ilustración de arriba.
Si especifica uno o varios pares de campos para el parámetro Campos coincidentes, las entidades coincidentes en el espacio se contrastan con los valores de campo. Por ejemplo, supongamos que tanto las entidades base como las de actualización tienen un campo STREET_NAME que contiene nombres de calles. Si una entidad de origen coincide en el espacio con dos entidades adyacentes, pero solo un candidato adyacente tiene el mismo valor de STREET_NAME que la entidad de origen, este se considera la mejor concordancia. La comparación de cadenas de texto no distingue mayúsculas de minúsculas, lo que significa que Calle Mayor se considera igual que calle mayor.
Las condiciones de coincidencia de atributo modifican los valores del campo EM_CONF como se ha descrito anteriormente.
La precisión del ajuste de bordes depende de la calidad de los datos y la complejidad a lo largo de los bordes de las dos entradas.
Como entrada durante el procesamiento previo, debe minimizar los errores de datos y seleccionar las entidades relevantes. En general, siempre es útil que dentro de un dataset de entrada, las entidades sean topológicamente correctas, tengan una geometría válida y sean de parte simple y no duplicadas; de lo contrario, pueden producirse errores inesperados.
Se recomienda que revise los resultados y haga las correcciones necesarias. Durante la inspección posterior y la postedición, puede usar las herramientas de edición existentes para editar los vínculos, por ejemplo, para eliminar un vínculo no deseado, alterar un vínculo moviendo su vértice inicial o final o agregar un nuevo vínculo donde sea necesario. Asegúrese de actualizar los valores SRC_FID y TGT_FID en consecuencia.
Sintaxis
arcpy.edit.GenerateEdgematchLinks(source_features, adjacent_features, out_feature_class, search_distance, {match_fields})
Parámetro | Explicación | Tipo de datos |
source_features | Entidades de línea como entidades de origen de ajuste de bordes. Todos los vínculos de ajuste de bordes empiezan en entidades de origen. | Feature Layer |
adjacent_features | Entidades de línea adyacentes a entidades de origen. Todos los vínculos de ajuste de borde finalizan en entidades adyacentes. | Feature Layer |
out_feature_class | La clase de entidad de salida contiene líneas que representan vínculos de ajuste de bordes. | Feature Class |
search_distance | Distancia utilizada para buscar candidatos que coinciden. Se debe especificar una distancia que debe ser mayor que cero. Puede elegir la unidad que prefiera; el valor predeterminado es la unidad de la entidad. | Linear Unit |
match_fields [[source_field, target_field],...] (Opcional) | Campos de entidades de origen y de destino, en los que los campos de destino provienen de entidades adyacentes. Si se especifican, cada pareja de campos se comprueba para candidatos coincidentes con el fin de ayudar a determinar la concordancia adecuada. | Value Table |
Muestra de código
Ejemplo 1 de GenerateEdgematchLinks (ventana de Python)
El siguiente script de la ventana de Python demuestra cómo utilizar la función GenerateEdgematchLinks en el modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateEdgematchLinks_edit("countyA_Roads.shp",
"countyB_Roads.shp", "em_Links.shp"
"25 Feet")
Ejemplo 2 de GenerateEdgematchLinks (script independiente)
El siguiente script independiente es un ejemplo simple de cómo aplicar la función GenerateEdgematchLinks en un entorno 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")
Entornos
Información de licenciamiento
- Basic: No
- Standard: No
- Advanced: Sí