Reading simulated data in HDF5 formats

[1]:
from liso import open_sim
[2]:
sim = open_sim("../../../examples/astra_scan/s0001")

sim.info()
# of simulations:      12

Control channels (4):
  -  gun/gun_gradient
  -  gun/gun_phase
  -  gun/tws_gradient
  -  gun/tws_phase

Phasespace channels (1):
  -  gun/out

Obtain general information

[3]:
sim.sim_ids
[3]:
array([ 2,  1,  4,  3,  5,  6,  7,  8,  9, 10, 11, 12], dtype=uint64)
[4]:
sim.control_channels
[4]:
frozenset({'gun/gun_gradient',
           'gun/gun_phase',
           'gun/tws_gradient',
           'gun/tws_phase'})
[5]:
sim.phasespace_channels
[5]:
frozenset({'gun/out'})

Access a single simulation result

[6]:
# From index
sid, data = sim.from_index(2)
assert sid == sim.sim_ids[2]

data
[6]:
{'gun/tws_phase': -90.168686,
 'gun/gun_phase': -9.759125,
 'gun/gun_gradient': 126.57121,
 'gun/tws_gradient': 28.701859,
 'gun/out': <liso.proc.phasespace.Phasespace at 0x7f1751afef90>}
[7]:
# From simulation ID
sid, data = sim.from_id(1)
assert sid == 1

Access channel data

Control channel

[8]:
gun_gradient_channel = sim.channel("gun/gun_gradient")
[9]:
# convert the channel data to numpy array
gun_gradient_channel.numpy()
[9]:
array([119.89723 , 119.79218 , 126.57121 , 120.25057 , 126.629486,
       126.602135, 133.48413 , 133.60179 , 133.207   , 140.03694 ,
       140.05751 , 139.79796 ], dtype=float32)

Phasespace channel

[10]:
out_x_channel = sim.channel("gun/out", 'x')
[11]:
# convert the channel data to numpy array
out_x_channel.numpy()
[11]:
array([[[ 1.28036786e-08,  9.88629741e-05, -1.06629905e-04, ...,
          6.15140007e-05, -3.26903398e-04, -5.39911480e-04]],

       [[ 7.09292839e-09,  5.10445742e-05, -6.85575333e-05, ...,
          1.10543007e-04, -2.00049388e-04, -4.14134403e-04]],

       [[ 1.39342955e-08,  8.27889731e-05, -9.48883950e-05, ...,
          1.15470304e-04, -2.57691407e-04, -5.11017904e-04]],

       ...,

       [[ 2.86095269e-08,  1.35965724e-04, -1.26268681e-04, ...,
          1.38502748e-04, -3.13041940e-04, -6.31381217e-04]],

       [[ 4.12047741e-08,  2.01677470e-04, -1.68134351e-04, ...,
          8.12973208e-05, -4.59484021e-04, -7.80738915e-04]],

       [[ 4.75849888e-08,  2.49665821e-04, -1.96608664e-04, ...,
          2.58773940e-05, -5.91125733e-04, -8.81490778e-04]]])