Changes for page DEMO - Working with FLASH data
Last modified by makuadm on 2026-01-07 06:21
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -DEMO - Documentation1 +DEMO - Working with FLASH data - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. cpassow1 +XWiki.sndueste - Content
-
... ... @@ -1,27 +1,247 @@ 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] 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. 7 7 8 -(% style="list-style-type: square;" %) 9 -* Links Repository 10 -(% style="list-style-type: square;" %) 11 -** including Method Description 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] 12 12 13 13 \\ 14 14 15 -(% style="list-style-type: square;" %) 16 -* Links to Binder 7 +{{expand title="How to login JupyterHub"}} 17 17 9 + 10 +{{view-file att--filename="tmp.mp4" height="250"/}} 11 +{{/expand}} 12 + 18 18 \\ 19 19 15 +{{info}} 16 +=== Reference implementation (Python) === 17 + 18 +(imperative) (% class="Object" %)[[https:~~/~~/gitlab.desy.de/christopher.passow/flash-daq-hdf>>url:https://gitlab.desy.de/christopher.passow/flash-daq-hdf||shape="rect"]] 19 + 20 +(% class="Object" %)(object oriented) [[https:~~/~~/gitlab.desy.de/christopher.passow/fdh-builder>>url:https://gitlab.desy.de/christopher.passow/fdh-builder.git||shape="rect"]] 21 + 20 20 \\ 23 +{{/info}} 21 21 22 - Questions:25 +link to Repos and Fab 23 23 24 -(% style="list-style-type: square;" %) 25 -* for whom 26 -* where Maxwell / local / extern 27 -* distribution 27 +\\ 28 + 29 +\\ 30 + 31 +\\ 32 + 33 +{{expand title="older ideas ..."}} 34 +\\ 35 + 36 +---- 37 + 38 +=== TODO === 39 + 40 +(% class="task-list" %) 41 +((( 42 +{{task reference="/Tasks/Task_18" status="InProgress"}} 43 +Short descriptions including Links: → as Text\\ 44 + 45 +(% class="task-list" %) 46 +((( 47 + 48 + 49 +{{task reference="/Tasks/Task_19" status="InProgress"}} 50 +GPFS 51 +{{/task}} 52 + 53 +{{task reference="/Tasks/Task_40" status="InProgress"}} 54 +Access rights 55 +{{/task}} 56 + 57 +{{task reference="/Tasks/Task_41" status="InProgress"}} 58 +Gamma Portal 59 +{{/task}} 60 + 61 +{{task reference="/Tasks/Task_42" status="InProgress"}} 62 +Maxwell 63 +{{/task}} 64 + 65 +{{task reference="/Tasks/Task_20" status="InProgress"}} 66 +JupyterHub 67 +{{/task}} 68 + 69 +{{task reference="/Tasks/Task_21" status="InProgress"}} 70 +conda ? 71 +{{/task}} 72 + 73 +{{task reference="/Tasks/Task_36" status="InProgress"}} 74 +explain install from channel instead of fixed environment, but can use environment file from example repository 75 +{{/task}} 76 +))) 77 +{{/task}} 78 +))) 79 + 80 +\\ 81 + 82 +(% class="task-list" %) 83 +((( 84 +{{task reference="/Tasks/Task_22" status="InProgress"}} 85 +distribution 86 + 87 +(% class="task-list" %) 88 +((( 89 + 90 + 91 +{{task reference="/Tasks/Task_23" status="InProgress"}} 92 +channel (where to host?) 93 +{{/task}} 94 + 95 +{{task reference="/Tasks/Task_24" status="InProgress"}} 96 +environment file (repository with examples) 97 +{{/task}} 98 +))) 99 +{{/task}} 100 +))) 101 + 102 +\\ 103 + 104 +(% class="task-list" %) 105 +((( 106 +{{task reference="/Tasks/Task_25" status="InProgress"}} 107 +Documentation 108 + 109 +(% class="task-list" %) 110 +((( 111 + 112 + 113 +{{task reference="/Tasks/Task_26" status="InProgress"}} 114 +here VS repository VS sphinx 115 +{{/task}} 116 +))) 117 +{{/task}} 118 +))) 119 + 120 +\\ 121 + 122 +(% class="task-list" %) 123 +((( 124 +{{task reference="/Tasks/Task_27" status="InProgress"}} 125 +Binder 126 + 127 +(% class="task-list" %) 128 +((( 129 + 130 + 131 +{{task reference="/Tasks/Task_28" status="InProgress"}} 132 +examples with Stefan 133 +{{/task}} 134 +))) 135 +{{/task}} 136 +))) 137 + 138 +\\ 139 + 140 +(% class="task-list" %) 141 +((( 142 +{{task reference="/Tasks/Task_29" status="InProgress"}} 143 +Screencast 144 + 145 +(% class="task-list" %) 146 +((( 147 + 148 + 149 +{{task reference="/Tasks/Task_30" status="InProgress"}} 150 +login in jupyter hub 151 +{{/task}} 152 + 153 +{{task reference="/Tasks/Task_31" status="InProgress"}} 154 +login maxwell display 155 +{{/task}} 156 + 157 +{{task reference="/Tasks/Task_32" status="InProgress"}} 158 +use slix 159 +{{/task}} 160 + 161 +{{task reference="/Tasks/Task_33" status="InProgress"}} 162 +use hdfview plugin in jupterLab 163 +{{/task}} 164 + 165 +{{task reference="/Tasks/Task_34" status="InProgress"}} 166 +create conda env with flashh5 167 +{{/task}} 168 +))) 169 +{{/task}} 170 +))) 171 + 172 +\\ 173 + 174 +\\ 175 + 176 +---- 177 + 178 +==== under review ==== 179 + 180 +\\ 181 + 182 +{{code language="bash"}} 183 +conda create -n flashh5 python=3.10 # 3.10 not necessary, but would prefer 3.8 or higher 184 +source activate flashh5 185 +conda install ipython numpy pandas #TODO: fix dependcies 186 +conda install -c https://www.desy.de/~cpassow/condarepo/ flashh5 187 + 188 +## on jhub 189 +conda install ipykernel 190 +python -m ipykernel install --user --name flashh5 --display-name "flashh5" 191 + 192 + 193 +## to remove on jhub 194 +## delete from: /home/$USER/.local/share/jupyter/kernels/ 195 +{{/code}} 196 + 197 +\\ 198 + 199 +{{code language="py" title="moved to repository?"}} 200 +class RunDirectory: 201 + 202 + def get_run_table(): # more or less information? RunComment | Number of Files | start & stop time ? 203 + ... 204 + 205 + def get_run(daq, run_number): # daq is not needed! 206 + 207 + ... 208 + 209 + 210 +class Run: # constructor optional without RunDirectory or use there self.path 211 + 212 + def get_files(): 213 + ... 214 + 215 + def get_channels(): # of file #1 216 + ... 217 + 218 + def get_start_time(): # better as attribute? 219 + ... 220 + 221 + def get_stop_time(): # which? | better as attribute? 222 + ... 223 + 224 + def to_df(daq_map): # to_df(daq_map, slice) slice=[0:4] -> throw Exception 225 + ... 226 + 227 + def to_series(channel): 228 + ... 229 + 230 + def to_array(channel): 231 + ... 232 +{{/code}} 233 + 234 +{{code language="py" title="ideas"}} 235 +run.to_df(daq_map) 236 +run.to_series(daq_adr or daq_map) # on channel only? 237 +run.to_array(daq_adr) # on channel only? 238 + 239 +## interesting? 240 +# run.to_dask(daq_map) 241 +# run.to_xarray(daq_map) 242 +{{/code}} 243 + 244 +\\ 245 + 246 +\\ 247 +{{/expand}}