Joindre les entités (GeoAnalytics)

Résumé

Joint des attributs d’une couche à une autre en fonction de relations spatiales, temporelles ou attributaires, ou d’une combinaison de ces relations.

Illustration

Outil Entités jointes
Entités jointes : les deux exemples illustrent une jointure spatio-temporelle.

Utilisation

  • Une jointure spatiale apparie les entités (lignes) à partir des entités en entrée (Target Layer (Couche cible) et Joint 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.

    optionsDescription

    Spatial Relationship (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 les distances géodésiques. Cette option est disponible uniquement avec ArcGIS Enterprise 10.7.1 et version ultérieure.
    • Contient
    • Dans
    • Touche
    • Croise
    • Superpose

    En savoir plus sur les relations spatiales dans les outils GeoAnalytics Server

    Temporal Relationship (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 GeoAnalytics Server

    Attribute Relationship (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 champ de la couche de jointure sont identiques à 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.

  • Lorsque la valeur du paramètre Spatial Relationship (Relation spatiale) est Planar near (Proche plan), l’outil Joindre les entités exige la projection de la couche cible (Target Layer) ou le paramétrage du système de coordonnées en sortie sur un système de coordonnées projetées.

  • Si plusieurs entités correspondent à la même entité cible, vous pouvez choisir si toutes les entités appariées sont jointes (Join one to many [Joindre un à plusieurs]) ou si toutes les entités appariées sont synthétisées ensemble (Join one to one [Joindre un à 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.
    Exemples de jointure un vers plusieurs et un vers un
    Voici des exemples de jointure un à plusieurs et un à un. 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 éventuellement générer 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 pouvez seulement joindre des entités cible du champ Magnitude si elles sont supérieures à l’entité de jointure du champ Explosion. Pour plus d'informations, reportez-vous à la rubrique Expressions pour joindre les entités.

  • 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 le même nom de champ existe dans le jeu de données cible et le jeu de données de jointure, le champ de jointure commence par le mot joint (par exemple, join_fieldname).

    Nom du champDescription

    start_datetime

    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_datetime

    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 champDescription

    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_datetime

    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_datetime

    Ce champ représente l’heure de fin et est créé lorsque l’entrée possède une composante temporelle de type intervalle.

  • Vous pouvez améliorer les performances de l’outil Reconstruire les pistes en suivant les conseils ci-après :

    • Définissez l’environnement de l’étendue de manière à analyser uniquement des données d’intérêt.
    • Utilisez la méthode planaire au lieu de la méthode géodésique.
    • N’appliquez pas de zone tampon.
    • Fractionnez vos pistes à l’aide des paramètres Time Split (Fraction temporelle), Time Boundary Split (Limite de fraction temporelle) et Distance Split (Fraction spatiale). Le paramètre Time Boundary Split (Limite de fraction temporelle) permet d’obtenir les meilleures performances.
    • Utilisez les données locales de l’environnement de l’analyse.

  • L’analyse de similarité peut également être réalisée à l’aide de l’outil Jointure spatiale de la boîte à outils Analyse.

  • Cet outil de géotraitement est mis en œuvre par ArcGIS GeoAnalytics Server. L’analyse est réalisée sur le GeoAnalytics Server et les résultats sont stockés dans votre contenu dans ArcGIS Enterprise.

  • Lors de l’exécution des outils GeoAnalytics Server, l’analyse est réalisée sur GeoAnalytics Server. Pour des performances optimales, GeoAnalytics Server doit pouvoir accéder aux données via les couches d’entités hébergées sur votre portail ArcGIS Enterprise ou les partages de fichiers Big Data. Les données qui ne sont pas locales pour GeoAnalytics Server sont transférées sur GeoAnalytics Server avant le début de l’analyse. Autrement dit, l’exécution d’un outil prend plus de temps et, dans certains cas, le transfert des données entre ArcGIS Pro et GeoAnalytics Server peut échouer. Le seuil d’échec dépend aussi bien des débits du réseau que de la taille et de la complexité des données. Il est par conséquent recommandé de toujours partager les données ou créer un partage de fichiers Big Data.

    Pour en savoir plus sur le partage des données dans votre portail.

    Pour en savoir pus sur la création d'un partage de fichiers Big Data via ArcGIS Server Manager

Syntaxe

JoinFeatures(target_layer, join_layer, output_name, join_operation, {spatial_relationship}, {spatial_near_distance}, {temporal_relationship}, {temporal_near_distance}, {attribute_relationship}, {summary_fields}, {join_condition}, {data_store})
ParamètreExplicationType 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.

Record Set
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) (join_operation dans Python) pour en savoir plus sur les répercussions du type d’opération de jointure sur l’agrégation des attributs joints.

Record Set
output_name

Nom du service d'entités en sortie.

String
join_operation

Indique le mode de traitement des jointures entre le paramètre target_layer et le paramètre join_layer dans l’entité en sortie, si plusieurs entités de jointure présentent une relation spatiale identique avec une même entité cible.

  • JOIN_ONE_TO_ONE Les attributs des entités jointes sont agrégés. Par exemple, si une entité cible ponctuelle figure dans deux entités jointes surfaciques distinctes, les attributs des deux polygones sont agrégés avant leur transfert vers la classe d'entités ponctuelles en sortie. Si les polygones ont respectivement les valeurs attributaires 3 et 7, et que la somme des résumés statistiques est spécifiée pour ce champ, la valeur agrégée dans la classe d'entité en sortie est 10. Il s’agit de l’option par défaut ; seul le total statistique est renvoyé.
  • JOIN_ONE_TO_MANYLa classe d’entités en sortie contient plusieurs copies (enregistrements) de l’entité cible. Par exemple, si une même entité cible ponctuelle figure dans deux entités jointes surfaciques distinctes, la classe d'entité en sortie contient deux copies de l'entité cible : un enregistrement avec les attributs d'un polygone et un enregistrement avec les attributs de l'autre polygone. Aucun résumé statistique n'est disponible avec cette méthode.
String
spatial_relationship
(Facultatif)

Spécifie les critères utilisés pour joindre spatialement les entités.

  • INTERSECTSLes entités des entités jointes sont appariées si elles intersectent une entité cible. Il s’agit de l’option par défaut.
  • EQUALS Les entités dans les entités de jointure sont appariées si elles possèdent la même géométrie qu'une entité cible.
  • NEARLes entités dans les entités jointes sont appariées si elles se trouvent à une distance spécifiée d’une entité cible. La distance est mesurée à l’aide d’une distance planaire. Indiquez une distance dans le paramètre spatial_near_distance.
  • NEAR_GEODESICLes entités dans les entités jointes sont appariées si elles se trouvent à une distance donnée d’une entité cible. La distance est mesurée de façon géodésique. Indiquez une distance dans le paramètre spatial_near_distance. Cette option est disponible avec ArcGIS Enterprise 10.7 ou ultérieure.
  • CONTAINSLes entités des entités jointes sont appariées si une entité cible les englobe. Les entités cible doivent être des polygones ou des polylignes. Les entités de jointure ne peuvent être que des polygones lorsque les entités cible le sont également. Un polygone peut contenir tout type d'entité. Une polyligne peut contenir uniquement une polyligne et un point. Un point ne peut pas contenir d'entité, pas même un point. Si l'entité de jointure se trouve entièrement sur la limite de l'entité cible (aucune partie n'est véritablement à l'intérieur ni à l'extérieur), l'entité n'est pas appariée.
  • WITHINLes entités des entités jointes sont appariées si une entité cible se trouve à l'intérieur d'elles. Cette relation est l’inverse de la relation Contient. Pour cette option, les entités cible ne peuvent être que des polygones lorsque les entités jointes le sont également. Un point peut être une entité de jointure uniquement s’il est une entité cible. Si la totalité de l'entité dans les entités de jointure est sur la limite de l'entité cible, l'entité n'est pas appariée.
  • TOUCHESLes entités dans les entités jointes sont appariées si elles comportent une limite qui touche une entité cible. Lorsque les entités jointes et cibles sont des lignes ou des polygones, la limite de l'entité jointe ne peut toucher que la limite de l'entité cible et aucune partie de l'entité jointe ne peut dépasser la limite de l'entité cible.
  • CROSSESLes entités dans les entités jointes sont appariées si une entité cible est intersectée par leur contour. Les entités jointe et cible doivent être des lignes ou des polygones. Si des polygones sont utilisés pour les entités jointe et cible, la limite (ligne) du polygone est utilisée. Les lignes qui se croisent au niveau d’un point sont appariées, contrairement à celles qui partagent un segment de ligne.
  • OVERLAPSLes entités figurant dans les entités de jointure sont appariées si elles recouvrent une entité cible.
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 valide uniquement lorsque la valeur du 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.

  • MEETSLorsque la fin d'un intervalle temporel cible est égale au début de l'intervalle temporel de jointure, les données temporelles cible rejoignent les données temporelles de jointure.
  • MET_BYLorsque le début d'un intervalle temporel cible est égal à la fin de l'intervalle temporel de jointure, les données temporelles cible sont rejointes par les données temporelles de jointure.
  • OVERLAPSLorsqu'un intervalle temporel cible commence et se termine avant le début et la fin de l'intervalle temporel de jointure, les données temporelles cible recouvrent les données temporelles de jointure.
  • OVERLAPPED_BYLorsqu'un intervalle temporel cible commence et se termine après l'heure de début et l'heure de fin de l'intervalle temporel de jointure, les données temporelles cible sont recouvertes par les données temporelles de jointure.
  • DURINGLorsque des données temporelles cible interviennent entre le début et la fin de l'intervalle temporel de jointure, les données temporelles cible se situent pendant les données temporelles de jointure.
  • CONTAINSLorsque les données temporelles d'une entité de jointure interviennent entre le début et la fin de l'intervalle temporel cible, les données temporelles cible contiennent les données temporelles de jointure.
  • EQUALSDes données temporelles sont considérées égales si leurs instants ou intervalles sont identiques.
  • FINISHESLorsque des données temporelles cible se terminent au même moment que des données temporelles de jointure, et que les données temporelles cible ont commencé après celles de jointure, les données temporelles cible terminent les données temporelles de jointure.
  • FINISHED_BYLorsque les données temporelles d'une entité de jointure se terminent au même moment que les données temporelles cible, et que les données temporelles de jointure ont commencé après les données temporelles cible, les données temporelles cible sont terminées par les données temporelles de jointure.
  • STARTSLorsque des données temporelles cible commencent au même moment que l'intervalle temporel de jointure, et se terminent avant la fin de l'intervalle temporel de jointure, les données temporelles cible démarrent les données temporelles de jointure.
  • STARTED_BYLorsqu'un intervalle temporel cible commence au même moment que les données temporelles de jointure, et se terminent après les données temporelles de jointure, les données temporelles cible sont démarrées par les données temporelles de jointure.
  • INTERSECTSLorsqu'une partie quelconque de données temporelles cible intervient au même moment que les données temporelles de jointure, les données temporelles cible intersectent les données temporelles de jointure.
  • NEARLorsque des données temporelles cible sont comprises dans une plage de temps spécifiée à partir des données temporelles de jointure, les données temporelles cible sont proches des données temporelles de jointure.
  • NEAR_BEFORELorsque des données temporelles cible se situent avant les données temporelles de jointure mais sont comprises dans une plage de temps spécifiée à partir des données temporelles de jointure, les données temporelles cible précèdent de peu les données temporelles de jointure. Cette option est disponible avec ArcGIS Enterprise 10.6 ou ultérieure.
  • NEAR_AFTERLorsque des données temporelles cible se situent après les données temporelles de jointures, mais sont comprises dans une plage de temps spécifiée à partir des données temporelles de jointure, les données temporelles cible suivent de peu les données temporelles de jointure. Cette option est disponible avec ArcGIS Enterprise 10.6 ou ultérieure.

Spécifie les critères temporels utilisés pour apparier les entités.

  • MEETSLorsque la fin d'un intervalle temporel cible est égale au début de l'intervalle temporel de jointure, les données temporelles cible rejoignent les données temporelles de jointure.
  • MET_BYLorsque le début d'un intervalle temporel cible est égal à la fin de l'intervalle temporel de jointure, les données temporelles cible sont rejointes par les données temporelles de jointure.
  • OVERLAPSLorsqu'un intervalle temporel cible commence et se termine avant le début et la fin de l'intervalle temporel de jointure, les données temporelles cible recouvrent les données temporelles de jointure.
  • OVERLAPPED_BYLorsqu'un intervalle temporel cible commence et se termine après l'heure de début et l'heure de fin de l'intervalle temporel de jointure, les données temporelles cible sont recouvertes par les données temporelles de jointure.
  • DURINGLorsque des données temporelles cible interviennent entre le début et la fin de l'intervalle temporel de jointure, les données temporelles cible se situent pendant les données temporelles de jointure.
  • CONTAINSLorsque les données temporelles d'une entité de jointure interviennent entre le début et la fin de l'intervalle temporel cible, les données temporelles cible contiennent les données temporelles de jointure.
  • EQUALSDes données temporelles sont considérées égales si leurs instants ou intervalles sont identiques.
  • FINISHESLorsque des données temporelles cible se terminent au même moment que des données temporelles de jointure, et que les données temporelles cible ont commencé après celles de jointure, les données temporelles cible terminent les données temporelles de jointure.
  • FINISHED_BYLorsque les données temporelles d'une entité de jointure se terminent au même moment que les données temporelles cible, et que les données temporelles de jointure ont commencé après les données temporelles cible, les données temporelles cible sont terminées par les données temporelles de jointure.
  • STARTSLorsque des données temporelles cible commencent au même moment que l'intervalle temporel de jointure, et se terminent avant la fin de l'intervalle temporel de jointure, les données temporelles cible démarrent les données temporelles de jointure.
  • STARTED_BYLorsqu'un intervalle temporel cible commence au même moment que les données temporelles de jointure, et se terminent après les données temporelles de jointure, les données temporelles cible sont démarrées par les données temporelles de jointure.
  • INTERSECTSLorsqu'une partie quelconque de données temporelles cible intervient au même moment que les données temporelles de jointure, les données temporelles cible intersectent les données temporelles de jointure.
  • NEARLorsque des données temporelles cible sont comprises dans une plage de temps spécifiée à partir des données temporelles de jointure, les données temporelles cible sont proches des données temporelles de jointure.
  • NEAR_BEFORELorsque des données temporelles cible se situent avant les données temporelles de jointure mais sont comprises dans une plage de temps spécifiée à partir des données temporelles de jointure, les données temporelles cible précèdent de peu les données temporelles de jointure. Cette option est disponible avec ArcGIS Enterprise 10.6 ou ultérieure.
  • NEAR_AFTERLorsque des données temporelles cible se situent après les données temporelles de jointures, mais sont comprises dans une plage de temps spécifiée à partir des données temporelles de jointure, les données temporelles cible suivent de peu les données temporelles de jointure. Cette option est disponible avec ArcGIS Enterprise 10.6 ou ultérieure.
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 du paramètre temporal_relationship est défini sur 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.

  • Champ cible - Champ d'attribut de la couche cible contenant les valeurs à apparier.
  • Champ de jointure - Champ d'attribut de la couche de jointure contenant les valeurs à apparier.

Value Table
summary_fields
[summary_fields,...]
(Facultatif)

Statistiques qui seront calculées sur les champs spécifiés.

  • COUNT : le nombre de valeurs non nulles. Peut être utilisé sur des champs numériques ou des chaînes. Le nombre de [null, 0, 2] est 2.
  • SUM : somme des valeurs numériques dans un champ. La somme des [null, null, 3] est 3.
  • MEAN : moyenne des valeurs numériques. La moyenne des [0,2, null] est 1.
  • MIN : valeur minimale d’un champ numérique. Le minimum de [0, 2, null] est 0.
  • MAX : valeur maximale d’un champ numérique. La valeur maximale de [0, 2, null] est 2.
  • STDDEV : écart type d’un champ numérique. L'écart type de [1] est null. L'écart type de [null, 1,1,1] est null.
  • VAR : variance d’un champ numérique dans une trace. La variance de [1] est null. La variance de [null, 1,1,1] est null.
  • RANGE : plage d’un champ numérique. Elle est calculée comme la valeur minimale soustraite de la valeur maximale. La plage de [0, null, 1] est 1. La plage de [null, 4] est 0.
  • ANY : exemple de chaîne provenant d’un champ de type chaîne.

Value Table
join_condition
(Facultatif)

Applique une condition à des champs spécifiés. Seules les entités comprenant des champs remplissant ces conditions seront jointes.

Par exemple, vous pouvez appliquer une condition de jointure à des entités lorsque l’attribut HealthSpending (Dépenses de santé) de la couche de jointure est supérieur à 20 % de l’attribut Income (Revenus) de la couche cible. Dans les versions 10.5 et 10.5.1, la condition de jointure à appliquer à cette expression est join["HealthSpending"] > target["Income"] * .2. Dans la version 10.6 ou une version ultérieure, utilisez une expression Arcade telle que $join["HealthSpending"] > $target["Income"] * .2.

String
data_store
(Facultatif)

Indique le ArcGIS Data Store dans laquelle la sortie est enregistrée. La valeur par défaut est SPATIOTEMPORAL_DATA_STORE. Tous les résultats stockés dans le SPATIOTEMPORAL_DATA_STORE seront stockés en WGS84. Les résultats stockés dans un RELATIONAL_DATA_STORE conserveront leur système de coordonnées.

  • SPATIOTEMPORAL_DATA_STORELa sortie sera stockée dans un stockage de Big Data spatio-temporelles. Il s’agit de l’option par défaut.
  • RELATIONAL_DATA_STORELa sortie sera stockée dans un data store relationnel.
String

Sortie dérivée

NomExplicationType de données
output

Sortie jointe.

Jeu d'enregistrements

Exemple de code

Exemple d’utilisation de l’outil JoinFeatures (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil 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) 
# Requirements: ArcGIS GeoAnalytics Server 
# Import system modules 
import arcpy 
# Set local variables 
inFeatures = "https://MyGeoAnalyticsMachine.domain.com/geoanalytics/rest/services/DataStoreCatalogs/bigDataFileShares_Crimes/BigDataCatalogServer/Chicago"
spatialOperation = "NEAR" 
nearDistance = "1 Kilometers" 
temporalOperation = "NEAR" 
nearTime = "3 Hours" 
outFS = "CloseCrimes" 
dataStore = "SPATIOTEMPORAL_DATA_STORE" 
# Execute Join Features
arcpy.geoanalytics.JoinFeatures(inFeatures, inFeatures, outFS, "JOIN_ONE_TO_ONE", 
                                spatialOperation, nearDistance, temporalOperation, 
                                nearTime, None, None, None, dataStore)

Environnements

Système de coordonnées en sortie

Système de coordonnées qui sera utilisé pour l'analyse. L’analyse sera réalisée dans le système de coordonnées en entrée, à moins que ce paramètre en spécifie un autre. Pour les Outils GeoAnalytics, les résultats finaux seront stockés dans le stockage des données spatio-temporelles dans WGS84.

Informations de licence

  • Basic: Requiert ArcGIS GeoAnalytics Server
  • Standard: Requiert ArcGIS GeoAnalytics Server
  • Advanced: Requiert ArcGIS GeoAnalytics Server

Rubriques connexes