Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternative calculations #142

Open
nguy opened this issue Apr 22, 2016 · 4 comments
Open

Alternative calculations #142

nguy opened this issue Apr 22, 2016 · 4 comments
Labels
Area: Calc Pertains to calculations Subarea: Thermo Pertains to thermodynamic calculations and their physical correctness Type: Enhancement Enhancement to existing functionality

Comments

@nguy
Copy link

nguy commented Apr 22, 2016

Without opening a can of worms, are the developers open to alternative calculations (i.e. non-Bolton). For example allowing the user to choose water or ice for saturation vapor pressure calculation?

@dopplershift
Copy link
Member

Open to it, absolutely. I don't think it can be done without opening a can of worms, but this seems like stuff that's general and therefore within scope.

Do you have a list in mind? Because it'd be useful to list a bunch to see how it would make sense to proceed.

@nguy
Copy link
Author

nguy commented May 12, 2016

The proposed list is below. Feel free to nix any/all.

Some of these are implementations of Univ. Wyo sounding page calculations, which in some cases use GEMPAK calculations are far as I'm aware. @oolman can comment on this maybe?

thermo.py

  • lcl_temperature(height, temp, dewpoint) - Uses lowest 500 m average for initialization
  • lcl_pressure(height, pressure, temp, dewpoint) - Uses lowest 500 m average for initialization
  • lcl_height(height, pressure, temp, dewpoint) - Uses lowest 500 m average for initialization
  • saturation_vapor_pressure that uses user directed latent heating term or chooses based on temperature
  • mixing_ratio(rh, pressure, temp), (Mw_e)/(Md_(p-e)) = Mw/Md * ((e*1000.)/(p-e)) - latent heating term selectable
  • equivalent_potential_temperature - AMS Glossary, modified Durran and Klemp 1982
  • relative_humidity(temp, dewpoint)
  • virtual_temperature(temp, mixing_ratio) - could also employ mixing_ratio variables by using potential temperature in place of temp, could also produce virtual potential temperature

kinematics.py

  • 0-1, 0-3, 0-6 km vertical_shear(height, u, v) - Weismann and Klemp (1982, MWR)
  • shallow, mid, deep shear calculations from Lucas et al. (2000, JAS)

@dopplershift dopplershift added the Type: Enhancement Enhancement to existing functionality label May 23, 2016
@dopplershift dopplershift added the Area: Calc Pertains to calculations label Jul 31, 2016
@deeplycloudy
Copy link
Collaborator

While we're talking non-Bolton formulations, there is an extensive list of saturation vapor pressure formulations with respect to water and ice at http://cires1.colorado.edu/~voemel/vp.html - including IDL source for each formula at the bottom of the page. As the page notes, these can be important when dealing with outputs from certain instruments that assume certain formulations. And the WMO standard is Goff-Gratch, not Bolton, though of course Bolton is widely used.

There are ~infinite refinements we could undertake - Pruppacher and Klett also give formulae for the temperature dependence of the specific heats of each water phase, which in turn impact the latent heating value and other calculations. A choice of smart defaults useful for self-consistent calculations at a high level seems like a good idea.

For theta-e and friends, George Bryan (2008, On the Computation of Pseudoadiabatic Entropy and Equivalent Potential Temperature, MWR) has a optimized, self-consistent set of equations for theta-E with a constant Lv.

@dopplershift dopplershift modified the milestone: Winter 2017 Mar 10, 2017
@jrleeman jrleeman removed this from the 0.7 milestone Nov 15, 2017
@deeplycloudy deeplycloudy added the Subarea: Thermo Pertains to thermodynamic calculations and their physical correctness label Aug 21, 2020
@deeplycloudy
Copy link
Collaborator

As part of work on a class project by @Janfisch, @mlasel and @jcssouza, an extensive inter-comparison of saturation vapor pressure calculations has been completed. It include expressions over both water and ice, drawn from both theoretical and empirical fits, and plots comparisons to known laboratory data. Please see the notebook at their repository for a detailed discussion and recommendations. They note that their discussion also touches on #1469 and #508.

@wam-salley and @michaelanand01 were also undertook a similar class project and implemented a couple options for saturation vapor pressure over water. I’ve asked them to revise the implementation in their notebook to clarify whether their implementation of Huang is for SVP over ice or water, to include some percentage error plots. Note there is an accompanying notebook with the narrative discussion accompanying the Huang implementation and plots.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Calc Pertains to calculations Subarea: Thermo Pertains to thermodynamic calculations and their physical correctness Type: Enhancement Enhancement to existing functionality
Projects
None yet
Development

No branches or pull requests

4 participants