Last modified by makuadm on 2026-01-07 06:21

From version 3.1
edited by cpassow
on 2022-04-04 08:10
Change comment: There is no comment for this version
To version 39.1
edited by sndueste
on 2023-09-29 11:23
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -DEMO - Documentation
1 +DEMO - Working with FLASH data
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.cpassow
1 +XWiki.sndueste
Content
... ... @@ -1,32 +1,240 @@
1 -(% style="list-style-type: square;" %)
2 -* Short descriptions including Links:
3 -(% style="list-style-type: square;" %)
4 -** GPFS
5 -** JupyterHub
6 -** conda ?
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.
7 7  
8 -(% style="list-style-type: square;" %)
9 -* Links Repository
10 -(% style="list-style-type: square;" %)
11 -** including Method Description
3 +{{info title="How to login JupyterHub"}}
4 +=== ===
12 12  
6 +{{view-file att--filename="tmp.mp4" height="150"/}}
7 +{{/info}}
8 +
13 13  \\
14 14  
15 -(% style="list-style-type: square;" %)
16 -* Links to Binder
11 +{{info}}
12 +=== There are different options that help you to work with the FLASH HDF5 data in Python ===
17 17  
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"]]
16 +
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]]
18 +{{/info}}
19 +
18 18  \\
19 19  
22 +[[~[~[image:attach:image2023-9-29_11-1-37.png~]~]>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]]
23 +
20 20  \\
21 21  
22 -Questions:
26 +{{expand title="older ideas ..."}}
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"]]
23 23  
24 -(% style="list-style-type: square;" %)
25 -* for whom
26 -* where Maxwell / local / extern
27 -* distribution\\
28 -(% style="list-style-type: square;" %)
29 -** channel?
30 -(% style="list-style-type: square;" %)
31 -*** where official hosted (DESY, privat, conda-forge)
32 -** enviroment?
29 +----
30 +
31 +=== TODO ===
32 +
33 +(% class="task-list" %)
34 +(((
35 +{{task reference="/Tasks/Task_18" status="InProgress"}}
36 +Short descriptions including Links:   → as Text\\
37 +
38 +(% class="task-list" %)
39 +(((
40 +
41 +
42 +{{task reference="/Tasks/Task_19" status="InProgress"}}
43 +GPFS
44 +{{/task}}
45 +
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 +
58 +{{task reference="/Tasks/Task_20" status="InProgress"}}
59 +JupyterHub
60 +{{/task}}
61 +
62 +{{task reference="/Tasks/Task_21" status="InProgress"}}
63 +conda ?
64 +{{/task}}
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}}
69 +)))
70 +{{/task}}
71 +)))
72 +
73 +\\
74 +
75 +(% class="task-list" %)
76 +(((
77 +{{task reference="/Tasks/Task_22" status="InProgress"}}
78 +distribution
79 +
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 +
95 +\\
96 +
97 +(% class="task-list" %)
98 +(((
99 +{{task reference="/Tasks/Task_25" status="InProgress"}}
100 +Documentation
101 +
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 +
113 +\\
114 +
115 +(% class="task-list" %)
116 +(((
117 +{{task reference="/Tasks/Task_27" status="InProgress"}}
118 +Binder
119 +
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 +
131 +\\
132 +
133 +(% class="task-list" %)
134 +(((
135 +{{task reference="/Tasks/Task_29" status="InProgress"}}
136 +Screencast
137 +
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 +
165 +\\
166 +
167 +\\
168 +
169 +----
170 +
171 +==== under review ====
172 +
173 +\\
174 +
175 +{{code language="bash"}}
176 +conda create -n flashh5 python=3.10 # 3.10 not necessary, but would prefer 3.8 or higher
177 +source activate flashh5
178 +conda install ipython numpy pandas #TODO: fix dependcies
179 +conda install -c https://www.desy.de/~cpassow/condarepo/ flashh5
180 +
181 +## on jhub
182 +conda install ipykernel
183 +python -m ipykernel install --user --name flashh5 --display-name "flashh5"
184 +
185 +
186 +## to remove on jhub
187 +## delete from: /home/$USER/.local/share/jupyter/kernels/
188 +{{/code}}
189 +
190 +\\
191 +
192 +{{code language="py" title="moved to repository?"}}
193 +class RunDirectory:
194 +
195 + def get_run_table(): # more or less information? RunComment | Number of Files | start & stop time ?
196 + ...
197 +
198 + def get_run(daq, run_number): # daq is not needed!
199 +
200 + ...
201 +
202 +
203 +class Run: # constructor optional without RunDirectory or use there self.path
204 +
205 + def get_files():
206 + ...
207 +
208 + def get_channels(): # of file #1
209 + ...
210 +
211 + def get_start_time(): # better as attribute?
212 + ...
213 +
214 + def get_stop_time(): # which? | better as attribute?
215 + ...
216 +
217 + def to_df(daq_map): # to_df(daq_map, slice) slice=[0:4] -> throw Exception
218 + ...
219 +
220 + def to_series(channel):
221 + ...
222 +
223 + def to_array(channel):
224 + ...
225 +{{/code}}
226 +
227 +{{code language="py" title="ideas"}}
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?
231 +
232 +## interesting?
233 +# run.to_dask(daq_map)
234 +# run.to_xarray(daq_map)
235 +{{/code}}
236 +
237 +\\
238 +
239 +\\
240 +{{/expand}}