Étiquette | Explication | Type de données |
Couche cible | Cliquez sur les entités cible. Les attributs provenant des entités cible et ceux des entités jointes sont transférés à la sortie. | Table View |
Couche de jointure | Contient les entités de jointure. Les attributs des entités jointes sont joints aux attributs des entités cible. Reportez-vous à l’explication du paramètre Join Operation (Opération de jointure) pour en savoir plus sur les répercussions du type d’opération de jointure sur l’agrégation des attributs joints. | Table View |
Jeu de données en sortie | Nouvelle classe d’entités contenant les entités de la couche cible et les entités jointes. | Feature Class;Table |
Opération de jointure | Spécifie le mode de traitement des jointures entre les valeurs Target Layer (Couche cible) et les valeurs Join Layer (Couche de jointure) dans la sortie, si plusieurs entités de jointure présentent une relation spatiale identique avec une même entité cible.
| String |
Relation spatiale (Facultatif) | Spécifie les critères utilisés pour joindre spatialement les entités.
| String |
Distance de proximité spatiale (Facultatif) |
Distance par rapport à une entité cible pour laquelle les entités de jointure sont prises en compte dans le cadre de la jointure spatiale. Un rayon de recherche est valide uniquement lorsque la valeur du paramètre Spatial Relationship (Relation spatiale) est Planar Near (Proche planaire) ou Geodesic Near (Proche géodésique). | Linear Unit |
Relation temporelle (Facultatif) | Spécifie les critères temporels utilisés pour apparier les entités.
| String |
Distance de proximité temporelle (Facultatif) |
Distance dans le temps par rapport à une entité cible pour laquelle les entités de jointure sont prises en compte dans le cadre de la jointure spatiale. Des données temporelles sont valides uniquement lorsque la valeur du paramètre Temporal Relationship (Relation temporelle) est défini sur Near (Proche), Near before (À proximité avant) ou Near After (À proximité après) et que les deux entités sont temporelles. | Time Unit |
Relation attributaire (Facultatif) | Joint les entités en fonction des valeurs figurant dans un champ attributaire. Spécifiez le champ attributaire de la couche cible qui doit correspondre à un champ attributaire de la couche de jointure.
| Value Table |
Champs de récapitulation (Facultatif) | Statistiques qui seront calculées sur les champs spécifiés. | Value Table |
Condition de jointure (Facultatif) | Applique une condition à des champs spécifiés. Seules les entités présentant des champs qui remplissent ces conditions sont jointes. Par exemple, vous pouvez appliquer une condition de jointure à des entités dans lesquelles l’attribut HealthSpending de la couche de jointure est supérieur à 20 % de l’attribut Income de la couche cible. Utilisez une expression Arcade telle que $join["HealthSpending"] > $target["Income"] * .2. | String |
Conserver toutes les entités cible (Facultatif) | Indique si toutes les entités cibles sont conservées dans la classe d’entités en sortie (jointure externe gauche) ou uniquement celles qui présentent la relation spécifiée avec les entités jointes (jointure interne).
| Boolean |
Inclure la distance (Facultatif) | Spécifie si la distance spatiale ou la différence temporelle est incluse dans le résultat. Ce paramètre est actif lorsque la valeur du paramètre Opération de jointure est Joindre un vers plusieurs et que la valeur du paramètre Relation spatiale est Planaire proche ou Géodésique proche, ou que la valeur du paramètre Relation temporelle est Proche, Proche avant, ou Proche après.
| Boolean |
Unité de distance (Facultatif) | Spécifie l’unité de mesure à utiliser pour les valeurs de distance dans la classe d’entités en sortie.
| String |
Synthèse
Joint des attributs d’une couche à une autre en fonction de relations spatiales, temporelles ou attributaires, ou d’une combinaison de ces relations.
Illustration

Utilisation
Une jointure spatiale permet d’apparier des entités (lignes) à partir des entités en entrée (les valeurs de paramètre Target Layer (Couche cible) et Join Layer (Couche de jointure)) en fonction de leurs localisations géographiques. Une jointure temporelle apparie les entités (lignes) à partir des entités en entrée en fonction de leurs relations temporelles. Une jointure attributaire apparie les entités en fonction des valeurs figurant dans des champs.
Vous pouvez joindre des entités selon une relation spatiale, temporelle ou attributaire, ou une combinaison des trois.
Option Description Relation spatiale
Relation spatiale qui va déterminer si les entités sont jointes les unes aux autres. Les relations disponibles dépendent du type de géométrie (point, ligne ou surface) des couches jointes. Les relations spatiales disponibles sont les suivantes :
- Intersecte
- Est égal à
- Planar Near (Proche planaire) : utilise des distances planes
- Geodesic Near (Proche géodésique) : utilise des distances géodésiques
- Contient
- Dans
- Touche
- Croise
- Superpose
En savoir plus sur les relations spatiales dans les outils de GeoAnalytics Desktop
Relation temporelle
Relation temporelle qui va déterminer si les entités sont jointes les unes aux autres. Les relations disponibles dépendent du type de temps (instant ou intervalle) des couches jointes. Les relations temporelles disponibles sont les suivantes :
- Rejoint
- Rejoint par
- Superpose
- Superposé par
- Pendant
- Contient
- Est égal à
- Termine
- Terminé par
- Démarre
- Démarré par
- Intersecte
- Proche
- À proximité avant
- À proximité après
En savoir plus sur les relations temporelles dans les outils de GeoAnalytics Desktop
Relation attributaire
Relation attributaire qui va déterminer si les entités sont jointes les unes aux autres. Les entités sont appariées lorsque les valeurs de champs dans la couche de jointure sont égales à celles de la couche cible.
Si les entités cible et de jointure se trouvent dans des systèmes de coordonnées différents, le système de coordonnées de l’entité cible est utilisé. Si un système de coordonnées en sortie est spécifié, les deux entités sont projetées dans le système de coordonnées en sortie, puis elles sont jointes.
Si la valeur de paramètre Spatial Relationship (Relation spatiale) est Planar Near (Planaire à proximité), la valeur de paramètre Target Layer (Couche cible) doit être projetée ou le système de coordonnées en sortie doit être défini sur un système de coordonnées projetées.
Si plusieurs entités correspondent à la même entité cible, vous pouvez choisir de joindre toutes les entités appariées (une valeur Join Operation (Opération de jointure) définie sur Join one to many (Joindre un vers plusieurs)) ou de synthétiser toutes les entités appariées ensemble (valeur Join Operation (Opération de jointure) définie sur Join one to one (Joindre un vers un)) comme suit :
- Join one to many (Joindre un à plusieurs) : joint toutes les entités d’appariement de la couche de jointure à la couche cible. La couche de résultat contiendra plusieurs enregistrements de l’entité cible.
- Join one to one (Joindre un à un) : synthétise toutes les entités de jointure appariées à chaque entité de la couche cible. Seules les entités appariées seront incluses dans la synthèse et la sortie. Le nombre d’entités jointes sera ajouté, en plus d’autres statistiques, telles que somme, minimum, maximum, plage, moyenne, variance et écart type. Par défaut, seules les entités cibles ayant la relation spécifiée sont conservées dans la classe d’entités en sortie (il s’agit d’une jointure interne). Si l’option Keep All Target Features (Conserver toutes les entités cibles) est activée, toutes les entités cibles en entrée seront écrites dans la classe d’entités en sortie (il s’agit d’une jointure externe gauche).
Des exemples de jointure un vers plusieurs et un vers un sont présentés. Dans cet exemple, la jointure un vers un ne comprend que le total. Les statistiques supplémentaires pouvant être calculées sont indiquées ci-dessous. Vous pouvez créer une expression pour joindre des entités à l’aide du paramètre Join Condition (Condition de jointure). Si vous spécifiez une expression, seules les entités qui remplissent la condition sont utilisées. Par exemple, à l’aide de l’expression $target["Magnitude"] > $join["Explosion"], vous ne pouvez joindre des entités cibles à partir du champ Magnitude que si la valeur est supérieure à l’entité jointe avec un champ nommé Explosion. Reportez-vous à Expressions Arcade dans les outils GeoAnalytics Desktop pour plus d’informations.
Les champs suivants sont inclus dans les entités en sortie lorsque vous réalisez une jointure un à plusieurs :
- Tous les champs des couches cible
- Tous les champs de la couche de jointure
Si un champ porte le même nom dans les deux jeux de données cibles et de jointure, le champ joint commence par le terme « join » (joindre) (join_fieldname, par exemple).
Nom du champ Description start_date
Ce champ représente l’heure de début et est créé lorsque l’entrée possède une composante temporelle (instant ou intervalle).
end_date
Ce champ représente l’heure de fin et est créé lorsque l’entrée possède une composante temporelle de type intervalle.
Outre les champs issus de la couche cible, les champs suivants sont inclus dans les entités en sortie lorsque vous réalisez une jointure un à un :
Nom du champ Description count
Nombre d’entités qui ont été jointes.
statistic_fieldname
Les statistiques indiquées créent chacune un champ attributaire nommé selon le format suivant : statistic_fieldname. Par exemple, l’écart maximal et l’écart type du champ id sont MAX_id et SD_id.
start_date
Ce champ représente l’heure de début et est créé lorsque l’entrée possède une composante temporelle (instant ou intervalle).
end_date
Ce champ représente l’heure de fin et est créé lorsque l’entrée possède une composante temporelle de type intervalle.
Si le paramètre Include Distance (Inclure la distance) est sélectionné et que le paramètre Join Operation (Opération de jointure) est défini sur Join one to many (Joindre un vers plusieurs), les champs suivants peuvent être inclus dans les entités en sortie :
Nom du champ Description distance
Distance entre les entités cibles et de jointure. Ce champ est inclus si le paramètre Spatial Relationship (Relation spatiale) est Planar Near (Planaire à proximité) ou Geodesic Near (Géodésique à proximité).
Une distance de 0 indique que les géométries cibles et de jointure se coupent. Une valeur nulle indique que les géométries sont éloignées de la valeur de paramètre Spatial Near Distance (Distance de proximité spatiale). Si la valeur de paramètre Spatial Relationship (Relation spatiale) est Planar Near (Planaire à proximité), les valeurs de distance sont planaires. Si la valeur de paramètre est Geodesic Near (Géodésique à proximité), les valeurs de distance sont géodésiques. Les valeurs sont exprimées dans les unités spécifiées dans le paramètre Distance Unit (Unité de distance). L’unité de distance par défaut est le mètre.
timegap
La différence temporelle entre les entités cibles et de jointure est exprimée en millisecondes. Ce champ est inclus si le paramètre Temporal Relationship (Relation temporelle) est Near (Proche), Near Before (Proche avant) ou Near After (Proche après).
Une différence de 0 indique que les entités cibles et de jointure se coupent d’un point de vue temporel. Des valeurs positives indiquent que l’entité cible se produit avant l’entité de jointure, une valeur négative indiquant que l’entité de jointure se produit avant l’entité cible. Des valeurs nulles indiquent que les entités ne satisfont pas à la condition de jointure. Par exemple, les entités sont éloignées de la valeur de paramètre Temporal Near Distance (Distance de proximité temporelle).
Vous pouvez améliorer les performances de l’outil Entités jointes en effectuant une ou plusieurs des opérations suivantes :
- Définissez l’environnement de l’étendue de manière à analyser uniquement des données d’intérêt.
- Établissez des conditions de jointure les plus sélectives possible. Ainsi, pour les mêmes données, une jointure proche d’1 kilomètre donnera des résultats plus précis qu’une jointure proche de 5 kilomètres.
- Ajoutez plusieurs conditions de jointure. Le fait d’appliquer plusieurs conditions de jointure permet à la jointure d’être plus sélective. Ainsi, pour les mêmes données, une jointure proche d’1 kilomètre et d’1 heure donnera des résultats plus précis qu’une jointure proche d’1 kilomètre.
- Appliquez une expression de jointure.
- Utilisez les données locales de l’environnement de l’analyse.
Une analyse similaire peut également être réalisée à l’aide de l’outil Spatial Join (Jointure spatiale) dans la boîte à outils Analysis (Analyse).
Cet outil de géotraitement est mis en œuvre par Spark. L’analyse est effectuée sur votre ordinateur de bureau en utilisant plusieurs cœurs en parallèle. Pour en savoir plus sur l’exécution de l’analyse, reportez-vous à la rubrique Remarques relatives aux outils GeoAnalytics Desktop.
Lorsque vous exécutez des outils GeoAnalytics Desktop, l’analyse est effectuée sur votre ordinateur de bureau. Pour des performances optimales, les données doivent être accessibles sur votre bureau. Si vous utilisez une couche d’entités hébergée, il est recommandé d'utiliser ArcGIS GeoAnalytics Server. Si vos données ne sont pas enregistrées en local, l’exécution des outils prendra plus de temps. Pour utiliser votre ArcGIS GeoAnalytics Server en vue d'une analyse, reportez-vous à la rubrique GeoAnalytics Tools.
Paramètres
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})
Nom | Explication | Type de données |
target_layer | Cliquez sur les entités cible. Les attributs provenant des entités cible et ceux des entités jointes sont transférés à la sortie. | Table View |
join_layer | Contient les entités de jointure. Les attributs des entités jointes sont joints aux attributs des entités cible. Reportez-vous à l’explication du paramètre Join Operation (Opération de jointure) pour en savoir plus sur les répercussions du type d’opération de jointure sur l’agrégation des attributs joints. | Table View |
output | Nouvelle classe d’entités contenant les entités de la couche cible et les entités jointes. | Feature Class;Table |
join_operation | Spécifie le mode de traitement des jointures entre les valeurs target_layer et les valeurs join_layer dans la sortie, si plusieurs entités de jointure présentent une relation spatiale identique avec une même entité cible.
| String |
spatial_relationship (Facultatif) | Spécifie les critères utilisés pour joindre spatialement les entités.
| String |
spatial_near_distance (Facultatif) |
Distance par rapport à une entité cible pour laquelle les entités de jointure sont prises en compte dans le cadre de la jointure spatiale. Un rayon de recherche est uniquement valide si la valeur de paramètre spatial_relationship est NEAR ou NEAR_GEODESIC. | Linear Unit |
temporal_relationship (Facultatif) | Spécifie les critères temporels utilisés pour apparier les entités.
| String |
temporal_near_distance (Facultatif) |
Distance dans le temps par rapport à une entité cible pour laquelle les entités de jointure sont prises en compte dans le cadre de la jointure spatiale. Des données temporelles sont valides uniquement lorsque la valeur de paramètre temporal_relationship est NEAR, NEAR_BEFORE ou NEAR_AFTER et que les deux entités sont temporelles. | Time Unit |
attribute_relationship [attribute_relationship,...] (Facultatif) | Joint les entités en fonction des valeurs figurant dans un champ attributaire. Spécifiez le champ attributaire de la couche cible qui doit correspondre à un champ attributaire de la couche de jointure.
| Value Table |
summary_fields [summary_fields,...] (Facultatif) | Statistiques qui seront calculées sur les champs spécifiés.
| Value Table |
join_condition (Facultatif) | Applique une condition à des champs spécifiés. Seules les entités présentant des champs qui remplissent ces conditions sont jointes. Par exemple, vous pouvez appliquer une condition de jointure à des entités dans lesquelles l’attribut HealthSpending de la couche de jointure est supérieur à 20 % de l’attribut Income de la couche cible. Utilisez une expression Arcade telle que $join["HealthSpending"] > $target["Income"] * .2. | String |
keep_all_target_features (Facultatif) | Indique si toutes les entités cibles sont conservées dans la classe d’entités en sortie (jointure externe gauche) ou uniquement celles qui présentent la relation spécifiée avec les entités jointes (jointure interne).
| Boolean |
include_distance (Facultatif) | Spécifie si la distance spatiale ou la différence temporelle est incluse dans le résultat. Ce paramètre est actif lorsque la valeur du paramètre join_operation est JOIN_ONE_TO_MANY et que la valeur du paramètre spatial_relationship est NEAR ou NEAR_GEODESIC, ou que la valeur du paramètre temporal_relationship est NEAR, NEAR_BEFORE, ou NEAR_AFTER.
| Boolean |
distance_unit (Facultatif) | Spécifie l’unité de mesure à utiliser pour les valeurs de distance dans la classe d’entités en sortie.
| String |
Exemple de code
Le script autonome ci-dessous illustre l’utilisation de la fonction 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)
Environnements
Vous avez un commentaire à formuler concernant cette rubrique ?