Calidad de Aire

De Wiki del OLE2 CMC-LUZ

Este eje es coordinado por el Dr. Rainer Schmitz (Universidad de Chile).

Tres grupos de trabajo han implementado WRF_Chem: en Venezuela (bajo la responsabilidad del Prof. Ángel G. Muñoz -CMC- y Prof. Rónald Rivas -UNEFM-), en Bolivia (Prof. Marcelo Gorrity) y en Perú (Dr. Odón Sánchez, SENAMHI).

Tabla de contenidos

Archivos de Referencia

En Diciembre de 2009, se dictó en SENAMHI, Perú, un curso introductorio a WRFChem. Algunos archivos de utilidad pueden encontrarse en

cmc.org.ve/descargas/WRFChem

Procedimiento de Instalación

Información sobre cómo instalar el WRFChem se encuentra en este enlace:

http://www.cmc.org.ve/mediawiki/index.php?title=◦_WRFChem

Pre-procesamiento de datos de especies químicas (Método MLV-OLE2)

Introducción

Este procedimiento simple permite generar el archivo químico necesario para ejecutar el modelo WRF-Chem. Fue desarrollado por Ángel G. Muñoz, Arturo Lomas y Ángel Vara, del Observatorio Latinoamericano, en 2010.

Para aprender a usar el método, en el experimento que sigue se emplean datos de emisiones, provistos por SENAMHI-Perú para Lima Metropolitana, correspondientes a estimaciones anuales reportadas en cada punto del inventario disponible. Esto es: se asumirá (lo cual es falso, pero permitirá que el lector comience a jugar con este procedimiento) que las emisiones son constantes a lo largo del día de un determinado año. Con este ejemplo se proveerá un archivo para inicializar el WRF-Chem, considerando una ejecución de 24 horas para NOx con 70 puntos emisores.

La idea es (1) construir un archivo ASCII de especies químicas en el formato requerido, (2) pasar las emisiones a una retícula computacional cartesiana (este archivo, que puede escribirse a un NetCDF, puede ser útil para tener en binario estándard las emisiones) y (3) transformar las emisiones en retícula cartesiana a las unidades, formato, coordenadas curvilíneas y demás requerido por WRF-Chem para su posterior ejecución.

Cabe resaltar que esta versión está diseñada para los mecanismos químicos RADM2/MADE/SORGAM con los fraccionamientos de COVs y PM de ejemplo para la ciudad de São Paulo (Brasil). El usuario tiene la opción de modificar la especiación de acuerdo al mecanismo químico que más se adecua a su realidad.

Procedimiento:

1. Descargar el archivo MLV.bzip2 y descomprimirlo dentro de un directorio adecuado, por ejemplo en "/WRFV3/test/em_real/MLV".

../MLV$ wget http://cmc.org.ve/descargas/WRFChem/MLV.bzip2
../MLV$ tar -xvjf MLV.bzip2 

El contenido es el siguiente (resultado de un listado del directorio):

geo_em.d01.nc    archivo con la retícula no cartesiana para Lima, ubicado en "/WPS"
wrfinput_d01     archivo de condiciones iniciales del WRF, empleado por mlv.ncl para copiar los atributos globales, y ubicado en "/WRFV3/test/em_real"
emisiones.txt    archivo de ejemplo con formato requerido (especies en ¡¡¡ton/año!!!)
mlv.ncl          script NCL para crear el archivo químico necesário para ejecutar WRF-Chem
wrfchemi_d01.nc  archivo de salida producido en CMC por el mismo mlv.ncl listado arriba. 

2. Escribir el archivo de emisiones en ASCII. El formato es el siguiente (esta línea no debe ir en el archivo, es sólo para fines explicativos acá):

LAT    LON    ALT    NOx    CO    SO2    VOC    PM

donde LAT es la latitud, LON la longitud, ALT la altura en metros y NOx, CO, SO2, VOC y PM son las concentraciones (en este caso provista en ton/año, unidad que debe transformarse para estar acorde a lo requerido por WRF-Chem).

En el archivo emisiones.txt descargado puede verse que las primeras líneas son:

-12.2204   -76.9515   32   2.305   -999   -999   -999   -999    
-12.2206   -76.9147   54   2.194   -999   -999   -999   -999
-12.1837   -77.0247   77   6.717   -999   -999   -999   -999
-12.1840   -76.9880   12   6.501   -999   -999   -999   -999
-12.1842   -76.9512   65   4.507   -999   -999   -999   -999
-12.1845   -76.9145   51   1.047   -999   -999   -999   -999
...

Mostramos estas líneas como ejemplo del formato que hemos especificado más arriba. Podemos observar que el archivo emisiones.txt contiene 70 filas correspondientes a las primeras emisiones del día (00:00h, hora local) de los 70 puntos emisores. Formalmente, las siguientes 70 líneas corresponderían a las emisiones a la 01:00h de estos 70 puntos, las siguientes 70 a las 02:00h, y así sucesivamente hasta completar las 70*24 filas que debería tener la matriz. La naturaleza de las emisiones dependerá del tipo de fuente que se este tratando. Por ejemplo, si consideramos el caso de una indústria que opera con la misma potencia las 24 horas del día, los 7 días de la semana, los 365 días del año; la tasa de emisión de los contaminantes sería la misma. Otro caso importante (y dominante en los grandes centros urbanos), es el de las emisiones vehiculares, caracterizadas por un perfil de emisión diario bien definido (por lo general con 2 picos, uno en el período de la mañana y el otro en el período de la tarde). Para el caso de nuestro ejemplo fue considerado el caso en que las tasas de emisión de NOx (única especie disponible para este ejemplo) de los 70 puntos emisores a lo largo de las 24 horas del día son iguales. Así, no es necesário sino escribir un único paso de tiempo, que el mlv.ncl repetirá 24 veces para producir el día completo. Cabe resaltar que para el ejemplo anterior, todos los puntos emisores fueron considerados como siendo fuentes superficiales. Actualmente el método incluye la altura física de las fuentes.

3. Del paso 1, dado que mlv.ncl necesita del archivo wrfinput_d01 para poder ejecutarse con éxito, es necesario que el usuario haya ejecutado antes el real.exe para el dominio y período de interés. Es decir ejecutar

../em_real$ ./real.exe

4. Editar el script mlv.ncl. Sólo habría que mirar los siguientes parámetros: 'npts', 'ntim', 'nlev', 'ano', 'mes', 'dia', 'hora' y 'data'; que definen el número de puntos, tiempos, niveles, fecha de inicialización de las emisiones y las especies químicas disponibles. Para el presente ejemplo, no haría falta cambiar nada, pero para los casos particulares de los lectores, sólo se cambiarían (en principio) estos parámetros.

Las primeras líneas del mlv.ncl rezan:

;***********************************************************************************************************************
; Pre-procesador químico del OLE2-CMC, generador del archivo de emisiones necesario para ejecutar el modelo WRF-Chem.
; Copyright: Muñoz-Lomas-Vara
;***********************************************************************************************************************
; Instrucciones de uso: Se recomienda modificar apenas los parametros mencionados en el paso 4 del manual de uso. 
; 'npts' que representa el número total de puntos emisores, 'ntim' el número de tiempos, 'nlev' el número de niveles
; verticales, 'ano', 'mes', 'dia' y 'hora' la fecha de inicialización de las emisiones, y finalmente 'data' que controla 
; la existencia de las emisiones de entrada relacionadas a cinco especies químicas (NO, CO, SO2, VOC y PM), siendo los VOC 
; y PM posteriormente fraccionados (experimentalmente o de acuerdo a la literatura, ya que por lo general se suelen medir 
; de forma compacta) en 16 y 11 subespecies, completando asi 30 especies, si se quiere ejecutar usando los mecanismos 
; qumícos RADM2/MADE/SORGAM. Usar "si" y por ejemplo "no" según sea el caso. Ver variable 'data'. El archivo de emisiones 
; (emisiones.txt) tiene que ser una matriz de (npts*ntim,8). Las ocho columnas son, de izquierda a derecha: latitud, 
; longitud, altura (en metros) y emisiones de NOx, CO, SO2, VOC y PM (en Tn/Yr). 
;-----------------------------------------------------------------------------------------------------------------------
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl" 
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
;-----------------------------------------------------------------------------------------------------------------------
begin
 npts                                        = 70   ; numero de fuentes
 ntim                                        = 24   ; numero de horas de pronostico
 nlev                                        = 3    ; numero de niveles en la vertical
 ano                                         = 2010 ; fecha en que serán activadas las emisiones
 mes                                         = 9
 dia                                         = 26
 hora                                        = 0
 nesp                                        = 30   ; number of species in RADM2 chemical mechanism.
 data                                        = (/"si"   \  ; nox available
                                                ,"no"   \  ; co available
                                                ,"no"   \  ; so2 available
                                                ,"no"   \  ; voc available (total)
                                                ,"no"/)    ; pm10 available
...      

5. Ejecutar mlv.ncl

../MLV$ ncl mlv.ncl

Esto generará un archivo NetCDF con todo lo requerido para que inicie el WRF-Chem. El archivo de salida aquí lleva por nombre siempre 'wrfchemi_d01.nc'. Si le miramos el encabezado y las primeras variables, veremos lo siguiente:

$ ncdump -h wrfchemi_d01.nc
netcdf wrfchemi_d01 {
dimensions:
	Time = UNLIMITED ; // (24 currently)
	DateStrLen = 19 ;
	west_east = 64 ;
	south_north = 54 ;
	emissions_zdim = 3 ;
variables:
	char Times(Time, DateStrLen) ;
	float E_ISO(Time, emissions_zdim, south_north, west_east) ;
		E_ISO:FieldType = 104 ;
		E_ISO:MemoryOrder = "XYZ" ;
		E_ISO:description = "EMISSIONS" ;
		E_ISO:units = "mol km^-2 hr^-1" ;
		E_ISO:stagger =  ;
		E_ISO:coordinates = "XLONG XLAT" ;
	float E_SO2(Time, emissions_zdim, south_north, west_east) ;
		E_SO2:FieldType = 104 ;
		E_SO2:MemoryOrder = "XYZ" ;
		E_SO2:description = "EMISSIONS" ;
		E_SO2:units = "mol km^-2 hr^-1" ;
		E_SO2:stagger =  ;
		E_SO2:coordinates = "XLONG XLAT" ;
...

En 'Dimensions' el parámetro 'Time' tiene 24 salidas, una por hora. Las variables contienen todos los atributos requeridos también.

6. Mover este último archivo (wrfchemi_d01.nc) al directorio de ejecución ("/WRFV3/test/em_real"), cambiándole el nombre de acuerdo a la fecha de inicio de la simulación, por ejemplo:

../MLV$ mv wrfchemi_d01.nc ../wrfchemi_d01_2010-09-26_00:00:00

7. Ya en el directorio de ejecución configurar la química, principalmente la opción chem_opt (1,2 ó 11 por ejemplo), y enseguida ejecutar el modelo. WRF-Chem tarda muchísimo más en ejecutarse que el WRF solo, de modo que se recomienda ejecutar en paralelo:

../em_real$ mpirun -np 32 ./wrf.exe

8. Felicidades!. Eso es todo. Para dudas, comunicarse conmigo: agmunoz@cmc.org.ve

Visualización

Para visualizar, recomendamos usar NCL. El script que recomienda el propio manual del WRFChem ofrece imágenes como las que siguen. Las mismas son el producto de la ejecución del WRFChem para el ejemplo expuesto en la sección anterior. Corresponde a un dominio de 4 km para Lima y El Callao, con datos de emisiones del inventario disponible en SENAMHI Perú (para más información contactar al Dr. Odón Sánchez - SENAMHI Perú).

En Noviembre de 2011 se llevó a cabo en SENAMHI Perú el primer experimento en modo pronóstico del WRFChem para algunas especies químicas disponibles en ese entonces. Imagen:Anima-nox.gif

Herramientas personales