Skip to content
Snippets Groups Projects
Commit 5f7be6d0 authored by 数学の武士's avatar 数学の武士
Browse files

Fix getting variable names

parent ef491687
No related branches found
No related tags found
No related merge requests found
......@@ -13,7 +13,7 @@ class Plotter:
ani_pngs_dir = "plotter_lib_pngs/"
def __init__(self):
self.ani_period = float(1/10)
self.ani_period = float(1./20.)
self.filename = None
self.out = None
self.oname = None
......@@ -116,14 +116,13 @@ class Plotter:
def __get_min_max_ax(self):
min_max_var_vals = {var : [] for var in self.var}
i = 0
for var in self.var:
max_val = self.file_data[i].data[var][0]
min_val = self.file_data[i].data[var][0]
max_val = np.nanmax(self.file_data[0].data[var])
min_val = np.nanmin(self.file_data[0].data[var])
for data in self.file_data:
maval = np.max(data.data[var])
mival = np.min(data.data[var])
maval = np.nanmax(data.data[var])
mival = np.nanmin(data.data[var])
if maval > max_val:
max_val = maval
......@@ -132,8 +131,6 @@ class Plotter:
min_max_var_vals[var] = np.array([min_val, max_val])
i += 1
max_vals = np.array([min_max_var_vals[var][1] for var in self.var])
min_vals = np.array([min_max_var_vals[var][0] for var in self.var])
......@@ -187,7 +184,7 @@ class Plotter:
for file_name in png_names:
images.append(imageio.v2.imread(file_name))
imageio.mimsave(self.oname[0], images, duration=duration, loop = 0)
imageio.mimsave(self.oname[0], images, fps = 5, loop = 0)
shutil.rmtree(self.ani_pngs_dir)
def __plot_contour(self):
......@@ -211,8 +208,6 @@ class Plotter:
min_val = {var:self.min_max_var_vals[var][0] for var in self.var}
else:
min_val = {var:self.min_y[i] for var, i in zip(self.var, list(range(len(self.var))))}
# print(min_val, max_val)
for i in range(self.fig_count):
fig,ax=plt.subplots(1,1)
......@@ -227,8 +222,13 @@ class Plotter:
Z = self.file_data[0].data[self.var[i]]
vmin = min_val[self.var[i]]; vmax = max_val[self.var[i]];
levels = np.linspace(vmin, vmax, 25)
cp = ax.contourf(X, Y, Z, vmin=vmin, vmax=vmax, levels=levels)
if self.function == self.plot_diff:
cp = ax.contourf(X, Y, Z)
else:
cp = ax.contourf(X, Y, Z, vmin=vmin, vmax=vmax, levels=levels)
# fig.colorbar(ScalarMappable(norm=cp.norm, cmap=cp.cmap),ticks=range(min_val[self.var[i]], max_val[self.var[i]]))
fig.colorbar(cp) # Add a colorbar to a plot
ax.set_title(title)
......@@ -243,14 +243,13 @@ class Plotter:
self.filename = natsort.natsorted(self.filename,reverse=False)
self.min_max_var_vals = {var : [] for var in self.var}
i = 0
for var in self.var:
max_val = self.file_data[i].data[var][0][0]
min_val = self.file_data[i].data[var][0][0]
max_val = np.nanmax(self.file_data[0].data[var])
min_val = np.nanmin(self.file_data[0].data[var])
for data in self.file_data:
maval = np.max(data.data[var])
mival = np.min(data.data[var])
maval = np.nanmax(data.data[var])
mival = np.nanmin(data.data[var])
if maval > max_val:
max_val = maval
......@@ -259,8 +258,6 @@ class Plotter:
self.min_max_var_vals[var] = np.array([min_val, max_val])
i += 1
def __ani_plot_contour(self):
if self.if_save_result:
# png_names = {var:[] for var in self.var}
......@@ -324,7 +321,7 @@ class Plotter:
for file_name in png_names:
images.append(imageio.v2.imread(file_name))
imageio.mimsave(self.out + fig_names[i] + fig_end, images, duration = duration, loop=0)
imageio.mimsave(self.out + fig_names[i] + fig_end, images, fps = 5, loop=0)
i += 1
shutil.rmtree(self.ani_pngs_dir)
......
......@@ -3,6 +3,17 @@ import os
import numpy as np
from .binSubfunctions import *
def character_indexes(string, match):
indexes_of_match = []
for index, character in enumerate(string):
if character == match:
indexes_of_match.append(index)
return indexes_of_match
def GetVariableName(string):
indexes_of_match = character_indexes(string, '"')
return string[indexes_of_match[0] + 1 : indexes_of_match[1]]
class ProcData:
def __init__(self, filename=None):
self.filename = filename
......@@ -15,7 +26,7 @@ class ProcData:
file_data = file.read().split('\n')
file.close()
names = [variable_name.replace('"' , "") for variable_name in file_data[1].split('=')[1].split(',')]
names = [GetVariableName(variable_name) for variable_name in file_data[1].split('=')[1].split(',')]
self.variable_names = np.array(names, dtype=object)
def __get_variable_names_bin(self):
......@@ -239,7 +250,6 @@ class ProcData:
values = values.T
for i in range(ndims, ndims + nvars):
print(values[:, :, :, i - ndims].shape)
self.data[self.variable_names[i]] = values[i - ndims, gcz:nz - gcz, gcy:ny - gcy, gcx:nx - gcx]
if ndims == 1:
......@@ -255,7 +265,6 @@ class ProcData:
column_names = self.var
if self.mval != None:
# print(self.mval)
for col, abs_val in zip(column_names, self.mval):
idx = np.where(np.abs(self.data[col]) > abs_val)
self.data[col][idx] = np.nan
......
......@@ -4,11 +4,11 @@ if __name__ == "__main__":
setuptools.setup(
name='plotter',
version="0.2",
install_requires=[
"numpy>=1.23.5",
"matplotlib >=3.6.2",
"natsort >=8.2.0",
"imageio >=2.22.4"],
# install_requires=[
# "numpy>=1.23.5",
# "matplotlib >=3.6.2",
# "natsort >=8.2.0",
# "imageio >=2.22.4"],
packages=setuptools.find_packages(
where='.',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment