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,47 +1,184 @@ 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 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] 4 + 8 8 \\ 9 9 10 -(% style="list-style-type: square;" %) 11 -* Links Repository 12 -(% style="list-style-type: square;" %) 13 -** including Method Description? 7 +{{expand title="How to login JupyterHub"}} 14 14 9 + 10 +{{view-file att--filename="tmp.mp4" height="250"/}} 11 +{{/expand}} 12 + 15 15 \\ 16 16 17 - (% style="list-style-type: square;" %)18 - *LinkstoBinder15 +{{info}} 16 +=== Reference implementation (Python) === 19 19 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 -(% style="list-style-type: square;" %) 23 -* Screencast 25 +link to Repos and Fab 24 24 25 25 \\ 26 26 27 27 \\ 28 28 29 - Questions:31 +\\ 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? 33 +{{expand title="older ideas ..."}} 34 +\\ 42 42 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 + 43 43 \\ 44 44 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 + 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 ... ... @@ -62,14 +62,15 @@ 62 62 {{code language="py" title="moved to repository?"}} 63 63 class RunDirectory: 64 64 65 - def get_run_table(): # more or less information? RunComment | Number of Files 202 + 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 205 + def get_run(daq, run_number): # daq is not needed! 206 + 69 69 ... 70 70 71 71 72 -class Run: 210 +class Run: # constructor optional without RunDirectory or use there self.path 73 73 74 74 def get_files(): 75 75 ... ... ... @@ -82,11 +82,8 @@ 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 - def to_df(daq_map): 224 + def to_df(daq_map): # to_df(daq_map, slice) slice=[0:4] -> throw Exception 90 90 ... 91 91 92 92 def to_series(channel): ... ... @@ -101,9 +101,12 @@ 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 -## i s this interesting?239 +## interesting? 105 105 # run.to_dask(daq_map) 106 106 # run.to_xarray(daq_map) 107 107 {{/code}} 108 108 109 109 \\ 245 + 246 +\\ 247 +{{/expand}}