Académique Documents
Professionnel Documents
Culture Documents
19 de septiembre de 2009
Introducción
PARÁMETRO
VARIABLE
ACTOR DE KEPLER
SCRIPT
El código de colores le da al texto un punto de estridencia, pero son los que proporciona
el editor de texto en el que trabajo. Creo que mejora en cierta medida la identificación de
los elementos. Para mejorar aún más la comprensión del texto, aunque muestro imágenes
de las distintas secciones del flujo, es conveniente tener abiertos PRP y MODPLAN
en Kepler, y tener a mano los scripts que están en el anexo digital.
Este texto no pretende ser un manual de uso, sino una pequeña introducción para
facilitar la toma de contacto con ambos flujos de trabajo.
1
Configuración del entorno de
trabajo
2
• PROGRAMAS, que contiene los scripts, archivos de configuración y flujos de
Kepler necesarios.
• PRESENCIA_SHP, que contiene los shapefiles con la presencia de las es-
pecies, nombrados con el nombre científico de la especie, sustituyendo los
espacios por caracteres “_”.
• VARIABLES, que contiene las variables ambientales usadas para calibrado y
proyección de modelos en formato BIL (Band Interleaved by Pixel). Es muy
importante que la resolución en x e y sean exactamente iguales (es un
requerimiento de MaxEnt).
• Un directorio de mapas de GRASS, con una localidad configurada para la
región de trabajo, en un sistema de referencia UTM (es un requerimiento
de la rutina de Octave que calcula las distancias entre puntos de presen-
cia). Se requieren dos mapsets, uno para la evaluación de modelos (map-
setEVALUACION) y otro para la proyección (mapsetPROYECCION).
3
Preparación de los registros de
presencia
Los puntos de presencia los prepara el flujo de trabajo PRP (Preparación de Registros
de Presencia) (ver Figura 1). El flujo tiene una serie de parámetros que deben ser
rellenados por el usuario:
DIR_RAIZ: La ruta al directorio de trabajo.
DIR_USER: La ruta al directorio de usuario .
DIR_GRASS_EV: La ruta al mapset EVALUACION.
DIR_GRASS_PR: La ruta al mapset PROYECCION.
RESOLUCION: Resolución de trabajo deseada para los mapsets de GRASS. Lo
ideal es seleccionar la resolución nativa de las capas de variables ambientales. Si se
selecciona una menor, se debe tener en cuenta que el método rápido de remuestreo
de GRASS utiliza un algoritmo de vecino más próximo que compromete la calidad
de los resultados.
MIN_DIS: Distancia mínima entre pares de coordenadas de presencia de la especie.
Idealmente, el doble de la resolución de trabajo, para garantizar la presencia de al
menos una celda vacía entre punto y punto.
PARTICION: Porcentaje de los registros de presencia que se utilizará como con-
junto de evaluación. Lo habitual es utilizar entre un 25 y un 50 por ciento de los
puntos con este propósito.
MIN_PRES: Número mínimo de registros de presencia necesarios para que una
especie pueda pasar a la fase de modelado. Un número mínimo conservador es 30.
El flujo de trabajo está formado por tres actores, dos de ellos compuestos:
PRECONFIGURACION (ver Figura 2): Se encarga de preparar los directorios de
trabajo, mover los ficheros necesarios y configurar un fichero de variables generales
para los scripts de bash del flujo. También genera un listado con los shapefiles del
directorio PRESENCIA_SHP, los cuenta, y pasa el resultado numérico al siguiente
módulo, predeterminando el número total de iteraciones.
4
PREPARA_XY (ver Figura 3): Este actor compuesto itera un número de veces
igual al parámetro NUM_ESPECIES, proporcionado por el actor anterior. Está
compuesto por tres actores:
5
Figura 1: Flujo de trabajo PRP. Está formado por dos actores compuestos que contienen
flujos de trabajo completos (ver Figuras 2 y 3). El actor PRECONFIGURACION solo
se ejecuta una vez. El actorLoop permite que PREPARA_XY se ejecute tantas veces
como le indica el valor NUM_ESPECIES.
SALIDAS:
6
Figura 2: Actor compuesto PRECONFIGURACION. Se ejecuta una sola vez, y prepara
todo el entorno de trabajo.
7
Figura 3: Estructura del actor PREPARA_XY. El actor CONFIGU-
RA_VARIABLES envía el nombre de la especie a PREPARA_COORDENADAS.
Este ejecuta la parte importante de procesamiento del flujo. Una vez terminada, envía
el número de presencias y la ruta en la que se guardan los resultados de la especie a
DESCARTA_ESPECIES.
8
Figura 4: Actor compuesto CONFIGURA_VARIABLES. Este actor escribe un fichero
de texto con valores de variables que serán necesarias en los scripts del flujo. Tiene un
sistema de control (actores COMPRUEBA_FICHERO e INTERRUPTOR) que impide
que el actor emita el nombre de la especie antes de que se complete la escritura del
fichero de variables. Solo cuando el fichero de variables existe se manda el nombre de la
especie al siguiente actor del flujo.
9
Figura 5: Estructura interna del actor compuesto PREPARA_COORDENADAS. Las
secciones principales están señaladas con rectángulos de color. Un actor fundamental es
BORRA_LINEA, que borra una especie de la lista de especies, permitiendo al flujo
empezar con una nueva especie en la siguiente iteración. El actor LISTAS_ESPECIES
es una expresión de R a la que se le introduce un listado con las especies y su número
de presencias. Devuelve dos listas, una con las especies que cumplen los criterios y otra
con las que no.
10
Figura 6: Actor compuesto DESCARTA_ESPECIES. Contiene una bifurcación
condicional. El actor Comparator compara el valor NUM_PRESENCIAS que le lle-
ga con el valor del parámetro MIN_PRES determinado por el usuario. Si el valor
de NUM_PRESENCIAS es mayor que MIN_PRES, se activa la ramificación ESPE-
CIE_ACEPTADA, y los datos de la especie se escriben en el directorio de resultados.
Si la comparación resulta negativa, los datos de la especie se escriben en el directo-
rio ESPECIES_DESCARTADAS. Este actor tiene su propio modelo de computación
implementado en el director DDF (dynamic dataflow).
11
Calibrado inicial, ensamblado y
evaluación
Los objetivos que cubre el flujo de trabajo en esta sección son los siguientes:
Calibrado de modelos según 8 algoritmos diferentes: Máxima entropía (ME), Dis-
tancia de Chebyshev (CH), Distancia de Mahalanobis (MH), Distancia de Man-
hattan (MN), Distancia Euclídea (EU), GARP (GA), Red Neuronal (NN), Support
Vector Machines (VM).
12
Figura 7: Flujo de trabajo MODPLAN. NUMERO_ESPECIES solo se ejecuta
en una ocasión. Para garantizar que EJECUCION_MODELOS se ejecuta tan-
tas veces como especies deben procesarse, se coloca el actor Loop. El actor NUME-
RO_SELECCIONADAS muestra al usuario el número de especies que se van a procesar.
13
Figura 8: Actor compuesto NUMERO_ESPECIES. Este actor compuesto cuenta con
un sistema de control igual al observado en la Figura 6. El interruptor no deja pasar la
señal hasta que el actor REESCRIBE SCRIPT 13 ha terminado su tarea.
14
Figura 10: Actor compuesto NOMBRE_ESPECIE. El actor ITERADOR2 configura
su número de iteraciones según el valor de número de especies que llega desde NU-
MERO_ESPECIES (Figura 9). Cada vez queITERADOR2 dispara, el actor LEE_LISTA
lee un nombre de especie de la lista de especies seleccionadas (utilizando una orden de
Bash), enviándolo al siguiente actor. ESPECIE_EN_PROCESO muestra al usuario el
nombre de la especie que se está procesando.
MODELADO (Figura 11): Es la sección del flujo que hace todo el trabajo im-
portante en esta fase.
15
Figura 11: Actor compuesto MODELADO: Sección que ejecuta y evalúa los modelos
iniciales. La variable ESP_SELECCIONADA muestra el nombre de la especie al resto
de actores. La primera sección rellena la cabecera del fichero de configuración para
OpenModeller. El actor UNE PARAMETROS la une con los ficheros de parámetros de
16
los algoritmos. EJECUTA MODELOS usa el fichero resultante para generar los modelos.
de MaxEnt y OpenModeller, y los ensambla utilizando el módulo r.series
con la función median. Igualmente calcula el mapa de desviación están-
dar, aplicando la función stddev. La función v.random se utiliza para
generar dos conjuntos de puntos aleatorios (uno a escala global y otro
local), con la idea es muestrear más intensamente el ámbito local que el
global. Posteriormente extrae los valores de los puntos aleatorios y los
puntos de evaluación sobre los resultados de los algoritmos usando el
módulo v.what.rast y los exporta a tres tablas para la evaluación de los
modelos (VALORES ALEATORIOS GLOBAL.txt, VALORES ALEATO-
RIOS LOCAL.txt y VALORES PUNTOS EVALUACIÓN.txt). La orden
d.mon se utiliza para generar automáticamente mapas de los modelos y
el ensamblado a las escalas global y local, superponiéndoles los puntos
de calibrado y los puntos de evaluación. Estos mapas en formato png se
mueven a la carpeta RESULTADOS en el directorio de la especie.
◦ Evaluación de modelos: El actor EVALUA MODELOS lanza un script de
octave (8 EVALUA_MODELOS) que realiza los tests estadísticos
que calculan la precisión de los modelos.
◦ Composición de gráficos con los resultados: Los resultados de la eva-
luación, previo procesamiento, pasan al actor GRAFICOS, que lanza un
script de R (9 GRAFICOS EVALUACION) que genera una represen-
tación gráfica de los datos de evaluación, y el gráfico de distribución del
ensamblado en formato pdf. Este pdf se transforma en png mediante una
orden del programa ImageMagick y se copia a la carpeta RESULTADOS
en el directorio de la especie.
◦ Cálculo del umbral de corte del modelo. Para determinados cálculos pos-
teriores (por ejemplo, cálculo del área de presencia potencial de la espe-
cie) es necesario transformar un modelo continuo (valores de 0 a 100)
en modelo binario (0 y 1, indicando ausencia y presencia respectiva-
mente). Para esta transformación se selecciona en el modelo continuo,
según un criterio más o menos objetivo, un valor de idoneidad umbral
por encima del cual todas las celdas se recodifican con valor 1, mien-
tras que las celdas por debajo se recodifican con valor 0. Este umbral
representa el límite teórico entre hábitat óptimo y sub-óptimo. En este
caso el criterio lo determina el usuario a través del parámetro PORCEN-
TAJE_OMISION. Este valor indica el porcentaje máximo de puntos de
evaluación que pueden quedar excluidos del área de presencia del modelo
binario. Se interpreta como la proporción de localidades de presencia que
el usuario considera que se encuentran fuera de las condiciones apropia-
das para la especie. Un valor típico sería 5, indicando que el 95 % de las
poblaciones conocidas de la especie se encuentran dentro de su óptimo
ecológico. Un valor conservador puede ser 0, con el que se asume que
todas las poblaciones están dentro del óptimo. El valor del parámetro se
17
pasa a un actor R (CALCULA_UMBRAL) que, utilizando la tabla con
los valores sobre el ensamblado de los puntos de evaluación, calcula el
cuantil correspondiente y lo exporta a un fichero de texto plano.
Como resumen final, listo las entradas y salidas esta sección del flujo:
ENTRADAS:
SALIDAS:
18
Recalibrado y proyección sobre
los distintos escenarios
En esta sección el flujo de trabajo vuelve a calibrar los modelos de distribución, pero
aprovechando en esta ocasión todos los puntos de presencia de la especie disponibles.
Los modelos numéricos resultantes (ficheros xml con las definiciones de los modelos en
OpenModeller y fichero de texto plano con los coeficientes de la ecuación en MaxEnt) se
utilizan para proyectarlos sobre las condiciones climáticas simuladas para el futuro. Cada
resultado se importa a GRASS para generar el ensamblado correspondiente. Durante esta
fase se muestrean los ensamblados con los puntos aleatorios y los puntos de presencia
para utilizar estos datos en la fase de análisis de los resultados. Este proceso se repite
para todos los intervalos de tiempo dentro de cada escenario.
Esta fase está dividida en dos secciones, recalibrado y proyección, ejecutadas por
sendos actores dentro del actor compuesto EJECUCION_MODELOS (ver Figura
12):
Recalibrado: El actor CALIBRADO_MODELO lanza la ejecución del script 11
inicia MODELOS CALIBRADO. Este script calibra los algoritmos con todos
los puntos de presencia, y guarda las definiciones de los modelos para su posterior
proyección. Una vez acabada la ejecución, lanza el batch-job de GRASS 12 ejecuta
MODELOS CALIBRADO, que ejecuta las siguientes tareas:
Figura 12: Actores que ejecutan el recalibrado y proyección de modelos. Ambos actores
se encuentran dentro del actor compuesto EJECUCION_MODELOS.
19
• Genera el ensamblado (media y desviación estándar).
• Extrae los valores de los puntos aleatorios y de los puntos de presencia,
guardándolos en una tabla que se encargará de almacenar muestreos de todos
los modelos (los modelos recalibrados y los proyectados).
• Cálculo del área de ocupación potencial de la especie: Utilizando el valor
umbral calculado en la fase anterior por el actor CALCULA_UMBRAL, se
utiliza el módulo de GRASS r.recode y un fichero de texto (RECODE EN-
SAMBLADO CONTINUO) con las reglas para recodificar el ensamblado de
continuo a binario. A la superficie resultante se le aplica un filtro de moda
con un kernel de 3x3 celdas mediante el módulo r.neighbors para eliminar
celdas aisladas. Posteriormente se cuenta el número de celdas con valor 1 y
se exporta el resultado a un fichero de texto.
• Cálculo del número de parches de hábitat idóneo: La superficie binaria obte-
nida en el paso anterior se vectoriza (módulo de GRASS r.to.vect), y la tabla
del vector resultante, que tiene una entrada por cada polígono vectorizado,
se exporta a un fichero de texto. Este fichero tiene una columna llamada cat,
con un número identificador para cada polígono. Una orden de bash (tail)
lee la última línea del fichero de texto, y exporta el número cat a un nue-
vo fichero de texto. Este número es el total de parches de hábitat idóneo
correspondiente al ensamblado procesado.
• Exportación de imágenes png del ensamblado.
• Proyecta las definiciones de los modelos sobre las variables del escenario
correspondiente a la iteración.
• Lanza el batch-job de GRASS 14 ejecuta PROYECCION. Este programa
hace con cada escenario exactamente las mismas tareas que el anterior (12
ejecuta MODELOS CALIBRADO).
Como resumen final, listo las entradas y salidas esta sección del flujo:
ENTRADAS:
SALIDAS:
20
Archivos de los modelos numéricos de OpenModeller y MaxEnt.
Tabla con los valores de idoneidad y desviación estándar de los puntos aleatorios
y de presencia.
21
Análisis y publicación de los
resultados
En esta fase final el flujo de trabajo analiza en detalle los resultados, teniendo en
cuenta varios puntos de vista: variaciones de la idoneidad del hábitat, migración altitudi-
nal, migración latitudinal, y evolución del área potencial y número de parches de hábitat
idóneo.
Con el objetivo es disponer, para cada especie, de un documento que contenga orga-
nizada toda la información relevante del proceso de modelado, preparé una plantilla html
sobre la que posteriormente el flujo de trabajo insertará automáticamente los distintos
elementos resultantes del análisis.
22
Tabla VALORES_PUNTOS.txt. Se ha exportado del fichero vectorial que contiene
los puntos de presencia de la especie, los puntos aleatorios del ámbito global y los
puntos aleatorios del ámbito local. La tabla contiene, entre otros, los siguientes
grupos de campos:
Estos ficheros son procesados por el actor GRAFICOS de la siguiente sección del flujo (ver
Figura 13). Este actor lanza un script de R (17 GRAFICOS ANALISIS FINALES)
que lee los datos, los organiza, y genera las gráficas descriptivas correspondientes, que se
discutirán en la sección de resultados. Cada salida gráfica de R es un fichero pdf con el
gráfico en cuestión, que se mueve al directorio de resultados de la especie, se transforma
en png mediante una orden de ImageMagick para el informe final, y se guarda el pdf,
para mantener una copia del gráfico en su versión de alta calidad.
Informe de resultados
Para hacer accesible la información resultante del flujo, se ha optado por un docu-
mento con una estructura basada en html, de forma que los resultados puedan colgarse
en un servidor web sin el menor esfuerzo.
La estructura diseñada consta de un primer documento denominado INICIO.html. Es
la portada principal de sitio, y posee un índice que da acceso a los resultados de cada
especie. El segundo documento, denominado PLANTILLA.html, es el informe sobre el
que se insertan los resultados (mapas y gráficos). Presenta una estructura secuencial
sencilla, y la única particularidad la suponen las animaciones.
Presentar series temporales de modelos de distribución como imágenes estáticas ocu-
pa mucho espacio y no resulta demasiado informativo, por lo que se ha seleccionado una
aplicación especialmente diseñada por Barry Rowlingson (Universidad de Lancaster), en
javascript, para generar animaciones interactivas en sitios web. Esta pequeña aplicación
23
Figura 13: Sección del flujo que se encarga del análisis de datos. Consta de dos actores
que ejecutan scripts (ANALISIS y GRAFICOS2), y una serie de ramas que procesan los
pdf resultantes de R para transformarlos en png y guardarlos en los directorios corres-
pondientes.
24
Figura 14: Sección del flujo que formatea el informe html.
permite mostrar en el informe las series temporales de idoneidad del hábitat y desviación
estándar como animaciones con un control de velocidad, que mejoran la experiencia del
usuario en la consulta de los datos.
El flujo de trabajo tiene una pequeña sección dedicada a dar formato al informe (ver
Figura 14). Esta sección consta del actor PREPARA INFORME, que lanza el script de
bash 18 ORGANIZA INFORME. Este script mueve el archivo PLANTILLA.html al
directorio INFORME y lo renombra con el nombre de la especie. También mueve los
gráficos y mapas de la especie al mismo directorio, crea vistas previas reducidas usando
una orden de ImageMagick y prepara los directorios de las animaciones, renombrando
y moviendo los mapas de los ensamblados. El resto de la sección del flujo termina de
formatear el fichero insertando el nombre y la ficha de la especie (un fichero de texto
plano sobre la biología de la especie que el usuario debe situar en un directorio concreto
después de ejecutar el flujo preparatorio PRP).
25
LOS OTROS RESULTADOS DEL
FLUJO DE TRABAJO
26
Nombre_especie_PRESENCIA (vector, tipo polígono o punto): Corresponde con
el shapefile original de la especie.
• ANALISIS_MODELO.pdf
• DIFERENCIAS_CALIBRADO_2_pdf
• DIFERENCIAS_CALIBRADO_EVALUACION_1.pdf
• REQUERIMIENTOS_ECOLOGICOS.pdf
27
carpeta EVALUACION
carpeta PRESENCIA
28
• ANALISIS_FUTURO_ESPECIE.pdf: gráfico de R que muestra el compor-
tamiento potencial de la especie ante los distintos escenarios.
carpeta RESULTADOS: contiene todas las imágenes que van al informe html, por
lo que se comentan a continuación.
29
Actores de Kepler utilizados
File Reader: Lee un fichero de texto accediendo a él a través de una ruta local o
una URL (puerto fileOrURL), con lo que el contenido del fichero pasa al flujo de
trabajo a través del puerto output.
Text File Writer: Lee un flujo de texto entrante (puerto string), lo escribe en la
ruta indicada a través de fileToWrite, y emite la ruta del fichero escrito (puerto
fileWritten).
Comparator: Lee dos valores (left y right), y los compara entre sí según el criterio
seleccionado por el usuario. Si el criterio se cumple emite un TRUE, y si no se
cumple, emite un FALSE. Ramp: Es equivalente a un bucle “for loop” de un lenguaje
de programación convencional. Genera valores en cada iteración según el valor de
paso step.
30
Boolean Switch: A través de control recibe un token booleano (TRUE o FALSE).
Dependiendo del valor recibido, envía el input por la salida correspondiente. Es un
actor de control de flujo utilizado para implementar ramificaciones condicionales
(equivalente a un “if”).
String Constant: Contiene una cadena de texto, generalmente una ruta, una
expresión o una orden, y la emite a través de output. Se utiliza, entre otras cosas,
para pasar órdenes al siguiente actor.
31
Figura 15: Actores de Kepler utilizados en este proyecto.
32