Wiki source code of DEMO - Working with FLASH data

Version 36.1 by sndueste on 2023-09-29 11:07

Hide last authors
cpassow 29.1 1 Experimental data is recorded as HDF files[link] on the GPFS file system[link]. The access rights[link to ACLs] are linked to the user's DESY account and can be managed by the PI via the GAMMA portal[link]. The experimental data can be downloaded via the GAMMA portal, but it is advised to use the DESY computing infrastructure. Access point are via ssh[link], Maxwell-Display Server[link] or JuyterHub[link]. We recommmend using the JupyterHub for data exploration and the SLURM resources[link] for high performances computing.
cpassow 21.1 2
cpassow 29.1 3 For simplified acccess we provide a conda module flashh5[link] which can be installed in a personal conda environment[link] on the Maxwell Cluster. Example on the usage can be found here [link - repo + binder]
4
cpassow 26.1 5 \\
6
sndueste 33.1 7 {{expand title="How to login JupyterHub"}}
cpassow 26.1 8
9
10 {{view-file att--filename="tmp.mp4" height="250"/}}
11 {{/expand}}
12
13 \\
14
sndueste 36.1 15 \\
16
sndueste 35.1 17 {{info}}
sndueste 36.1 18 === There are different options that help you to work with the FLASH HDF5 data in Python ===
sndueste 35.1 19
sndueste 36.1 20 The currently developed option for large data sets: [[the FAB package>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]] ... see below
sndueste 35.1 21
sndueste 36.1 22 and for smaller projects:  (% class="Object" %)[[https:~~/~~/gitlab.desy.de/christopher.passow/flash-daq-hdf>>url:https://gitlab.desy.de/christopher.passow/flash-daq-hdf||shape="rect"]]
sndueste 35.1 23 {{/info}}
24
cpassow 26.1 25 \\
26
sndueste 36.1 27 [[~[~[image:attach:image2023-9-29_11-1-37.png~]~]>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]]
sndueste 33.1 28
29 \\
30
sndueste 34.1 31 {{expand title="older ideas ..."}}
sndueste 36.1 32 (% class="Object" %)(object oriented) [[https:~~/~~/gitlab.desy.de/christopher.passow/fdh-builder>>url:https://gitlab.desy.de/christopher.passow/fdh-builder.git||shape="rect"]]
sndueste 33.1 33
cpassow 21.1 34 ----
35
36 === TODO ===
37
cpassow 22.1 38 (% class="task-list" %)
39 (((
40 {{task reference="/Tasks/Task_18" status="InProgress"}}
41 Short descriptions including Links:   → as Text\\
cpassow 2.1 42
cpassow 22.1 43 (% class="task-list" %)
44 (((
45
46
47 {{task reference="/Tasks/Task_19" status="InProgress"}}
48 GPFS
49 {{/task}}
50
cpassow 27.1 51 {{task reference="/Tasks/Task_40" status="InProgress"}}
52 Access rights
53 {{/task}}
54
55 {{task reference="/Tasks/Task_41" status="InProgress"}}
56 Gamma Portal
57 {{/task}}
58
59 {{task reference="/Tasks/Task_42" status="InProgress"}}
60 Maxwell
61 {{/task}}
62
sndueste 32.1 63 {{task reference="/Tasks/Task_20" status="InProgress"}}
cpassow 22.1 64 JupyterHub
65 {{/task}}
66
67 {{task reference="/Tasks/Task_21" status="InProgress"}}
68 conda ?
69 {{/task}}
cpassow 23.1 70
71 {{task reference="/Tasks/Task_36" status="InProgress"}}
72 explain install from channel instead of fixed environment, but can use environment file from example repository
73 {{/task}}
cpassow 22.1 74 )))
75 {{/task}}
76 )))
77
cpassow 8.1 78 \\
79
cpassow 22.1 80 (% class="task-list" %)
81 (((
82 {{task reference="/Tasks/Task_22" status="InProgress"}}
83 distribution
cpassow 21.1 84
cpassow 22.1 85 (% class="task-list" %)
86 (((
87
88
89 {{task reference="/Tasks/Task_23" status="InProgress"}}
90 channel  (where to host?)
91 {{/task}}
92
93 {{task reference="/Tasks/Task_24" status="InProgress"}}
94 environment file (repository with examples)
95 {{/task}}
96 )))
97 {{/task}}
98 )))
99
cpassow 21.1 100 \\
101
cpassow 22.1 102 (% class="task-list" %)
103 (((
104 {{task reference="/Tasks/Task_25" status="InProgress"}}
105 Documentation
cpassow 2.1 106
cpassow 22.1 107 (% class="task-list" %)
108 (((
109
110
111 {{task reference="/Tasks/Task_26" status="InProgress"}}
112 here VS repository VS sphinx
113 {{/task}}
114 )))
115 {{/task}}
116 )))
117
cpassow 2.1 118 \\
119
cpassow 22.1 120 (% class="task-list" %)
121 (((
122 {{task reference="/Tasks/Task_27" status="InProgress"}}
123 Binder
cpassow 2.1 124
cpassow 22.1 125 (% class="task-list" %)
126 (((
127
128
129 {{task reference="/Tasks/Task_28" status="InProgress"}}
130 examples with Stefan
131 {{/task}}
132 )))
133 {{/task}}
134 )))
135
cpassow 2.1 136 \\
137
cpassow 22.1 138 (% class="task-list" %)
139 (((
140 {{task reference="/Tasks/Task_29" status="InProgress"}}
141 Screencast
cpassow 15.1 142
cpassow 22.1 143 (% class="task-list" %)
144 (((
145
146
147 {{task reference="/Tasks/Task_30" status="InProgress"}}
148 login in jupyter hub
149 {{/task}}
150
151 {{task reference="/Tasks/Task_31" status="InProgress"}}
152 login maxwell display
153 {{/task}}
154
155 {{task reference="/Tasks/Task_32" status="InProgress"}}
156 use slix
157 {{/task}}
158
159 {{task reference="/Tasks/Task_33" status="InProgress"}}
160 use hdfview plugin in jupterLab
161 {{/task}}
162
163 {{task reference="/Tasks/Task_34" status="InProgress"}}
164 create conda env with flashh5
165 {{/task}}
166 )))
167 {{/task}}
168 )))
169
cpassow 2.1 170 \\
171
cpassow 15.1 172 \\
173
cpassow 21.1 174 ----
cpassow 2.1 175
cpassow 21.1 176 ==== under review ====
cpassow 4.1 177
178 \\
179
cpassow 8.1 180 {{code language="bash"}}
cpassow 9.1 181 conda create -n flashh5 python=3.10 # 3.10 not necessary, but would prefer 3.8 or higher
cpassow 8.1 182 source activate flashh5
cpassow 10.1 183 conda install ipython numpy pandas #TODO: fix dependcies
cpassow 8.1 184 conda install -c https://www.desy.de/~cpassow/condarepo/ flashh5
185
186 ## on jhub
cpassow 11.1 187 conda install ipykernel
cpassow 8.1 188 python -m ipykernel install --user --name flashh5 --display-name "flashh5"
189
190
cpassow 11.1 191 ## to remove on jhub
192 ## delete from: /home/$USER/.local/share/jupyter/kernels/
cpassow 8.1 193 {{/code}}
194
195 \\
196
cpassow 6.1 197 {{code language="py" title="moved to repository?"}}
cpassow 4.1 198 class RunDirectory:
199
cpassow 21.1 200 def get_run_table(): # more or less information? RunComment | Number of Files | start & stop time ?
cpassow 4.1 201 ...
202
cpassow 21.1 203 def get_run(daq, run_number): # daq is not needed!
204
cpassow 4.1 205 ...
206
207
cpassow 25.1 208 class Run: # constructor optional without RunDirectory or use there self.path
cpassow 4.1 209
cpassow 7.1 210 def get_files():
cpassow 4.1 211 ...
212
cpassow 18.1 213 def get_channels(): # of file #1
cpassow 4.1 214 ...
215
cpassow 8.1 216 def get_start_time(): # better as attribute?
cpassow 4.1 217 ...
218
cpassow 8.1 219 def get_stop_time(): # which? | better as attribute?
cpassow 4.1 220 ...
cpassow 12.1 221
cpassow 19.1 222 def to_df(daq_map): # to_df(daq_map, slice) slice=[0:4] -> throw Exception
cpassow 4.1 223 ...
224
cpassow 7.1 225 def to_series(channel):
cpassow 4.1 226 ...
227
cpassow 7.1 228 def to_array(channel):
cpassow 4.1 229 ...
230 {{/code}}
231
cpassow 6.1 232 {{code language="py" title="ideas"}}
cpassow 10.1 233 run.to_df(daq_map)
234 run.to_series(daq_adr or daq_map) # on channel only?
235 run.to_array(daq_adr) # on channel only?
cpassow 5.1 236
cpassow 21.1 237 ## interesting?
cpassow 10.1 238 # run.to_dask(daq_map)
239 # run.to_xarray(daq_map)
cpassow 5.1 240 {{/code}}
241
cpassow 4.1 242 \\
cpassow 30.1 243
244 \\
sndueste 33.1 245 {{/expand}}