Generar vínculos de origen-destino (Analysis)

Resumen

Genera líneas de conexión desde entidades de origen a entidades de destino. Esto se denomina habitualmente diagrama de araña.

Ilustración

Generar vínculos de origen-destino

Uso

  • Si las entidades de origen o destino son líneas o polígonos, los centroides de las entidades se utilizan para generar vínculos.

  • Las entidades de salida incluirán los siguientes campos de atributo:

    • ORIG_FID: el campo ObjectID de la entidad de origen.
    • ORIG_X: la coordenada x de la entidad de origen (o centroide).
    • ORIG_Y: la coordenada y de la entidad de origen (o centroide).
    • DEST_FID: el campo ObjectID de la entidad de destino.
    • DEST_X: la coordenada x de la entidad de destino (o centroide).
    • DEST_Y: la coordenada y de la entidad de destino (o centroide).
    • LINK_DIST: la longitud del vínculo de salida, medida en la unidad de distancia especificada.
    • GROUP_ID: los valores de campo de grupo que se comparten entre pares vinculados de entidades de origen y destino. Este campo solo se agregará si se especifican campos de grupo tanto de origen como de destino.
    • COLOR_ID: un valor numérico que se utiliza para simbolizar orígenes o grupos en máximo ocho vínculos coloreados únicos. Los valores son números aleatorios entre 1 y 8.
    • LINK_COUNT: la cantidad de vínculos superpuestos. Se agrega cuando especifica agregar vínculos superpuestos.
    • Los campos de estadísticas especificados al agregar vínculos superpuestos también se agregarán a la clase de entidad de salida.

  • Las entidades de origen y de destino se pueden especificar como la misma capa o dataset. Si se usan los mismos datos para los orígenes y los destinos, no se generarán vínculos desde una entidad de origen a otra de destino con el mismo Id. de objeto, puesto que esta línea de longitud cero es un error de geometría nula.

  • Esta herramienta se puede utilizar para relaciones tanto de uno a uno como de uno a muchos. Por ejemplo, puede vincular un robo de vehículo a motor con la ubicación de recuperación (de uno a uno), o bien realizar un análisis de proximidad para comprender las distancias entre una ubicación de sede central a varias ubicaciones de oficinas regionales (de uno a muchos).

  • La capa de vínculos de salida incluirá los siguientes gráficos para ayudarle a visualizar el resultado del análisis:

    • Un gráfico de barras del recuento de cada Id. de grupo, si especificó campos de grupo.
    • Un gráfico de barras de la suma de longitudes de vínculos de cada Id. de origen o Id. de grupo (si especificó campos de grupo). Resulta útil para ver si algunos orígenes o grupos tienen distancias totales grandes o pequeñas a los destinos.
    • Un gráfico de barras del valor medio de longitudes de vínculos de cada Id. de origen o Id. de grupo (si especificó campos de grupo). Resulta útil para ver la distancia media entre entidades o grupos de origen y sus destinos vinculados.
    • Un diagrama de caja de la distribución de longitudes de vínculos de cada Id. de origen o Id. de grupo (si especificó campos de grupo). Resulta útil para ver si la mayoría de los vínculos de un origen o grupo tienen longitudes pequeñas o grandes a sus destinos, así como el resumen de distribución y rango de dichas longitudes de vínculos. Si un Id. de origen o un Id. de grupo tiene una caja pequeña en vertical, significa que las distancias de ese origen o grupo a todos los destinos vinculados eran similares. Si un Id. de origen o un Id. de grupo tiene una caja que está elevada en el eje y, la longitud de la mayoría de los vínculos será larga.

Sintaxis

arcpy.analysis.GenerateOriginDestinationLinks(origin_features, destination_features, out_feature_class, {origin_group_field}, {destination_group_field}, {line_type}, {num_nearest}, {search_distance}, distance_unit, {aggregate_links}, {sum_fields})
ParámetroExplicaciónTipo de datos
origin_features

Las entidades de entrada desde las que se generarán los vínculos.

Feature Layer
destination_features

Las entidades de destino a las que se generarán los vínculos.

Feature Layer
out_feature_class

La clase de entidad de polilínea de salida que contendrá los vínculos de salida.

Feature Class
origin_group_field
(Opcional)

El campo de atributo de las entidades de origen de entrada que se usará para la agrupación. Las entidades que tengan el mismo valor de campo de grupo entre orígenes y destinos se conectarán con un vínculo.

Field
destination_group_field
(Opcional)

El campo de atributo de las entidades de destino de entrada que se usará para la agrupación. Las entidades que tengan el mismo valor de campo de grupo entre orígenes y destinos se conectarán con un vínculo.

Field
line_type
(Opcional)

Especifica si se utilizará una ruta más corta en un esferoide (geodésico) o Tierra proyectada cartesiana (planar) al generar los vínculos de salida. Las líneas geodésicas serán ligeramente curvas cuando su longitud supere aproximadamente 50 kilómetros, ya que la curvatura de la Tierra hace que la distancia más corta entre dos puntos aparezca curvada cuando se visualiza en un mapa 2D.

Se recomienda utilizar el tipo de línea Geodésico con datos almacenados en un sistema de coordenadas que no sea adecuado para mediciones de distancias (por ejemplo, Web Mercator y cualquier sistema de coordenadas geográficas) o cualquier dataset que abarque una extensa área geográfica.

  • PLANARSe utilizará la distancia planar entre las entidades. Esta es la opción predeterminada.
  • GEODESICSe utilizarán distancias geodésicas entre las entidades. Este tipo de línea tiene en cuenta la curvatura del esferoide y trata correctamente los datos cercanos a la línea de cambio de fecha y los polos.
String
num_nearest
(Opcional)

El número máximo de vínculos que se generará por entidad de origen a las entidades de destino más cercanas. Si no se especifica ningún número, la herramienta generará vínculos entre todas las entidades de origen y destino.

Por ejemplo, si se usa un valor de 1, se generarán vínculos entre cada entidad de origen y su entidad de destino más cercana.

Double
search_distance
(Opcional)

La distancia máxima entre una entidad de origen y destino que producirá una entidad de vínculo en la salida. La unidad de la distancia de búsqueda se especifica en el parámetro de unidad de distancia. Si no se especifica ninguna distancia de búsqueda, la herramienta generará vínculos entre todas las entidades de origen y destino, independientemente de la distancia que las separe.

Double
distance_unit

Especifica las unidades utilizadas para medir la longitud de los vínculos. Las distancias de cada vínculo aparecerán en el campo LINK_DIST. Si no se especifica una unidad de distancia, se utilizará la unidad de distancia del sistema de coordenadas de las entidades de origen.

  • KILOMETERSLa distancia entre origen y destino se calculará en kilómetros.
  • METERSLa distancia entre origen y destino se calculará en metros.
  • MILESLa distancia entre origen y destino se calculará en millas.
  • NAUTICALMILESLa distancia entre origen y destino se calculará en millas náuticas.
  • YARDSLa distancia entre origen y destino se calculará en yardas.
  • FEETLa distancia entre origen y destino se calculará en pies.
String
aggregate_links
(Opcional)

Especifica si se agregarán vínculos superpuestos.

  • AGGREGATE_OVERLAPPINGSe agregarán vínculos superpuestos si las coordenadas del punto de partida son las mismas.
  • NO_AGGREGATENo se agregarán vínculos superpuestos. Esta es la opción predeterminada.
Boolean
sum_fields
[sum_fields,...]
(Opcional)

Especifica campos numéricos de las entidades de destino que contienen valores de atributo que se resumirán cuando se superpongan varios vínculos. Se pueden especificar varias estadísticas y combinaciones de campos. Los valores nulos se excluyen de todos los cálculos estadísticos.

Están disponibles los siguientes tipos de estadísticas:

  • SUM: suma el valor total para el campo especificado.
  • MEAN: calcula el promedio para el campo especificado.
  • MIN: busca el valor más pequeño de todos los registros para el campo especificado.
  • MAX: busca el valor más grande de todos los registros para el campo especificado.
  • RANGE: busca el rango de valores (máximo menos mínimo) para el campo especificado.
  • STD: busca la desviación estándar de valores para el campo especificado.
  • COUNT: busca la cantidad de valores incluidos en los cálculos estadísticos. Esto cuenta todos los valores excepto los valores nulos. Para determinar el número de valores nulos de un campo, cree un recuento del campo en cuestión, cree un recuento de otro campo que no contenga valores nulos (por ejemplo, OID si está presente) y reste el campo con valores nulos al campo sin valores nulos.
  • FIRST: busca el primer registro de la entrada y utiliza el valor de campo especificado.
  • LAST: busca el último registro de la entrada y utiliza el valor de campo especificado.
  • MEDIAN: calcula la mediana de todos los registros para el campo especificado.
  • VARIANCE: calcula la varianza de todos los registros para el campo especificado.
  • UNIQUE: hace un recuento del número de valores únicos para el campo especificado.
Value Table

Muestra de código

Ejemplo 1 de GenerateOriginDestinationLinks (ventana de Python)

A continuación, se muestra cómo utilizar la función GenerateOriginDestinationLinks en la ventana de Python:

import arcpy
arcpy.env.workspace = "C:/data/input/genODLinks.gdb"

arcpy.GenerateOriginDestinationLinks_analysis(
    "Station_100", "City_FireResponses", "Station_100_OD_Links")
Ejemplo 2 de GenerateOriginDestinationLinks (script independiente)

El siguiente script de Python muestra cómo utilizar la función GenerateOriginDestinationLinks en un script independiente:

# Name: GenerateODLinks.py
# Description: Finds 10 nearest links within 25 miles from the origin fire
#              stations to the destination response points.

# import system modules
import arcpy

# set workspace environment
arcpy.env.workspace = "C:/data/input/genODLinks.gdb"

# set required parameters 
origin_features = "Station_100"
destination_features = "City_FireResponses"
out_feature_class = "Station_100_OD_Links"

# optional parameters
origin_group_field = 'STA_NUM'
destination_group_field = 'District'
line_type = 'PLANAR'
num_nearest = 10
search_distance = 25
distance_unit = 'MILES'
aggregate_links='AGGREGATE_OVERLAPPING'
sum_fields = 'TimeSpentOnCall SUM'

# make links between fire stations and call response points
arcpy.GenerateOriginDestinationLinks_analysis(
    origin_features, destination_features, out_feature_class,
    origin_group_field, destination_group_field, line_type, num_nearest,
    search_distance, distance_unit, aggregate_links, sum_fields)

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados