Etiqueta | Explicación | Tipo de datos |
Capa de destino | Contiene las entidades de destino. Los atributos de las entidades de destino y los atributos de las entidades unidas se transferirán a la salida. | Table View |
Capa de unión | Contiene las entidades de unión. Los atributos de las entidades de unión se unirán a los atributos de las entidades de destino. Consulte la explicación del parámetro Operación Unir para obtener detalles acerca de cómo la agregación de atributos unidos se ve afectada por el tipo de operación de unión. | Table View |
Dataset de salida | La nueva clase de entidad que contiene las entidades de capa de destino con entidades unidas. | Feature Class;Table |
Operación Unión | Especifica cómo se tratarán en la salida las uniones entre los valores de Capa de destino y los valores de Capa de unión si hay varias entidades de unión que tienen la misma relación espacial con una única entidad de destino.
| String |
Relación espacial (Opcional) | Especifica los criterios que se utilizarán para unir entidades espacialmente.
| String |
Distancia de cercanía espacial (Opcional) |
La distancia respecto de una entidad de destino dentro de la cual las entidades de unión se tendrán en cuenta para la unión espacial. Un radio de búsqueda solo es válido cuando el valor del parámetro Relación espacial es Cercanía planar o Cercanía geodésica. | Linear Unit |
Relación temporal (Opcional) | Especifica los criterios de tiempo que se utilizarán para la coincidencia de las entidades.
| String |
Distancia de cercanía temporal (Opcional) |
La distancia en el tiempo respecto de una entidad de destino dentro de la cual las entidades de unión se tendrán en cuenta para la unión espacial. Un tiempo solo es válido cuando el valor del parámetro Relación temporal es Cerca, Cerca de antes o Cerca de después y las dos entidades tienen el tiempo habilitado. | Time Unit |
Relación de atributos (Opcional) | Une las entidades en función de los valores de un campo de atributos. Especifique el campo de atributo de la capa de destino que coincide con un campo de atributo de la capa de unión.
| Value Table |
Campos de resumen (Opcional) | Las estadísticas que se calcularán en campos concretos. | Value Table |
Condición de unión (Opcional) | Aplica una condición a los campos especificados. Solo se unirán las entidades con campos que cumplan estas condiciones. Por ejemplo, puede aplicar una condición de unión a las entidades en las que el atributo HealthSpending de la capa de unión sea superior al 20 por ciento del atributo Income de la capa de destino. Utilice una expresión Arcade como $join["HealthSpending"] > $target["Income"] * .2. | String |
Mantener todas las entidades destino (Opcional) | Especifica si todas las entidades de destino se mantendrán en la clase de entidad de salida (unión externa izquierda) o solo aquellas que tienen relaciones especificadas con las entidades de unión (unión interna).
| Boolean |
Incluir distancia (Opcional) | Especifica si se incluirá en el resultado la distancia espacial o la diferencia temporal. Este parámetro está activo cuando el valor del parámetro Operación Unir es Unir uno a muchos y cualquiera de las siguientes opciones es cierta:
| Boolean |
Unidad de distancia (Opcional) | Especifica la unidad de medida que se utilizará para los valores de distancia en la clase de entidad de salida.
| String |
Resumen
Une atributos de una capa con otra en función de las relaciones espaciales, temporales o de atributos o de una combinación de dichas relaciones.
Ilustración
Uso
Una unión espacial hace coincidir las entidades (filas) de las entidades de entrada (valores de los parámetros Capa de destino y Capa de unión) en función de sus ubicaciones espaciales. Una unión temporal hace coincidir las entidades (filas) de las entidades de entrada en función de sus relaciones temporales. Un atributo de unión hace coincidir entidades según los valores de campo.
Puede unir entidades basándose en una relación espacial, una relación temporal, una relación de atributos o una combinación de las tres.
Opción Descripción Relación espacial
La relación espacial que determinará si las entidades se van a unir entre sí. Las relaciones disponibles dependen del tipo de geometría (punto, línea o área) de las capas que se unen. Las relaciones espaciales disponibles son las siguientes:
- Interseca
- Es igual a
- Cercanía planar: utiliza distancias planares.
- Cercanía geodésica: utiliza distancias geodésicas.
- Contiene
- Dentro de
- Toca
- Cruza
- Superpone
Más información sobre las relaciones espaciales en las herramientas de GeoAnalytics Desktop
Relación temporal
La relación temporal que determinará si las entidades se van a unir entre sí. Las relaciones disponibles dependen del tipo de tiempo (instante o intervalo) de las capas que se unen. Las relaciones temporales disponibles son las siguientes:
- Cumple
- Alcanzado por
- Superpone
- Superpuesto por
- Durante
- Contiene
- Es igual a
- Finaliza
- Finalizado por
- Se inicia
- Iniciado por
- Interseca
- Cerca
- Cerca de después
- Cerca de antes
Más información sobre las relaciones temporales en las herramientas de GeoAnalytics Desktop
Relación de atributos
La relación de atributos que determinará si las entidades se unen entre sí. Las entidades se cotejan si los valores de campo de la capa de unión son iguales a los valores de campo de la capa de destino.
Si las entidades de destino y de unión están en sistemas de coordenadas diferentes, se usará el sistema de coordenadas de la entidad de destino. Si se ha especificado un sistema de coordenadas de salida, las dos entidades se proyectan en el sistema de coordenadas de salida y después se unen.
Cuando el valor del parámetro Relación espacial es Cercanía planar, el valor del parámetro Capa de destino debe ser proyectado o el sistema de coordenadas de salida debe establecerse en un sistema de coordenadas proyectado.
Si varias entidades coinciden con la misma entidad de destino, puede decidir si todas las entidades coincidentes se unirán (Operación Unión establecida en Unión de uno a muchos) o si todas las entidades coincidentes se resumirán juntas (Operación Unión establecida en Unión de uno a uno) como se muestra a continuación:
- Unir uno a muchos: une todas las entidades coincidentes de la capa de unión con la capa de destino. La capa de resultados contendrá varios registros de la entidad de destino.
- Unión de uno a uno: resume todas las entidades de unión coincidentes con cada entidad de la capa de destino. Solo las entidades que tengan una coincidencia se incluirán en el resumen y en la salida. El recuento de entidades unidas se agregará junto con otras estadísticas como, por ejemplo, suma, mínimo, máximo, rango, valor medio, varianza y desviación estándar. Por defecto, solo las entidades de destino que tengan las relaciones especificadas se mantendrán en la clase de entidad de salida (es lo que se conoce como unión interna). Si la opción Mantener todas las entidades de destino está activada, todas las entidades de destino de entrada se escribirán en la clase de entidad de salida (es lo que se conoce como unión externa izquierda).
Puede crear una expresión para unir entidades mediante el parámetro Condición de unión. Si especifica una expresión, solo se van a utilizar las entidades que cumplan esta condición. Por ejemplo, mediante la expresión $target["Magnitude"] > $join["Explosion"], solo puede unir las entidades de destino del campo Magnitude si son mayores que la unidad de unión con un campo denominado Explosion. Consulte Expresiones de Arcade en las herramientas de GeoAnalytics Desktop para obtener más información.
Cuando se ejecuta una unión de uno a muchos, los siguientes campos se incluyen en las entidades de salida:
- Todos los campos de las capas de destino
- Todos los campos de la capa unida
Si existe el mismo nombre de campo en los dataset de destino y de unión, el campo unido comenzará con la palabra unión (join) (por ejemplo, join_fieldname).
Nombre de campo Descripción start_date
Este campo representa la hora de inicio y se crea cuando la entrada tiene el tiempo establecido como un instante o intervalo.
end_date
Este campo representa la hora de finalización y se crea cuando la entrada tiene el tiempo establecido como intervalo.
Además de todos los campos de la capa de destino, los siguientes campos se incluyen en las entidades de salida cuando se ejecuta una unión uno a uno:
Nombre de campo Descripción count
Recuento de entidades que se han unido.
statistic_fieldname
Cada una de las estadísticas especificadas creará un campo de atributo con el siguiente formato: nombre_ampo_estadística. Por ejemplo, la desviación máxima y estándar del campo id es MAX_id y SD_id.
start_date
Este campo representa la hora de inicio y se crea cuando la entrada tiene el tiempo establecido como un instante o intervalo.
end_date
Este campo representa la hora de finalización y se crea cuando la entrada tiene el tiempo establecido como intervalo.
Si el parámetro Incluir distancia está activado y el parámetro Operación Unir está establecido en Unir uno a muchos, los siguientes campos pueden incluirse en las entidades de salida:
Nombre de campo Descripción distance
Distancia entre entidades de destino y unión. Este campo se incluye si el parámetro Relación espacial está establecido en Cercanía planar o Cercanía geodésica.
Una distancia de 0 indica que las geometrías de destino y de unión intersecan. Un valor nulo indica que las geometrías están más alejadas que el valor del parámetro Distancia de cercanía espacial. Si el valor del parámetro Relación espacial es Cercanía planar, los valores de distancia serán planares; si el valor del parámetro es Cercanía geodésica, los valores de distancia serán geodésicos. Los valores se expresarán en las unidades especificadas por el parámetro Unidad de distancia. La unidad de distancia por defecto es metros.
timegap
Diferencia temporal en milisegundos entre las entidades de destino y de unión. Este campo se incluye si el parámetro Relación temporal está establecido en Cerca de, Cerca de antes o Cerca de después.
Una diferencia de 0 indica que las entidades de destino y de unión intersecan temporalmente. Los valores positivos significan que la entidad de destino se produce antes que la entidad de unión, y los valores negativos significan que la entidad de unión se produce antes que la entidad de destino. Los valores nulos indican que las entidades no cumplían la condición de unión. Por ejemplo, las características están más alejadas que el valor del parámetro Distancia de cercanía temporal.
Puede mejorar el rendimiento de la herramienta Unir entidades siguiendo uno o varios de estos pasos:
- Defina el entorno de extensión para analizar únicamente datos de interés.
- Haga que las condiciones de unión sean lo más selectivas posible. Por ejemplo, una unión cercana de 1 kilómetro funcionará mejor que una unión cercana de 5 kilómetros en los mismos datos.
- Agregue más de una condición de unión. Las condiciones de unión adicionales hacen que la unión sea más selectiva. Por ejemplo, una unión cercana de 1 kilómetro y 1 hora funcionará mejor que una unión cercana de 5 kilómetros en los mismos datos.
- Aplique una expresión de unión.
- Utilice datos locales en los que se ejecute el análisis.
Es posible realizar análisis similares con la herramienta Unión espacial de la caja de herramientas Análisis.
Esta herramienta de geoprocesamiento se basa en Spark. El análisis se completa en su equipo de escritorio utilizando varios núcleos en paralelo. Consulte Consideraciones acerca de las herramientas de GeoAnalytics Desktop para obtener más información acerca de la ejecución de análisis.
Al ejecutar herramientas de GeoAnalytics Desktop, el análisis se completa en su equipo de escritorio. Para un rendimiento óptimo, los datos deben estar disponibles en su escritorio. Si utiliza una capa de entidades alojada, se recomienda utilizar ArcGIS GeoAnalytics Server. Si sus datos no están almacenados localmente, se tardará más tiempo en ejecutar una herramienta. Para utilizar su ArcGIS GeoAnalytics Server para realizar un análisis, consulte GeoAnalytics Tools.
Parámetros
arcpy.geoanalytics.JoinFeatures(target_layer, join_layer, output, join_operation, {spatial_relationship}, {spatial_near_distance}, {temporal_relationship}, {temporal_near_distance}, {attribute_relationship}, {summary_fields}, {join_condition}, {keep_all_target_features}, {include_distance}, {distance_unit})
Nombre | Explicación | Tipo de datos |
target_layer | Contiene las entidades de destino. Los atributos de las entidades de destino y los atributos de las entidades unidas se transferirán a la salida. | Table View |
join_layer | Contiene las entidades de unión. Los atributos de las entidades de unión se unirán a los atributos de las entidades de destino. Consulte la explicación del parámetro Operación Unir para obtener detalles acerca de cómo la agregación de atributos unidos se ve afectada por el tipo de operación de unión. | Table View |
output | La nueva clase de entidad que contiene las entidades de capa de destino con entidades unidas. | Feature Class;Table |
join_operation | Especifica cómo se tratarán en la entidad de salida las uniones entre los valores de target_layer y los valores de join_layer si varias entidades de unión tienen la misma relación espacial con una única entidad de destino.
| String |
spatial_relationship (Opcional) | Especifica los criterios que se utilizarán para unir entidades espacialmente.
| String |
spatial_near_distance (Opcional) |
La distancia respecto de una entidad de destino dentro de la cual las entidades de unión se tendrán en cuenta para la unión espacial. Un radio de búsqueda solo es válido cuando el valor del parámetro spatial_relationship es NEAR o NEAR_GEODESIC. | Linear Unit |
temporal_relationship (Opcional) | Especifica los criterios de tiempo que se utilizarán para la coincidencia de las entidades.
| String |
temporal_near_distance (Opcional) |
La distancia en el tiempo respecto de una entidad de destino dentro de la cual las entidades de unión se tendrán en cuenta para la unión espacial. Un tiempo solo es válido cuando el valor del parámetro temporal_relationship es NEAR, NEAR_BEFORE o NEAR_AFTER y las dos entidades tienen el tiempo habilitado. | Time Unit |
attribute_relationship [attribute_relationship,...] (Opcional) | Une las entidades en función de los valores de un campo de atributos. Especifique el campo de atributo de la capa de destino que coincide con un campo de atributo de la capa de unión.
| Value Table |
summary_fields [summary_fields,...] (Opcional) | Las estadísticas que se calcularán en campos concretos.
| Value Table |
join_condition (Opcional) | Aplica una condición a los campos especificados. Solo se unirán las entidades con campos que cumplan estas condiciones. Por ejemplo, puede aplicar una condición de unión a las entidades en las que el atributo HealthSpending de la capa de unión sea superior al 20 por ciento del atributo Income de la capa de destino. Utilice una expresión Arcade como $join["HealthSpending"] > $target["Income"] * .2. | String |
keep_all_target_features (Opcional) | Especifica si todas las entidades de destino se mantendrán en la clase de entidad de salida (unión externa izquierda) o solo aquellas que tienen relaciones especificadas con las entidades de unión (unión interna).
| Boolean |
include_distance (Opcional) | Especifica si se incluirá en el resultado la distancia espacial o la diferencia temporal. Este parámetro está activo cuando el valor del parámetro join_operation es JOIN_ONE_TO_MANY y cualquiera de las siguientes opciones es cierta:
| Boolean |
distance_unit (Opcional) | Especifica la unidad de medida que se utilizará para los valores de distancia en la clase de entidad de salida.
| String |
Muestra de código
El siguiente script independiente muestra cómo utilizar la función JoinFeatures.
# Name: JoinFeatures.py
# Description: Join crime events that are close together in time and space, and
# return the count of nearby crimes. This example is a self join
# (joining the same layer to itself).
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/CityData.gdb"
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\ChicagoCrimes.lyrx'
# MakeFeatureLayer converts the .lyrx to features
chicagoCrimesLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Crimes_layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(chicagoCrimesLayer, inputLyrx)
# Set local variables
spatialOperation = "NEAR"
nearDistance = "1 Kilometers"
temporalOperation = "NEAR"
nearTime = "3 Hours"
out = "CloseCrimes"
# Run Join Features
arcpy.gapro.JoinFeatures(chicagoCrimesLayer, inFeatures, out, "JOIN_ONE_TO_ONE",
spatialOperation, nearDistance, temporalOperation,
nearTime)