Added sbeta_onavg + Switched to densty PDF
This commit is contained in:
@@ -367,6 +367,29 @@ class Comparator(Aggregator, HDF5Container):
|
||||
turb_power[run] = energy / dt
|
||||
return turb_power
|
||||
|
||||
def _sbeta_onavg(self):
|
||||
"""
|
||||
[ismfeed] Compute the slope of the Sigma pdf as a function of the value of beta
|
||||
"""
|
||||
col_pdf = self.get_value("/comp/avg_time_coldens_pdf_z")
|
||||
beta = self.get_value("/comp/nml_cloud_params/beta_cool")
|
||||
|
||||
slope = np.zeros(len(col_pdf["runs"]))
|
||||
origin = np.zeros(len(col_pdf["runs"]))
|
||||
stderr = np.zeros(len(col_pdf["runs"]))
|
||||
|
||||
for i, run in enumerate(col_pdf["runs"]):
|
||||
values, centers = col_pdf["mean"][i]
|
||||
mask_fit = (
|
||||
(centers > self.pp_params.pdf.xmin_fit)
|
||||
& (centers < self.pp_params.pdf.xmax_fit)
|
||||
& (values > np.max(values) * self.pp_params.pdf.fit_cut)
|
||||
)
|
||||
(slope[i], origin[i], correlation, _, stderr[i]) = linregress(
|
||||
centers[mask_fit], np.log10(values[mask_fit])
|
||||
)
|
||||
return {"beta": beta, "slope": slope, "origin": origin, "stderr": stderr}
|
||||
|
||||
def _gen_rule_time_global(
|
||||
self,
|
||||
glob_name,
|
||||
@@ -584,6 +607,15 @@ class Comparator(Aggregator, HDF5Container):
|
||||
group="/series",
|
||||
dependencies={"time": None, "fit_pdf_coldens": "z"},
|
||||
),
|
||||
"sbeta_onavg": Rule(
|
||||
self,
|
||||
partial(self._sbeta_onavg),
|
||||
group="/comp",
|
||||
dependencies={
|
||||
"avg_time_coldens_pdf": "z",
|
||||
"nml": "cloud_params/beta_cool",
|
||||
},
|
||||
),
|
||||
# namelist
|
||||
"nml": Rule(
|
||||
self,
|
||||
|
||||
Reference in New Issue
Block a user