Les nombres aléatoires sont générés à partir d'algorithmes qui utilisent des valeurs initiales et d'autres paramètres pour produire une séquence de nombres aléatoires. Une série de nombres aléatoires de ce type est désignée sous le nom de flux de nombres aléatoires. Lorsque vous créez des modèles à l'aide de nombres aléatoires, il est important de suivre le flux d'où proviennent les nombres aléatoires. Il peut arriver que tous les nombres aléatoires des différents processus proviennent du même flux ou que chaque processus nécessite des flux uniques.
De nombreux générateurs de nombres différents permettent de créer des nombres aléatoires. Les trois méthodes de génération de valeurs aléatoires (les types de générateurs) dans ArcGIS sont la fonction Standard C Rand(), l'algorithme de collecte ACM 599 et la méthode Mersenne Twister mt19937. Vous pouvez être amené à reproduire les résultats de vos modèles qui utilisent des nombres aléatoires. Pour assurer la reproductibilité dans les modèles, vous pouvez ajouter une valeur initiale comme paramètre. Si vous spécifiez la même valeur initiale pour deux exécutions différentes du même modèle qui utilisent des valeurs aléatoires, le modèle produit les mêmes résultats.
Le générateur de nombres aléatoires est identifié globalement dans les paramètres d'environnement ou au sein d'un outil qui utilise des valeurs aléatoires, tel 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 initiale. Les nombres sont déterminés aléatoirement et les valeurs sont comprises entre 0 et 1. Les nombres sont créés selon les besoins.
Dans de nombreux cas, par exemple lorsque les valeurs sont utilisées pour modéliser l'incertitude des données en entrée ou des paramètres du modèle, il n'est pas judicieux d'ajouter des valeurs aléatoires pures à un outil. En règle générale, des informations préalables sont fournies concernant la distribution de l'incertitude autour des données en entrée ou des paramètres du modèle. Des outils, tels que Créer un raster aléatoire, Calculer une valeur et Calculer un champ extraient des nombres du flux aléatoire et les transforment en fonction de la distribution identifiée dans l'outil. Par exemple, lorsque vous ajoutez des 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, un plus grand nombre de réalisations doivent ajouter des valeurs comprises entre 0 et 1 qu'entre 1 et 2. Lorsque vous utilisez des valeurs aléatoires, la plage de valeurs, la distribution à utiliser (par exemple, normale ou Poisson) et les paramètres de distribution (par exemple, l'écart type) peuvent être spécifiés. Chaque valeur est indépendante des autres valeurs.
Plusieurs distributions permettent d'attribuer (ou de transformer) les valeurs dans les outils qui utilisent les distributions (par exemple, Créer un raster aléatoire, Calculer une valeur et Calculer un champ). Les distributions produisent généralement des résultats différents, et la distribution à sélectionner est déterminée par l'utilisation finale. La distribution sélectionnée doit représenter au mieux le processus modélisé.
Reportez-vous à la rubrique Distributions pour l'attribution de valeurs aléatoires pour obtenir une description des distributions disponibles et connaître leur mode d'utilisation général. Reportez-vous à la rubrique Syntaxe de distribution des valeurs aléatoires pour connaître la syntaxe et les paramètres de chaque distribution.
Configuration globale du flux aléatoire
La valeur initiale et le type Générateur aléatoire 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. Comme chaque outil requiert un nombre aléatoire, il extrait la prochaine valeur du flux aléatoire global.
Création de flux aléatoires différents pour chaque processus
Vous pouvez mettre en place des flux uniques pour chaque processus afin de vous assurer que le processus est indépendamment aléatoire, en vue de ne pas déformer vos résultats, ou de reproduire la sortie. Vous pouvez créer un flux localement en définissant la valeur initiale et le générateur de nombres aléatoires localement (par exemple, en cliquant sur le bouton Environnements d'un outil ou en cliquant avec le bouton droit dans ModelBuilder et en sélectionnant Propriétés). Un nouveau flux aléatoire est créé. Lorsque cet outil a besoin d'une valeur aléatoire, il l'extrait uniquement à partir de ce nouveau flux créé. En cas d'itération du modèle, l'outil avec le flux aléatoire attribué continue à extraire des valeurs du flux local à chaque itération. Aucun autre outil n'extrait de valeurs du flux.
Vous pouvez démarrer autant de flux locaux au sein d'un modèle que vous le souhaitez. Vous pouvez également mélanger des outils extrayant des valeurs aléatoires du flux global et des outils extrayant des valeurs de leur propre flux local.
Modification aléatoire d'un paramètre
Le processus qui permet de rendre un paramètre aléatoire dans un modèle ModelBuilder se décompose en cinq étapes. Dans l'exemple ModelBuilder suivant, un caractère aléatoire est attribué au facteur z de la fonction de pente Spatial Analyst.
- Ajoutez l'outil Pente à partir de la boîte à outils Outils Spatial Analyst.
- Ajoutez l'outil Calculer une valeur à partir de la boîte à outils Outils de gestion des données.
- Saisissez une expression dans l'outil Calculer une valeur et si vous souhaitez rendre l'expression aléatoire, saisissez la fonction ArcGIS.Rand() dans l'expression avec une opération arithmétique (ou une expression). L'expression à traiter dans cet exemple est
.arcgis.rand("Normal 2 2") * 2
- Pour établir une relation entre la sortie de l'outil Calculer une valeur et le paramètre auquel un caractère aléatoire est conféré (le facteur z dans l'outil Pente), ouvrez l'outil Pente et, dans le champ Facteur Z, choisissez le nom de la variable en sortie dans la liste déroulante (output_value).
- Cliquez avec le bouton droit sur l'outil Pente, sélectionnez Propriétés et définissez la sortie de l'outil Calculer une valeur en tant que condition préalable de l'outil Pente. Cette dernière étape permet de s'assurer que l'expression dans l'outil Calculer une valeur, le facteur z, sera toujours calculée avant d'exécuter l'outil Pente.
- Exécutez le modèle.
Création de valeurs aléatoires pour des points insérés de manière aléatoire
L'attribution de valeurs aléatoires à des points insérés de manière aléatoire se décompose en trois étapes. D'abord, un nombre donné de points est inséré à l'aide de l'outil Créer des points aléatoires. Ensuite, l'outil Ajouter un champ est utilisé pour créer un nouveau champ dans la couche d'entités en sortie à partir de l'outil Créer des points aléatoires. Enfin, l'outil Calculer un champ est utilisé pour attribuer les valeurs aléatoires au nouveau champ créé en utilisant directement la fonction ArcGIS.Rand() avec une distribution en tant qu'expression simple ou en utilisant la fonction ArcGIS.Rand() dans une expression complexe.