correct bugs
This commit is contained in:
+45
-38
@@ -137,39 +137,47 @@ class Comparator(Aggregator, HDF5Container):
|
||||
return np.array(prop)
|
||||
|
||||
def _time_avg(self, name, start=None, end=None, span=None, group="/series"):
|
||||
mean = np.zeros(len(self.runs))
|
||||
median = np.zeros(len(self.runs))
|
||||
std = np.zeros(len(self.runs))
|
||||
v_min = np.zeros(len(self.runs))
|
||||
v_max = np.zeros(len(self.runs))
|
||||
q975 = np.zeros(len(self.runs))
|
||||
q025 = np.zeros(len(self.runs))
|
||||
q16 = np.zeros(len(self.runs))
|
||||
q84 = np.zeros(len(self.runs))
|
||||
serie0 = self.save.get_node(group + "/" + name + "/" + self.runs[0]).read()
|
||||
if len(serie0.shape) > 1:
|
||||
shape = [len(self.runs)] + list(serie0.shape[1:])
|
||||
else:
|
||||
shape = len(self.runs)
|
||||
mean = np.zeros(shape)
|
||||
median = np.zeros(shape)
|
||||
std = np.zeros(shape)
|
||||
v_min = np.zeros(shape)
|
||||
v_max = np.zeros(shape)
|
||||
q975 = np.zeros(shape)
|
||||
q025 = np.zeros(shape)
|
||||
q16 = np.zeros(shape)
|
||||
q84 = np.zeros(shape)
|
||||
|
||||
for i, run in enumerate(self.runs):
|
||||
serie = self.save.get_node(group + "/" + name + "/" + run).read()
|
||||
time = self.save.get_node(group + "/time/" + run).read()
|
||||
mask = abs(serie) != np.inf
|
||||
if len(serie.shape) <= 1:
|
||||
mask = abs(serie) != np.inf
|
||||
|
||||
if not ((start, end, span) == (None, None, None)):
|
||||
start_r, end_r = start, end
|
||||
# Be sure that start_r and end_r are defined
|
||||
if end_r is None:
|
||||
if span is None or start_r is None:
|
||||
end_r = time[-1]
|
||||
else:
|
||||
end_r = start_r + span
|
||||
if start_r is None:
|
||||
if span is None:
|
||||
start_r = time[0]
|
||||
else:
|
||||
start_r = end_r - span
|
||||
if not ((start, end, span) == (None, None, None)):
|
||||
start_r, end_r = start, end
|
||||
# Be sure that start_r and end_r are defined
|
||||
if end_r is None:
|
||||
if span is None or start_r is None:
|
||||
end_r = time[-1]
|
||||
else:
|
||||
end_r = start_r + span
|
||||
if start_r is None:
|
||||
if span is None:
|
||||
start_r = time[0]
|
||||
else:
|
||||
start_r = end_r - span
|
||||
mask = (
|
||||
mask & (time >= start_r) & (time <= end_r) & np.isfinite(serie)
|
||||
)
|
||||
serie = serie[mask]
|
||||
|
||||
mask = mask & (time >= start_r) & (time <= end_r) & np.isfinite(serie)
|
||||
|
||||
mean[i] = np.mean(serie[mask], axis=0)
|
||||
std[i] = np.std(serie[mask], axis=0)
|
||||
mean[i] = np.mean(serie, axis=0)
|
||||
std[i] = np.std(serie, axis=0)
|
||||
(
|
||||
v_min[i],
|
||||
q025[i],
|
||||
@@ -178,7 +186,7 @@ class Comparator(Aggregator, HDF5Container):
|
||||
q84[i],
|
||||
q975[i],
|
||||
v_max[i],
|
||||
) = np.percentile(serie[mask], [0, 2.5, 16, 50, 84, 97.5, 100], axis=0)
|
||||
) = np.percentile(serie, [0, 2.5, 16, 50, 84, 97.5, 100], axis=0)
|
||||
return {
|
||||
"runs": self.runs,
|
||||
"mean": mean,
|
||||
@@ -403,16 +411,6 @@ class Comparator(Aggregator, HDF5Container):
|
||||
"q16": "16 percentile of {}".format(descr),
|
||||
"q84": "84 percentile of {}".format(descr),
|
||||
}
|
||||
|
||||
# units={
|
||||
# "runs": cst.none,
|
||||
# "mean": unit,
|
||||
# "std": unit,
|
||||
# "median": unit,
|
||||
# "max": unit,
|
||||
# "min": unit,
|
||||
# "q025": unit,
|
||||
# "q975": unit}
|
||||
units = unit
|
||||
|
||||
if name is None:
|
||||
@@ -528,6 +526,14 @@ class Comparator(Aggregator, HDF5Container):
|
||||
group="/series",
|
||||
dependencies={"time": None, "rho_prof": "__parent__"},
|
||||
),
|
||||
"time_coldens_pdf": Rule(
|
||||
self,
|
||||
partial(
|
||||
self._time_series, partial(self.get_pp_value, "/hist/pdf_coldens")
|
||||
),
|
||||
group="/series",
|
||||
dependencies={"time": None, "pdf_coldens": "__parent__"},
|
||||
),
|
||||
"time_pdf_slope_coldens": Rule(
|
||||
self,
|
||||
partial(
|
||||
@@ -560,6 +566,7 @@ class Comparator(Aggregator, HDF5Container):
|
||||
"time_pdf_slope_coldens",
|
||||
"turb_power",
|
||||
"time_rho_prof",
|
||||
"time_coldens_pdf",
|
||||
]:
|
||||
self._gen_rule_avg(name)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user