Changes for page DEMO - Working with FLASH data
Last modified by makuadm on 2026-01-07 06:21
Summary
-
Page properties (4 modified, 0 added, 0 removed)
-
Attachments (0 modified, 3 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -DEMO - Documentation1 +DEMO - Working with FLASH data - Parent
-
... ... @@ -1,0 +1,1 @@ 1 +FLASHUSER.Offline data analysis (DAQ).WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. cpassow1 +XWiki.makuadm - Content
-
... ... @@ -1,65 +1,135 @@ 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:FS-FLASH USER tmp.Data Acquisition and controls 1.DAQ and controls overview.Offline data analysis (DAQ).The FLASH HDF5 structure.WebHome]] on the GPFS file system[[~[link~]>>https://docs.desy.de/asap3/]]. 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 13 -\\ 6 +{{view-file att--filename="tmp.mp4" height="150"/}} 7 +{{/info}} 14 14 15 - (% style="list-style-type: square;" %)16 - *Links toBinder9 +{{info}} 10 +=== There are different options that help you to work with the FLASH HDF5 data in Python === 17 17 18 -\\ 12 +* The currently developed option for large data sets: [[the FAB package>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]] ... see below 13 +* 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"]] 19 19 20 -\\ 15 +(% class="Object" %)See also the collection of Demo data and sample scripts : [[doc:FS-FLASH USER tmp.Data Acquisition and controls 1.DAQ and controls overview.Offline data analysis (DAQ).Collection of HDF5 sample data from different beamlines.WebHome]] 16 +{{/info}} 21 21 22 -Questions: 23 23 24 -(% style="list-style-type: square;" %) 25 -* for whom 26 -* where Maxwell / local / extern 27 -* distribution\\ 28 -(% style="list-style-type: square;" %) 29 -** channel? 30 -(% style="list-style-type: square;" %) 31 -*** where official hosted (DESY, privat, conda-forge) 32 -** enviroment? 33 -(% style="list-style-type: square;" %) 34 -*** via files / already created? 19 +[[~[~[image:attach:image2023-9-29_11-1-37.png~]~]>>url:https://hasfcpkg.desy.de/fab/fab.html||shape="rect"]] 35 35 36 -\\ 21 +{{expand title="older ideas ..."}} 22 +(% class="Object" %)(object oriented) [[https:~~/~~/gitlab.desy.de/christopher.passow/fdh-builder>>url:https://gitlab.desy.de/christopher.passow/fdh-builder.git||shape="rect"]] 37 37 38 -{{code language="py" title="moved to repository?"}} 24 +---- 25 + 26 +=== TODO === 27 + 28 +(% class="task-list" %) 29 +((( 30 +{{task reference="/Tasks/Task_18" status="InProgress" completeDate="" createDate="2026-01-06" reporter=""}} 31 +Short descriptions including Links: → as Text 32 +\\ 33 +{{/task}} 34 +))) 35 + 36 + 37 +(% class="task-list" %) 38 +((( 39 +{{task reference="/Tasks/Task_22" status="InProgress"}} 40 +distribution 41 + 42 +(% class="task-list" %) 43 +((( 44 + 45 + 46 +{{task reference="/Tasks/Task_23" status="InProgress" completeDate="" createDate="2026-01-06" reporter=""}} 47 +channel (where to host?) 48 +{{/task}} 49 + 50 +{{task reference="/Tasks/Task_24" status="InProgress"}} 51 +environment file (repository with examples) 52 +{{/task}} 53 +))) 54 +{{/task}} 55 +))) 56 + 57 + 58 +(% class="task-list" %) 59 +((( 60 +{{task reference="/Tasks/Task_25" status="InProgress" completeDate="" createDate="2026-01-07" reporter=""}} 61 +Documentation 62 +\\ 63 +{{/task}} 64 +))) 65 + 66 + 67 +(% class="task-list" %) 68 +((( 69 +{{task reference="/Tasks/Task_27" status="InProgress" completeDate="" createDate="2026-01-07" reporter=""}} 70 +Binder 71 +\\ 72 +{{/task}} 73 +))) 74 + 75 + 76 +(% class="task-list" %) 77 +((( 78 +{{task reference="/Tasks/Task_29" status="InProgress" completeDate="" createDate="2026-01-07" reporter=""}} 79 +Screencast 80 +\\ 81 +{{/task}} 82 +))) 83 + 84 + 85 + 86 +---- 87 + 88 +==== under review ==== 89 + 90 + 91 +{{code language="bash"}} 92 +conda create -n flashh5 python=3.10 # 3.10 not necessary, but would prefer 3.8 or higher 93 +source activate flashh5 94 +conda install ipython numpy pandas #TODO: fix dependcies 95 +conda install -c https://www.desy.de/~cpassow/condarepo/ flashh5 96 + 97 +## on jhub 98 +conda install ipykernel 99 +python -m ipykernel install --user --name flashh5 --display-name "flashh5" 100 + 101 + 102 +## to remove on jhub 103 +## delete from: /home/$USER/.local/share/jupyter/kernels/ 104 +{{/code}} 105 + 106 +{{code language="py" title=" 107 +moved to repository?"}} 39 39 class RunDirectory: 40 40 41 - def get_run_table(): 110 + def get_run_table(): # more or less information? RunComment | Number of Files | start & stop time ? 42 42 ... 43 43 44 - def get_run(daq, run_number): 113 + def get_run(daq, run_number): # daq is not needed! 114 + 45 45 ... 46 46 47 47 48 -class Run: 118 +class Run: # constructor optional without RunDirectory or use there self.path 49 49 50 50 def get_files(): 51 51 ... 52 52 53 - def get_channels(): # of file #1 ?123 + def get_channels(): # of file #1 54 54 ... 55 55 56 - def get_start_time(): 126 + def get_start_time(): # better as attribute? 57 57 ... 58 58 59 - def get_stop_time(): # which? 129 + def get_stop_time(): # which? | better as attribute? 60 60 ... 61 - 62 - def to_df( channel_map):131 + 132 + def to_df(daq_map): # to_df(daq_map, slice) slice=[0:4] -> throw Exception 63 63 ... 64 64 65 65 def to_series(channel): ... ... @@ -70,12 +70,15 @@ 70 70 {{/code}} 71 71 72 72 {{code language="py" title="ideas"}} 73 -run.to_df( channel_map)74 -run.to_series( channel_stringorchannel_map) # on channel only?75 -run.to_array( channel_string) # on channel only?143 +run.to_df(daq_map) 144 +run.to_series(daq_adr or daq_map) # on channel only? 145 +run.to_array(daq_adr) # on channel only? 76 76 77 -# run.to_dask(dict) 78 -# run.to_xarray(dict) 147 +## interesting? 148 +# run.to_dask(daq_map) 149 +# run.to_xarray(daq_map) 79 79 {{/code}} 80 80 81 -\\ 152 + 153 + 154 +{{/expand}}
- image2023-9-29_11-0-13.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.rangeadm - Size
-
... ... @@ -1,0 +1,1 @@ 1 +123.1 KB - Content
- image2023-9-29_11-1-37.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.rangeadm - Size
-
... ... @@ -1,0 +1,1 @@ 1 +90.4 KB - Content
- tmp.mp4
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.rangeadm - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.1 MB - Content