Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
c7fa90a
Update and add scripts for analysis stats capabilities
kevindougherty-noaa Nov 20, 2024
b154521
pynorms
kevindougherty-noaa Nov 20, 2024
e3d015a
pynorms
kevindougherty-noaa Nov 20, 2024
f745d3d
update missed files
kevindougherty-noaa Nov 21, 2024
c04eb6a
update task names to include underscores
kevindougherty-noaa Nov 26, 2024
cccd670
solved issue of job not running, files in wrong directory
kevindougherty-noaa Nov 26, 2024
cfb9f25
update to include execute and finalize
kevindougherty-noaa Nov 26, 2024
899b20b
updated scripts to that run successfully
kevindougherty-noaa Dec 12, 2024
164f7e4
Merge branch 'develop' into feature/stat-analysis
kevindougherty-noaa Dec 12, 2024
3d09d46
merge develop
kevindougherty-noaa Dec 16, 2024
452aff0
Merge branch 'develop' into HEAD
kevindougherty-noaa Dec 16, 2024
840153a
update files
kevindougherty-noaa Dec 16, 2024
ae48429
fix merge conflicts
kevindougherty-noaa Dec 16, 2024
ba89a3f
Revert "updated scripts to that run successfully"
kevindougherty-noaa Dec 16, 2024
5b8e7b1
updated scripts to that run successfully
kevindougherty-noaa Dec 12, 2024
6bcd080
reverting commits that were causing issues
kevindougherty-noaa Dec 16, 2024
76e60b1
fix descrepancies with workflow/applications files
kevindougherty-noaa Dec 16, 2024
332cede
pycodestyle
kevindougherty-noaa Dec 16, 2024
74c7888
pynorms
kevindougherty-noaa Dec 16, 2024
6687c41
add snow jcb-base yaml
kevindougherty-noaa Dec 17, 2024
cb4a703
update aero jcb-base yaml to no longer include variables
kevindougherty-noaa Dec 18, 2024
d0a7a3d
small bug fixes
kevindougherty-noaa Dec 20, 2024
e1209dd
merge develop
kevindougherty-noaa Dec 20, 2024
254ccc9
merge develop
kevindougherty-noaa Jan 8, 2025
0c1ba04
update gfs_cycled.py
kevindougherty-noaa Jan 8, 2025
bec7451
update applications.py
kevindougherty-noaa Jan 8, 2025
3e50690
update gfs_cycled.py correctly
kevindougherty-noaa Jan 8, 2025
fff3e76
update workflow tasks correctly
kevindougherty-noaa Jan 8, 2025
32b8a7a
update gfs tasks
kevindougherty-noaa Jan 13, 2025
9fe7e20
updates to python scripts to handle snow ob spaces
kevindougherty-noaa Jan 27, 2025
1454c0f
fix pycodestyle issues
kevindougherty-noaa Jan 27, 2025
e05e241
Update jobs/JGLOBAL_ANALYSIS_STATS
kevindougherty-noaa Jan 28, 2025
6cfcc48
Update scripts/exglobal_analysis_stats.py
kevindougherty-noaa Jan 28, 2025
7d4b161
Update scripts/exglobal_analysis_stats.py
kevindougherty-noaa Jan 28, 2025
388c58b
basic updated suggestions i.e. variable changes, EOL, etc.
kevindougherty-noaa Jan 28, 2025
74974a9
Merge branch 'feature/stat-analysis' of https://github.com/CoryMartin…
kevindougherty-noaa Jan 28, 2025
4055c99
added checks to python scripts. fixed formatting of job
kevindougherty-noaa Jan 29, 2025
f8f6a7b
update to utilize config file in driver python script
kevindougherty-noaa Feb 14, 2025
b53a9d8
pycodestyle
kevindougherty-noaa Feb 14, 2025
69e06b8
Merge branch 'develop' into feature/stat-analysis
kevindougherty-noaa Feb 14, 2025
f75140c
remove STAT_OUTDIR from shell, need to still do it in py
CoryMartin-NOAA Feb 14, 2025
0676314
use different names for the output directory
CoryMartin-NOAA Feb 14, 2025
d8994cd
a todo note
CoryMartin-NOAA Feb 14, 2025
e1f04f3
minor change and add outdir check
kevindougherty-noaa Feb 19, 2025
3082f41
Merge branch 'develop' into feature/stat-analysis
kevindougherty-noaa Feb 20, 2025
eb6cb96
Merge branch 'develop' into feature/stat-analysis
kevindougherty-noaa Feb 20, 2025
54c6946
minor updates with name changes and new aero tar file
kevindougherty-noaa Feb 25, 2025
f2d5c7f
updated scripts for atmos obs type capabilities
kevindougherty-noaa Mar 4, 2025
ed0840c
Merge branch 'develop' into feature/stat-analysis
CoryMartin-NOAA Mar 6, 2025
ab421ed
add additional env files for other machines
CoryMartin-NOAA Mar 6, 2025
11f515c
update config.base
CoryMartin-NOAA Mar 6, 2025
0b2ad0e
update config.resources to parallelize anlstat
CoryMartin-NOAA Mar 6, 2025
ad14c55
update stat base config
CoryMartin-NOAA Mar 6, 2025
3266de0
link stat parm from GDASApp
CoryMartin-NOAA Mar 6, 2025
7772cb5
move parm/gdas/stat to gdas.cd repo
CoryMartin-NOAA Mar 6, 2025
bf69854
commit changes before meeting/lunch
CoryMartin-NOAA Mar 7, 2025
fc7297e
more cosmetic changes
CoryMartin-NOAA Mar 7, 2025
6a66ce4
add default DO_ANLSTAT NO
CoryMartin-NOAA Mar 10, 2025
84da1a6
coding norms
CoryMartin-NOAA Mar 10, 2025
1c1567e
update for anlstat to work
CoryMartin-NOAA Mar 10, 2025
667657c
fix issues found by Russ
CoryMartin-NOAA Mar 12, 2025
6a6a0bd
commit before merge develop
CoryMartin-NOAA Mar 13, 2025
d9bc737
Merge branch 'develop' into feature/stat-analysis
CoryMartin-NOAA Mar 13, 2025
32bb77f
Merge branch 'develop' into feature/stat-analysis
CoryMartin-NOAA Mar 14, 2025
3b825ce
Merge branch 'develop' into feature/stat-analysis
CoryMartin-NOAA Mar 14, 2025
3578a5c
commit that is working
CoryMartin-NOAA Mar 14, 2025
6f5ce48
Merge remote-tracking branch 'origin/develop' into feature/stat-analysis
CoryMartin-NOAA Mar 14, 2025
f30bc5d
Merge remote-tracking branch 'origin/develop' into feature/stat-analysis
CoryMartin-NOAA Mar 14, 2025
b94ce4b
update gdas submodule hash
CoryMartin-NOAA Mar 17, 2025
15e98df
Merge remote-tracking branch 'origin/develop' into feature/stat-analysis
CoryMartin-NOAA Mar 18, 2025
19aea3a
Merge remote-tracking branch 'origin/develop' into feature/stat-analysis
CoryMartin-NOAA Mar 20, 2025
0ad2435
update GDAS hash and add to CODEOWNERS
CoryMartin-NOAA Mar 20, 2025
33f21aa
Address reviewer comments
CoryMartin-NOAA Mar 24, 2025
fd37d19
Merge remote-tracking branch 'origin/develop' into feature/stat-analysis
CoryMartin-NOAA Mar 24, 2025
d25b1a6
Apply suggestions from code review
CoryMartin-NOAA Mar 31, 2025
fd0df02
Merge branch 'develop' into feature/stat-analysis
Mar 31, 2025
580cff0
logger fix
Mar 31, 2025
6855718
Merge remote-tracking branch 'upstream/develop' into feature/stat-ana…
CoryMartin-NOAA Apr 8, 2025
83d203d
Merge branch 'feature/stat-analysis' of https://github.com/corymartin-…
CoryMartin-NOAA Apr 8, 2025
ffc4b6a
Merge remote-tracking branch 'upstream/develop' into feature/stat-ana…
CoryMartin-NOAA Apr 8, 2025
7fbb0a3
Apply suggestions from code review
CoryMartin-NOAA Apr 9, 2025
ca43bcc
Merge branch 'develop' into feature/stat-analysis
CoryMartin-NOAA Apr 9, 2025
b520325
Update jobs/rocoto/anlstat.sh
DavidHuber-NOAA Apr 9, 2025
ddfd868
Merge branch 'develop' into feature/stat-analysis
DavidHuber-NOAA Apr 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @WenMeng-NOAA
jobs/JGFS_ATMOS_POSTSND @BoCui-NOAA
jobs/JGFS_ATMOS_VERIFICATION
jobs/JGLOBAL_AERO_ANALYSIS_* @CoryMartin-NOAA
jobs/JGLOBAL_ANALYSIS_STATS @CoryMartin-NOAA
jobs/JGLOBAL_*ARCH* @DavidHuber-NOAA
jobs/JGLOBAL_ATMENS_ANALYSIS_* @RussTreadon-NOAA @CoryMartin-NOAA @DavidNew-NOAA
jobs/JGLOBAL_ATMOS_ANALYSIS @RussTreadon-NOAA @CatherineThomas-NOAA
Expand Down Expand Up @@ -96,6 +97,7 @@ scripts/exgfs_pmgr.sh
scripts/exgfs_prdgen_manager.sh
scripts/exgfs_wave_* @JessicaMeixner-NOAA @sbanihash
scripts/exglobal_aero_analysis_* @CoryMartin-NOAA
scripts/exglobal_analysis_stats.py @CoryMartin-NOAA
scripts/exglobal_archive_*.py @DavidHuber-NOAA
scripts/exglobal_globus_*.py @DavidHuber-NOAA
scripts/exglobal_atm_analysis_* @RussTreadon-NOAA @DavidNew-NOAA
Expand Down Expand Up @@ -190,6 +192,7 @@ ush/python/pygfs/task/aero_bmatrix.py @DavidNew-NOAA @CoryMartin-NOAA
ush/python/pygfs/task/aero_emissions.py @bbakernoaa
ush/python/pygfs/task/aero_prepobs.py @CoryMartin-NOAA
ush/python/pygfs/task/analysis.py @DavidNew-NOAA @RussTreadon-NOAA
ush/python/pygfs/task/analysis_stats.py @CoryMartin-NOAA
ush/python/pygfs/task/archive.py @DavidHuber-NOAA
ush/python/pygfs/task/atm_analysis.py @DavidNew-NOAA @RussTreadon-NOAA
ush/python/pygfs/task/atmens_analysis.py @DavidNew-NOAA @RussTreadon-NOAA
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ parm/gdas/io
parm/gdas/ioda
parm/gdas/snow
parm/gdas/soca
parm/gdas/stat
parm/gdas/jcb-gdas
parm/gdas/jcb-algorithms
parm/monitor
Expand Down
5 changes: 5 additions & 0 deletions env/GAEAC6.env
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,11 @@ case ${step} in
export NTHREADS_OCNANAL=${NTHREADSmax}
export APRUN_MARINEANLCHKPT="${APRUN_default} --cpus-per-task=${NTHREADS_OCNANAL}"
;;
"anlstat")

export NTHREADS_ANLSTAT=${NTHREADSmax}
export APRUN_ANLSTAT="${APRUN_default} --cpus-per-task=${NTHREADS_ANLSTAT}"
;;
"marineanlletkf")

export NTHREADS_MARINEANLLETKF=${NTHREADSmax}
Expand Down
5 changes: 5 additions & 0 deletions env/HERA.env
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,11 @@ elif [[ "${step}" = "atmanlfv3inc" ]]; then
export NTHREADS_ATMANLFV3INC=${NTHREADSmax}
export APRUN_ATMANLFV3INC="${APRUN_default} --cpus-per-task=${NTHREADS_ATMANLFV3INC}"

elif [[ "${step}" = "anlstat" ]]; then

export NTHREADS_ANLSTAT=${NTHREADSmax}
export APRUN_ANLSTAT="${APRUN_default} --cpus-per-task=${NTHREADS_ANLSTAT}"

elif [[ "${step}" = "prepobsaero" ]]; then

export NTHREADS_PREPOBSAERO=${NTHREADS1}
Expand Down
5 changes: 5 additions & 0 deletions env/HERCULES.env
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,11 @@ case ${step} in
export NTHREADS_MARINEANLLETKF=${NTHREADSmax}
export APRUN_MARINEANLLETKF="${APRUN_default}"
;;
"anlstat")

export NTHREADS_ANLSTAT=${NTHREADSmax}
export APRUN_ANLSTAT="${APRUN_default} --cpus-per-task=${NTHREADS_ANLSTAT}"
;;
"ecen_fv3jedi")

export NTHREADS_ECEN_FV3JEDI=${NTHREADSmax}
Expand Down
5 changes: 5 additions & 0 deletions env/ORION.env
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,11 @@ elif [[ "${step}" = "marineanlletkf" ]]; then
export NTHREADS_MARINEANLLETKF=${NTHREADSmax}
export APRUN_MARINEANLLETKF="${APRUN_default}"

elif [[ "${step}" = "anlstat" ]]; then

export NTHREADS_ANLSTAT=${NTHREADSmax}
export APRUN_ANLSTAT="${APRUN_default} --cpus-per-task=${NTHREADS_ANLSTAT}"

elif [[ "${step}" = "ecen_fv3jedi" ]]; then

export NTHREADS_ECEN_FV3JEDI=${NTHREADSmax}
Expand Down
5 changes: 5 additions & 0 deletions env/WCOSS2.env
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@ elif [[ "${step}" = "atmanlfv3inc" ]]; then
export NTHREADS_ATMANLFV3INC=${NTHREADSmax}
export APRUN_ATMANLFV3INC="${APRUN_default}"

elif [[ "${step}" = "anlstat" ]]; then

export NTHREADS_ANLSTAT=${NTHREADSmax}
export APRUN_ANLSTAT="${APRUN_default}"

elif [[ "${step}" = "ecen_fv3jedi" ]]; then

export NTHREADS_ECEN_FV3JEDI=${NTHREADSmax}
Expand Down
44 changes: 44 additions & 0 deletions jobs/JGLOBAL_ANALYSIS_STATS
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/jjob_header.sh" -e "anlstat" -c "base anlstat"

##############################################
# Set variables used in the script
##############################################


##############################################
# Begin JOB SPECIFIC work
##############################################

# Generate COM variables from templates
YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COMIN_OBS:COM_OBS_TMPL \
COMIN_ATMOS_ANALYSIS:COM_ATMOS_ANALYSIS_TMPL \
COMIN_OCEAN_ANALYSIS:COM_OCEAN_ANALYSIS_TMPL \
COMIN_AERO_ANALYSIS:COM_CHEM_ANALYSIS_TMPL \
COMIN_SNOW_ANALYSIS:COM_SNOW_ANALYSIS_TMPL \
COMOUT_CONF:COM_CONF_TMPL \
COMOUT_ATMOS_ANLMON:COM_ATMOS_ANLMON_TMPL \
COMOUT_OCEAN_ANLMON:COM_OCEAN_ANLMON_TMPL \
COMOUT_AERO_ANLMON:COM_CHEM_ANLMON_TMPL \
COMOUT_SNOW_ANLMON:COM_SNOW_ANLMON_TMPL

###############################################################
# Run relevant script

EXSCRIPT=${ANLSTATSPY:-${SCRgfs}/exglobal_analysis_stats.py}
${EXSCRIPT}
export err=$?; err_chk

##############################################
# End JOB SPECIFIC work
##############################################

##############################################
# Final processing
##############################################
if [[ -e "${pgmout}" ]] ; then
cat "${pgmout}"
fi

exit 0
20 changes: 20 additions & 0 deletions jobs/rocoto/anlstat.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#! /usr/bin/env bash

set -x

###############################################################
# Source UFSDA workflow modules
. "${HOMEgfs}/ush/load_ufsda_modules.sh"
err=$?
if [[ ${err} -ne 0 ]]; then
echo "FATAL ERROR Failed to load UFSDA modules!"
exit "${err}"
fi

export job="anlstat"
export jobid="${job}.$$"

###############################################################
# Execute the JJOB
"${HOMEgfs}/jobs/JGLOBAL_ANALYSIS_STATS"
exit $?
17 changes: 17 additions & 0 deletions parm/config/gfs/config.anlstat
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash -x

########## config.anlstat ##########
# Analysis Stat

echo "BEGIN: config.anlstat"

# Get task specific resources
source "${EXPDIR}/config.resources" anlstat

export JEDI_CONFIG_YAML="${PARMgfs}/gdas/anlstat_jedi_config.yaml.j2"
export STAT_BASE_CONFIG_YAML="${PARMgfs}/config/gfs/yaml/stat_base_config.yaml.j2"
export JCB_BASE_YAML="${PARMgfs}/gdas/stat/aero/jcb-base.yaml.j2"
export JCB_ALGO_YAML="${PARMgfs}/gdas/jcb-algorithms/anlstat.yaml.j2"
export JEDIEXE="${HOMEgfs}/sorc/gdas.cd/build/bin/ioda-stats.x"

echo "END: config.anlstat"
6 changes: 6 additions & 0 deletions parm/config/gfs/config.base.j2
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ export DO_GENESIS_FSU="{{ DO_GENESIS_FSU }}" # Cyclone genesis verification (FSU
export DO_VERFOZN="YES" # Ozone data assimilation monitoring
export DO_VERFRAD="YES" # Radiance data assimilation monitoring
export DO_VMINMON="YES" # GSI minimization monitoring
export DO_ANLSTAT="NO" # JEDI-based analysis statistics
export DO_MOS="NO" # GFS Model Output Statistics - Only supported on WCOSS2

# NO for retrospective parallel; YES for real-time parallel
Expand Down Expand Up @@ -499,6 +500,11 @@ if [[ "${DO_JEDIATMVAR}" = "YES" ]]; then
export DO_VERFOZN="NO" # Ozone data assimilation monitoring
export DO_VERFRAD="NO" # Radiance data assimilation monitoring
export DO_VMINMON="NO" # GSI minimization monitoring
export DO_ANLSTAT="YES" # JEDI-based analysis statistics
else
if [[ ${DO_AERO} = "YES" || ${DO_JEDIOCNVAR} = "YES" || ${DO_JEDISNOWDA} = "YES " ]]; then
export DO_ANLSTAT="YES" # JEDI-based analysis statistics
fi
fi

# If starting ICs that are not at cycle hour
Expand Down
5 changes: 5 additions & 0 deletions parm/config/gfs/config.com
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ declare -rx COM_ATMOS_INPUT_TMPL=${COM_BASE}'/model/atmos/input'
declare -rx COM_ATMOS_RESTART_TMPL=${COM_BASE}'/model/atmos/restart'
declare -rx COM_ATMOS_ANALYSIS_TMPL=${COM_BASE}'/analysis/atmos'
declare -rx COM_SNOW_ANALYSIS_TMPL=${COM_BASE}'/analysis/snow'
declare -rx COM_SNOW_ANLMON_TMPL=${COM_BASE}'/products/snow/anlmon'
declare -rx COM_ATMOS_HISTORY_TMPL=${COM_BASE}'/model/atmos/history'
declare -rx COM_ATMOS_MASTER_TMPL=${COM_BASE}'/model/atmos/master'
declare -rx COM_ATMOS_GRIB_TMPL=${COM_BASE}'/products/atmos/grib2'
Expand All @@ -68,6 +69,7 @@ declare -rx COM_ATMOS_IMAGERY_TMPL=${COM_BASE}'/products/atmos/imagery'
declare -rx COM_ATMOS_OZNMON_TMPL=${COM_BASE}'/products/atmos/oznmon'
declare -rx COM_ATMOS_RADMON_TMPL=${COM_BASE}'/products/atmos/radmon'
declare -rx COM_ATMOS_MINMON_TMPL=${COM_BASE}'/products/atmos/minmon'
declare -rx COM_ATMOS_ANLMON_TMPL=${COM_BASE}'/products/atmos/anlmon'
declare -rx COM_ATMOS_WMO_TMPL=${COM_BASE}'/products/atmos/wmo'

declare -rx COM_WAVE_RESTART_TMPL=${COM_BASE}'/model/wave/restart'
Expand All @@ -83,6 +85,7 @@ declare -rx COM_OCEAN_HISTORY_TMPL=${COM_BASE}'/model/ocean/history'
declare -rx COM_OCEAN_RESTART_TMPL=${COM_BASE}'/model/ocean/restart'
declare -rx COM_OCEAN_INPUT_TMPL=${COM_BASE}'/model/ocean/input'
declare -rx COM_OCEAN_ANALYSIS_TMPL=${COM_BASE}'/analysis/ocean'
declare -rx COM_OCEAN_ANLMON_TMPL=${COM_BASE}'/products/ocean/anlmon'
declare -rx COM_OCEAN_LETKF_TMPL=${COM_BASE}'/analysis/ocean/letkf'
declare -rx COM_OCEAN_BMATRIX_TMPL=${COM_BASE}'/bmatrix/ocean'
declare -rx COM_OCEAN_NETCDF_TMPL=${COM_BASE}'/products/ocean/netcdf'
Expand All @@ -91,6 +94,7 @@ declare -rx COM_OCEAN_GRIB_GRID_TMPL=${COM_OCEAN_GRIB_TMPL}'/${GRID}'

declare -rx COM_ICE_ANALYSIS_TMPL=${COM_BASE}'/analysis/ice'
declare -rx COM_ICE_LETKF_TMPL=${COM_BASE}'/analysis/ice/letkf'
declare -rx COM_ICE_ANLMON_TMPL=${COM_BASE}'/products/ice/anlmon'
declare -rx COM_ICE_BMATRIX_TMPL=${COM_BASE}'/bmatrix/ice'
declare -rx COM_ICE_INPUT_TMPL=${COM_BASE}'/model/ice/input'
declare -rx COM_ICE_HISTORY_TMPL=${COM_BASE}'/model/ice/history'
Expand All @@ -102,5 +106,6 @@ declare -rx COM_ICE_GRIB_GRID_TMPL=${COM_ICE_GRIB_TMPL}'/${GRID}'
declare -rx COM_CHEM_HISTORY_TMPL=${COM_BASE}'/model/chem/history'
declare -rx COM_CHEM_ANALYSIS_TMPL=${COM_BASE}'/analysis/chem'
declare -rx COM_CHEM_BMAT_TMPL=${COM_CHEM_ANALYSIS_TMPL}'/bmatrix'
declare -rx COM_CHEM_ANLMON_TMPL=${COM_BASE}'/products/chem/anlmon'

declare -rx COM_MED_RESTART_TMPL=${COM_BASE}'/model/med/restart'
10 changes: 9 additions & 1 deletion parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ if (( $# != 1 )); then
echo "atmensanlinit atmensanlobs atmensanlsol atmensanlletkf atmensanlfv3inc atmensanlfinal ecen_fv3jedi analcalc_fv3jedi"
echo "snowanl esnowanl"
echo "prepobsaero aeroanlinit aeroanlvar aeroanlfinal aeroanlgenb"
echo "anal sfcanl analcalc analdiag fcst echgres"
echo "anal sfcanl analcalc analdiag anlstat fcst echgres"
echo "upp atmos_products"
echo "tracker genesis genesis_fsu"
echo "verfozn verfrad vminmon fit2obs metp arc_vrfy arc_tars cleanup"
Expand Down Expand Up @@ -801,6 +801,14 @@ case ${step} in
memory="48GB"
;;

"anlstat")
walltime="00:30:00"
ntasks=20
threads_per_task=1
tasks_per_node=20
memory="90GB"
;;

"sfcanl")
walltime="00:20:00"
ntasks=${ntiles:-6}
Expand Down
26 changes: 26 additions & 0 deletions parm/config/gfs/yaml/stat_base_config.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
aero:
stat_file_path: '{{ COMIN_AERO_ANALYSIS }}'
stat_file_name: 'aerostat.tgz'
obs spaces:
- name: viirs_npp
input file: "diag_viirs_npp_aod_{{ current_cycle | to_YMDH }}.nc"
output file: "viirs_npp_{{ current_cycle | to_YMDH }}_output_aod.nc"
- name: viirs_n20
input file: "diag_viirs_n20_aod_{{ current_cycle | to_YMDH }}.nc"
output file: "viirs_n20_{{ current_cycle | to_YMDH }}_output_aod.nc"

atmos:
stat_file_path: '{{ COMIN_ATMOS_ANALYSIS }}'
stat_file_name: 'atmstat'
obs spaces:
- name: conventional_ps
input file: "diag_conventional_ps_{{ current_cycle | to_YMDH }}.nc"
output file: "conventional_ps_{{ current_cycle | to_YMDH }}_output_atmos.nc"

snow:
stat_file_path: '{{ COMIN_SNOW_ANALYSIS }}'
stat_file_name: 'snowstat.tgz'
obs spaces:
- name: ims_snow
input file: "diag_ims_snow_{{ current_cycle | to_YMDH }}.nc"
output file: "ims_snow_{{ current_cycle | to_YMDH }}_output_snow.nc"
24 changes: 24 additions & 0 deletions parm/gdas/anlstat_jedi_config.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
aero:
rundir: '{{ DATA }}'
exe_src: '{{ JEDIEXE }}'
mpi_cmd: '{{ APRUN_ANLSTAT }}'
# jedi_args: None
jcb_base_yaml: '{{ PARMgfs }}/gdas/stat/aero/jcb-base.yaml.j2'
jcb_algo_yaml: '{{ JCB_ALGO_YAML }}'
jcb_algo: 'anlstat'
atmos:
rundir: '{{ DATA }}'
exe_src: '{{ JEDIEXE }}'
mpi_cmd: '{{ APRUN_ANLSTAT }}'
# jedi_args: None
jcb_base_yaml: '{{ PARMgfs }}/gdas/stat/atmos/jcb-base.yaml.j2'
jcb_algo_yaml: '{{ JCB_ALGO_YAML }}'
jcb_algo: 'anlstat'
snow:
rundir: '{{ DATA }}'
exe_src: '{{ JEDIEXE }}'
mpi_cmd: '{{ APRUN_ANLSTAT }}'
# jedi_args: None
jcb_base_yaml: '{{ PARMgfs }}/gdas/stat/snow/jcb-base.yaml.j2'
jcb_algo_yaml: '{{ JCB_ALGO_YAML }}'
jcb_algo: 'anlstat'
39 changes: 39 additions & 0 deletions scripts/exglobal_analysis_stats.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env python3

# exglobal_analysis_stats.py
# This script creates a AnalysisStats class
# and runs the initialize, execute, and finalize
# methods which create and stage the runtime directory
# and create the YAML configuration
# to produce summary statistics from the desired analyses
import os

from wxflow import Logger, cast_strdict_as_dtypedict
from pygfs.task.analysis_stats import AnalysisStats

# Initialize root logger
logger = Logger(level='DEBUG', colored_log=True)


if __name__ == '__main__':

# Take configuration from environment and cast it as python dictionary
config = cast_strdict_as_dtypedict(os.environ)

# Instantiate the atm analysis task
AnlStats = AnalysisStats(config)

# Create list based on DA components
AnlStats.task_config['STAT_ANALYSES'] = []
if AnlStats.task_config.DO_AERO_ANL:
AnlStats.task_config['STAT_ANALYSES'].append('aero')
if AnlStats.task_config.DO_JEDISNOWDA:
AnlStats.task_config['STAT_ANALYSES'].append('snow')
if AnlStats.task_config.DO_JEDIATMVAR:
AnlStats.task_config['STAT_ANALYSES'].append('atmos')

# Initialize JEDI variational analysis
AnlStats.initialize()
for anl in AnlStats.task_config.STAT_ANALYSES:
AnlStats.execute(anl)
AnlStats.finalize(anl)
2 changes: 1 addition & 1 deletion sorc/link_workflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ fi
#------------------------------
if [[ -d "${HOMEgfs}/sorc/gdas.cd" ]]; then
cd "${HOMEgfs}/parm/gdas" || exit 1
declare -a gdasapp_comps=("aero" "atm" "io" "ioda" "snow" "soca" "jcb-gdas" "jcb-algorithms")
declare -a gdasapp_comps=("aero" "atm" "io" "ioda" "snow" "soca" "jcb-gdas" "jcb-algorithms" "stat")
for comp in "${gdasapp_comps[@]}"; do
if [[ -d "${comp}" ]]; then
rm -rf "${comp}"
Expand Down
Loading