IOAPI

De Wikicima
Saltar a: navegación, buscar

Página con la utilización de las distintas herramientas IOAPI

Directorio de trabajo

/home/solange.luque/estudios/IOAPI

Vigilar la coherencia entre el entorno cargado y la compilación de la IOAPI

source /opt/env_scripts/load_gnu-10.2.1_mpich-3.4.2.sh

Directorio de la librería

setenv ROOT_IOAPI /home/solange.luque/libraries/ioapi/v3.2-20200828/gnu/Linux2_x86_64/

Contenido

Generación de inventarios ya regrillados para un dominio

  1. Generar el GRIDDESC, tanto del inventario como del dominio de simulación
    1. inventario: a mano desdel propio archivo netCDF
    2. dominio: se utiliza el programa ioapi wrfgriddesc
  2. Especiaciar las emsiones de los inventarios (en caso de que sean emisiones totales) con la script nc_to_m3fake.py
  3. Transformar las emisiones en formato netCDF a formato IOAPI:
    1. Creación del input en ASCII a partir de la especiación de las emisiones para el programa m3fake con la script run_m3fake.py
    2. Ejecutar m3fake
  4. Interpolar emisiones a el domionio de simulación con el programa m3cple

wrfgriddesc

Programa para crear el GRIDDESC de un archivo WRF

Workdir:

IOAPI/wrfgriddesc

Archivo test:

/home/solange.luque/salidas/lluis.fita/estudios/ChemGBsAs/sims/weeks/20121110/control/wrfout_d01_2012-11-13_00:00:00

Variables de entorno

setenv PROMPTFLAG yes
setenv WRFFILE /home/solange.luque/salidas/lluis.fita/estudios/ChemGBsAs/sims/weeks/20121110/control/wrfout_d01_2012-11-13_00:00:00
setenv OUTDESC /home/solange.luque/estudios/IOAPI/wrfgriddesc/ChemGBsAs_d01.griddesc
setenv CRDNAME ChemGBsAs_d01
setenv CROGRID ChemGBsAs_d01_cpgrd
setenv DOTGRID ChemGBsAs_d01_dotgrd
setenv STXGRID ChemGBsAs_d01_xstag
setenv STYGRID ChemGBsAs_d01_ystag

Ejecutando

${ROOT_IOAPI}/wrfgriddesc

Contenido archivo salida

cat ChemGBsAs_d01.griddesc 
 !  coords --line:  name; type,  P-alpha, P-beta, P-gamma, xcent, ycent
 'ChemGBsAs_d01'
     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_d01_cp'
 'ChemGBsAs_d01'  -8.2512722E+05  -7.5011479E+05   1.5000000E+04   1.5000000E+04   110   100     1
 'ChemGBsAs_d01_do'
 'ChemGBsAs_d01'  -8.3262722E+05  -7.5761479E+05   1.5000000E+04   1.5000000E+04   111   101     1
 'ChemGBsAs_d01_xs'
 'ChemGBsAs_d01'  -8.3262722E+05  -7.5011479E+05   1.5000000E+04   1.5000000E+04   111   100     1
 'ChemGBsAs_d01_ys'
 'ChemGBsAs_d01'  -8.2512722E+05  -7.5761479E+05   1.5000000E+04   1.5000000E+04   110   101     1
 ' ' !  end grids

wrftom3

Programa para transformar un archivo WRF a un archivo IOAPI.

Workdir:

IOAPI/wrftom3

Archivo test:

/home/solange.luque/salidas/lluis.fita/estudios/ChemGBsAs/sims/weeks/20121110/control/wrfout_d01_2012-11-13_00:00:00

Archivos de configuración

griddesc

Archivo con la información geográfica (descripción GRIDDESC). Detalles sobre el significado de las variables en VarsIOAPI GRIDDESC

Nombre archivo ChemGBsAs_d01.griddesc, generado con wrfgriddesc

configuración

Archivo con la configuración del programa (dimensiones, variables, ... que se quieren agarrar)

1-layer no staggered ni en x, ni en y

Nombre archivo ChemGBsAs_d01_wrftom3_1lay_unstag.conf a usar (variable OUTGRID) con el grid ChemGBsAs_d01_cp

"T2" "tas"
"U10" "uas"
"V10" "vas"

3D no staggered ni en x, ni en y

Nombre archivo ChemGBsAs_d01_wrftom3_3D_unstag.conf

"QVAPOR" "qv"

3D no staggered (suelo) ni en x, ni en y

Nombre archivo ChemGBsAs_d01_wrftom3_3Dland_unstag.conf

"SMOIS" "swvl"

3D no staggered ni en x, ni en y, staggered en z

Nombre archivo ChemGBsAs_d01_wrftom3_3D_zstag.conf

"W" "wa"

3D staggered en x

Nombre archivo ChemGBsAs_d01_wrftom3_3D_xstag.conf a usar con el grid ChemGBsAs_d01_xs

"U" "ua"

3D staggered en y

Nombre archivo ChemGBsAs_d01_wrftom3_3D_ystag.conf a usar con el grid ChemGBsAs_d01_ys

"V" "va"

Variables de entorno

Recordar correr en tcsh

setenv GRIDDESC /home/solange.luque/estudios/IOAPI/wrfgriddesc/ChemGBsAs_d01.griddesc
setenv OUTGRID ChemGBsAs_d01_cp
setenv WRFFILE /home/solange.luque/salidas/lluis.fita/estudios/ChemGBsAs/sims/weeks/20121110/control/wrfout_d01_2012-11-13_00:00:00
setenv OUTFILE wrf_ChemGBsAs_d01.iopai
setenv CONFIG ChemGBsAs_d01_wrftom3_1lay_unstag.conf

Ejecución

$ROOT_IOAPI/wrftom3

Archivo salida

wrf_ChemGBsAs_d01.iopai

m3fake

Programa para crear un fichero I/O API a partir de un fichero ASCII con las variables definidas.

Workdir:

IOAPI/m3fake

Para crear el inventario de emisiones para el AMBA:

Archivos de configuración

griddesc

Archivo con la información geográfica (descripción GRIDDESC). Detalles sobre el significado de las variables en VarsIOAPI GRIDDESC

Lo podemos linkear del directorio de wrftom3

ln -s /home/solange.luque/estudios/IOAPI/wrftom3/Inventarios_AMBA.griddesc Inventarios_AMBA.griddesc

Este fichero es el griddesc del inventario que hicimos a mano.

ASCII con variables definidas

En este fichero están los valores que les queremos asignar a las variables. Para eso hay que agarrar el inventario que tenemos .nc y pasarlo al formato correcto para correr con esto. Esto lo hace el script nc_to_m3fake.py (accesible desdel GITcimaCMAQ)

Hay que tener un csv por variable. Todavía hay que hacer bien la especiación de VOCs, pero tenemos una provisoria.

Variables de entorno

export GRIDDESC=Inventarios_AMBA.griddesc

Ejecución

El script pide varias variables por terminal. Para que no sea tan engorroso, el script run_m3fake.py (accesible desdel GITcimaCMAQ) escribe en un .txt todos los argumentos que se necesitan. Una vez generado el .txt args_m3fake.txt, el programa se ejecuta así (Hay que estar en la misma carpeta donde están los csv de cada variable):

$ROOT_IOAPI/m3fake < args_m3fake.txt

m3cple

Programa mapear de una grilla a otra. En teoría sirve para mepear de grillas con menor a mayor resolución. La idea es mapear de la grilla del inventario a la de WRF-CMAQ

Workdir:

IOAPI/m3cple

Archivos de configuración

griddesc

Archivo con la información geográfica (descripción GRIDDESC). Detalles sobre el significado de las variables en VarsIOAPI GRIDDESC

Lo podemos linkear del directorio de wrfgriddesc

ln /home/solange.luque/estudios/IOAPI/wrfgriddesc/ChemGBsAs_d03.griddesc ChemGBsAs_d03.griddesc

Este fichero es el griddesc del dominio de WRF

Inventario

Este es el que hicimos con m3fake. Lo linkeamos de ahí.

ln /home/solange.luque/estudios/IOAPI/m3fake/inv_ioapi_AMBA_1k inv_1k

Variables de entorno

setenv GRIDDESC ChemGBsAs_d03.griddesc
setenv SCALEFAC 1.0  

NOTA: Scalefac es en realidad resolución output/resolución input. El nuestro input no es 1km exactamente, pero me parece que debiera serlo (Cuando calculamos latitudes y longitudes de nuestro inventario, me parece que calculamos todo como si las dos estaciones de referencia estuvieran en el centro de la grilla y eso no es necesariamente así. En un paper de Andrea decía que la resolución del inventario era de 1km. A chequear)

Ejecución

El script pide varias variables por terminal. Para que no sea tan engorroso, el script run_m3cple.py escribe en un .txt todos los argumentos que se necesitan. Una vez generado el .txt args_m3cple.txt, el programa se ejecuta así:

$ROOT_IOAPI/m3cple < args_m3cple.txt

Esto genera el fichero inv_1k_r.

mtxcalc y mtxcple

Programa mapear de una grilla a otra. En teoría sirve para mepear de grillas con mayor a menor resolución. La idea es mapear de la grilla del inventario a la de WRF-CMAQ

Workdir:

IOAPI/mtx

Mtxcalc hace una matriz con factores que luego le sirve a mtxcple para hacer el mapeo.

Archivos de configuración

griddesc

Archivo con la información geográfica (descripción GRIDDESC). Detalles sobre el significado de las variables en VarsIOAPI GRIDDESC

Necesitamos un griddesc que tenga definido tanto el dominio de entrada como el de salida. Lo llamé combined.griddesc. (Puse ya el del inventario con resolución de 1k, a chequear este tema).

Inventario

Es el inventario que hicimos con m3fake. Lo copiamos o linkeamos de ahí.

ln /home/solange.luque/estudios/IOAPI/m3fake/inv_ioapi_AMBA_1k inv_ioapi_AMBA_1

Lo renombramos sin la k porque no le gusta el nombre tan largo.

Variables de entorno

setenv GRIDDESC combined.griddesc
setenv COL_REFINEMENT 142 
setenv ROW_REFINEMENT 126

COL_REFINEMENT y ROW_REFINEMENT son el número de columnas y filas del output. Si no se pone nada quedan ambos como default en 100.

Ejecución

El script pide pocas cosas por terminal. El .text args_mxtcalc.txt los tiene adentro para ser usados. Primero se ejecuta mtxcalc

$ROOT_IOAPI/mtxcalc < args_mtxcalc.txt

Esto genera la matriz para el mapeo tanto en un netcdf como en un ascii.

Ahora hay que correr mtxcple. Otra vez necesita algunos argumentos que están en args_mtxcple.txt.

$ROOT_IOAPI/mtxcple < args_mtxcple.txt

Esto no está funcionando, pero como m3cple funcionó, no lo necesitamos.

Herramientas personales