Commit graph

491 commits

Author SHA1 Message Date
f69daea4ac Remove unneeded imports 2025-03-09 16:47:24 -04:00
698a7d34c8 Simplify 2025-03-09 16:45:31 -04:00
d777934a6f Use same gravitational force across codebase 2025-03-09 16:14:55 -04:00
362ee0a2f4 Do not compute lapse on first height 2025-03-09 16:14:20 -04:00
cae2cb0b3f Ensure gravitational force is applied to CAPE 2025-03-09 15:22:25 -04:00
bb9b2e2dbf Remove unnecessary parens 2025-03-09 15:22:10 -04:00
25540d0ef7 Initial implementation of CAPE calculation
Initial implementation of CAPE calculation; need to fix EL calculation
to achieve valid results
2025-03-09 14:40:38 -04:00
00f623f5ae Move neighbor calculation to neighbors() 2025-03-09 13:43:17 -04:00
e5f00ee85f Move parameter derivation to SoundingParameters 2025-03-09 13:29:01 -04:00
5b33653dcf Move cmp() to SeriesIntersection 2025-03-09 13:16:25 -04:00
c1f85adeec Slight whitespace fix 2025-03-09 12:38:02 -04:00
6faef30524 Redo Sounding.find_el() with Series.intersect() 2025-03-09 12:36:14 -04:00
68880816ac Allow Series.intersect() to have start value 2025-03-09 12:36:00 -04:00
c2f17fa139 Drop Sounding.find_lfc() for Series.intersect() 2025-03-09 12:18:40 -04:00
2edea01934 Redo Sounding.find_lcl() with Series.intersect() 2025-03-09 12:16:34 -04:00
74678d6a32 Redo Sounding.find_el() with Series.intersect() 2025-03-09 12:15:24 -04:00
830425980d Only follow temperature line once 2025-03-09 12:08:50 -04:00
5f55060b09 Iterate over 1.0mb pressure increments 2025-03-09 12:02:42 -04:00
38c1a48e01 Explicitly specify manner of intersection 2025-03-09 11:58:09 -04:00
ebae24b38e Implement finding equilibrium level
Other changes:

* Rework Series.intersect() to return a tuple containing temperature,
  pressure

* Rework other methods returning Series to return a tuple containing
  temperature, pressure
2025-03-08 22:39:41 -05:00
30a8e15bf6 Neurotic alignment 2025-03-08 21:45:26 -05:00
06d5658c73 Allow specifying pressure increments following saturated mixing ratio line 2025-03-08 21:33:32 -05:00
36d4d17da2 Add docstrings to Series derivations 2025-03-08 14:36:46 -05:00
53ea99803e Move parameter derivation to sounding.py 2025-03-08 12:03:07 -05:00
50cdf4052d Move thermo series functions to thermo.py 2025-03-08 12:00:02 -05:00
9be71c7e44 Do not hardcode pressure steps 2025-03-08 11:58:41 -05:00
b3eeeab4d7 Initial implementation of Series in series.py 2025-03-08 11:55:33 -05:00
5894fb5d68 Initial implementation of derived LCL and LFC params 2025-03-07 20:46:13 -05:00
d431f36989 Implement cmp() in util.py 2025-03-07 18:41:14 -05:00
9de6ac0d56 Fix docstring 2025-03-07 14:50:05 -05:00
944bae9303 Constants alignment on decimal 2025-03-07 14:39:43 -05:00
7c9af22d51 Implement mixing_ratio_temp() 2025-03-07 13:58:58 -05:00
8b8cfb3add Slight improvements in docstrings 2025-03-07 11:43:32 -05:00
5d1a2bbe54 Implement nearest() in list.py 2025-03-06 09:40:44 -05:00
e18ca9be1f Remove useless cairo.stroke() after show_text() 2025-03-06 09:18:04 -05:00
ac2e17e61f Remove implicit dewpoint argument 2025-03-05 16:30:19 -05:00
c0ed20cce5 Reimplement draw_adiabat() with loft_parcel() 2025-03-05 16:13:50 -05:00
59f261aeee Implement loft_parcel()
Implement loft_parcel() to iterate through pressure levels, yielding the
temperature and pressure of the parcel at each height
2025-03-05 16:06:11 -05:00
796257194b Make draw_adiabat() take fn to find lapsse rate 2025-03-05 13:48:08 -05:00
ff18a8821a Ensure adiabats terminate at minimum pressure 2025-03-05 11:09:18 -05:00
9af9bd2b51 Color moist adiabats differently 2025-03-05 09:12:57 -05:00
5a22a5fd37 Use saturated mixing ratio in moist lapse rate 2025-03-05 01:13:28 -05:00
6bb92a45b8 Adjust units in mixing ratios to kilograms 2025-03-05 01:13:07 -05:00
bc9a2977a5 Initial implementation of moist adiabat plotting (it sucks) 2025-03-05 00:35:21 -05:00
fe4b980ac9 Fix typos in vapor pressure routines 2025-03-05 00:34:56 -05:00
0aad130001 Initial implementation of moist_lapse_rate() 2025-03-05 00:34:23 -05:00
b45a6f27c5 Allow providing lapse rate argument 2025-03-04 23:21:18 -05:00
929e6b4351 Hardcode lapse() to perform dry lapse 2025-03-04 22:57:01 -05:00
706a1cf41e Implement rendering of dry adiabats 2025-03-04 21:52:00 -05:00
56c1dc608e Fix lapse() calculation 2025-03-04 21:49:34 -05:00