Ajouter une jointure spatiale (Outils de gestion des données)
Résumé
Joint des attributs d’une entité vers une autre en fonction des relations spatiales. Les entités cibles et les attributs joints des entités de jointure sont joints.
Les attributs joints sont agrégés et enregistrés en tant que copie distincte. Les mises à jour des données jointes ne seront pas reflétées car les données sont statiques. Pour mettre à jour les données, supprimez la jointure et réexécutez l’outil.
L’outil crée les champs suivants :
Join_Count—Nombre d’entités de jointure qui correspondent à chaque entité cible
TARGET_FID—ID d’objet de l’entité cible
Cet outil ne prend pas en charge les jointures un vers plusieurs. Pour réaliser une jointure un vers plusieurs, utilisez l’outil Jointure spatiale.
Par défaut, tous les attributs des entités jointes sont joints aux attributs des entités cible. Vous pouvez définir quels attributs figurent dans la sortie jointe à l’aide du paramètre Field Map (Appariement des champs).
Ajoutez et supprimez des champs de la liste des champs, réorganisez la liste des champs et renommez des champs.
Le type de données par défaut d’un champ en sortie est le même que le type de données du premier champ en entrée (du même nom) qu’il rencontre. Vous pouvez modifier le type de données en un autre type de données valide.
Utilisez une action pour identifier la manière dont les valeurs d’un ou de plusieurs champs en entrée sont fusionnées en un seul champ en sortie. Les actions disponibles sont First (Premier), Last (Dernier), Concatenate (Concaténer), Sum (Somme), Mean (Moyenne), Median (Médiane), Mode, Minimum, Maximum, Standard Deviation (Écart type) et Count (Total).
Lorsque vous utilisez l’action Concatenate (Concaténer), vous pouvez spécifier un délimiteur, comme une virgule ou d’autres caractères. Cliquez au début de la zone de texte Delimiter (Délimiteur) pour ajouter les caractères de délimitation.
L’option Standard Deviation (Écart type) n’est pas valide pour une seule valeur en entrée.
L’option Export (Exporter) permet d’enregistrer un appariement des champs sous forme de fichier .fieldmap.
L’option Load (Charger) permet de charger un fichier .fieldmap. La couche d’entités ou le jeu de données spécifié dans le fichier doit correspondre à celui utilisé dans l’outil. Sinon, le paramètre Field Map (Appariement des champs) est réinitialisé.
Utilisez le bouton Slice Text (Texte de tranche) sur les champs de la source du texte pour sélectionner les caractères d’une valeur en entrée à extraire dans le champ en sortie. Pour accéder au bouton Slice Text (Texte de tranche), survolez un champ de texte dans la liste des champs en entrée, puis spécifiez les positions des caractères de début et de fin.
Les actions spécifiées dans le paramètre Field Map (Appariement des champs) 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 de l’attribut DEPTH sont 15,5, 2,5 et 3,3 sont jointes, et que l’action Mean (Moyenne) est appliquée, le champ en sortie aura la valeur 6,1. Les valeurs Null des champs de jointure sont ignorées dans le calcul de statistiques. Par exemple, 15,5, une valeur nulle et 2,5 produisent 9,0 pour Moyenne et 2 pour Total.
Lorsque le paramètre Match Option (Option d’appariement) 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é.
Si le paramètre Permanently Join Fields (Joindre définitivement les champs) est activé, tous les enregistrements du jeu de données cible seront conservés, même si le paramètre Keep All Target Features (Conserver toutes les entités cibles) est désactivé.
Utilisez le paramètre Permanently Join Fields (Joindre définitivement les champs) lorsque vous exécutez l’outil plusieurs fois avec des valeurs de paramètre Join Features (Joindre des entités) partageant le même nom. Une jointure temporaire requiert un nom de table et un nom de champ uniques pour fonctionner.
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, à savoir 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.
Les attributs des entités cible et les attributs des entités de jointure sont joints à la couche d’entités cible. Toutefois, un sous-ensemble d’attributs peut être défini à l’aide du paramètre Field Map (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 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.
Feature Layer
Opération de jointure
(Facultatif)
Ce paramètre est masqué et n’est pas pris en charge. Toutes les jointures sont effectuées sous la forme de jointures un vers un.
Pour réaliser une jointure un vers plusieurs lorsque la sortie est créée dans une classe d’entités en sortie, utilisez l’outil Jointure spatiale.
String
Conserver toutes les entités cible
(Facultatif)
Indique si seules les entités cible qui présentent une relation spatiale avec une entité jointe (jointure interne) sont conservées ou si toutes les entités cible sont conservées, même sans relation spatiale avec les entités jointes (jointure externe).
Activé—Toutes les entités de la couche d’entités cible sont conservées. Il s’agit de l’option par défaut.
Décoché—Seules les entités de la couche d’entités cible qui présentent une relation spatiale avec une entité jointe sont conservées.
Boolean
Appariement des champs
(Facultatif)
Les champs sont temporairement joints au jeu de données cible avec leurs propriétés et champs sources respectifs. Tous les champs sur jeu de données de jointure sont inclus par défaut.
Utilisez l’appariement des champs pour ajouter, supprimer, renommer et réorganiser les champs, ainsi que pour modifier d’autres propriétés des champs.
L’appariement des champs peut servir à combiner les valeurs de deux champs en entrée ou plus en un seul champ en sortie.
Field Mappings
Option de correspondance
(Facultatif)
Spécifie les critères qui seront appliqués pour apparier les lignes.
Intersecter—Les entités dans les entités de jointure sont appariées si elles intersectent une entité cible. Il s’agit de l’option par défaut. Spécifiez la distance dans le paramètre Search Radius (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). Spécifiez la distance dans le paramètre Search Radius (Rayon de recherche).
Dans une distance—Les entités dans les entités jointes sont appariées si elles se trouvent à une distance spécifiée d'une entité cible. Spécifiez la distance dans le paramètre Search Radius (Rayon de recherche).
Dans une distance géodésique—Ce paramètre est identique au paramètre Within a distance (Dans une distance), mais la distance géodésique est utilisée au lieu de la distance planaire. La distance entre les entités est calculée à l’aide d’une formule géodésique qui tient compte de la courbure du sphéroïde et gère correctement les données situées près de la ligne de changement de date et des pôles. Utilisez cette option si les 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 3D—Les 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. Spécifiez la distance dans le paramètre Search Radius (Rayon de recherche).
Contient—Les 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ètement—Les entités des entités jointes sont appariées si une entité cible les englobe entièrement. Un polygone peut contenir entièrement toute entité. Un point ne peut contenir entièrement aucune entité et même pas un point. Une polyligne peut contenir entièrement uniquement des entités polyligne et ponctuelles.
Contient Clementini—Cette relation spatiale génère les mêmes résultats que Completely contains (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.
Dans—Les entités des entités jointes sont appariées si une entité cible se trouve à l'intérieur d'elles. C’est l’inverse de Contains (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 si la cible est un point.
Complètement dans—Les entités des entités jointes sont appariées si une entité cible se trouve entièrement à l'intérieur d'elles. C’est l’inverse de Completely contains (Contient complètement).
Dans Clementini—Le résultat est identique à celui obtenu avec Within (Dans), 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 ou polygone à polygone.
La limite touche—Les 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 avec—Les 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 de—Les 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 dans—Les 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, le centroïde de la géométrie est utilisé, tandis que pour les lignes en entrée, le centre de la géométrie est utilisé. Spécifiez la distance dans le paramètre Search Radius (Rayon de recherche).
Plus proche—L’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. Spécifiez la distance dans le paramètre Search Radius (Rayon de recherche).
Géodésique le plus proche—Identique à Closest (Plus proche), mais la distance géodésique est utilisée au lieu de la distance planaire. Utilisez cette option si les 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 étendue—L’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 sera été ajouté à la jointure. Ce paramètre est valide uniquement lorsque la relation spatiale est spécifiée (Match Option [Option d’appariement] 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 indiqué, le champ n’est pas ajouté à la jointure.
String
Joindre définitivement les champs
(Facultatif)
Spécifie si les champs de la classe d’entités de la jointure sont ajoutés temporairement à la couche ou définitivement à la classe d’entités cible.
Activé—Les champs de la classe d’entités de jointure seront définitivement ajoutés à la classe d’entités cible.
Décoché—Les champs de la classe d’entités de jointure seront temporairement ajoutés à la couche par une jointure interne. Il s’agit de l’option par défaut.
Boolean
Champs d'appariement
(Facultatif)
Paires de champs des entités de jointure et des entités cible qui sont utilisées pour l’appariement des attributs. Seuls les enregistrements des entités de jointure qui partagent les valeurs des champs d’appariement avec les entités cibles participent à la jointure spatiale.
Colonnes de la table de valeurs :
Join Fields—Fields from the join features that will be used for attribute matching.
Target Fields—Fields from the target features that will be used for attribute matching.
Les attributs des entités cible et les attributs des entités de jointure sont joints à la couche d’entités cible. Toutefois, un sous-ensemble d’attributs peut être défini à l’aide du paramètre field_mapping.
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
join_operation
(Facultatif)
Ce paramètre n'est pas pris en charge. Toutes les jointures sont effectuées sous la forme de jointures un vers un. Si vous utilisez des arguments de position dans Python, utilisez un type None, une chaîne vide ("" ou '') ou le mot-clé JOIN_ONE_TO_ONE.
Pour réaliser une jointure un vers plusieurs lorsque la sortie est créée dans une classe d’entités en sortie, utilisez l’outil Jointure spatiale.
String
join_type
(Facultatif)
Indique si seules les entités cible qui présentent une relation spatiale avec une entité jointe (jointure interne) sont conservées ou si toutes les entités cible sont conservées, même sans relation spatiale avec les entités jointes (jointure externe).
KEEP_ALL—Toutes les entités de la couche d’entités cible sont conservées. Il s’agit de l’option par défaut.
KEEP_COMMON—Seules les entités de la couche d’entités cible qui présentent une relation spatiale avec une entité jointe sont conservées.
Boolean
field_mapping
(Facultatif)
Les champs sont temporairement joints au jeu de données cible avec leurs propriétés et champs sources respectifs. Tous les champs sur jeu de données de jointure sont inclus par défaut.
Utilisez l’appariement des champs pour ajouter, supprimer, renommer et réorganiser les champs, ainsi que pour modifier d’autres propriétés des champs.
L’appariement des champs peut servir à combiner les valeurs de deux champs en entrée ou plus en un seul champ en sortie.
Dans Python, utilisez 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.
INTERSECT—Les entités dans les entités de jointure sont appariées si elles intersectent une entité cible. Il s’agit de l’option par défaut. Spécifiez la 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). Spécifiez la distance dans le paramètre search_radius.
WITHIN_A_DISTANCE—Les entités dans les entités jointes sont appariées si elles se trouvent à une distance spécifiée d'une entité cible. Spécifiez la distance dans le paramètre search_radius.
WITHIN_A_DISTANCE_GEODESIC—Ce paramètre est identique au paramètre WITHIN_A_DISTANCE, mais la distance géodésique est utilisée au lieu de la distance planaire. La distance entre les entités est calculée à l’aide d’une formule géodésique qui tient compte de la courbure du sphéroïde et gère correctement les données situées près de la ligne de changement de date et des pôles. Utilisez cette option si les 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_3D—Les 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. Spécifiez la distance dans le paramètre search_radius.
CONTAINS—Les 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_CONTAINS—Les entités des entités jointes sont appariées si une entité cible les englobe entièrement. Un polygone peut contenir entièrement toute entité. Un point ne peut contenir entièrement aucune entité et même pas un point. Une polyligne peut contenir entièrement uniquement des entités polyligne et ponctuelles.
CONTAINS_CLEMENTINI—Cette relation spatiale génère 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.
WITHIN—Les entités des entités jointes sont appariées si une entité cible se trouve à l'intérieur d'elles. C’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é de jointure uniquement si la cible est un point.
COMPLETELY_WITHIN—Les entités des entités jointes sont appariées si une entité cible se trouve entièrement à l'intérieur d'elles. C’est l’inverse de COMPLETELY_CONTAINS.
WITHIN_CLEMENTINI—Le 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_TO—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 ou polygone à polygone.
BOUNDARY_TOUCHES—Les 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_WITH—Les 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_OF—Les 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_IN—Les 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, le centroïde de la géométrie est utilisé, tandis que pour les lignes en entrée, le centre de la géométrie est utilisé. Spécifiez la distance dans le paramètre search_radius.
CLOSEST—L’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. Spécifiez la distance dans le paramètre search_radius.
CLOSEST_GEODESIC—Ce paramètre est identique au paramètre CLOSEST, mais la distance géodésique est utilisée au lieu de la distance planaire. Utilisez cette option si les 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_OVERLAP—L’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 (Dans une 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 sera été ajouté à la jointure. 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 indiqué, le champ n’est pas ajouté à la jointure.
String
permanent_join
(Facultatif)
Spécifie si les champs de la classe d’entités de la jointure sont ajoutés temporairement à la couche ou définitivement à la classe d’entités cible.
PERMANENT_FIELDS—Les champs de la classe d’entités de jointure seront définitivement ajoutés à la classe d’entités cible.
NO_PERMANENT_FIELDS—Les champs de la classe d’entités de jointure seront temporairement ajoutés à la couche par une jointure interne. Il s’agit de l’option par défaut.
Boolean
match_fields[[join_field, target_field],...]
(Facultatif)
Paires de champs des entités de jointure et des entités cible qui sont utilisées pour l’appariement des attributs. Seuls les enregistrements des entités de jointure qui partagent les valeurs des champs d’appariement avec les entités cibles participent à la jointure spatiale.
Colonnes de la table de valeurs :
Join Fields—Fields from the join features that will be used for attribute matching.
Target Fields—Fields from the target features that will be used for attribute matching.
Value Table
Sortie dérivée
Nom
Explication
Type de données
out_feature_class
Jeu de données en entrée mis à jour.
Feature Layer
Exemple de code
Exemple d’utilisation de AddSpatialJoin (script autonome)
Le script Python ci-après illustre l’utilisation de la fonction AddSpatialJoin dans un script autonome.
import os
import arcpy
arcpy.env.overwriteOutput = True
# Create hexagons
out_gdb = arcpy.env.scratchGDB
hex_fc = os.path.join(out_gdb, 'out_fc_hex_2')
arcpy.management.GenerateTessellation(
hex_fc, '-10823285.769168 4836611.80759869 -10781728.9441187 4856999.87422328',
'HEXAGON', '17269676,2624 Unknown', arcpy.SpatialReference(3857))
# Create 2 random points in each hexagon
count_pts = 2
pts_fc = arcpy.management.CreateRandomPoints(
out_gdb, 'out_fc_crp_2', constraining_feature_class=hex_fc,
number_of_points_or_field=count_pts)[0]
# Join the point attributes based on points within the hexagons
result = arcpy.management.AddSpatialJoin(
hex_fc, pts_fc, None, None, 'CID', 'COMPLETELY_CONTAINS')