Wiki source code of DEMO - Working with FLASH data

Version 39.1 by sndueste on 2023-09-29 11:23

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