Jointure spatiale (Analyse)

Synthèse

Joint des attributs d’une entité vers une autre en fonction des relations spatiales. Les entités cible et les attributs joints des entités jointes sont écrits dans la classe d’entités en sortie.

En savoir plus sur les relations de jointure spatiale par type d’entité

Utilisation

  • Une jointure spatiale apparie des lignes de valeurs Entités jointes aux valeurs Entités cible en fonction de leurs emplacements spatiaux relatifs.

  • Par défaut, tous les attributs des entités jointes sont ajoutés aux attributs des entités cible et copiés dans la classe d’entités en sortie. Vous pouvez définir quels attributs sont écrits dans la sortie en les manipulant via le paramètre Field Map of Join Features (Appariement des champs des entités jointes).

  • Deux nouveaux champs, Join_Count et TARGET_FID, sont ajoutés à la classe d’entités en sortie. Le champ Join_Count indique le nombre d’entités jointes correspondant à chaque entité cible (TARGET_FID).

    Un autre nouveau champ, JOIN_FID, est ajouté à la sortie lorsque la valeur Join one to many (Joindre un vers plusieurs) est spécifiée pour le paramètre Join Operation (Opération de jointure).

  • Lorsque le paramètre Join Operation (Opération de jointure) est défini sur Join one to many (Joindre un vers plusieurs), il peut exister plusieurs lignes dans la classe d’entités en sortie pour chaque entité cible. Servez-vous du champ JOIN_FID pour déterminer quelle entité est jointe à quelle entité cible (TARGET_FID). La valeur -1 dans le champ JOIN_FID signifie qu’aucune entité ne présente la relation spatiale spécifiée avec l’entité cible.

  • Toutes les entités cible en entrée sont écrites dans la classe d’entités en sortie, si les deux conditions suivantes sont remplies :

    • Le paramètre Join Operation (Opération de jointure) est défini sur Join one to one (Joindre un vers un).
    • L’option Keep All Target Features (Conserver toutes les entités cible) est activée.

  • Pour gérer les champs dans le jeu de données en sortie, ainsi que le contenu de ces champs, utilisez le paramètre Appariement des champs.

    • Pour modifier l’ordre des champs, sélectionnez un nom de champ et faites-le glisser jusqu’à la nouvelle position.
    • Le type de données par défaut d’un champ en sortie est identique au type de données du premier champ en entrée (du même nom) qu’il rencontre. Vous pouvez à tout moment changer manuellement le type de données pour tout autre type de données valide.
    • Les règles de combinaison disponibles sont : premier, dernier, joindre, somme, moyenne, médiane, mode, minimum, maximum, écart type, et total.
    • Lorsque vous utilisez la règle de combinaison Join (Joindre), vous pouvez spécifier un délimiteur (espace, virgule, point, tiret, etc.). Pour utiliser un espace, vérifiez que le pointeur de la souris se trouve au début de la zone de saisie et appuyez une fois sur la barre d’espacement.
    • Vous pouvez spécifier les positions de début et de fin des champs de texte à l'aide de l'option de format.
    • N’exécutez pas d’écart type sur une entrée unique car les valeurs ne peuvent pas être divisées par zéro. L'écart type n'est pas une option valide pour les entrées uniques.

    En savoir plus sur l'appariement de champs dans les scripts

  • Les règles de combinaison spécifiées dans le paramètre Appariement des champs des entités jointes s'appliquent uniquement aux attributs des entités jointes, lorsque plusieurs entités sont appariées à une entité cible (lorsque Join_Count > 1). Par exemple, si trois entités dont les valeurs attributaires DEPTH sont égales à 15,5, 2,5 et 3,3 sont jointes, et si une règle de combinaison de moyenne est appliquée, le champ en sortie comportera la valeur 6,1. Les valeurs Null des champs de jointure sont ignorées dans le calcul de statistiques. Par exemple, 15,5, <null> et 2,5 produisent 9,0 pour Moyenne et 2 pour Total.

  • Lorsque le paramètre Match Option (Option de correspondance) a pour valeur Closest (Plus proche) ou Closest geodesic (Géodésique le plus proche), il est possible qu’au moins deux entités jointes se trouvent à la même distance de l’entité cible. Dans ce cas, l’une des entités jointes est sélectionnée de manière aléatoire en tant qu’entité appariée (l’ID d’objet de l’entité jointe n’a pas d’impact sur cette sélection aléatoire). Pour trouver la deuxième, la troisième ou la nième entité la plus proche, utilisez l’outil Générer la table de proximité.

    Pour en savoir plus sur le calcul de la proximité

  • Si une entité jointe présente une relation spatiale avec plusieurs entités cible, elle est comptabilisée autant de fois qu’elle est appariée à l’entité cible. Par exemple, si un point se trouve dans trois polygones, il est comptabilisé trois fois, une fois pour chaque polygone.

  • Pour plus d’informations sur l’utilisation des relations spatiales Intersect 3D (Intersection 3D) et Within a distance 3D (Dans une distance 3D), reportez-vous à la rubrique Sélectionner selon l’emplacement : relations 3D.

Paramètres

ÉtiquetteExplicationType de données
Entités cible

Les attributs des entités cible et les attributs des entités jointes sont transférés vers la classe d’entités en sortie. Toutefois, un sous-ensemble d’attributs peut être défini par le paramètre d’appariement des champs.

Feature Layer
Joindre les entités

Les attributs des entités jointes sont joints aux attributs des entités cible. Reportez-vous à l'explication du paramètre 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.

Feature Layer
Classe d’entités en sortie

Nouvelle classe d'entités contenant les attributs des entités jointes et cible. Par défaut, tous les attributs des entités cible et les attributs des entités jointes sont écrits dans la sortie. Toutefois, l’ensemble d’attributs à transférer peut être défini par le paramètre d’appariement des champs.

Feature Class
Opération de jointure
(Facultatif)

Opération qui joint les entités cible et les entités jointes dans la classe d’entités en sortie, si plusieurs entités jointes présentent la même relation spatiale avec une entité cible unique.

  • Joindre un vers unSi plusieurs entités jointes présentent une relation spatiale identique avec une même entité cible, les attributs des entités jointes multiples sont agrégés à l'aide d'une règle de combinaison d'appariement des champs. 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 qu'une règle de combinaison de somme est spécifiée, la valeur agrégée dans la classe d'entités en sortie est de 10. Il s’agit de l’option par défaut.
  • Joindre un vers plusieursSi plusieurs entités jointes présentent une relation spatiale identique avec une même entité cible, la 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 de jointure surfaciques distinctes, la classe d’entité en sortie contient deux copies de l’entité cible : un enregistrement avec les attributs du premier polygone et un enregistrement avec les attributs du deuxième polygone.
String
Conserver toutes les entités cible
(Facultatif)

Indique si toutes les entités cible sont conservées dans la classe d’entités en sortie (jointure externe), ou uniquement celles qui présentent la relation spatiale avec les entités jointes (jointure interne) spécifiée.

  • Coché - Toutes les entités cible sont conservées dans la sortie (jointure externe). Il s’agit de l’option par défaut.
  • Non coché – Seules les entités cible ayant la relation spatiale spécifiée avec les entités jointes sont conservées dans la classe d'entités en sortie (jointure interne). Par exemple, si une classe d’entités ponctuelles est spécifiée pour les entités cible et une classe d’entités surfaciques est spécifiée pour les entités jointes avec la valeur Within (Dans) spécifiée pour Match Option (Option de correspondance), la classe d’entités en sortie contient uniquement les entités cible qui se trouvent dans une entité jointe surfacique. Les entités cible qui ne se trouvent pas dans une entité jointe sont exclues de la sortie.
Boolean
Appariement des champs
(Facultatif)

Les champs attributaires qui figurent dans la sortie avec les propriétés de champ correspondantes et les champs source. Par défaut, tous les champs des entrées seront inclus.

Il est possible d’ajouter, de supprimer, de renommer, de réorganiser les champs, ainsi que de modifier leurs propriétés.

Les règles de combinaison permettent de spécifier la manière dont les valeurs de deux champs en entrée ou plus sont combinées ou fusionnées en une seule valeur en sortie. Les règles de combinaison suivantes permettent de déterminer de quelle manière sont renseignées les valeurs du champ en sortie :

  • Premier : utilisez la première valeur des champs en entrée.
  • Dernier : utilisez la dernière valeur des champs en entrée.
  • Joindre : concaténez (joignez) les valeurs des champs en entrée.
  • Somme : calculez le total des valeurs des champs en entrée.
  • Moyenne : calculez la moyenne des valeurs des champs en entrée.
  • Médiane : calculez la valeur médiane (milieu) des valeurs des champs en entrée.
  • Mode – Utilisez la valeur avec la plus haute fréquence.
  • Min. : utilisez la valeur minimale de toutes les valeurs des champs en entrée.
  • Max. : utilisez la valeur maximale de toutes les valeurs des champs en entrée.
  • Écart type : utilisez la méthode de classification par écart type sur les valeurs de tous les champs en entrée.
  • Total – Recherchez le nombre d'enregistrements inclus dans le calcul.

Field Mappings
Option de correspondance
(Facultatif)

Spécifie les critères qui seront appliqués pour apparier les lignes.

  • IntersecterLes entités des entités jointes sont appariées si elles intersectent une entité cible. Il s’agit de l’option par défaut. Indiquez une distance dans le paramètre Rayon de recherche.
  • Intersection 3D Les entités dans les entités jointes sont appariées si elles intersectent une entité cible dans un espace tridimensionnel (x, y et z). Indiquez une distance dans le paramètre Rayon de recherche.
  • Dans une distanceLes entités dans les entités jointes sont appariées si elles se trouvent à une distance spécifiée d'une entité cible. Indiquez une distance dans le paramètre Rayon de recherche.
  • Dans une distance géodésiqueIdentique à Dans une distance, mais la distance géodésique est utilisée au lieu de la distance planaire. Choisissez cette option si vos données couvrent une grande étendue géographique ou si le système de coordonnées des entrées ne convient pas au calcul des distances.
  • Dans une distance 3DLes entités dans les entités jointes sont appariées si elles se trouvent à une distance spécifiée d'une entité cible dans un espace tridimensionnel. Indiquez une distance dans le paramètre Rayon de recherche.
  • ContientLes 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. Pour cette option, les entités cible ne peuvent pas être ponctuelles, et les entités jointes ne peuvent être surfaciques que lorsque les entités cible le sont également.
  • Contient complètementLes entités des entités jointes sont appariées si une entité cible les englobe entièrement. Le polygone peut contenir entièrement toute entité. Le point ne peut contenir entièrement aucune entité et même pas un point. Une polyligne peut contenir entièrement toute polyligne et tout point.
  • Contient ClementiniCette relation spatiale renvoie les mêmes résultats que Contient complètement, mais si l'entité jointe se trouve entièrement à la limite de l'entité cible (sans aucune partie véritablement à l'intérieur ou à l'extérieur), l'entité n'est pas appariée. Clementini définit le polygone de limite comme la ligne qui sépare l'intérieur et l'extérieur ; la limite d'une ligne est définie par ses extrémités et la limite d'un point est toujours vide.
  • DansLes entités des entités jointes sont appariées si une entité cible se trouve à l'intérieur d'elles. Cet opérateur est l'inverse de 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é jointe uniquement s'il est une cible.
  • Complètement dansLes entités des entités jointes sont appariées si une entité cible se trouve entièrement à l'intérieur d'elles. Cet opérateur est l'inverse de Contient complètement.
  • Dans ClementiniLe résultat est identique à celui obtenu avec Distance de recherche, sauf que si la totalité de l'entité dans les entités jointes est à la limite de l'entité cible, l'entité n'est pas appariée. Clementini définit le polygone de limite comme la ligne qui sépare l'intérieur et l'extérieur ; la limite d'une ligne est définie par ses extrémités et la limite d'un point est toujours vide.
  • Sont identiques àLes entités dans les entités jointes sont appariées si elles sont identiques à une entité cible. Les entités jointe et cible doivent présenter le même type de forme : point-point, ligne-ligne et polygone-polygone.
  • La limite toucheLes 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.
  • Partagent un segment de ligne avecLes entités dans les entités jointes sont appariées si elles partagent un segment de ligne avec une entité cible. Les entités jointe et cible doivent être des lignes ou des polygones.
  • Traversé par le contour deLes 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.
  • Ont leur centre dansLes entités des entités jointes sont appariées si le centre d'une entité cible se trouve entièrement à l'intérieur d'elles. Le centre de l'entité est calculé comme suit : pour les polygones et multi-points, c'est le centroïde de la géométrie qui est utilisé, tandis que pour les lignes en entrée, c'est le centre de la géométrie qui est utilisé. Indiquez une distance dans le paramètre Rayon de recherche.
  • Plus procheL'entité dans les entités jointes les plus proches d'une entité cible est appariée. Pour en savoir plus, reportez-vous aux conseils d'utilisation. Indiquez une distance dans le paramètre Rayon de recherche.
  • Géodésique le plus procheIdentique à Plus proche, mais la distance géodésique est utilisée au lieu de la distance planaire. Choisissez cette option si vos données couvrent une grande étendue géographique ou si le système de coordonnées des entrées ne convient pas au calcul des distances
  • Superposition la plus étendueL’entité dans les entités jointes est appariée à l’entité cible qui présente la superposition la plus étendue.
String
Rayon de recherche
(Facultatif)

Les entités jointes sont prises en compte pour la jointure spatiale si elles se trouvent à une distance égale ou inférieure à cette valeur d'une entité cible. Le rayon de recherche est valide uniquement lorsque la relation spatiale est spécifiée (le paramètre Match Option (Option de correspondance) a pour valeur Intersect (Intersection), Within a distance (Dans une distance), Within a distance geodesic (Dans une distance géodésique), Have their center in (Ont leur centre dans), Closest (Plus proche) ou Closest geodesic (Géodésique le plus proche)). Par exemple, l’utilisation d’un rayon de recherche de 100 mètres avec la relation spatiale Within a distance (Dans une distance) permet de joindre une entité qui se trouve à moins de 100 mètres d’une entité cible. Pour les trois relations Within a distance (Dans une distance), si aucune valeur n’est spécifiée pour Search Radius (Rayon de recherche), une distance de 0 est utilisée.

Linear Unit
Nom du champ de distance
(Facultatif)

Nom du champ contenant la distance entre l’entité cible et l’entité jointe la plus proche. Ce champ est ajouté à la classe d’entités en sortie. Ce paramètre est valide uniquement lorsque la relation spatiale est spécifiée (Match Option (Option de correspondance) a pour valeur Closest (Plus proche) ou Closest geodesic (Géodésique le plus proche)). La valeur de ce champ est -1 si aucune entité ne fait l'objet d'une correspondance dans un rayon de recherche. Si aucun nom de champ n’est fourni, le champ n’est pas ajouté à la classe d’entités en sortie.

String

arcpy.analysis.SpatialJoin(target_features, join_features, out_feature_class, {join_operation}, {join_type}, {field_mapping}, {match_option}, {search_radius}, {distance_field_name})
NomExplicationType de données
target_features

Les attributs des entités cible et les attributs des entités jointes sont transférés vers la classe d’entités en sortie. Toutefois, un sous-ensemble d’attributs peut être défini par le paramètre d’appariement des champs.

Feature Layer
join_features

Les attributs des entités jointes sont joints aux attributs des entités cible. Reportez-vous à l’explication du paramètre join_operation pour en savoir plus sur les répercussions du type d’opération de jointure sur l’agrégation des attributs joints.

Feature Layer
out_feature_class

Nouvelle classe d'entités contenant les attributs des entités jointes et cible. Par défaut, tous les attributs des entités cible et les attributs des entités jointes sont écrits dans la sortie. Toutefois, l’ensemble d’attributs à transférer peut être défini par le paramètre d’appariement des champs.

Feature Class
join_operation
(Facultatif)

Opération qui joint les entités cible et les entités jointes dans la classe d’entités en sortie, si plusieurs entités jointes présentent la même relation spatiale avec une entité cible unique.

  • JOIN_ONE_TO_ONESi plusieurs entités jointes présentent une relation spatiale identique avec une même entité cible, les attributs des entités jointes multiples sont agrégés à l'aide d'une règle de combinaison d'appariement des champs. 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 qu'une règle de combinaison de somme est spécifiée, la valeur agrégée dans la classe d'entités en sortie est de 10. Il s’agit de l’option par défaut.
  • JOIN_ONE_TO_MANYSi plusieurs entités jointes présentent une relation spatiale identique avec une même entité cible, la 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 de jointure surfaciques distinctes, la classe d’entité en sortie contient deux copies de l’entité cible : un enregistrement avec les attributs du premier polygone et un enregistrement avec les attributs du deuxième polygone.
String
join_type
(Facultatif)

Indique si toutes les entités cible sont conservées dans la classe d’entités en sortie (jointure externe), ou uniquement celles qui présentent la relation spatiale avec les entités jointes (jointure interne) spécifiée.

  • KEEP_ALLToutes les entités cible sont conservées dans la sortie (jointure externe). Il s’agit de l’option par défaut.
  • KEEP_COMMONSeules les entités cible ayant la relation spatiale spécifiée avec les entités jointes sont conservées dans la classe d'entités en sortie (jointure interne). Par exemple, si une classe d’entités ponctuelles est spécifiée pour les entités cible et une classe d’entités surfaciques est spécifiée pour les entités jointes avec la valeur WITHIN définie pour match_option, la classe d’entités en sortie contient uniquement les entités cible qui se trouvent dans une entité jointe surfacique. Les entités cible qui ne se trouvent pas dans une entité jointe sont exclues de la sortie.
Boolean
field_mapping
(Facultatif)

Les champs attributaires qui figurent dans la sortie avec les propriétés de champ correspondantes et les champs source. Par défaut, tous les champs des entrées seront inclus.

Il est possible d’ajouter, de supprimer, de renommer, de réorganiser les champs, ainsi que de modifier leurs propriétés.

Les règles de combinaison permettent de spécifier la manière dont les valeurs de deux champs en entrée ou plus sont combinées ou fusionnées en une seule valeur en sortie. Les règles de combinaison suivantes permettent de déterminer de quelle manière sont renseignées les valeurs du champ en sortie :

  • Premier : utilisez la première valeur des champs en entrée.
  • Dernier : utilisez la dernière valeur des champs en entrée.
  • Joindre : concaténez (joignez) les valeurs des champs en entrée.
  • Somme : calculez le total des valeurs des champs en entrée.
  • Moyenne : calculez la moyenne des valeurs des champs en entrée.
  • Médiane : calculez la valeur médiane (milieu) des valeurs des champs en entrée.
  • Mode – Utilisez la valeur avec la plus haute fréquence.
  • Min. : utilisez la valeur minimale de toutes les valeurs des champs en entrée.
  • Max. : utilisez la valeur maximale de toutes les valeurs des champs en entrée.
  • Écart type : utilisez la méthode de classification par écart type sur les valeurs de tous les champs en entrée.
  • Total – Recherchez le nombre d'enregistrements inclus dans le calcul.

Dans Python, vous pouvez utiliser la classe FieldMappings pour définir ce paramètre.

Field Mappings
match_option
(Facultatif)

Spécifie les critères qui seront appliqués pour apparier les lignes.

  • INTERSECTLes entités des entités jointes sont appariées si elles intersectent une entité cible. Il s’agit de l’option par défaut. Indiquez une distance dans le paramètre search_radius.
  • INTERSECT_3D Les entités dans les entités jointes sont appariées si elles intersectent une entité cible dans un espace tridimensionnel (x, y et z). Indiquez une distance dans le paramètre search_radius.
  • WITHIN_A_DISTANCELes entités dans les entités jointes sont appariées si elles se trouvent à une distance spécifiée d'une entité cible. Indiquez une distance dans le paramètre search_radius.
  • WITHIN_A_DISTANCE_GEODESICIdentique à WITHIN_A_DISTANCE, mais la distance géodésique est utilisée au lieu de la distance planaire. Choisissez cette option si vos données couvrent une grande étendue géographique ou si le système de coordonnées des entrées ne convient pas au calcul des distances.
  • WITHIN_A_DISTANCE_3DLes entités dans les entités jointes sont appariées si elles se trouvent à une distance spécifiée d'une entité cible dans un espace tridimensionnel. Indiquez une distance dans le paramètre search_radius.
  • 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. Pour cette option, les entités cible ne peuvent pas être ponctuelles, et les entités jointes ne peuvent être surfaciques que lorsque les entités cible le sont également.
  • COMPLETELY_CONTAINSLes entités des entités jointes sont appariées si une entité cible les englobe entièrement. Le polygone peut contenir entièrement toute entité. Le point ne peut contenir entièrement aucune entité et même pas un point. Une polyligne peut contenir entièrement toute polyligne et tout point.
  • CONTAINS_CLEMENTINICette relation spatiale renvoie les mêmes résultats que COMPLETELY_CONTAINS, mais si l'entité jointe se trouve entièrement à la limite de l'entité cible (sans aucune partie véritablement à l'intérieur ou à l'extérieur), l'entité n'est pas appariée. Clementini définit le polygone de limite comme la ligne qui sépare l'intérieur et l'extérieur ; la limite d'une ligne est définie par ses extrémités et la limite d'un point est toujours vide.
  • WITHINLes entités des entités jointes sont appariées si une entité cible se trouve à l'intérieur d'elles. Cet opérateur est l'inverse de CONTAINS. 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é jointe uniquement s'il est une cible.
  • COMPLETELY_WITHINLes entités des entités jointes sont appariées si une entité cible se trouve entièrement à l'intérieur d'elles. Cet opérateur est l'inverse de COMPLETELY_CONTAINS.
  • WITHIN_CLEMENTINILe résultat est identique à celui obtenu avec WITHIN, sauf que si la totalité de l'entité dans les entités jointes est à la limite de l'entité cible, l'entité n'est pas appariée. Clementini définit le polygone de limite comme la ligne qui sépare l'intérieur et l'extérieur ; la limite d'une ligne est définie par ses extrémités et la limite d'un point est toujours vide.
  • ARE_IDENTICAL_TOLes entités dans les entités jointes sont appariées si elles sont identiques à une entité cible. Les entités jointe et cible doivent présenter le même type de forme : point-point, ligne-ligne et polygone-polygone.
  • BOUNDARY_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.
  • SHARE_A_LINE_SEGMENT_WITHLes entités dans les entités jointes sont appariées si elles partagent un segment de ligne avec une entité cible. Les entités jointe et cible doivent être des lignes ou des polygones.
  • CROSSED_BY_THE_OUTLINE_OFLes 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.
  • HAVE_THEIR_CENTER_INLes entités des entités jointes sont appariées si le centre d'une entité cible se trouve entièrement à l'intérieur d'elles. Le centre de l'entité est calculé comme suit : pour les polygones et multi-points, c'est le centroïde de la géométrie qui est utilisé, tandis que pour les lignes en entrée, c'est le centre de la géométrie qui est utilisé. Indiquez une distance dans le paramètre search_radius.
  • CLOSESTL'entité dans les entités jointes les plus proches d'une entité cible est appariée. Pour en savoir plus, reportez-vous aux conseils d'utilisation. Indiquez une distance dans le paramètre search_radius.
  • CLOSEST_GEODESICIdentique à CLOSEST, mais la distance géodésique est utilisée au lieu de la distance planaire. Choisissez cette option si vos données couvrent une grande étendue géographique ou si le système de coordonnées des entrées ne convient pas au calcul des distances
  • LARGEST_OVERLAPL’entité dans les entités jointes est appariée à l’entité cible qui présente la superposition la plus étendue.
String
search_radius
(Facultatif)

Les entités jointes sont prises en compte pour la jointure spatiale si elles se trouvent à une distance égale ou inférieure à cette valeur d'une entité cible. Le rayon de recherche est valide uniquement si la relation spatiale est spécifiée (le paramètre match_option a pour valeur INTERSECT, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, HAVE_THEIR_CENTER_IN, CLOSEST ou CLOSEST_GEODESIC). Par exemple, l’utilisation d’un rayon de recherche de 100 mètres avec la relation spatiale WITHIN_A_DISTANCE permet de joindre une entité qui se trouve à moins de 100 mètres d’une entité cible. Pour les trois relations WITHIN_A_DISTANCE, si aucune valeur n’est spécifiée pour search_radius, une distance de 0 est utilisée.

Linear Unit
distance_field_name
(Facultatif)

Nom du champ contenant la distance entre l’entité cible et l’entité jointe la plus proche. Ce champ est ajouté à la classe d’entités en sortie. Ce paramètre est valide uniquement lorsque la relation spatiale est spécifiée (match_option a pour valeur CLOSEST ou CLOSEST_GEODESIC). La valeur de ce champ est -1 si aucune entité ne fait l'objet d'une correspondance dans un rayon de recherche. Si aucun nom de champ n’est fourni, le champ n’est pas ajouté à la classe d’entités en sortie.

String

Exemple de code

1er exemple d'utilisation de l'outil SpatialJoin (fenêtre Python)

Le script ci-dessous illustre l’utilisation de la fonction SpatialJoin dans une fenêtre Python.

import arcpy

target_features = "C:/data/usa.gdb/states"
join_features = "C:/data/usa.gdb/cities"
out_feature_class = "C:/data/usa.gdb/states_cities"

arcpy.analysis.SpatialJoin(target_features, join_features, out_feature_class)
2e exemple d'utilisation de l'outil SpatialJoin (script autonome)

Le script autonome ci-dessous illustre l’utilisation de la fonction SpatialJoin pour joindre des attributs de villes à des états.

# Name: SpatialJoin_Example2.py
# Description: Join attributes of cities to states based on spatial relationships.

# Import system modules
import arcpy
import os

# Set local variables
workspace = r"C:\gpqa\mytools\spatialjoin\usa.gdb"
outWorkspace = r"C:\gpqa\mytools\spatialjoin\output.gdb"
 
# Want to join USA cities to states and calculate the mean city population
# for each state
targetFeatures = os.path.join(workspace, "states")
joinFeatures = os.path.join(workspace, "cities")
 
# Output will be the target features, states, with a mean city population field (mcp)
outfc = os.path.join(outWorkspace, "states_mcp2")
 
# Create a new fieldmappings and add the two input feature classes.
fieldmappings = arcpy.FieldMappings()
fieldmappings.addTable(targetFeatures)
fieldmappings.addTable(joinFeatures)
 
# First get the POP1990 fieldmap. POP1990 is a field in the cities feature class.
# The output will have the states with the attributes of the cities. Setting the
# field's merge rule to mean will aggregate the values for all of the cities for
# each state into an average value. The field is also renamed to be more appropriate
# for the output.
pop1990FieldIndex = fieldmappings.findFieldMapIndex("POP1990")
fieldmap = fieldmappings.getFieldMap(pop1990FieldIndex)
 
# Get the output field's properties as a field object
field = fieldmap.outputField
 
# Rename the field and pass the updated field object back into the field map
field.name = "mean_city_pop"
field.aliasName = "mean_city_pop"
fieldmap.outputField = field
 
# Set the merge rule to mean and then replace the old fieldmap in the mappings object
# with the updated one
fieldmap.mergeRule = "mean"
fieldmappings.replaceFieldMap(pop1990FieldIndex, fieldmap)
 
# Delete fields that are no longer applicable, such as city CITY_NAME and CITY_FIPS
# as only the first value will be used by default
x = fieldmappings.findFieldMapIndex("CITY_NAME")
fieldmappings.removeFieldMap(x)
y = fieldmappings.findFieldMapIndex("CITY_FIPS")
fieldmappings.removeFieldMap(y)
 
#Run the Spatial Join tool, using the defaults for the join operation and join type
arcpy.analysis.SpatialJoin(targetFeatures, joinFeatures, outfc, "#", "#", fieldmappings)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes