[plotter] [postprocessor] make particles scatter actually work
This commit is contained in:
+4
-3
@@ -695,9 +695,10 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
"""
|
||||
|
||||
# Open particle HDF5 file
|
||||
filename = self.save.get_node("/hdf5/particles").read()
|
||||
hdf5_parts = tables.open(filename, "r")
|
||||
filename = self.save.get_node("/hdf5/particles").read()[0].decode()
|
||||
hdf5_parts = tables.open_file(filename, "r")
|
||||
part_pos = hdf5_parts.get_node("/data/pos").read()
|
||||
hdf5_parts.close()
|
||||
|
||||
# index of the horizontal axis
|
||||
ih = self._ax_nb[self._axes_h[ax_los]]
|
||||
@@ -713,7 +714,7 @@ class Plotter(Aggregator, BaseProcessor):
|
||||
part_v = im_extent[2] + (im_extent[3] - im_extent[2]) * part_v
|
||||
|
||||
# Scatter plot
|
||||
plt.scatter(part_h, part_v)
|
||||
plt.scatter(part_h, part_v, **kwargs)
|
||||
|
||||
def _overlay_speed(
|
||||
self, ax_los, im_extent, unit=U.km_s, unit_coeff=1.0, key_v=None, **kwargs
|
||||
|
||||
+9
-5
@@ -183,6 +183,7 @@ class PostProcessor(HDF5Container):
|
||||
G = 1.0 # Gravitational constant
|
||||
|
||||
cells_loaded = False
|
||||
parts_loaded = False
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -241,7 +242,7 @@ class PostProcessor(HDF5Container):
|
||||
verbose=self.pp_params.pymses.verbose,
|
||||
)
|
||||
self._amr = self._ro.amr_source(self.pp_params.pymses.variables)
|
||||
self._part = self._ro.part_source(["vel", "mass"])
|
||||
self._part = self._ro.particle_source(["vel", "mass"])
|
||||
|
||||
if self.pp_params.pymses.filter:
|
||||
self.min_coords = np.array(self.pp_params.pymses.min_coords)
|
||||
@@ -358,14 +359,14 @@ class PostProcessor(HDF5Container):
|
||||
Load data from the source file in the memory.
|
||||
(Long and memory heavy)
|
||||
"""
|
||||
if not self.part_loaded:
|
||||
if not self.parts_loaded:
|
||||
if os.path.exists(filename):
|
||||
hdf5 = tables.open_file(filename, mode="r")
|
||||
try:
|
||||
node = hdf5.get_node("/data")
|
||||
data = {}
|
||||
for key in node._v_children:
|
||||
self.part[key] = hdf5.get_node("/data/" + key).read()
|
||||
data[key] = hdf5.get_node("/data/" + key).read()
|
||||
finally:
|
||||
hdf5.close()
|
||||
else:
|
||||
@@ -373,7 +374,10 @@ class PostProcessor(HDF5Container):
|
||||
data = {}
|
||||
for key in data_pymses.fields:
|
||||
data[key] = data_pymses[key]
|
||||
data["dx"] = data_pymses.get_sizes()
|
||||
try:
|
||||
data["dx"] = data_pymses.get_sizes()
|
||||
except AttributeError:
|
||||
pass
|
||||
data["pos"] = data_pymses.points
|
||||
|
||||
if save:
|
||||
@@ -1164,7 +1168,7 @@ class PostProcessor(HDF5Container):
|
||||
"""Ensure particles are written in the hdf5 file"""
|
||||
self.load_parts()
|
||||
self.unload_parts()
|
||||
return self.parts_filename
|
||||
return np.array([self.parts_filename])
|
||||
|
||||
def _filaments(self):
|
||||
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ process: # General setting of the post-processor module
|
||||
verbose : False # Give more infos on what is going on
|
||||
num_process : 1 # Number of forks
|
||||
save_cells : True # Save cells structure on disk
|
||||
save_particles : True # Save particles on disk
|
||||
save_parts : True # Save particles on disk
|
||||
unload_cells : True # Save memory usage
|
||||
|
||||
rules: # Specific rules parameters
|
||||
|
||||
Reference in New Issue
Block a user