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