Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3a9ac3e
Look for GCHP timers in "allPEs.log" if not found in log file
yantosca Dec 18, 2025
600ee3b
Merge PR #388 (Also look for GCHP timing info in allPEs.log)
yantosca Dec 19, 2025
8534674
Add functions get_species_database_files and read_species_metadata
yantosca Dec 17, 2025
1791ee5
Specify species database files for Ref and Dev in config files
yantosca Dec 17, 2025
e94fc05
Pass spcdb_files to compare_single_level, compare_zonal_mean
yantosca Dec 18, 2025
506ab88
Pass spcdb_files as an argument to oh_metrics.py
yantosca Dec 19, 2025
bdf802f
Pass spcdb_files to budget_ox.py, budget_tt.py, ste_flux.py
yantosca Dec 19, 2025
df5b6d7
Pass spcdb_funcs to routines in benchmark_funcs.py
yantosca Dec 19, 2025
51f89af
Pass spcdb_files to benchamrk_drydep.py, benchmark_mass_cons_table.py
yantosca Dec 19, 2025
5ecc0b3
Add "check=False" in benchmark_scrape_gchp_timers.py
yantosca Dec 19, 2025
2e4f2f5
Pass spcdb_files as an argument to benchmark_species_changes.py
yantosca Dec 19, 2025
99f1639
Pass spcdb_files to benchmark routines in run_*benchmark.py scripts
yantosca Dec 20, 2025
a65c492
Fixed bugs in benchmark_funcs.py and benchmark_utils.py
yantosca Jan 5, 2026
ad86553
Fixed typo in ste_flux.py
yantosca Jan 6, 2026
efe6f3f
Swap order of "spcdb_files" in make_benchmark_mass_conservation_table
yantosca Jan 6, 2026
38ffd42
Removed st_Ox from benchmark_categories.yml
yantosca Jan 6, 2026
56f1893
Add missing YAML tags to 1yr_fullchem_benchmark.yml
yantosca Jan 8, 2026
5113120
Bug fix: rename "spcdb" to "properties" in make_benchmark_aerosol_tables
yantosca Jan 8, 2026
afbe257
Bug fix: add parentheses in face_area to force operator order
yantosca Jan 8, 2026
73e86ea
Now include all dust species in make_benchmark_aerosol_tables
yantosca Jan 9, 2026
2dfbf86
Use species database info pertaining to Ref & Dev, and not the union
yantosca Jan 12, 2026
24e8e74
Remove "species_metadata" tags from template files
yantosca Jan 12, 2026
1b45738
Function get_molwt_from_metadata returns Ref & Dev in proper order
yantosca Jan 13, 2026
a4a38a6
Do not exit w/ error unless both mol wts are missing in compare*.py
yantosca Jan 13, 2026
739932e
Get "refonly", "devonly" before adding missing vars in emission table…
yantosca Jan 14, 2026
56b1979
Added fixes to gcpy/benchmark/modules/budget_ox.py
yantosca Jan 14, 2026
7296622
Fixed typo in benchmark_mass_cons_tables.py
yantosca Jan 21, 2026
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
10 changes: 9 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Added new constants for default lon/lat and stretched-grid settings in `gcpy/constants.py`
- Added PyDoc headers in routines where they were missing
- Added `examples/grids/display_gcclassic_grid_info.py` to display info about a GEOS-Chem Classic horizontal grid
- Added functions `get_molwt_from_metadata` and `read_species_metadata` to `gcpy/util.py`
- Added function `get_species_database_files` to `gcpy/benchmark/modules/benchmark_utils.py`
- Added constant `SPECIES_DATABASE` to `gcpy/benchmark/modules/benchmark_utils.py`

### Changed
- Modified criteria for terminating read of log files in `benchmark_scrape_gcclassic_timers.py` to avoid being spoofed by output that is attached by Intel VTune
Expand All @@ -39,16 +42,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Updated default GCPy Python environment to use Python 3.13 (instead of 3.12)
- Benchmark routines now look for `species_database.yml` in the `Ref` and `Dev` run directories
- Replaced `get_species_database_dir` with `get_species_database_files` in `gcpy/benchmark/modules/benchmark_funcs.py`
- Replaced `spcdb_dir` YAML tag with directory-specific `species_metadata` tags to specify paths to `species_database.yml` files
- Updated `gcpy/benchmark/modules/benchmark_scrape_gchp_timers.py` to look for GCHP timers in `allPEs.log` if not found in the log file
- Updated routine `make_benchmark_aerosol_tables` to include all dust species in the aerosol burdens table

### Fixed
- Fixed grid area calculation scripts of `grid_area` in `gcpy/gcpy/cstools.py`
- Fixed various security issues in GitHub Actions workflows
- Fixed colorbar bounds for case of comparing cubed-sphere grids
- Fixed the restart regridding for stretched GCHP when target lat/lon is exactly 0.0 in `gcpy/regrid_restart_file.py`
- Fixed computation of the global AOD benchmark table caused by hardwired species names
- Fixed error in `create_benchmark_emissions_table` where all species were assumed to be in Ref and Dev even if they were not

### Removed
- Removed `PdfMerger()` from `compare_single_level` and `compare_zonal_mean`, it has been removed in pypdf >= 5.0.0
- Removed `paths:spcdb_dir` YAML tag in benchmark configuration files
- Removed `st_Ox` from `benchmark_categories.yml`; this species is no longer used in TransportTracers simulations

## [1.6.2] - 2025-06-12
### Added
Expand Down
17 changes: 9 additions & 8 deletions gcpy/benchmark/cloud/template.1hr_benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,17 @@ paths:
main_dir: ${GEOSCHEM_BENCHMARK_WORKING_DIR}
results_dir: BenchmarkResults
weights_dir: ${GEOSCHEM_BENCHMARK_WORKING_DIR}/weights
spcdb_dir: default
#
# data: Contains configurations for ref and dev runs
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# logs_subdir: Subdirectory w/ GEOS-Chem log files
# logs_template: Template for log file names (may include tokens)
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
#
data:
ref:
Expand Down
16 changes: 9 additions & 7 deletions gcpy/benchmark/cloud/template.1mo_benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,15 @@ paths:
spcdb_dir: default
#
# data: Contains configurations for ref and dev runs
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# logs_subdir: Subdirectory w/ GEOS-Chem log files
# logs_template: Template for log file names (may include tokens)
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
#
data:
ref:
Expand Down
20 changes: 9 additions & 11 deletions gcpy/benchmark/config/1mo_benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,22 @@
# main_dir: High-level directory containing ref & dev rundirs
# results_dir: Directory where plots/tables will be created
# weights_dir: Path to regridding weights
# spcdb_dir: Folder in which the species_database.yml file is
# located. If set to "default", then will look for
# species_database.yml in one of the Dev rundirs.
#
paths:
main_dir: /path/to/benchmark/main/dir
results_dir: /path/to/BenchmarkResults
weights_dir: /n/holylfs06/LABS/jacob_lab/Shared/GEOS-CHEM/gcgrid/gcdata/ExtData/GCHP/RegriddingWeights
spcdb_dir: default
#
# data: Contains configurations for ref and dev runs
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# logs_subdir: Subdirectory w/ GEOS-Chem log files
# logs_template: Template for log file names (may include tokens)
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
#
data:
ref:
Expand Down
20 changes: 9 additions & 11 deletions gcpy/benchmark/config/1yr_ch4_benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,11 @@
# main_dir: High-level directory containing ref & dev rundirs
# results_dir: Directory where plots/tables will be created
# weights_dir: Path to regridding weights
# spcdb_dir: Folder in which the species_database.yml file is
# located. If set to "default", then will look for
# species_database.yml in one of the Dev rundirs.
#
paths:
main_dir: /path/to/benchmark/main/dir # EDIT AS NEEDED
results_dir: /path/to/BenchmarkResults # EDIT AS NEEDED
weights_dir: /n/holylfs06/LABS/jacob_lab/Shared/GEOS-CHEM/gcgrid/gcdata/ExtData/GCHP/RegriddingWeights
spcdb_dir: default
#
# Observational data dirs are on Harvard Cannon, edit if necessary
#
Expand All @@ -43,13 +39,15 @@ paths:
site_file: allozonesondes_site_elev.csv
#
# data: Contains configurations for ref and dev runs
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# logs_subdir: Subdirectory w/ GEOS-Chem log files
# logs_template: Template for log file names (may include tokens)
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
#
data:
ref:
Expand Down
24 changes: 13 additions & 11 deletions gcpy/benchmark/config/1yr_fullchem_benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,12 @@
# main_dir: High-level directory containing ref & dev rundirs
# results_dir: Directory where plots/tables will be created
# weights_dir: Path to regridding weights
# spcdb_dir: Folder in which the species_database.yml file is
# located. If set to "default", then will look for
# species_database.yml in one of the Dev rundirs.
# obs_data: Paths to observations (for models vs. obs plots)
#
paths:
main_dir: /path/to/benchmark/main/dir
results_dir: /path/to/BenchmarkResults
weights_dir: /n/holylfs06/LABS/jacob_lab/Shared/GEOS-CHEM/gcgrid/gcdata/ExtData/GCHP/RegriddingWeights
spcdb_dir: default
#
# Observational data dirs are on Harvard Cannon, edit if necessary
#
Expand All @@ -44,13 +40,16 @@ paths:
site_file: allozonesondes_site_elev.csv
#
# data: Contains configurations for ref and dev runs
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# logs_subdir: Subdirectory w/ GEOS-Chem log files
# logs_template: Template for log file names (may include tokens)
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
#
#
data:
ref:
Expand Down Expand Up @@ -134,15 +133,18 @@ options:
plot_drydep: True
plot_emis: True
plot_jvalues: True
plot_models_vs_obs: True
plot_options:
by_spc_cat: True
by_hco_cat: True
#
# Benchmark tables
#
aer_budget_table: True
emis_table: True
mass_accum_table: False
mass_table: True
Ox_budget_table: True
OH_metrics: True
ops_budget_table: False
sanity_check_table: True
Expand Down
21 changes: 10 additions & 11 deletions gcpy/benchmark/config/1yr_tt_benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,23 @@
# main_dir: High-level directory containing ref & dev rundirs
# results_dir: Directory where plots/tables will be created
# weights_dir: Path to regridding weights
# spcdb_dir: Folder in which the species_database.yml file is
# located. If set to "default", then will look for
# species_database.yml in one of the Dev rundirs.
#
paths:
main_dir: /path/to/benchmark/main/dir
results_dir: /path/to/BenchmarkResults
weights_dir: /n/holylfs06/LABS/jacob_lab/Shared/GEOS-CHEM/gcgrid/gcdata/ExtData/GCHP/RegriddingWeights
spcdb_dir: default
#
# data: Contains configurations for ref and dev runs
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
# version: Version string (must not contain spaces)
# dir: Path to run directory
# outputs_subdir: Subdirectory w/ GEOS-Chem diagnostic files
# restarts_subdir: Subdirectory w/ GEOS-Chem restarts
# logs_subdir: Subdirectory w/ GEOS-Chem log files
# logs_template: Template for log file names (may include tokens)
# bmk_start: Simulation start date (YYYY-MM-DDThh:mm:ss)
# bmk_end: Simulation end date (YYYY-MM-DDThh:mm:ss)
# resolution: GCHP resolution string
#
#
data:
ref:
Expand Down
1 change: 0 additions & 1 deletion gcpy/benchmark/modules/benchmark_categories.yml
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,6 @@ TransportTracersBenchmark:
- e90_n
- e90_s
- st80_25
- stOX
WetLossConv:
WetLossConv:
- Pb210
Expand Down
13 changes: 4 additions & 9 deletions gcpy/benchmark/modules/benchmark_drydep.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ def make_benchmark_drydep_plots(
refstr,
dev,
devstr,
spcdb_files,
collection="DryDep",
dst="./benchmark",
subdst=None,
Expand All @@ -30,7 +31,6 @@ def make_benchmark_drydep_plots(
n_job=-1,
time_mean=False,
varlist=None,
spcdb_dir=None,
):
"""
Creates six-panel comparison plots (PDF format) from GEOS-Chem
Expand All @@ -48,6 +48,8 @@ def make_benchmark_drydep_plots(
data set.
devstr: str
A string to describe dev (e.g. version number)
spcdb_files : list
Paths to species_database.yml files in Ref & Dev rundirs

Keyword Args (optional):
collection : str
Expand Down Expand Up @@ -79,20 +81,13 @@ def make_benchmark_drydep_plots(
Set to 1 to disable parallel plotting. Value of -1 allows the
application to decide.
Default value: -1
spcdb_dir: str
Directory of species_datbase.yml file
Default value: None
time_mean : bool
Determines if we should average the datasets over time
Default value: False
varlist: list of str
List of variables to plot. If varlist is None, then
all common variables in Ref & Dev will be plotted.
"""
# Make sure the species database folder is passed
if spcdb_dir is None:
msg = "The spcdb_dir argument has not been specified!"
raise ValueError(msg)

# Replace whitespace in the ref and dev labels
refstr = util.replace_whitespace(refstr)
Expand Down Expand Up @@ -144,7 +139,7 @@ def make_benchmark_drydep_plots(
sigdiff_list=sigdiff_list,
weightsdir=weightsdir,
n_job=n_job,
spcdb_dir=spcdb_dir
spcdb_files=spcdb_files,
)
util.add_bookmarks_to_pdf(
pdfname,
Expand Down
Loading