Créer des points aléatoires (Gestion des données)

Synthèse

Crée un nombre spécifié d'entités ponctuelles aléatoires. Des points aléatoires peuvent être créés dans une fenêtre d'étendue, à l'intérieur d'entités surfaciques, sur des entités ponctuelles ou le long d'entités linéaires.

Pour plus d'informations sur le fonctionnement de l'outil Créer des points aléatoires

Utilisation

  • La zone dans laquelle les points aléatoires seront générés peut être définie soit par des entités surfaciques, ponctuelles ou linéaires de contrainte, soit par une fenêtre d'étendue de contrainte.

  • Le paramètre Nombre de points peut être spécifié sous la forme d'un nombre ou d'un champ numérique dans la classe d'entités de contrainte contenant des valeurs relatives au nombre de points aléatoires à placer dans chaque entité. L'option de champ est valide uniquement pour les entités de contrainte surfaciques ou linéaires. Si le nombre de points est indiqué sous la forme d'un nombre, cette valeur sera générée à l'intérieur ou le long de chaque entité de la classe d'entités de contrainte.

    Si vous utilisez une classe d’entités de contrainte qui comporte plusieurs entités, et si vous souhaitez spécifier le nombre total de points aléatoires à générer (contrairement au nombre de points aléatoires à insérer dans chaque entité), utilisez d’abord l’outil Fusionner afin que la classe d'entités de contrainte ne contienne qu’une seule entité. Utilisez ensuite cette classe d’entités fusionnée comme classe d’entités de contrainte.

  • Le système de coordonnées de la classe d'entités en sortie sera le système de coordonnées de

    • de la classe d’entités de contrainte s'il est spécifié
    • du bloc de données de la carte si une étendue de contrainte est spécifiée dans la carte à l’aide d’une couche de la carte ou du chemin d’accès à une classe d’entités
    • de la classe d'entités si une étendue de contrainte est spécifiée dans Python à l'aide du chemin d'accès à une classe d'entités
    • de l'environnement de géotraitement Système de coordonnées en sortie s'il est défini (et remplace tous les autres comportements décrits ci-dessus)
    • Inconnu si aucune des conditions ci-dessus ne s'applique

  • Pour affecter des valeurs aléatoires à des points placés de façon aléatoire, commencez par générer des points aléatoires à l'aide de cet outil. Utilisez ensuite l’outil Ajouter un champ pour créer un champ numérique dans la classe d’entités des points aléatoires. Les types de champs proposés sont des entiers longs ou des réels simples. Utilisez enfin l’outil Calculer un champ pour affecter des valeurs aléatoires au champ vide dans la classe d’entités des points aléatoires. Pour générer un entier aléatoire entre a et b (de manière inclusive), utilisez l’expression Python .random.randint(a,b) Pour générer un réel simple aléatoire entre a et b (de manière exclusive), utilisez l’expression Python .random.uniform(a,b) Dans le bloc de code, importez le module aléatoire à l’aide de l’expression import random.

  • Le paramètre Etendue de contrainte peut être saisi sous la forme d'un ensemble de coordonnées x et y minimales et maximales ou comme étant égal à l'étendue d'une couche ou d'une classe d'entités.

  • Si à la fois une classe d’entités de contrainte et une étendue de contrainte sont spécifiées, la valeur de la classe d’entités de contrainte est utilisée et celle de l’étendue de contrainte ignorée.

  • Lorsqu'il s'avère impossible de placer d'autres points aléatoires dans une zone de contrainte sans enfreindre la distance minimale autorisée spécifiée, le nombre de points aléatoires dans cette zone est réduit au maximum possible sous la distance minimale autorisée.

  • Le paramètre Distance minimale autorisée peut être indiqué sous la forme d'une unité linéaire ou d'un champ à partir des entités de contrainte contenant des valeurs numériques. Cette valeur va déterminer la distance minimale autorisée entre des points aléatoires à l'intérieur de chaque entité en entrée. L'option de champ est valide uniquement pour les entités de contrainte surfaciques ou linéaires. Il se peut que des points aléatoires se trouvent dans cette distance minimale autorisée s'ils ont été générés à l'intérieur ou le long d'entités de contrainte différentes.

  • L'utilisation d'entités ponctuelles en tant que classe d'entités de contrainte a pour effet de créer un ensemble aléatoire d'entités ponctuelles de contrainte. Aucun nouvel emplacement de point n'est créé.

  • Les valeurs positives non entières saisies pour les paramètres Nombre de points et Distance minimale autorisée sont arrondies à l'entier le plus proche. Les valeurs non numériques et négatives sont définies sur 0.

Paramètres

ÉtiquetteExplicationType de données
Emplacement en sortie

Emplacement ou espace de travail dans lequel la classe d'entités des points aléatoires sera créée. Cet emplacement ou espace de travail doit déjà exister.

Feature Dataset;Workspace
Classe d’entités ponctuelles en sortie

Nom de la classe d'entités des points aléatoires à créer.

String
Classe d’entités de contrainte
(Facultatif)

Les points aléatoires seront générés à l'intérieur ou le long des entités de cette classe. La classe d'entités de contrainte peut être de type point, multi-points, ligne ou polygone. Les points seront placés de façon aléatoire à l'intérieur d'entités surfaciques, le long d'entités linéaires ou aux emplacements d'entités ponctuelles. Le nombre de points spécifié sera généré à l'intérieur de chaque entité de cette classe d'entités (par exemple, si vous spécifiez 100 points et si la classe d'entités de contrainte comporte 5 entités, 100 points aléatoires seront générés dans chaque entité, ce qui fait 500 points au total).

Feature Layer
Étendue de contrainte
(Facultatif)

Les points aléatoires seront générés à l'intérieur de l'étendue. L'étendue de contrainte sera uniquement utilisée si aucune classe d'entités de contrainte n'est spécifiée.

  • Current Display Extent (Étendue actuellement affichée) Vue cartographique : l’étendue repose sur la carte ou la scène active. Cette option est uniquement disponible lorsqu’une carte est active.
  • Dessiner l’étendue Terminer avec mise à l’équerre : l’étendue est basée sur un rectangle dessiné sur la carte ou dans la scène. Cette option crée une classe d’entités dans la géodatabase du projet et ajoute une couche à la carte. La classe d’entités possède le même système de coordonnées que la carte.
    Remarque :

    Cette option n’est pas disponible dans la boîte de dialogue Environnements. Elle est disponible uniquement dans un paramètre de l’outil correspondant à un type de données d’étendue ou dans l’onglet Environnements de la boîte de dialogue de l’outil.

    Remarque :

    Lorsque l’option de mise à jour Activer et désactiver la mise à jour de l’onglet Mettre à jour est activée, vous devez activer la mise à jour dans l’onglet du ruban Mettre à jour pour dessiner l’étendue.

  • Extent of a Layer (Étendue d’une couche) Layer : l’étendue repose sur une couche de carte active. Utilisez la liste déroulante pour choisir une couche disponible ou utilisez l’option Extent of data in all layers (Étendue des données dans toutes les couches) pour obtenir l’étendue combinée de toutes les couches de carte actives, y compris le fond de carte. Cette option est uniquement disponible lorsqu’une carte avec des couches est active.

    Chaque couche de carte comporte les options suivantes :

    • Toutes les entités Sélectionner tout : étendue de toutes les entités dans la couche.
    • Entités sélectionnéesArea from Selected Features : étendue de toutes les entités sélectionnées dans la couche.
    • Entités visibles Extent Indicator : étendue des entités visibles dans la couche.
      Remarque :

      Les étendues des options Entités sélectionnées Area from Selected Features et Entités visibles Extent Indicator sont disponibles uniquement pour les couches d’entités.

  • Browse (Parcourir) Parcourir : l’étendue repose sur un jeu de données existant.
  • Presse-papiers Coller : l’étendue peut être copiée vers et collée depuis le Presse-papiers.
    • Copier l’étendue Copier : copie les coordonnées et le système de coordonnées de l’étendue dans le Presse-papiers.
    • Coller l’étendue Coller : colle les coordonnées et, éventuellement, le système de coordonnées de l’étendue depuis le Presse-papiers. Si les valeurs du Presse-papiers n’incluent pas de système de coordonnées, l’étendue utilise celui de la carte.
    Remarque :

    Les coordonnées de l’étendue sont copiées vers et collées depuis le Presse-Papiers avec la même mise en forme et le même ordre que ceux de l’objet ArcPy Extent : X min, Y min, X max, Y max et la référence spatiale.

  • Reset Extent (Réinitialiser l’étendue) Réinitialiser : la valeur par défaut de l’étendue est rétablie.
  • Manually entered coordinates (Coordonnées saisies manuellement) : les coordonnées doivent être des valeurs numériques incluses dans le système de coordonnées de la carte active.
    Attention :

    La carte peut utiliser des unités d’affichage différentes de celles des coordonnées saisies. L’utilisation d’une direction cardinale (N, S, E, O) n’est pas prise en charge. Utilisez le signe moins pour les coordonnées sud et ouest.

Extent; Feature Layer; Raster Layer
Nombre de points [valeur ou champ]
(Facultatif)

Nombre de points à générer de façon aléatoire.

Le nombre de points peut être spécifié sous la forme d'un nombre entier long ou d'un champ à partir d'entités de contrainte contenant des valeurs numériques relatives au nombre de points aléatoires à placer dans chaque entité. L'option de champ est valide uniquement pour les entités de contrainte surfaciques ou linéaires. Si le nombre de points est indiqué sous la forme d'un nombre entier long, cette valeur sera générée à l'intérieur ou le long de chaque entité de la classe d'entités de contrainte.

Field; Long
Distance minimale autorisée [valeur ou champ]
(Facultatif)

Distance la plus courte autorisée entre deux points placés de façon aléatoire. Si une valeur de 1 mètre est indiquée, tous les points aléatoires seront éloignés de plus de 1 mètre du point le plus proche.

Field; Linear Unit
Créer une sortie multi-points
(Facultatif)

Détermine si la classe d'entités en sortie sera une entité en une seule partie ou multi-parties.

  • Non coché : la sortie sera un point de type géométrie (chaque point est une entité distincte). Il s’agit de l’option par défaut.
  • Coché : la sortie sera un multi-points de type géométrie (tous les points constituent une entité unique).
Boolean
Nombre max. de points par multi-points
(Facultatif)

Si l'option Créer une sortie multi-points est activée, indiquez le nombre de points aléatoires à placer dans chaque catégorie multi-points.

Long

Sortie obtenue

ÉtiquetteExplicationType de données
Classe d’entités en sortie

Classe d’entités points aléatoires en sortie.

Feature Class

arcpy.management.CreateRandomPoints(out_path, out_name, {constraining_feature_class}, {constraining_extent}, {number_of_points_or_field}, {minimum_allowed_distance}, {create_multipoint_output}, {multipoint_size})
NomExplicationType de données
out_path

Emplacement ou espace de travail dans lequel la classe d'entités des points aléatoires sera créée. Cet emplacement ou espace de travail doit déjà exister.

Feature Dataset;Workspace
out_name

Nom de la classe d'entités des points aléatoires à créer.

String
constraining_feature_class
(Facultatif)

Les points aléatoires seront générés à l'intérieur ou le long des entités de cette classe. La classe d'entités de contrainte peut être de type point, multi-points, ligne ou polygone. Les points seront placés de façon aléatoire à l'intérieur d'entités surfaciques, le long d'entités linéaires ou aux emplacements d'entités ponctuelles. Le nombre de points spécifié sera généré à l'intérieur de chaque entité de cette classe d'entités (par exemple, si vous spécifiez 100 points et si la classe d'entités de contrainte comporte 5 entités, 100 points aléatoires seront générés dans chaque entité, ce qui fait 500 points au total).

Feature Layer
constraining_extent
(Facultatif)

Les points aléatoires seront générés à l'intérieur de l'étendue. L'étendue de contrainte sera uniquement utilisée si aucune classe d'entités de contrainte n'est spécifiée.

  • MAXOF : l’étendue maximale de toutes les entrées est utilisée.
  • MINOF : l’étendue minimale commune à toutes les entrées est utilisée.
  • DISPLAY : l’étendue est égale à l’affichage visible.
  • Nom de la couche : l’étendue de la couche spécifiée est utilisée.
  • Objet Extent : l’étendue de l’objet spécifié est utilisée.
  • Chaîne délimitée par des espaces de coordonnées géographiques : l’étendue de la chaîne spécifiée est utilisée. Les coordonnées sont exprimées dans l’ordre x-min, y-min, x-max, y-max.
Extent; Feature Layer; Raster Layer
number_of_points_or_field
(Facultatif)

Nombre de points à générer de façon aléatoire.

Le nombre de points peut être spécifié sous la forme d'un nombre entier long ou d'un champ à partir d'entités de contrainte contenant des valeurs numériques relatives au nombre de points aléatoires à placer dans chaque entité. L'option de champ est valide uniquement pour les entités de contrainte surfaciques ou linéaires. Si le nombre de points est indiqué sous la forme d'un nombre entier long, cette valeur sera générée à l'intérieur ou le long de chaque entité de la classe d'entités de contrainte.

Field; Long
minimum_allowed_distance
(Facultatif)

Distance la plus courte autorisée entre deux points placés de façon aléatoire. Si une valeur de 1 mètre est indiquée, tous les points aléatoires seront éloignés de plus de 1 mètre du point le plus proche.

Field; Linear Unit
create_multipoint_output
(Facultatif)

Détermine si la classe d'entités en sortie sera une entité en une seule partie ou multi-parties.

  • POINTLa sortie sera un point de type géométrie (chaque point est une entité distincte). Il s’agit de l’option par défaut.
  • MULTIPOINTLa sortie sera un multi-points de type géométrie (tous les points constituent une entité unique).
Boolean
multipoint_size
(Facultatif)

Si le paramètre create_multipoint_output est défini sur MULTIPOINT, indiquez le nombre de points aléatoires à placer dans chaque catégorie multi-points. La valeur par défaut est 10.

Long

Sortie obtenue

NomExplicationType de données
out_feature_class

Classe d’entités points aléatoires en sortie.

Feature Class

Exemple de code

Exemple 1 d'utilisation de l'outil Créer des points aléatoires (fenêtre Python)

Le script de fenêtre Python suivant montre comment utiliser l’outil CreateRandomPoints en mode immédiat.

import arcpy
arcpy.management.CreateRandomPoints("c:/data/project", "samplepoints", 
                                    "c:/data/studyarea.shp", "", 500, "", 
                                    "POINT")
Exemple 2 d’utilisation de l’outil CreateRandomPoints (script autonome)

Le script Python autonome ci-dessous illustre la création de points aléatoires avec des valeurs aléatoires.

# Name: RandomPointsRandomValues.py
# Purpose: create random points with random values

# Import system modules
import arcpy

# Create random points in the features of a constraining feature class
# Number of points for each feature determined by the value in the field 
# specified
outGDB = "C:/data/county.gdb"
outName = "randpeople"
conFC = "C:/data/county.gdb/blocks"
numField = "POP2000"
arcpy.management.CreateRandomPoints(outGDB, outName, conFC, "", numField)

# set workspace
arcpy.env.workspace = "C:/data/county.gdb"

# Create fields for random values
fieldInt = "fieldInt"
fieldFlt = "fieldFlt"
arcpy.management.AddField(outName, fieldInt, "LONG")  # add long integer field
arcpy.AddField_management(outName, fieldFlt, "FLOAT") # add float field

# Calculate random values between 1-100 in the new fields
arcpy.management.CalculateField(outName, fieldInt, "random.randint(1,100)", 
                                "PYTHON", "import random")
arcpy.management.CalculateField(outName, fieldFlt, "random.uniform(1,100)", 
                                "PYTHON", "import random")
Exemple 3 d’utilisation de l’outil CreateRandomPoints (script autonome)

Le script Python autonome ci-dessous illustre différentes méthodes d’utilisation de l’outil CreateRandomPoints.

# Name: RandomPoints.py
# Purpose: create several types of random points feature classes

# Import system modules
import arcpy

# set environment settings
arcpy.env.overwriteOutput = True

# Create random points in an extent defined simply by numbers
outFolder = "C:/data"
numExtent = "0 0 1000 1000"
numPoints = 100
outName = "myRandPnts.shp"
arcpy.env.outputCoordinateSystem = "Coordinate Systems/Projected Coordinate Systems/World/Miller Cylindrical (world).prj"
arcpy.management.CreateRandomPoints(outFolder, outName, "", numExtent, numPoints)
arcpy.env.outputCoordinateSystem = ""
 
# Create random points in an extent defined by another feature class
outName = "testpoints.shp"
fcExtent = "C:/data/studyarea.shp"
arcpy.management.CreateRandomPoints(outFolder, outName, "", fcExtent, numPoints)
 
# Create random points in the features of a constraining feature class
# Number of points for each feature determined by the value in the field specified
outGDB = "C:/data/county.gdb"
outName = "randpeople"
conFC = "C:/data/county.gdb/blocks"
numField = "POP2000"
arcpy.management.CreateRandomPoints(outGDB, outName, conFC, "", numField)

# Create random points in the features of a constraining 
# Feature class with a minimum allowed distance
outName = "constparcelpnts"
conFC = "C:/data/county.gdb/parcels"
numPoints = 10
minDistance = "5 Feet"
arcpy.management.CreateRandomPoints(outGDB, outName, conFC, "", numPoints, 
                                    minDistance) 

# Create random points with a multipoint output
outName = "randomMPs"
fcExtent = "C:/data/county.gdb/county"
numPoints = 100
numMP = 10
arcpy.management.CreateRandomPoints(outGDB, outName, "", fcExtent, numPoints, 
                                    "", "MULTIPOINT", numMP)

Rubriques connexes