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

From version 10.1
edited by cpassow
on 2022-04-04 09:33
Change comment: There is no comment for this version
To version 38.1
edited by sndueste
on 2023-09-29 11:15
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,42 +1,176 @@
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  
3 +{{info title="How to login JupyterHub"}}
4 +=== ===
5 +
6 +{{view-file att--filename="tmp.mp4" height="150"/}}
7 +{{/info}}
8 +
8 8  \\
9 9  
10 -(% style="list-style-type: square;" %)
11 -* Links Repository
12 -(% style="list-style-type: square;" %)
13 -** including Method Description?
11 +{{info}}
12 +=== There are different options that help you to work with the FLASH HDF5 data in Python ===
14 14  
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 +
16 +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"]]
17 +{{/info}}
18 +
15 15  \\
16 16  
17 -(% style="list-style-type: square;" %)
18 -* Links to Binder
21 +[[~[~[image:attach:image2023-9-29_11-1-37.png~]~]>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]]
19 19  
20 20  \\
21 21  
25 +{{expand title="older ideas ..."}}
26 +(% class="Object" %)(object oriented) [[https:~~/~~/gitlab.desy.de/christopher.passow/fdh-builder>>url:https://gitlab.desy.de/christopher.passow/fdh-builder.git||shape="rect"]]
27 +
28 +----
29 +
30 +=== TODO ===
31 +
32 +(% class="task-list" %)
33 +(((
34 +{{task reference="/Tasks/Task_18" status="InProgress"}}
35 +Short descriptions including Links:   → as Text\\
36 +
37 +(% class="task-list" %)
38 +(((
39 +
40 +
41 +{{task reference="/Tasks/Task_19" status="InProgress"}}
42 +GPFS
43 +{{/task}}
44 +
45 +{{task reference="/Tasks/Task_40" status="InProgress"}}
46 +Access rights
47 +{{/task}}
48 +
49 +{{task reference="/Tasks/Task_41" status="InProgress"}}
50 +Gamma Portal
51 +{{/task}}
52 +
53 +{{task reference="/Tasks/Task_42" status="InProgress"}}
54 +Maxwell
55 +{{/task}}
56 +
57 +{{task reference="/Tasks/Task_20" status="InProgress"}}
58 +JupyterHub
59 +{{/task}}
60 +
61 +{{task reference="/Tasks/Task_21" status="InProgress"}}
62 +conda ?
63 +{{/task}}
64 +
65 +{{task reference="/Tasks/Task_36" status="InProgress"}}
66 +explain install from channel instead of fixed environment, but can use environment file from example repository
67 +{{/task}}
68 +)))
69 +{{/task}}
70 +)))
71 +
22 22  \\
23 23  
24 -Questions:
74 +(% class="task-list" %)
75 +(((
76 +{{task reference="/Tasks/Task_22" status="InProgress"}}
77 +distribution
25 25  
26 -(% style="list-style-type: square;" %)
27 -* for whom
28 -* where Maxwell / local / extern
29 -* distribution\\
30 -(% style="list-style-type: square;" %)
31 -** channel?
32 -(% style="list-style-type: square;" %)
33 -*** where official hosted (DESY, privat, conda-forge)
34 -** enviroment?
35 -(% style="list-style-type: square;" %)
36 -*** via files / already created?
79 +(% class="task-list" %)
80 +(((
81 +
37 37  
83 +{{task reference="/Tasks/Task_23" status="InProgress"}}
84 +channel  (where to host?)
85 +{{/task}}
86 +
87 +{{task reference="/Tasks/Task_24" status="InProgress"}}
88 +environment file (repository with examples)
89 +{{/task}}
90 +)))
91 +{{/task}}
92 +)))
93 +
38 38  \\
39 39  
96 +(% class="task-list" %)
97 +(((
98 +{{task reference="/Tasks/Task_25" status="InProgress"}}
99 +Documentation
100 +
101 +(% class="task-list" %)
102 +(((
103 +
104 +
105 +{{task reference="/Tasks/Task_26" status="InProgress"}}
106 +here VS repository VS sphinx
107 +{{/task}}
108 +)))
109 +{{/task}}
110 +)))
111 +
112 +\\
113 +
114 +(% class="task-list" %)
115 +(((
116 +{{task reference="/Tasks/Task_27" status="InProgress"}}
117 +Binder
118 +
119 +(% class="task-list" %)
120 +(((
121 +
122 +
123 +{{task reference="/Tasks/Task_28" status="InProgress"}}
124 +examples with Stefan
125 +{{/task}}
126 +)))
127 +{{/task}}
128 +)))
129 +
130 +\\
131 +
132 +(% class="task-list" %)
133 +(((
134 +{{task reference="/Tasks/Task_29" status="InProgress"}}
135 +Screencast
136 +
137 +(% class="task-list" %)
138 +(((
139 +
140 +
141 +{{task reference="/Tasks/Task_30" status="InProgress"}}
142 +login in jupyter hub
143 +{{/task}}
144 +
145 +{{task reference="/Tasks/Task_31" status="InProgress"}}
146 +login maxwell display
147 +{{/task}}
148 +
149 +{{task reference="/Tasks/Task_32" status="InProgress"}}
150 +use slix
151 +{{/task}}
152 +
153 +{{task reference="/Tasks/Task_33" status="InProgress"}}
154 +use hdfview plugin in jupterLab
155 +{{/task}}
156 +
157 +{{task reference="/Tasks/Task_34" status="InProgress"}}
158 +create conda env with flashh5
159 +{{/task}}
160 +)))
161 +{{/task}}
162 +)))
163 +
164 +\\
165 +
166 +\\
167 +
168 +----
169 +
170 +==== under review ====
171 +
172 +\\
173 +
40 40  {{code language="bash"}}
41 41  conda create -n flashh5 python=3.10 # 3.10 not necessary, but would prefer 3.8 or higher
42 42  source activate flashh5
... ... @@ -44,31 +44,33 @@
44 44  conda install -c https://www.desy.de/~cpassow/condarepo/ flashh5
45 45  
46 46  ## on jhub
181 +conda install ipykernel
47 47  python -m ipykernel install --user --name flashh5 --display-name "flashh5"
48 48  
49 49  
185 +## to remove on jhub
186 +## delete from: /home/$USER/.local/share/jupyter/kernels/
50 50  {{/code}}
51 51  
52 52  \\
53 53  
54 -\\
55 -
56 56  {{code language="py" title="moved to repository?"}}
57 57  class RunDirectory:
58 58  
59 - def get_run_table():
194 + def get_run_table(): # more or less information? RunComment | Number of Files | start & stop time ?
60 60   ...
61 61  
62 - def get_run(daq, run_number):
197 + def get_run(daq, run_number): # daq is not needed!
198 +
63 63   ...
64 64  
65 65  
66 -class Run:
202 +class Run: # constructor optional without RunDirectory or use there self.path
67 67  
68 68   def get_files():
69 69   ...
70 70  
71 - def get_channels(): # of file #1?
207 + def get_channels(): # of file #1
72 72   ...
73 73  
74 74   def get_start_time(): # better as attribute?
... ... @@ -76,8 +76,8 @@
76 76  
77 77   def get_stop_time(): # which? | better as attribute?
78 78   ...
79 -
80 - def to_df(daq_map):
215 +
216 + def to_df(daq_map): # to_df(daq_map, slice) slice=[0:4] -> throw Exception
81 81   ...
82 82  
83 83   def to_series(channel):
... ... @@ -92,9 +92,12 @@
92 92  run.to_series(daq_adr or daq_map) # on channel only?
93 93  run.to_array(daq_adr) # on channel only?
94 94  
95 -## is this interesting?
231 +## interesting?
96 96  # run.to_dask(daq_map)
97 97  # run.to_xarray(daq_map)
98 98  {{/code}}
99 99  
100 100  \\
237 +
238 +\\
239 +{{/expand}}