Les nombres aléatoires sont générés à partir d'algorithmes qui utilisent des valeurs germe et d'autres paramètres pour produire une séquence de nombres aléatoires. Cette série de nombres aléatoires est appelée flux de nombres aléatoires. Lors de la création de modèles à l'aide de nombres aléatoires, il est important d'identifier le flux à l'origine des nombres aléatoires. Dans certains cas, tous les nombres aléatoires des différents processus peuvent provenir du même flux, et dans d'autres, chaque processus nécessite des flux uniques.
Il existe de nombreux générateurs permettant de créer des nombres aléatoires. Les trois méthodes d'ArcGIS pour générer des valeurs aléatoires (les types de générateurs) sont la fonction Standard C rand (), l'algorithme de collecte ACM 599, et la méthode Mersenne Twister mt19937. Vous pouvez reproduire les résultats à partir de vos modèles qui utilisent des nombres aléatoires. Pour garantir la reproductibilité des modèles, une valeur germe peut être ajoutée comme paramètre. Si vous spécifiez la même valeur germe pour les deux différentes exécutions du même modèle qui utilisent des valeurs aléatoires, le modèle produira les mêmes résultats.
Le générateur de nombres aléatoires est identifié globalement dans les paramètres d'environnement ou localement dans n'importe quel outil qui utilise des valeurs aléatoires telles que Calculer une valeur, Calculer un champ, Créer un raster aléatoire ou Créer des points aléatoires. Le générateur de nombres aléatoires démarre un flux de nombres aléatoires selon le type de générateur et la valeur germe. Les nombres sont déterminés de façon aléatoire et les valeurs sont comprises entre 0 et 1. Les nombres sont créés selon vos besoins.
Dans de nombreux cas, il n'est pas nécessaire d'ajouter des valeurs aléatoires pures à un outil, par exemple lorsque des valeurs sont utilisées pour modéliser l'incertitude des données en entrée ou des paramètres de modèle. Généralement, des informations par défaut existent concernant la répartition de l'incertitude des données en entrée ou des paramètres du modèle. Les outils tels que Créer un raster aléatoire, Calculer une valeur et Calculer un champ extraient des nombres d'un flux aléatoire et les transforment selon la répartition identifiée dans l'outil. Par exemple, lors de l'ajout de valeurs aléatoires à une surface d'altitude en entrée avec une précision de plus ou moins deux pieds, si le modèle est exécuté plusieurs fois dans une analyse des erreurs, d'autres réalisations devraient ajouter des valeurs comprises entre 0 et 1 plutôt que 1 et 2. Lorsque vous utilisez des nombres aléatoires, la répartition (normale ou Poisson) et les paramètres de répartition (par exemple, l'écart type) peuvent être spécifiés. Chaque valeur est indépendante des autres valeurs.
Il existe plusieurs répartitions disponibles pour attribuer (ou transformer) les valeurs dans les outils qui utilisent des répartitions (par exemple, Créer un raster aléatoire, Calculer une valeur et Calculer un champ). Les répartitions produisent généralement des résultats différents, et la répartition à sélectionner est déterminée par l'utilisation finale. La répartition sélectionnée doit être la meilleure représentation du processus modélisé.
Consultez la rubrique Répartitions pour l'attribution de valeurs aléatoires pour une description des répartitions disponibles et de la manière dont elles sont généralement utilisées. Consultez la rubrique Syntaxe de distribution des valeurs aléatoires pour afficher la syntaxe et les paramètres de chaque distribution.
Définition globale du flux aléatoire
Le Type de générateur de nombres aléatoires et la valeur germe sont définis dans la section Nombres aléatoires de la boîte de dialogue Paramètres d'environnement. Tous les outils suivants qui utilisent des valeurs aléatoires (ArcGIS.Rand() (dans Calculer une valeur et Calculer un champ), Créer un raster aléatoire et Créer des points aléatoires) extraient des valeurs du flux. Lorsque chaque outil nécessite un nombre aléatoire, il extrait la prochaine valeur du flux de nombres aléatoires global.
Création de différents flux de nombres aléatoires pour chaque processus
Vous pouvez utiliser des flux uniques pour chaque processus afin que ce processus soit indépendant et aléatoire, et pour ne pas fausser vos résultats ou reproduire le résultat. Vous pouvez créer un flux local en définissant localement le générateur de nombres aléatoires et la valeur germe (par exemple en cliquant sur le bouton Environnements d'un outil, ou en cliquant avec le bouton droit sur un outil dans ModelBuilder, puis en cliquant sur Propriétés). Un nouveau flux de nombres aléatoires est créé, et lorsque cet outil a besoin d'une valeur aléatoire, il l'extrait uniquement de ce nouveau flux. Si le modèle se répète, l'outil comportant le flux de nombres aléatoires attribué continue d'extraire des valeurs du flux local avec chaque processus itératif. Aucun autre outil n'extrait des valeurs du flux.
Vous pouvez démarrer autant de flux locaux que vous souhaitez dans un modèle. Vous pouvez également utiliser une combinaison d'outils qui extraient des valeurs aléatoires du flux global, tandis que d'autres extraient des valeurs de leur propre flux local.
Modification d'un paramètre de façon aléatoire
L'ajout d'un caractère aléatoire à un paramètre dans un modèle ModelBuilder se déroule en cinq étapes. Dans l'exemple ModelBuilder suivant, le facteur z de la fonction Spatial Analyst Pente sera modifié de façon aléatoire.
- Ajoutez l'outil Pente de la boîte à outils Outils Spatial Analyst.
- Ajoutez l'outil Calculer une valeur de la boîte à outils Data Management.
- Entrez une expression dans l'outil Calculer une valeur, et si un caractère aléatoire doit être ajouté à l'expression, entrez la fonction ArcGIS.Rand () dans l'expression avec une opération arithmétique (ou une autre expression). L'expression à traiter dans cet exemple est arcgis.rand("Normal 2 2") * 2.
- Pour faire une relation entre la sortie de Calculer une valeur et le paramètre auquel le caractère aléatoire est ajouté (facteur z dans l'outil Pente), ouvrez l'outil Pente et, dans le champ de facteur Z, sélectionnez le nom de variable en sortie dans la liste déroulante (output_value).
- Cliquez avec le bouton droit sur l'outil Pente, cliquez sur Propriétés, puis définissez la sortie de l'outil Calculer une valeur comme condition préalable de l'outil Pente. Cette dernière étape garantit que l'expression de l'outil Calculer une valeur, le facteur Z, est toujours calculée avant l'exécution de l'outil Pente.
- Exécutez le modèle.
Création de valeurs aléatoires pour des points placés de façon aléatoire
L'attribution de valeurs aléatoires à des points placés de façon aléatoire est un processus en trois étapes. Premièrement, un nombre spécifié de points est placé à l'aide de l'outil Créer des points aléatoires. Deuxième, l'outil Ajouter un champ est utilisé pour créer un champ dans la couche d'entités en sortie à l'aide de l'outil Créer des points aléatoires. Troisièmement, l'outil Calculer un champ est utilisé pour attribuer directement les valeurs aléatoires au nouveau champ à l'aide de la fonction ArcGIS.Rand() avec une répartition sous forme d'expression simple ou de la fonction ArcGIS.Rand() dans une expression complexe.