Los números aleatorios se generan a partir de algoritmos que utilizan valores seed y otros parámetros para producir una secuencia de números aleatorios. Se hace referencia a dicha serie de números aleatorios como una transmisión de números aleatorios. Al crear modelos con números aleatorios, es importante rastrear de qué transmisión provienen los números aleatorios. Algunas veces todos los números aleatorios para los distintos procesos pueden provenir de la misma transmisión, mientras que otras veces cada proceso puede necesitar transmisiones únicas.
Existen muchos generadores de números distintos para crear números aleatorios. Los tres métodos en ArcGIS para generar valores aleatorios (los tipos de generadores) comprenden la función Rand() de estándar de C, el algoritmo recopilado de ACM 599 y Tornado de Mersenne mt19937. Es posible que deba reproducir los resultados de los modelos que utilizan los números aleatorios. Para garantizar la reproducibilidad en modelos, se puede agregar un valor seed como parámetro. Si especifica el mismo valor seed para dos ejecuciones distintas del mismo modelo que utiliza valores aleatorios, el modelo producirá los mismos resultados.
El generador de números aleatorios se identifica globalmente en la configuración del entorno o dentro de cualquier herramienta que utilice valores aleatorios como Calcular valor, Calcular campo, Crear ráster aleatorio o Crear puntos aleatorios. El generador de números aleatorios inicia una transmisión de números aleatorios basados en el tipo de generador y seed. Estos números se determinan de manera aleatoria y los valores se encuentran entre 0 y 1. Los números se crean según sea necesario.
En muchos casos, como cuando los valores se utilizan para modelar la incertidumbre de los datos de entrada o los parámetros de modelo, no resulta efectivo agregar valores aleatorios puros a una herramienta. En general, existe información a priori sobre la distribución de la incertidumbre alrededor de los datos de entrada o los parámetros en el modelo. Las herramientas como Crear ráster aleatorio, Calcular valor y Calcular campo extraen números de la transmisión aleatoria y los transforman en base a la distribución que se identificó en la herramienta. Por ejemplo, al agregar valores aleatorios a una superficie de elevación de entrada con una precisión de más o menos dos pies, si el modelo se ejecuta muchas veces en un análisis de error, más realizaciones deben agregar valores entre 0 y 1 que entre 1 y 2. Cuando se usan valores aleatorios, se pueden especificar el rango de valores, la distribución que se utilizará (por ejemplo, normal o Poisson) y los parámetros de distribución (por ejemplo, la desviación estándar). Cada valor es independiente de los demás valores.
Existen distintas distribuciones disponibles para asignar (o transformar) los valores en las herramientas que utilizan distribuciones (por ejemplo, Crear ráster aleatorio, Calcular valor y Calcular campo). Las distribuciones en general producen distintos resultados, y es el usuario final el que determina la distribución que se elegirá. La distribución elegida debe ser la mejor representación del proceso que se modela.
Consulte Distribuciones para asignar valores aleatorios para obtener una descripción de las distribuciones disponibles y cómo se suelen utilizar. Consulte La sintaxis de distribución para los valores aleatorios para la sintaxis y los parámetros de cada distribución.
Configurar la transmisión aleatoria globalmente
El tipo de generador aleatorio y el valor seed se establecen en la sección Números aleatorios del cuadro de diálogo Configuración del entorno. Todas las herramientas subsiguientes que utilizan valores aleatorios, ArcGIS.Rand() (en Calcular valor y Calcular campo), Crear ráster aleatorio y Crear puntos aleatorios, extraerán valores de la transmisión. Como cada herramienta necesita un número aleatorio, extraerá el siguiente valor de la transmisión aleatoria global.
Crear transmisiones aleatorias diferentes para cada proceso
Puede utilizar transmisiones únicas en cada proceso para garantizar que el proceso sea independientemente aleatorio, para no influenciar los resultados o para reproducir la salida. Configure el generador de números aleatorios y el valor seed de manera local para crear una transmisión local (por ejemplo, si hace clic en el botón Entornos en una herramienta o si hace clic con el botón derecho del ratón en ModelBuilder y después en Propiedades). Se crea una transmisión aleatoria nueva, y cuando esa herramienta necesite un valor aleatorio, lo extraerá sólo de esta transmisión recientemente creada. Si el modelo itera, la herramienta con la transmisión aleatoria asignada seguirá extrayendo valores de la transmisión local con cada iteración. Ninguna otra herramienta extraerá valores de la transmisión.
Puede comenzar con todas las transmisiones locales que desee en un modelo. Además, puede tener una combinación de algunas herramientas que extraen valores aleatorios de la transmisión global y de otras que extraen valores de su propia transmisión local.
Modificar un parámetro aleatoriamente
Hacer que un parámetro sea más aleatorio en un modelo ModelBuilder es un proceso de cinco pasos. En el siguiente ejemplo de ModelBuilder, el factor z de la función de pendiente de Spatial Analyst se cambiará aleatoriamente.
- Agregue la herramienta Pendiente desde la caja de herramientas Spatial Analyst.
- Agregue la herramienta Calcular valor desde la caja de herramientas Herramientas de administración de datos.
- Introduzca una expresión en la herramienta Calcular valor y, si desea que la expresión sea más aleatoria, introduzca la función ArcGIS.Rand() en la expresión con alguna operación aritmética (o una expresión). La expresión que se debe procesar en este ejemplo es
.arcgis.rand("Normal 2 2") * 2
- Para crear una relación entre la salida de Calcular valor y el parámetro que se desea hacer más aleatorio (el factor z-en la herramienta Pendiente), abra la herramienta Pendiente y en el campo factor Z, elija el nombre de la variable de salida de la lista desplegable (output_value).
- Haga clic con el botón derecho del ratón en la herramienta Pendiente, haga clic en Propiedades y establezca la salida de la herramienta Calcular valor como una precondición para la herramienta Pendiente. Este último paso garantiza que la expresión en la herramienta Calcular valor el factor z siempre se calculará antes de la ejecución de la herramienta Pendiente-
- Ejecute el modelo.
Crear valores aleatorios para puntos ubicados al azar
La asignación de valores aleatorios en puntos ubicados al azar es un proceso de tres pasos. Primero, se ubica un número específico de puntos con la herramienta Crear puntos aleatorios. En segundo lugar, se utiliza la herramienta Agregar campo para crear un campo nuevo en la capa de entidad de salida desde la herramienta Crear puntos aleatorios. En tercer lugar, la herramienta Calcular campo se utiliza para asignar los valores aleatorios al campo recién creado utilizando directamente la función ArcGIS.Rand() con una distribución como una expresión simple o utilizando la función ArcGIS.Rand() en una expresión compleja.