Workflow to use VIND (Versatile Implementation for Native Data) interfaced with the JEDI components and METplus for Atmospheric Composition Evaluation (ACE).
VIND repo
- Platforms with JCSDA spack-stack package.
- Module loading scripts:
derecho_intel (v1.8.0), derecho_gnu (v1.9.2), derecho_oneapi (v1.9.2), orion_gnu (v1.8.0)
- Lambert CC projection: WRF-Chem
- Reducing Gaussian Lon-Lat: GEFS-Aerosols
- Regular Lon-Lat: MERRA-2
- TROPOMI NO2 and CO
- AOD from MODIS, VIIRS, OCI (PACE), AERONET
- TEMPO NO2, CO
- PANDORA NO2
- AirNow O3 and PM2.5
Clone this repo into <folder> with the command below:
git clone https://github.com/weiwilliam/JEDI-ACE.git <folder>
- Create the
<repo>/vind-bundle/buildfolder - Create virtual python env
<repo>/venvif you do not have one.
source ush/setup.sh <repo path> <platform> <compiler> cd <repo>/vind-bundle/buildecbuild <path/to/vind-bundle>make -j <n>ctestto check executables work properly
Derecho (oneapi): /glade/work/swei/projects/JEDI-ACE/vind-bundle/build
Orion (gnu): /work2/noaa/jcsda/shihwei/git/caliop_opr/genint-bundle/build (older version)
- Update
VIND_BUILDinush/setup.shto/glade/work/swei/projects/JEDI-ACE/vind-bundle/build source ush/setup.sh <your/repo/path> <platform> <compiler>
It will create venv for you and point your executables to my build.
- It may encounter permission issue
- Prerequisites: observation files in IODA format and model outputs supported by VIND VIND README.
Options currently available:
| Platform | Compilers |
|---|---|
| Derecho | gnu, intel, oneapi |
| Orion | gnu |
-
Create Python venv under the cloned repo by running:
source ush/setup.sh </repo/path> <platform> <compiler> -
yamls/mainandyamls/hofx3dinclude examples of input YAML files for different models (e.g. MERRA-2, WRF-Chem) and different observations (e.g. AOD, tracegas).
For example to evaluate WRF-Chem trace gas you can usemain/main_wrfchem_tracegas.yamland it useshofx3d/TraceGas_WRFChem.yaml.
README.mdunderyamls/<main, hofx3d>provides more details.
Modify or add your own YAML based on your application -
Run your experiment by executing
pyscripts/vind_vrfy.py <main yaml>
- Create
air_potential_temperaturefor JEDI application:
ncap2 -O -s "air_potential_temperature=T+300" <wrfout> <new wrfout> - Create o3_molpermol from o3 (ppmv) for JEDI application:
ncap2 -O -s "o3_molpermol=o3*1e-6" <wrfout> <new_wrfout> - Cropping IODA file:
Usepyscripts/get_wrfout_polygon.pyto create a polygon .csv file for your domain boundary.
Runpyscripts/crop_iodafile.py -i <global/IODA/file> -o <WRF/domain/IODA/file> -p <WRF/domain/polygon/csv> - Use
P_HYDto representair_pressure.
ThePSFCis a diagnostic variable derived through hydrostatic function, so theair_pressure_levelsbased on akbk, ptop, and PSFC are more close to hydrostatic. It may cause half level pressure fromPB+Pis not between two adjacent full level. - To get ak and bk values from wrfout,
ak = C4F + Ptop - C3F * Ptop
bk = C3F
UFO operators: JEDI document/UFO