Compare commits

..

No commits in common. "45e616b39f0ff4bbcdcd7e8f7d904861801f6180" and "a186f629d81247841eebd4ede202402b7481a86d" have entirely different histories.

3 changed files with 10 additions and 28 deletions

View file

@ -50,8 +50,3 @@ class Series(dict):
if sign is intersection:
return v1, pair[0]
def nearest(self, key):
k = sorted(self.keys(), key=lambda k: abs(k-key))[0]
return self[k]

View file

@ -260,7 +260,7 @@ class SkewTGraph():
if self.opts.draw_cape_mixing_ratio:
cr.set_source_rgb(0.8, 0.8, 1.0)
self.draw_series(cr, x, y, params.mixing_ratio_line)
self.draw_series(cr, x, y, params.saturated_mr_line)
def draw(self,
cr: cairo.Context,

View file

@ -10,7 +10,6 @@ from xmet.thermo import follow_dry_adiabat, \
follow_moist_adiabat, \
follow_saturated_mixing_ratio, \
pressure_height, \
virtual_temp, \
kelvin
LAPSE_RATE_DRY = 9.8 # degrees C per 1000m
@ -234,31 +233,19 @@ class SoundingParams():
return 9.8076 * cape
def load_sounding(self, sounding: Sounding):
surface = sounding.samples[0]
temp_line = sounding.follow_temp()
dry_adiabat = follow_dry_adiabat(sounding.samples[0].temp,
sounding.samples[0].pressure)
tv = virtual_temp(surface.temp,
surface.dewpoint,
surface.pressure)
saturated_mr_line = follow_saturated_mixing_ratio(sounding.samples[0].dewpoint,
sounding.samples[0].pressure)
temp_line = sounding.follow_temp()
dewpoint_line = sounding.follow_dewpoint()
dry_adiabat = follow_dry_adiabat(tv, surface.pressure)
lcl = dry_adiabat.intersect(saturated_mr_line, SeriesIntersection.LESSER)
mixing_ratio_line = follow_saturated_mixing_ratio(surface.dewpoint,
surface.pressure)
lcl = dry_adiabat.intersect(mixing_ratio_line,
SeriesIntersection.LESSER)
tv2 = virtual_temp(temp_line.nearest(lcl[1]),
dewpoint_line.nearest(lcl[1]),
lcl[1])
moist_adiabat = follow_moist_adiabat(tv2, lcl[1])
moist_adiabat = follow_moist_adiabat(*lcl)
lfc = temp_line.intersect(moist_adiabat, SeriesIntersection.LESSER)
el = temp_line.intersect(moist_adiabat, SeriesIntersection.GREATER,
lfc[1])
el = temp_line.intersect(moist_adiabat, SeriesIntersection.GREATER, lfc[1]-100)
self.lcl = lcl
self.lfc = lfc
@ -267,7 +254,7 @@ class SoundingParams():
self.temp_line = temp_line
self.dry_adiabat = dry_adiabat
self.mixing_ratio_line = mixing_ratio_line
self.saturated_mr_line = saturated_mr_line
self.moist_adiabat = moist_adiabat
@staticmethod