Skip to content

GCPy 1.5.0

Latest
Compare
Choose a tag to compare
@yantosca yantosca released this 29 May 18:04
· 2 commits to main since this release

Release Date: 29 May 2024
DOI

Known issues

The pip install geoschem-gcpy command (as described on ReadTheDocs) is broken due to the xesmf 0.5.1 package having been de-listed from the Python Package Index (PyPi). For the time being, users should follow the manual installation instructions. See issue #326 for more information.

From CHANGELOG.md

Added

  • Script gcpy/benchmark/modules/benchmark_utils.py, with common benchmark utility functions
  • Script gcpy/benchmark/modules/benchmark_drydep.py, with code to create drydep velocity plots
  • YAML tag plot_drydep in gcpy/benchmark/config/*.yml files
  • Badge for build-gcpy-environment GitHub Action in README.md
  • Badges in docs/source/index.rst
  • GitHub action to push GCPy releases to PyPi
  • Script ./release/changeVersionNumbers.sh, used to update version numbers in various files before release
  • Mamba/Conda enviroment file docs/environment_files/read_the_docs_environment.yml, for building ReadTheDocs documentation
  • Environment files docs/environment_files/gcpy_requirements.txt and docs/environment_files/read_the_docs_requirements.txt
  • New benchmark script gcpy/benchmark/modules/benchmark_models_vs_sondes.py
  • Added fixed level budget diagnostic to budget operations table
  • Function rename_speciesconc_to_speciesconcvv in gcpy/benchmark/modules/benchmark_utils.py
  • Function copy_file_to_dir in gcpy/util.py. This is a wrapper for shutil.copyfile.
  • GitHub Action config file .github/workflows/stale.yml, which replaces StaleBot
  • Added gcpy/community/format_hemco_data.py from @hannahnesser
  • Added gcpy/examples/hemco/format_hemco_demo.py from @hannahnesser
  • Added HCl to gcpy/benchmark/modules/emission_species.yml and GTChlorine to gcpy/benchmark/modules/emission_inventories.yml for GEOS-Chem 14.4.0
  • Example script gcpy/examples/working_with_files/make_mask_file.py
  • Convenience function replace_whitespace in gcpy/util.py
  • Benchmark script gcpy/benchmark/modules/benchmark_scrape_gcclassic_timers.py
  • Benchmark script gcpy/benchmark/modules/benchmark_scrape_gchp_timers.py
  • 1-year benchmark scripts now produce GCC vs GCC and GCHP vs GCHP timing tables
  • Functions gcc_vs_gcc_dirs, gchp_vs_gcc_dirs, gchp_vs_gchp_dirs, and get_log_filepaths in gcpy/benchmark/modules/benchmark_utils.py
  • Script gcpy/benchmark/modules/benchmark_mass_cons_table.py, with code to create mass conservation tables
  • Expanded statistics output in benchmark mass conservation tables
  • Function get_datetimes_from_filenames in gcpy/benchmark/modules/benchmark_utils.py
  • Function replace_whitespace in gcpy/util.py

Changed

  • Bump pip from 23.2.1 to 23.3 (dependabot suggested this)
  • Bump pypdf from 3.16.1 to 3.17.0 (dependabot suggested this)
  • YAML tag operations_budget is now ops_budget_table in gcpy/benchmark/config/1yr_tt_benchmark.yml
  • Now require matplotlib=3.8.0 in docs/environment_files/environment.yml (with other pegged versions)
  • Now run the stale GitHub action at 00:00 UTC on the 1st of each month
  • Renamed docs/environment_files/environment.yml to gcpy_environment.yml
  • environment.yml links to docs/environment_files/gcpy_environment.yml
  • requirements.txt links to docs/environment_files/requirements.txt
  • Python packages for RTD documenation builds from docs/environment_files/environment.yml
  • Script benchmark_model_vs_obs.py now uses grid inquiry functions from grid.py to return data nearest to a (lat,lon) location
  • Moved routine get_geoschem_level_metadata to gcpy/benchmark/modules/benchmark_utils.py
  • Refactored get_vert_grid.py (in gcpy/grid.py) to accept the p_sfc argument; Also never-nested the if-block logic.
  • benchmark_slurm.sh script now saves output to a log file with the same base name as the YAML config file
  • benchmark_models_vs_obs.py now reads the observational data paths and metadata from 1yr_fullchem_benchmark.yml
  • Moved benchmark code from gcpy/ to gcpy/benchmark/modules/
  • Benchmark functions now call rename_speciesconc_to_speciesconcvv
  • Create radionuclide, STE flux, and mass conservation tables for Ref and Dev versions in TransportTracers benchmarks
  • Use new function copy_file_to_dir to copy the benchmark script and configuration file to the benchmark results folders
  • Updated GitHub stalebot config file stale.yml with new issue/PR labels that should not go stale
  • Updated benchmark driver scripts and config files to print GCClassic & GCHP timing information
  • Updated documentation for GCPy 1.5.0 release
  • Converted Github issue templates to issue forms using YAML definition files

Fixed

  • CS inquiry functions in gcpy/cstools.py now work properly for xr.Dataset and xr.DataArray objects
  • Prevent an import error by using seaborn-v0_8-darkgrid ingcpy/benchmark/modules/benchmark_models_vs_obs.py
  • gcpy/file_regrid.py now creates GCHP files with DELP_DRY instead of DELPDRY
  • Fixed bugs in GCHP vs GCHP sections of 1-yr benchmark run scripts to allow comparison of GCHP runs with different grid resolutions
  • Fixed silent bug in transport tracer benchmark GCC vs GCHP mass
    tables preventi ng them from being generated
  • Import error in gcpy/examples/diagnostics/compare_diags.py
  • Added missing n_cores to gcpy/examples/diagnostics/compare_diags.yml
  • Added missing plot_drydep option to gcpy/gcpy/benchmark/config/1yr_ch4_benchmark.yml
  • Add docs/requirements.txt symbolic link to docs/environment_files/read_the_docs_requirements.txt for RTD builds
  • gcpy/file_regrid.py now tests if lon_bnds, lat_bnds are in the dataset before trying to drop them

Removed

  • Example script gcpy/examples/plotting/mda8_o3_timeseries.py
  • Removed Pylint GitHub action
  • Environment file docs/environment_files/environment.yml
  • Environment file docs/environment_files/requirements.txt
  • Removed awscli from the GCPy environment; version 2 is no longer available on conda-forge or PyPi
  • GitHub config files .github/stale.yml and .github/no-response.yml
  • Routine make_benchmark_mass_conservation_table in benchmark_funcs.py; this is now obsolete

Pull Requests Included

  • Bump pypdf from 3.16.1 to 3.17.0 by @dependabot in #293
  • Add option to create drydep velocity plots from benchmark output by @yantosca in #280
  • Add a GitHub action to auto-push GCPy releases directly to PyPi by @yantosca in #294
  • file_regrid.py now uses DELP_DRY for delta-dry pressure variable name when creating GCHP files by @yantosca in #297
  • Fix bugs in 1-yr benchmarks for different GCHP grid resolutions by @lizziel in #298
  • Fix bugs in GCC vs GCHP transport tracer benchmark mass tables by @lizziel in #300
  • Implement several minor bug fixes (matplotlib 3.8+, GitHub actions, remove obsolete features) by @yantosca in #283
  • Split python packages needed for RTD documentation builds out of the GCPy conda environment and into a separate environment; remove awscli by @yantosca in #295
  • Bug fix for operations budget name in transport tracer benchmark run script by @lizziel in #301
  • Add inquiry functions to return nearest model data to a (lat,lon) location; Update benchmark model vs. obs scripts; Add models vs sondes output by @yantosca in #277
  • Add fixed level diagnostic to operations budget table by @lizziel in #304
  • Added missing options to 1yr_ch4_benchmark.yml config file by @msulprizio in #307
  • Move remaining benchmark-related code out of gcpy and into gcpy/benchmark/modules folder (plus other improvements) by @yantosca in #305
  • Replace stalebot with "stale" GitHub action by @yantosca in #315
  • Fix issues in cubed-sphere regridding by @yuanjianz in #311
  • Add example script to create mask files by @yantosca in #317
  • Add HCl to emissions_species.yml for GEOS-Chem 14.4.0 by @msulprizio in #320
  • Add benchmark scripts to scrape timing information from log files by @yantosca in #319
  • Update mass conservation tables to include Ref & Dev in the same file by @yantosca in #309
  • Bump requests from 2.31.0 to 2.32.0 by @dependabot in #321
  • Update Github issue templates to use issue forms by @msulprizio in #323
  • Bump requests from 2.31.0 to 2.32.2 in /docs/environment_files by @dependabot in #324

New Contributors

Full Changelog: 1.4.2...1.5.0