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. Los números se determinan al azar, y los valores se encuentran entre 0 y 1. Los números se crean a medida que se necesitan.
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 en una superficie de elevación de entrada con una exactitud 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 en vez de 1 y 2. Al utilizar valores aleatorios, se puede 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 otros 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 después 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
Asignar 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 recientemente creado utilizando directamente la función ArcGIS.Rand() con una distribución como simple expresión o utilizando la función ArcGIS.Rand() en una expresión compleja.