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

From version 19.1
edited by cpassow
on 2022-04-04 11:58
Change comment: There is no comment for this version
To version 50.1
edited by makuadm
on 2026-01-07 03:06
Change comment: Task [xwiki:FLASHUSER.Offline data analysis (DAQ).DEMO - Working with FLASH data.Tasks.Task_25.WebHome] has been updated!

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -DEMO - Documentation
1 +DEMO - Working with FLASH data
Parent
... ... @@ -1,0 +1,1 @@
1 +FLASHUSER.Offline data analysis (DAQ).WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.cpassow
1 +XWiki.makuadm
Content
... ... @@ -1,47 +1,93 @@
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:FS-FLASH USER tmp.Data Acquisition and controls 1.DAQ and controls overview.Offline data analysis (DAQ).The FLASH HDF5 structure.WebHome]] on the GPFS file system[[~[link~]>>https://docs.desy.de/asap3/]]. 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 -\\
3 +{{info title="How to login JupyterHub"}}
4 +=== ===
9 9  
10 -(% style="list-style-type: square;" %)
11 -* Links Repository
12 -(% style="list-style-type: square;" %)
13 -** including Method Description?
6 +{{view-file att--filename="tmp.mp4" height="150"/}}
7 +{{/info}}
14 14  
15 -\\
9 +{{info}}
10 +=== There are different options that help you to work with the FLASH HDF5 data in Python ===
16 16  
17 -(% style="list-style-type: square;" %)
18 -* Links to Binder
12 +* The currently developed option for large data sets: [[the FAB package>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]] ... see below
13 +* 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"]]
19 19  
20 -\\
15 +(% class="Object" %)See also the collection of Demo data and sample scripts : [[doc:FS-FLASH USER tmp.Data Acquisition and controls 1.DAQ and controls overview.Offline data analysis (DAQ).Collection of HDF5 sample data from different beamlines.WebHome]]
16 +{{/info}}
21 21  
22 -(% style="list-style-type: square;" %)
23 -* Screencast
24 24  
25 -\\
19 +[[~[~[image:attach:image2023-9-29_11-1-37.png~]~]>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]]
26 26  
27 -\\
21 +{{expand title="older ideas ..."}}
22 +(% class="Object" %)(object oriented) [[https:~~/~~/gitlab.desy.de/christopher.passow/fdh-builder>>url:https://gitlab.desy.de/christopher.passow/fdh-builder.git||shape="rect"]]
28 28  
29 -Questions:
24 +----
30 30  
31 -(% style="list-style-type: square;" %)
32 -* for whom
33 -* where Maxwell / local / extern
34 -* distribution\\
35 -(% style="list-style-type: square;" %)
36 -** channel?
37 -(% style="list-style-type: square;" %)
38 -*** where official hosted (DESY, privat, conda-forge)
39 -** enviroment?
40 -(% style="list-style-type: square;" %)
41 -*** via files / already created?
26 +=== TODO ===
42 42  
43 -\\
28 +(% class="task-list" %)
29 +(((
30 +{{task reference="/Tasks/Task_18" status="InProgress" completeDate="" createDate="2026-01-06" reporter=""}}
31 +Short descriptions including Links:   → as Text
32 +\\
33 +{{/task}}
34 +)))
44 44  
36 +
37 +(% class="task-list" %)
38 +(((
39 +{{task reference="/Tasks/Task_22" status="InProgress"}}
40 +distribution
41 +
42 +(% class="task-list" %)
43 +(((
44 +
45 +
46 +{{task reference="/Tasks/Task_23" status="InProgress" completeDate="" createDate="2026-01-06" reporter=""}}
47 +channel  (where to host?)
48 +{{/task}}
49 +
50 +{{task reference="/Tasks/Task_24" status="InProgress"}}
51 +environment file (repository with examples)
52 +{{/task}}
53 +)))
54 +{{/task}}
55 +)))
56 +
57 +
58 +(% class="task-list" %)
59 +(((
60 +{{task reference="/Tasks/Task_25" status="InProgress" completeDate="" createDate="2026-01-07" reporter=""}}
61 +Documentation
62 +\\
63 +{{/task}}
64 +)))
65 +
66 +
67 +(% class="task-list" %)
68 +(((
69 +{{task reference="/Tasks/Task_27" status="InProgress" completeDate="" createDate="2026-01-07" reporter=""}}
70 +Binder
71 +\\
72 +{{/task}}
73 +)))
74 +
75 +
76 +(% class="task-list" %)
77 +(((
78 +{{task reference="/Tasks/Task_29" status="InProgress" completeDate="" createDate="2026-01-07" reporter=""}}
79 +Screencast
80 +\\
81 +{{/task}}
82 +)))
83 +
84 +
85 +
86 +----
87 +
88 +==== under review ====
89 +
90 +
45 45  {{code language="bash"}}
46 46  conda create -n flashh5 python=3.10 # 3.10 not necessary, but would prefer 3.8 or higher
47 47  source activate flashh5
... ... @@ -57,19 +57,19 @@
57 57  ## delete from: /home/$USER/.local/share/jupyter/kernels/
58 58  {{/code}}
59 59  
60 -\\
61 -
62 -{{code language="py" title="moved to repository?"}}
106 +{{code language="py" title="
107 +moved to repository?"}}
63 63  class RunDirectory:
64 64  
65 - def get_run_table(): # more or less information? RunComment | Number of Files
110 + def get_run_table(): # more or less information? RunComment | Number of Files | start & stop time ?
66 66   ...
67 67  
68 - def get_run(daq, run_number): # daq is not needed
113 + def get_run(daq, run_number): # daq is not needed!
114 +
69 69   ...
70 70  
71 71  
72 -class Run:
118 +class Run: # constructor optional without RunDirectory or use there self.path
73 73  
74 74   def get_files():
75 75   ...
... ... @@ -82,9 +82,6 @@
82 82  
83 83   def get_stop_time(): # which? | better as attribute?
84 84   ...
85 -
86 -### for following methods to restrict number of files or separate method
87 -### e.g. create_df(files)
88 88  
89 89   def to_df(daq_map): # to_df(daq_map, slice) slice=[0:4] -> throw Exception
90 90   ...
... ... @@ -101,9 +101,11 @@
101 101  run.to_series(daq_adr or daq_map) # on channel only?
102 102  run.to_array(daq_adr) # on channel only?
103 103  
104 -## is this interesting?
147 +## interesting?
105 105  # run.to_dask(daq_map)
106 106  # run.to_xarray(daq_map)
107 107  {{/code}}
108 108  
109 -\\
152 +
153 +
154 +{{/expand}}
image2023-9-29_11-0-13.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.rangeadm
Size
... ... @@ -1,0 +1,1 @@
1 +123.1 KB
Content
image2023-9-29_11-1-37.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.rangeadm
Size
... ... @@ -1,0 +1,1 @@
1 +90.4 KB
Content
tmp.mp4
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.rangeadm
Size
... ... @@ -1,0 +1,1 @@
1 +1.1 MB
Content