CMAQ/pruebaAMBA
Prueba de simulado en AMBA
WORKDIR = /home/solange.luque/estudios/CMAQ-AMBA/prueba
Datos atmosféricos
Se parte de simulaciones de WRF ya realizadas ver referencia.
Datos en:
/home/solange.luque/salidas/lluis.fita/estudios/ChemGBsAs/sims/weeks/20121110/control
mcip
Se utiliza el programa de CMAQ mcip (MCIP-epa) para generar los archivos con las condiciones atmosféricas necesarias para CMAQ. Seguimos los mismos pasos que [1]
Tener la script para correr el programa:
export CMAQ_HOME=/home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/CMAQ_Project/ cd /home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/CMAQ_Project/PREP/mcip/scripts diff run_mcip.csh run_mcip.csh.old 125,129c125 < # config_cmaq.csh modifies $CMAQ_HOME < set val = $CMAQ_HOME < source $CMAQ_HOME/config_cmaq.csh intel < set CMAQ_HOME = $val < echo $0": Solange 2 CMAQ_HOME: "$CMAQ_HOME --- > source $CMAQ_HOME/config_cmaq.csh 133c129 < set GridName = AMBA # 16-character maximum --- > set GridName = 2016_12SE1 # 16-character maximum 135,136c131,132 < set DataPath = /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA < set InMetDir = $DataPath/wrf --- > set DataPath = $CMAQ_DATA > set InMetDir = $DataPath/wrf 142,143d137 < < echo $0": Solange: "$ProgDir 163,164c157,159 < set InMetFiles = ( $InMetDir/wrfout_d03_2012-11-15_00:00:00 \ < $InMetDir/wrfout_d03_2012-11-15_12:00:00 ) --- > set InMetFiles = ( $InMetDir/subset_wrfout_d01_2016-07-01_00:00:00 \ > $InMetDir/subset_wrfout_d01_2016-07-02_00:00:00 \ > $InMetDir/subset_wrfout_d01_2016-07-03_00:00:00 ) 166,167c161,162 < set IfGeo = "T" < set InGeoFile = $InGeoDir/geo_em.d03.nc --- > set IfGeo = "F" > set InGeoFile = $InGeoDir/geo_em_d01.nc 194,195c189,190 < set MCIP_START = 2012-11-15-00:10:00.0000 # [UTC] < set MCIP_END = 2012-11-15-50:00:00.0000 # [UTC] --- > set MCIP_START = 2016-07-02-00:00:00.0000 # [UTC] > set MCIP_END = 2016-07-03-00:00:00.0000 # [UTC] 197c192 < set INTVL = 10 # [min] --- > set INTVL = 60 # [min] 221c216 < set BTRIM = 5 --- > set BTRIM = 0
Crear enlaces de los datos atmosféricos (los geo_em.d0[n].nc, ya están ahí):
ln -s /home/solange.luque/salidas/lluis.fita/estudios/ChemGBsAs/sims/weeks/20121110/control/wrfout_d03_* ./
Ejecutando:
source /opt/load-libs.sh 1 ./run_mcip.csh >& run_mcip.log
Se obtienen los archivos:
ls /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/mcip/ GRIDBDY2D_160702.nc GRIDDESC LUFRAC_CRO_160702.nc METCRO2D_160702.nc METDOT3D_160702.nc SOI_CRO_160702.nc GRIDCRO2D_160702.nc GRIDDOT2D_160702.nc METBDY3D_160702.nc METCRO3D_160702.nc namelist.mcip
Inventarios
Inventarios de emisiones y prepararlos para CMAQ.
Seguimos los pasos de [2]
El directorio de trabajo en hydra es:
WORKDIR = /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/emisiones
Generación GRIDDESC
Generación de los archivos ASCII de información de las proyecciones (GRIDDESC) en las cuáles se encuentran los distintos datos.
inventario
A partir de los datos ya regrillados en los archivos NOXtot.nc y VOCtot.nc. Se leen directamente los datos de los archivos y se rellena la información. En Inventarios_1k.griddesc:
! coords --line: name; type, P-alpha, P-beta, P-gamma, xcent, ycent 'AMBA_emis' 1, 0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0 ' ' ! end coords. grids: name; xorig, yorig, xcell, ycell, ncols, nrows, nthik 'AMBA_emis_cp' 'AMBA_emis' -58.99 -35.05 0.00899321605 0.00899321605 84 84 1 ' ' ! end grids
dominio
A partir de una salida de WRF y con el programa IOAPI wrfgriddesc se genera directamante el archivo GRIDDESC
Variables de entorno
setenv PROMPTFLAG no setenv WRFFILE /home/solange.luque/salidas/lluis.fita/estudios/ChemGBsAs/sims/weeks/20121110/control/wrfout_d03_2012-11-13_00:00:00 setenv OUTDESC /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/ChemGBsAs_d03.griddesc setenv CRDNAME ChemGBsAs_d03 setenv CROGRID ChemGBsAs_d03_cpgrd setenv DOTGRID ChemGBsAs_d03_dotgrd setenv STXGRID ChemGBsAs_d03_xstag setenv STYGRID ChemGBsAs_d03_ystag
Ejecutando:
setenv ROOT_IOAPI /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64/
${ROOT_IOAPI}/wrfgriddesc >& run_wrfgriddesc.log
El contenido de ChemGBsAs_d03.griddesc
! coords --line: name; type, P-alpha, P-beta, P-gamma, xcent, ycent
'ChemGBsAs_d03'
2 -3.5600000D+01 -3.3600000D+01 -5.8400000D+01 -5.8400000D+01 -3.4600000D+01
' ' ! end coords. grids: name; xorig, yorig, xcell, ycell, ncols, nrows, nthik
'ChemGBsAs_d03_cp'
'ChemGBsAs_d03' -6.9013191E+04 -6.3011015E+04 1.0000000E+03 1.0000000E+03 132 126 1
'ChemGBsAs_d03_do'
'ChemGBsAs_d03' -6.9513191E+04 -6.3511015E+04 1.0000000E+03 1.0000000E+03 133 127 1
'ChemGBsAs_d03_xs'
'ChemGBsAs_d03' -6.9513191E+04 -6.3011015E+04 1.0000000E+03 1.0000000E+03 133 126 1
'ChemGBsAs_d03_ys'
'ChemGBsAs_d03' -6.9013191E+04 -6.3511015E+04 1.0000000E+03 1.0000000E+03 132 127 1
' ' ! end grids
Especiación emisiones
Los archivos con las emisiones de VOC y NOx para AMBA, se tienen en valores totales. Se tienen que especificar (disgregar) para cada tipo de fuente de emisión.
Para ello se utiliza la script de python nc_to_m3fake.py del GITcimaCMAQ. Además de las tablas con las características de las múltiples fuentes de AMBA recopiladas en los archivos Estimacion_fi_para_el_AMBA_CMAQ.xlsx (estas tablas de características, así cómo también las fuentes ya regrilladas, son fruto de trabajos anteriores de Andrea Pineda Rojas, Laura E. Vengas Air Quality-Models and Applications, 2011, doi: 10.5772/18767)
python3 nc_to_m3fake.py NOXtot.nc NOx /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/emisiones/ python3 nc_to_m3fake.py VOCtot.nc VOC /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/emisiones/
De las scripts se generan los archivos que movemos a la nueva carpeta llamada contaminantes junto con el griddesc del inventario Inventarios_1k.griddesc:
ls contaminantes/ ACET_AMBA ALD2_AMBA BENZENE_AMBA ETHA_AMBA Inventarios_1k.griddesc ISPD_AMBA NO_AMBA OLE_AMBA TOLU_AMBA XYLMN_AMBA ACROLEIN_AMBA FORM_AMBA IOLE_AMBA NO2_AMBA PRPA_AMBA
Transformación netCDF a IOAPI
La generación de un archivo en formato IOAPI desde datos en ASCII se realiza con el programa m3fake. Dicho programa requiere la introducción de toda la información de cada fuente de emisión. A fin de agilizar este proceso, se ha creado la script de python m3fake/run_m3fake.py (disponible desde GITcimaCMAQ) que lee los distintos archivos de las emisiones (ver paso previo), y genera un archivo ASCII el cual se utiliza para correr el m3fake.
Ejecutando (desde CMAQ-AMBA/prueba/DATA/emisiones/contaminantes):
python3 /home/solange.luque/MODELOS/CMAQ/tools/m3fake/run_m3fake.py /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/emisiones/contaminantes /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64/m3fake
El cuál genera el archivo:
args_m3fake.txt
Se corre el m3fake:
export GRIDDESC=Inventarios_1k.griddesc $ROOT_IOAPI/m3fake < args_m3fake.txt
El cuál genera el archivo:
inv_ioapi_AMBA
Interpolación a dominio de simulación
Para interpolar el inventario al dominio de simulación vamos a trabajar en:
WORKDIR = /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/emisiones/interpolacion
Necesitamos acá el griddesc del dominio de simulación. Lo podemos linkear:
ln -s /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/ChemGBsAs_d03.griddesc ChemGBsAs_d03.griddesc
Necesitamos también el inventario en IOAPI que acabamos de crear:
ln -s /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/emisiones/contaminantes/inv_ioapi_AMBA inv_1k
Variables de entorno:
setenv GRIDDESC ChemGBsAs_d03.griddesc setenv SCALEFAC 1.0
Ahora queda correr el script de python que genera los argumentos para correr m3cple (Si quisieramos cambiarle el nombre a los ficheros hay que modificarlo ahí. En el script o a mano en el .txt, es lo mismo)
python3 /home/solange.luque/MODELOS/CMAQ/tools/run_m3cple.py serv
Esto genera el fichero IOAPI:
inv_1k_r
C.I. y C.C. químicas
Condiciones de contorno e iniciales para la química atmosférica
El directorio de trabajo en hydra es:
WORKDIR = /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/icbc
Como un primer acercamiento, vamos a usar de condiciones de contorno e iniciales los perfiles verticales que vienen por default con CMAQ. Los linkeamos acá:
ln -s /home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/PREP/bcon/src/profile/avprofile_* .
Deberíamos tener:
ls avprofile_cb6r3m_ae7_kmtbr_hemi2016_v53beta2_m3dry_col051_row068.csv avprofile_saprc07tc_ae6_aq_derived_from_cb6r3m_ae7_kmtbr_hemi2016_v53beta2_m3dry_col051_row068.csv avprofile_racm_ae6_aq_derived_from_cb6r3m_ae7_kmtbr_hemi2016_v53beta2_m3dry_col051_row068.csv avprofile_saprc07tic_ae7i_aq_derived_from_cb6r3m_ae7_kmtbr_hemi2016_v53beta2_m3dry_col051_row068.csv
Cada uno de estos está calculado usando diferentes mecanismos. Debiéramos elegir uno, que tiene que coincidir con la especiación / mecanismo de las emisiones propias.
Se tiene que transformar formato IOAPI utilizando las herramientas icon (como en [3]) y bcon (como en [4])
Empecemos por las condiciones iniciales. La carpeta de trabajo es:
/home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/CMAQ_Project/PREP/icon/scripts
Hay que modificar el script run_icon.csh. Para eso copiamos la versión vieja y modificamos.
cp run_icon.csh run_icon.csh.old
diff run_icon.csh run_icon.csh.old
32,33c32,33
< set APPL = AMBA #> Application Name
< set ICTYPE = profile #> Initial conditions type [profile|regrid]
---
> set APPL = 2016_12SE1 #> Application Name
> set ICTYPE = regrid #> Initial conditions type [profile|regrid]
41c41
< setenv GRID_NAME ChemGBsAs_d03_cp #> check GRIDDESC file for GRID_NAME options
---
> setenv GRID_NAME SE53BENCH #> check GRIDDESC file for GRID_NAME options
43c43
< setenv GRIDDESC /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/ChemGBsAs_d03.griddesc
---
> setenv GRIDDESC /work/MOD3DATA/SE53BENCH/met/mcip/GRIDDESC
88c88
< set DATE = "2012-10-11"
---
> set DATE = "2016-07-01"
104c104
< setenv MET_CRO_3D_FIN /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/mcip/METCRO3D_160702.nc
---
> setenv MET_CRO_3D_FIN /work/MOD3DATA/SE53BENCH/met/mcip/AMBA/METCRO3D_${YYMMDD}.nc
126d125
<
Configuración CMAQ
Configurar CMAQ para determinar opciones de química y física.
Primero creamos la carpeta AMBA:
mkdir /home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/CMAQ_Project/data/AMBA
En esa carpeta vamos a linkear los inputs.
ln -s ~/estudios/CMAQ-AMBA/prueba/DATA/icbc icbc ln -s ~/estudios/CMAQ-AMBA/prueba/DATA/mcip mcip ln -s ~/estudios/CMAQ-AMBA/prueba/DATA/wrf wrf
Creamos una carpeta para las emisiones:
mkdir emis cd emis mkdir gridded_area cd gridded_area mkdir gridded
Linkeamos el inventario ahí:
ln -s /home/solange.luque/estudios/CMAQ-AMBA/prueba/DATA/emisiones/interpolacion/inv_1k_r /home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/CMAQ_Project/data/AMBA/emis/gridded_area/gridded/gridded_AMBA
Primero hay que editar bldit_cctm.csh con las opciones que querramos. Esto está acá:
cd /home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/CMAQ_Project cp bldit_cctm.csh bldit_cctm.csh.old diff bldit_cctm.csh bldit_cctm.csh.old
Ahora hay que editar los paths de los inputs. Esto está definido en el .csh que se corre con el modelo. Para eso nos copiamos primero uno de referencia y lo vamos a modificar. Esto está en:
cd /home/solange.luque/MODELOS/CMAQ/intel/src/CMAQ-master/CMAQ_Project/CCTM/scripts cp run_cctm_Bench_2016_12SE1.csh run_AMBA.csh
Simulado CMAQ
Simular CMAQ