Source code for gamdpy.misc.extract_scalars
[docs]
def extract_scalars(data, column_list, first_block=0, D=3):
""" Extracts scalar data from simulation output.
Parameters
----------
data : dict
Output from a Simulation object.
column_list : list of str
first_block : int
Index of the first timeblock to extract data from.
D : int
Dimension of the simulation.
Returns
-------
tuple
Tuple of 1D numpy arrays containing the extracted scalar data.
Example
-------
>>> import numpy as np
>>> import gamdpy as gp
>>> sim = gp.get_default_sim() # Replace with your simulation object
>>> for block in sim.run_timeblocks(): pass
>>> U, W = gp.extract_scalars(sim.output, ['U', 'W'], first_block=1)
"""
# Indices hardcoded for now (see scalar_calculator above)
column_indices = {}
try:
scalar_names = data['scalars'].attrs['scalar_columns']
except KeyError:
# try the old label
print("Data file uses old format (meta data labelled 'scalars_names' rather than 'scalar_columns'); at some point suport for this format will be removed.")
scalar_names = data.attrs['scalars_names']
for index, name in enumerate(scalar_names):
column_indices[name] = index
output_list = []
for column in column_list:
output_list.append(data['scalars/scalars'][first_block:,:,column_indices[column]].flatten())
return tuple(output_list)