Skip to content

GCPy 1.4.0

Compare
Choose a tag to compare
@yantosca yantosca released this 20 Nov 17:47
· 176 commits to main since this release

Release date 2023-11-20
DOI

From CHANGELOG.md

Added

  • Added C2H2 and C2H4 to emission_species.yml
  • Updated species_database.yml for consistency with GEOS-Chem 14.2.0
  • Added .github/ISSUE_TEMPLATE/config.yml file w/ Github issue options
  • Added CONTRIBUTING.md and SUPPORT.md, replacing docs/source/Contributing.rst and docs/source/Report_Request.rst
  • Added option to pass the benchmark type to plotting routines
  • Updated AUTHORS.txt as of Apr 2023 (concurrent w/ GEOS-Chem 14.2.0)
  • Added ReadTheDocs badge in README.md
  • Added .readthedocs.yaml to configure ReadTheDocs builds
  • Added cloud benchmarking YAML configuration files to benchmark/cloud folder
  • Added README.md files in gcpy/benchmark directory structure
  • Added benchmark/modules/benchmark_models_vs_obs.py script
  • Added benchmark/modules/GC_72_vertical_levels.csv file
  • Added multi_index_lat keyword to reshape_MAPL_CS function in gcpy/util.py
  • Added FURA to emission_species.yml and benchmark_categories.yml
  • Added new routine format_number_for_table in gcpy/util.py
  • Added module gcpy/cstools.py with utility functions for cubed-sphere grids
  • Added new routine verify_variable_type function in gcpy/util.py
  • Added new routine format_number_for_table in util.py
  • Added BrSALA and BrSALC to emission_species.yml
  • Added options:n_cores to all benchmark YAML config files
  • Added __init__.py files in subfolders of gcpy/gcpy
  • gcpy/benchmark/modules/*.py scripts are now chmod 644
  • Added ENCODING = "UTF-8" to gcpy/constants.py
  • Added statement from dask.array import Array as DaskArray in gcpy plot.py
  • Added SLURM run script gcpy/benchmark/benchmark_slurm.sh
  • Added gcpy/plot/gcpy_plot_style style sheet for title and label default settings
  • Added gcpy/gcpy_plot_style style sheet for title and label default settings
  • Added new cubed-sphere grid inquiry functions to gcpy/cstools.py
  • Added functions get_ilev_coord and get_lev_coord to gcpy/grid.py
  • Add tk package to docs/environment_files/environment.yml

Changed

  • Simplified the Github issues templates into two options: new-feature-or-discussion.md and question-issue.md
  • The GitHub PR template is now named ./github/PULL_REQUEST_TEMPLATE.md
  • Updated badge links in README.md
  • Construct ops budget table filename without using the label argument
  • Updated species_database.yml for consistency with GEOS-Chem 14.2.0
  • Renamed TransportTracers species in benchmark_categories.yml, run_1yr_tt_benchmark.py, and in documentation
  • YAML files in benchmark/ have been moved to benchmark/config
  • Models vs. O3 obs plots are now arranged by site latitude from north to south
  • Routine print_totals now prints small and/or large numbers in scientific notation
  • Truncate names in benchmark & emissions tables to improve readability
  • Add TransportTracers species names to gcpy/emissions_*.yml files
  • Now pass n_job=config["options"]["n_cores"] to benchmark plotting routines
  • Script benchmark.py to benchmark_funcs.py to remove a name collision
  • Folder gcpy/benchmark is now gcpy/gcpy/benchmark
  • Folder benchmark/modules is now gcpy/gcpy/benchmark/modules
  • Folder gcpy/examples is now gcpy/gcpy/examples
  • Pass sys.argv to the main() routine of run_benchmark.py, compare_diags.py
  • Updated docs/environment_files/environment.yml for MambaForge (also added gridspec)
  • Now use pypdf instead of PyPDF2 in plot.py and util.py
  • Added coding suggestions made by pylint where possible
  • Abstracted and never-nested code from six_plot into functions (in plot.py)
  • Added main() routine to gcpy/file_regrid.py; Also added updates suggested by Pylint
  • Fixed broken regridding code in gcpy/file_regrid.py; also refactored for clarity
  • Rewrote Regridding.rst page; Confirmed that regridding examples work properly
  • Now allow plot_val to be of type dask.array.Array in plot.py routines six_plot and single_panel
  • Now add if statements to turn of Parallel() commands when n_jobs==1.
  • Do not hardwire fontsize in gcpy/plot.py; get defaults from gcpy_plot_style
  • gcpy/plot.py has been split up into smaller modules in the gcpy/plot folder
  • Updated and cleaned up code in gcpy/regrid.py
  • Example scriptsplot_single_level and plot_comparisons can now accept command-line arguments
  • Example scripts plot_single_level.py, plot_comparisons.py, compare_diags.py now handle GCHP restart files properly
  • Now specify the X11 backend with by setting the MPLBACKEND environment variable

Fixed

  • Generalized test for GCHP or GCClassic restart file in regrid_restart_file.py
  • Fixed bug in transport tracer benchmark mass conservation table file write
  • Routine create_display_name now splits on only the first _ in species & diag names
  • Prevent plot panels from overlapping in six-panel plots
  • Prevent colorbar tick labels from overlapping in dynamic-range ratio plots
  • Updated seaborn plot style names to conform to the latest matplotlib
  • Set lev:positive and/or ilev:positive properly in regrid_restart_file.py and file_regrid.py
  • Prevent overwriting of lev coord in file_regrid.py at netCDF write time
  • Fixed bug in option to allow different units when making comparison plots

Removed

  • Removed gchp_is_pre_13_1 arguments & code from benchmarking routines
  • Removed is_pre_13_1 tags from *_benchmark.yml config files
  • Removed benchmark_emission_totals.ipynb, this is obsolete
  • Replaced gcpy/benchmark/README with README.md
  • Removed gcpy_test_dir option from examples/diagnostics/compare_diags.*
  • Removed docs/environment_files/gchp_regridding.yml environment file
  • Removed gcpy/gcpy/benchmark/plot_driver.sh
  • Made benchmark configuration files consistent

Pull Requests Included

  • Add C2H2 and C2H4 to emissions_species.yml by @msulprizio in #208
  • Simplify Github issue and pull request templates by @msulprizio in #209
  • Update run_benchmark.py to allow for other benchmark types by @msulprizio in #212
  • Allow for other benchmark types for GCHP plotting as well by @msulprizio in #213
  • Bump requests from 2.26.0 to 2.31.0 by @dependabot in #221
  • Optional mass accumulation table in 1-month benchmark by @lizziel in #216
  • Feature/benchmark cloud plotting templates by @laestrada in #223
  • Bug fixes in transport tracer benchmark code by @lizziel in #224
  • Remove references to gcpy_test and gchp_is_pre_13_1 from benchmarking routines and config files by @yantosca in #222
  • Remove gcpy_test YAML key from benchmark config files by @yantosca in #226
  • Shorten the filename of the benchmark operations budget table by @yantosca in #227
  • Update species database and benchmark categories for TransportTracer changes in GEOS-Chem 14.2.0 by @msulprizio in #225
  • Add capability to plot GEOS-Chem Classic and/or GCHP data vs. O3 model observations by @yantosca in #234
  • Add lumped furans to emission_species.yml and benchmark_categories.yml by @msulprizio in #235
  • Arrange models vs. observations plots from north to south by site latitude by @yantosca in #236
  • Fix formatting of mass & emission tables; add mass table option to 1-year TransportTracers benchmarks by @yantosca in #238
  • GCGridObj tools for cubed-sphere grids by @lizziel in #239
  • Fix issue where wrong GCHP grid boxes were being looked up in models vs. obs plots by @yantosca in #240
  • Now use a consistent width for columns in emissions tables and mass table output by @yantosca in #248
  • Update gcpy_env environment to install with MambaForge and to use latest package versions; Update scripts accordingly by @yantosca in #251
  • Fixed broken regridding code in file_regrid.py; Updated GCPy regridding documentation by @yantosca in #253
  • Peg xarray to version 2023.2.0 in the environment.yml file by @yantosca in #255
  • Rename PassiveTracers to TransportTracers in run_1yr_tt_benchmark.py by @msulprizio in #256
  • Update plot.py for more recent xarray; also allow dask arrays to be passed to single_panel, six_plot routines by @yantosca in #257
  • Now allow specification of the number of cores for benchmark plotting jobs by @yantosca in #246
  • Rearrange folders according to Python packaging best practices by @yantosca in #250
  • Prevent subplots from overlapping in 6-panel plots; Prevent colorbar labels from overlapping by @yantosca in #260
  • Make benchmark configuration files consistent by @msulprizio in #264
  • Fixed online regridding code (file_regrid.py) for restart-to-restart file regridding only by @yantosca in #266
  • Add GitHub actions: CodeQL, Pylint, Stale by @yantosca in #268
  • Fix several issues in file regridding; Also prevent double-flipping of vertical indices by @yantosca in #270
  • Abstract routines out of gcpy/plot.py into smaller modules within the gcpy/plot folder by @yantosca in #263
  • Fix bug preventing comparison plots of ref and dev with different units by @lizziel in #271
  • Now let user specify X11 backend with "export MPLBACKEND="tkagg" (or "MacOSX") by @yantosca in #275

Full Changelog: 1.3.3...1.4.0