Releases: csyhuang/hn2016_falwa
Release v0.7.0: encapsulated calculations from Neal et al (2022)
Major changes in user interface
- Encapsulated the latitudinal boundary conditions and inversion algorithm used in Neal et al (2022, GRL) to
QGFieldNHN22
. The existing algorithm from Nakamura and Huang (2018, Science) is encapsulated inQGFieldNH18
. CurrentQGField
class is equivalent toQGFieldNH18
(for backward compatibility). These classes are also available in the xarray interfaceQGDataset
(Thanks Christopher Polster!). - Updated interfaces of F2PY modules to remove redundant arguments. Please recompile F2PY modules following instructions from README.md.
- Significant improvement in Documentation. In particular, with the use of
nbsphinx
, jupyter notebook examples are now available in the documentation. Great thanks to Christopher Polster for the enhancement. - All jupyter notebook examples are fixed. Notebook examples are available for both
QGFieldNH18
andQGFieldNHN22
. They can be run with the sample data available in Dropbox folder (See Quick start in readme.md for details). - Added new unit tests which enhance test coverage.
Migration guide from v0.6.x -> 0.7.0
- Now
northern_hemisphere_results_only
becomes an input argument forQGField
. Please initialize this when creatingQGField
object and remove this argument from the methods (compute_reference_states
andcompute_lwa_and_barotropic_fluxes
). eq_boundary_index
is now an input arguemnt merely forQGFieldNHN22
, but notQGFieldNH18
. Remove it if you are usingQGField
/QGFieldNH18
. You can refer to the jupyter notebook examples for the updated usage.
Release 0.6.6 - graph plot fix for GRL corrigendum
This minor release include a fix in graph plot procedure scripts/nhn_grl2022/graph_plot_module.py
- the plotting script for the residual plot is fixed such that it produces the same plot on different machines.
Release 0.6.5 - setup.py fixes
This is a minor release that fixes the issues with setup.py
that cannot locate the compiled fortran modules. Thanks @chpolste for fixing this!
The archive on PyPI has also been also fixed in v0.6.5.
Release 0.6.4 - meridional flux correction
This release includes the fix for the calculation of meridional flux component. See the correction note for details. The corrigendum on Neal et al 2022, GRL corresponds to this release.
The main change in the calculation can be found in this commit: 38d95f6
Please remove all the compiled fortran modules on your machine and git pull
the newest version of fortran codes for installation (python setup.py develop
).
Resolution-dependent bugfix
There were resolution-dependent procedures which worked with the (360x181) grid we used for NHN2022, GRL. This bugfix enables the new inversion routine to take data of other grid sizes.
Release 0.6.1 - Xarray interface to implement QGField methods
Major update:
- Thanks Christopher Polster @chpolste for developing an xarray interface for the QGField object using the SOR solver to compute reference state as documented in Nakamura and Huang (2018, Science).
- Sample code that use this interface:
examples/nh2018_science/demo_script_for_nh2018_with_xarray.ipynb
- Please refer to the corresponding xarray interface documentation page for details.
- Sample code that use this interface:
Minor update:
- Added
.gitignore
for this repo - Fix documentation display on readthedocs.io
- Fortran code files are now moved to
hn2016_falwa/f90_modules/
such that the compiled.so
modules are located inhn2016_falwa/
- Cleaned up f2py modules and remove unused variables
Code change
Detailed change in the code can be viewed on this GitHub commit comparison page:
https://github.com/csyhuang/hn2016_falwa/compare/44fabe7..a656062
Release for publishing analysis code on Zenodo for GRL submission
There is an enhancement in the algorithm computing reference state in this release. In the past, and also
the analysis in NH18 Science, we used equator as the latitudinal boundary. In this current version of the script
(release 0.6.0), we use absolute vorticity at 5°N as boundary condition such that the solution is no longer sensitive
to fields at the equator, which improves the quality of the analysis.
The analysis code to reproduce results in Neal et al. "The 2021 Pacific Northwest heat wave and associated blocking: Meteorology and the role of an upstream cyclone as a diabatic source of wave activity" (submitted to GRL) can be found in the directory scripts/nhn_grl2022/
.
Fortran module optimization, package restructured and additional unit tests
- Great thanks to @chpolste for pull request #36 that optimizes the fortran code that computes LWA and fluxes. To incorporate the changes made, after pulling the changes, please re-compile the f2py modules. One way of doing this is:
$ python setup.py develop -u
$ git pull
$ python setup.py develop
- The module
hn2016_falwa/download_data.py
, which downloads ERA-Interim data, has been removed. - The module
hn2016_falwa/beta_version.py
has been moved to thelegacy/
folder. This module is no longer maintained, and will be deprecated in the upcoming release. - Added one unit test for the class
BarotropicField
. - Instead of using Travis CI, now deployment test and code coverage test are implemented using GitHub workflow.
close #37
Bug fix in BarotropicField and include procedures to handle masked array
There are two fixes in this release:
- The bugs in the class BarotropicField is fixed. Thanks @chpolste for the pull request.
- Now
QGField
can handle masked arrays without raising an error. It converts masked array to numpy array with thefill_value
stored in the masked array.
Calculations for Southern Hemisphere available now!
Enhancement in functionality
- The computation of LWA, reference state and vertically averaged fluxes in the Southern Hemisphere is now available in the
QGField
class! - The computed variables can be accessed via the QGField class without calling any methods, e.g. the 3D wave activity can be retrieved from the QGField object
qgfield
byqgfield.lwa
. See documentation/example for all the attributes. - Added more sanity checks for the inputs of
QGField
.
Other changes
- The documentation page is fixed and now available at http://csyhuang.github.io/hn2016_falwa.
- Added test data and increase unit test coverage for
QGField
.