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