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,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 toBinder11 +{{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 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}}