[plotter] read label from file
This commit is contained in:
+19
-15
@@ -330,7 +330,7 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
|
||||
# Find plot save
|
||||
if from_cells or rule.kind == "cells":
|
||||
if not os.exists(self.pp[run][num].cells_filename):
|
||||
if not os.path.exists(self.pp[run][num].cells_filename):
|
||||
self.pp[run][num].load_cells()
|
||||
self.pp[run][num].unload_cells()
|
||||
save = tables.open_file(self.pp[run][num].cells_filename)
|
||||
@@ -435,7 +435,7 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
ext=self.pp_params.out.ext,
|
||||
)
|
||||
|
||||
def _label_run(self, run, node, label, nml_key, time=None):
|
||||
def get_label_run(self, run, label=None, nml_key=None, time=None):
|
||||
"""
|
||||
Set up a label for the run from the namelist and parameters
|
||||
"""
|
||||
@@ -446,7 +446,7 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
prop_label = self.label_convert[prop_name]
|
||||
else:
|
||||
prop_label = prop_name
|
||||
prop_value = self.comp.get_nml(nml_key, run)
|
||||
prop_value = self.study.get_nml(nml_key, run)
|
||||
if prop_name in self.value_convert:
|
||||
prop_value_str = self.value_convert[prop_name](prop_value)
|
||||
elif type(prop_value) in [int, float]:
|
||||
@@ -455,14 +455,18 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
prop_value_str = str(prop_value)
|
||||
return r"{} = {}".format(prop_label, prop_value_str)
|
||||
|
||||
if nml_key is None and label is None:
|
||||
if (
|
||||
"attrs" in self.save.root._v_attrs
|
||||
and run in self.save.root._v_attrs.attrs
|
||||
):
|
||||
label_run = r"{}".format(self.save.root._v_attrs.attrs[run].label)
|
||||
def get_label_file(run):
|
||||
label_filename = f"{self.path}/{run}/{self.pp_params.input.label_filename}"
|
||||
if os.path.exists(label_filename):
|
||||
with open(label_filename, "r") as label_file:
|
||||
label = label_file.readline()[:-1]
|
||||
label_file.close()
|
||||
else:
|
||||
label_run = run
|
||||
label = run
|
||||
return label
|
||||
|
||||
if nml_key is None and label is None:
|
||||
label_run = get_label_file(run)
|
||||
elif nml_key is not None:
|
||||
if not type(nml_key) == list:
|
||||
nml_key = [nml_key]
|
||||
@@ -506,8 +510,8 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
|
||||
return label, unit_old, unit
|
||||
|
||||
def _snapshot_title(self, run, node, title, nml_key, put_time, unit_time=U.Myr):
|
||||
title = self._label_run(run, node, title, nml_key)
|
||||
def snapshot_title(self, run, title, nml_key, put_time, unit_time=U.Myr):
|
||||
title = self.get_label_run(run, title, nml_key)
|
||||
|
||||
if put_time:
|
||||
time = self.save.root._v_attrs.time * self.comp.info["unit_time"]
|
||||
@@ -607,7 +611,7 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
cbar = plt.colorbar()
|
||||
|
||||
if put_title:
|
||||
title = self._snapshot_title(run, node, title, nml_key, put_time, unit_time)
|
||||
title = self.snapshot_title(run, title, nml_key, put_time, unit_time)
|
||||
plt.title(title)
|
||||
|
||||
if label is not None:
|
||||
@@ -908,7 +912,7 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
width = centers[1] - centers[0]
|
||||
|
||||
# Set title
|
||||
title = self._snapshot_title(run, node, title, nml_key, put_time, unit_time)
|
||||
title = self.snapshot_title(run, title, nml_key, put_time, unit_time)
|
||||
if put_title:
|
||||
plt.title(title)
|
||||
if label is None:
|
||||
@@ -1108,7 +1112,7 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
if smooth > 0:
|
||||
y = gaussian_filter1d(y, sigma=smooth)
|
||||
if run is not None:
|
||||
label = self._label_run(run, node_y, label, nml_key)
|
||||
label = self.get_label_run(run, label, nml_key)
|
||||
|
||||
# Look if special colors method is used
|
||||
if colors is None:
|
||||
|
||||
Reference in New Issue
Block a user