Skip to content
Snippets Groups Projects
Commit 811c5bc4 authored by Valerio Mariani's avatar Valerio Mariani
Browse files

Merge branch 'testing'

parents c6687ea9 7f9ef272
No related branches found
No related tags found
No related merge requests found
...@@ -35,7 +35,7 @@ _CXISimpleEntry = namedtuple('SimpleEntry', ['path', 'data', 'overwrite']) ...@@ -35,7 +35,7 @@ _CXISimpleEntry = namedtuple('SimpleEntry', ['path', 'data', 'overwrite'])
class _Stack: class _Stack:
def __init__(self, path, data, axes): def __init__(self, path, data, axes, compression, chunk_size):
self._data_type = type(data) self._data_type = type(data)
...@@ -47,6 +47,19 @@ class _Stack: ...@@ -47,6 +47,19 @@ class _Stack:
self._data_to_write = data self._data_to_write = data
self._path = path self._path = path
self._axes = axes self._axes = axes
self._compression = compression
if chunk_size is None:
self._chunk_size = (1,) + self._data_shape
else:
self._chunk_size = chunk_size
def is_there_data_to_write(self):
if self._data_to_write is not None:
return True
else:
return False
def is_there_data_to_write(self): def is_there_data_to_write(self):
...@@ -59,7 +72,7 @@ class _Stack: ...@@ -59,7 +72,7 @@ class _Stack:
file_handle.create_dataset(self._path, shape=(max_num_slices,) + self._data_shape, file_handle.create_dataset(self._path, shape=(max_num_slices,) + self._data_shape,
maxshape=(max_num_slices,) + self._data_shape, maxshape=(max_num_slices,) + self._data_shape,
chunks=(1,) + self._data_shape) compression = self._compression, chunks=self._chunk_size)
file_handle[self._path][0] = self._data_to_write file_handle[self._path][0] = self._data_to_write
if self._axes is not None: if self._axes is not None:
...@@ -133,45 +146,43 @@ class CXIWriter: ...@@ -133,45 +146,43 @@ class CXIWriter:
Example of usage of the stack API: Example of usage of the stack API:
c1 = 0 c1 = 0
c2 = 0 c2 = 0
f1 = CXIWriter('/data/test1.h5', ) f1 = CXIWriter('test1.h5', )
f2 = CXIWriter('/data/test2.h5', ) f2 = CXIWriter('test2.h5', )
f1.add_stack_to_writer('detector1', '/entry_1/detector_1/data', numpy.random.rand(2, 2), f1.add_stack_to_writer('detector1', '/entry_1/detector_1/data', numpy.random.rand(2, 2),
'frame:y:x') 'frame:y:x')
f2.add_stack_to_writer('detector2', '/entry_1/detector_1/data', numpy.random.rand(3, 2)) f2.add_stack_to_writer('detector2', '/entry_1/detector_1/data', numpy.random.rand(3, 2),
'frame:y:x') 'frame:y:x', compression=False, chunk_size=(1,3,2))
f1.add_stack_to_writer('counter1', '/entry_1/detector_1/count', c1) f1.add_stack_to_writer('counter1', '/entry_1/detector_1/count', c1)
f2.add_stack_to_writer('counter2', '/entry_1/detector_1/count', c2) f2.add_stack_to_writer('counter2', '/entry_1/detector_1/count', c2)
f1.write_simple_entry('/entry_1/detector_1/name', 'FrontCSPAD') f1.write_simple_entry('/entry_1/detector_1/name', 'FrontCSPAD')
f2.write_simple_entry('/entry_1/detector_1/name', 'BackCSPAD') f2.write_simple_entry('/entry_1/detector_1/name', 'BackCSPAD')
f1.initialize_stacks() f1.initialize_stacks()
f2.initialize_stacks() f2.initialize_stacks()
for i in range(1, 60): a = numpy.random.rand(2, 2)
print('Writing slice:', i) b = numpy.random.rand(3, 2)
a = numpy.random.rand(2, 2)
b = numpy.random.rand(3, 2) c1 += 1
c2 += 2
c1 += 1
c2 += 2 f1.append_data_to_stack('detector1', a)
f2.append_data_to_stack('detector2', b)
f1.append_data_to_stack('detector1', a)
f2.append_data_to_stack('detector2', b) f1.append_data_to_stack('counter1', c1)
f2.append_data_to_stack('counter2', c2)
f1.append_data_to_stack('counter1', c1)
f2.append_data_to_stack('counter2', c2) f1.write_stack_slice_and_increment()
f2.write_stack_slice_and_increment()
f1.write_stack_slice_and_increment()
f2.write_stack_slice_and_increment() f1.close_file()
f2.close_file()
f1.close_file()
f2.close_file()
""" """
def __init__(self, filename, max_num_slices=5000): def __init__(self, filename, max_num_slices=5000):
...@@ -211,7 +222,8 @@ class CXIWriter: ...@@ -211,7 +222,8 @@ class CXIWriter:
self._fh.create_dataset(entry.path, data=entry.data) self._fh.create_dataset(entry.path, data=entry.data)
def add_stack_to_writer(self, name, path, initial_data, axes=None, overwrite=True): def add_stack_to_writer(self, name, path, initial_data, axes=None, compression=True, chunk_size=None,
overwrite=True):
"""Adds a new stack to the file. """Adds a new stack to the file.
Adds a new stack to the CXI Writer instance. The user must provide a name for the stack, that will identify Adds a new stack to the CXI Writer instance. The user must provide a name for the stack, that will identify
...@@ -226,11 +238,18 @@ class CXIWriter: ...@@ -226,11 +238,18 @@ class CXIWriter:
path (str): path in the hdf5 file where the stack will be written. path (str): path in the hdf5 file where the stack will be written.
initial_data (Union: numpy.ndarray, str, int, float): initial entry in the stack. It gets written to the initial_data (Union[numpy.ndarray, str, int, float]: initial entry in the stack. It gets written to the
stack as slice 0. Its characteristics are used to validate all data subsequently appended to the stack. stack as slice 0. Its characteristics are used to validate all data subsequently appended to the stack.
axes (str): the 'axes' attribute for the stack, as defined by the CXIDB file format. axes (str): the 'axes' attribute for the stack, as defined by the CXIDB file format.
compression (Union[None, bool,str]): compression parameter for the stack. This parameters works in the same
way as the normal compression parameter from h5py. The default value of this parameter is True.
chunk_size (Union[None, tuple]): HDF5 chuck size for the stack. If this parameter is set to None, the
CXI writer will compute a chuck size automatically (this is the default behavior). Otherwise, the writer
will use the provided tuple to set the chunk size.
overwrite (bool): if set to True, a stack already existing at the same location will be overwritten. If set overwrite (bool): if set to True, a stack already existing at the same location will be overwritten. If set
to False, an attempt to overwrite a stack will raise an error. to False, an attempt to overwrite a stack will raise an error.
""" """
...@@ -246,7 +265,7 @@ class CXIWriter: ...@@ -246,7 +265,7 @@ class CXIWriter:
else: else:
raise RuntimeError('Cannot write the entry. Data is already present at the specified path.') raise RuntimeError('Cannot write the entry. Data is already present at the specified path.')
new_stack = _Stack(path, initial_data, axes) new_stack = _Stack(path, initial_data, axes, compression, chunk_size)
self._cxi_stacks[name] = new_stack self._cxi_stacks[name] = new_stack
def write_simple_entry(self, path, data, overwrite=False): def write_simple_entry(self, path, data, overwrite=False):
......
No preview for this file type
No preview for this file type
cfelpyutils package
===================
Submodules
----------
cfelpyutils.cfel_crystfel module
--------------------------------
.. automodule:: cfelpyutils.cfel_crystfel
:members:
:undoc-members:
:show-inheritance:
cfelpyutils.cfel_cxi module
---------------------------
.. automodule:: cfelpyutils.cfel_cxi
:members:
:undoc-members:
:show-inheritance:
cfelpyutils.cfel_fabio module
-----------------------------
.. automodule:: cfelpyutils.cfel_fabio
:members:
:undoc-members:
:show-inheritance:
cfelpyutils.cfel_geom module
----------------------------
.. automodule:: cfelpyutils.cfel_geom
:members:
:undoc-members:
:show-inheritance:
cfelpyutils.cfel_hdf5 module
----------------------------
.. automodule:: cfelpyutils.cfel_hdf5
:members:
:undoc-members:
:show-inheritance:
cfelpyutils.cfel_optarg module
------------------------------
.. automodule:: cfelpyutils.cfel_optarg
:members:
:undoc-members:
:show-inheritance:
cfelpyutils.cfel_psana module
-----------------------------
.. automodule:: cfelpyutils.cfel_psana
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: cfelpyutils
:members:
:undoc-members:
:show-inheritance:
.. cfelpyutils documentation master file, created by
sphinx-quickstart on Wed Mar 30 11:47:49 2016.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to cfelpyutils's documentation!
=======================================
Contents:
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
cfelpyutils
===========
.. toctree::
:maxdepth: 4
cfelpyutils
This diff is collapsed.
...@@ -147,16 +147,15 @@ number_of_entries specified during instantiation.</p> ...@@ -147,16 +147,15 @@ number_of_entries specified during instantiation.</p>
course that the file is open). Entries and stacks will general never be overwritten unless the overwrite parameter course that the file is open). Entries and stacks will general never be overwritten unless the overwrite parameter
is set to True.</p> is set to True.</p>
<p>Example of usage of the stack API:</p> <p>Example of usage of the stack API:</p>
<blockquote> <p>c1 = 0
<div><p>c1 = 0
c2 = 0</p> c2 = 0</p>
<p>f1 = CXIWriter(&#8216;/data/test1.h5&#8217;, ) <p>f1 = CXIWriter(&#8216;test1.h5&#8217;, )
f2 = CXIWriter(&#8216;/data/test2.h5&#8217;, )</p> f2 = CXIWriter(&#8216;test2.h5&#8217;, )</p>
<dl class="docutils"> <dl class="docutils">
<dt>f1.add_stack_to_writer(&#8216;detector1&#8217;, &#8216;/entry_1/detector_1/data&#8217;, numpy.random.rand(2, 2),</dt> <dt>f1.add_stack_to_writer(&#8216;detector1&#8217;, &#8216;/entry_1/detector_1/data&#8217;, numpy.random.rand(2, 2),</dt>
<dd>&#8216;frame:y:x&#8217;)</dd> <dd>&#8216;frame:y:x&#8217;)</dd>
<dt>f2.add_stack_to_writer(&#8216;detector2&#8217;, &#8216;/entry_1/detector_1/data&#8217;, numpy.random.rand(3, 2))</dt> <dt>f2.add_stack_to_writer(&#8216;detector2&#8217;, &#8216;/entry_1/detector_1/data&#8217;, numpy.random.rand(3, 2),</dt>
<dd>&#8216;frame:y:x&#8217;)</dd> <dd>&#8216;frame:y:x&#8217;, compression=False, chunk_size=(1,3,2))</dd>
</dl> </dl>
<p>f1.add_stack_to_writer(&#8216;counter1&#8217;, &#8216;/entry_1/detector_1/count&#8217;, c1) <p>f1.add_stack_to_writer(&#8216;counter1&#8217;, &#8216;/entry_1/detector_1/count&#8217;, c1)
f2.add_stack_to_writer(&#8216;counter2&#8217;, &#8216;/entry_1/detector_1/count&#8217;, c2)</p> f2.add_stack_to_writer(&#8216;counter2&#8217;, &#8216;/entry_1/detector_1/count&#8217;, c2)</p>
...@@ -164,10 +163,7 @@ f2.add_stack_to_writer(&#8216;counter2&#8217;, &#8216;/entry_1/detector_1/count& ...@@ -164,10 +163,7 @@ f2.add_stack_to_writer(&#8216;counter2&#8217;, &#8216;/entry_1/detector_1/count&
f2.write_simple_entry(&#8216;/entry_1/detector_1/name&#8217;, &#8216;BackCSPAD&#8217;)</p> f2.write_simple_entry(&#8216;/entry_1/detector_1/name&#8217;, &#8216;BackCSPAD&#8217;)</p>
<p>f1.initialize_stacks() <p>f1.initialize_stacks()
f2.initialize_stacks()</p> f2.initialize_stacks()</p>
<dl class="docutils"> <p>a = numpy.random.rand(2, 2)
<dt>for i in range(1, 60):</dt>
<dd><p class="first">print(&#8216;Writing slice:&#8217;, i)
a = numpy.random.rand(2, 2)
b = numpy.random.rand(3, 2)</p> b = numpy.random.rand(3, 2)</p>
<p>c1 += 1 <p>c1 += 1
c2 += 2</p> c2 += 2</p>
...@@ -175,16 +171,13 @@ c2 += 2</p> ...@@ -175,16 +171,13 @@ c2 += 2</p>
f2.append_data_to_stack(&#8216;detector2&#8217;, b)</p> f2.append_data_to_stack(&#8216;detector2&#8217;, b)</p>
<p>f1.append_data_to_stack(&#8216;counter1&#8217;, c1) <p>f1.append_data_to_stack(&#8216;counter1&#8217;, c1)
f2.append_data_to_stack(&#8216;counter2&#8217;, c2)</p> f2.append_data_to_stack(&#8216;counter2&#8217;, c2)</p>
<p class="last">f1.write_stack_slice_and_increment() <p>f1.write_stack_slice_and_increment()
f2.write_stack_slice_and_increment()</p> f2.write_stack_slice_and_increment()</p>
</dd>
</dl>
<p>f1.close_file() <p>f1.close_file()
f2.close_file()</p> f2.close_file()</p>
</div></blockquote>
<dl class="method"> <dl class="method">
<dt id="cfelpyutils.cfel_cxi.CXIWriter.add_stack_to_writer"> <dt id="cfelpyutils.cfel_cxi.CXIWriter.add_stack_to_writer">
<code class="descname">add_stack_to_writer</code><span class="sig-paren">(</span><em>name</em>, <em>path</em>, <em>initial_data</em>, <em>axes=None</em>, <em>overwrite=True</em><span class="sig-paren">)</span><a class="headerlink" href="#cfelpyutils.cfel_cxi.CXIWriter.add_stack_to_writer" title="Permalink to this definition"></a></dt> <code class="descname">add_stack_to_writer</code><span class="sig-paren">(</span><em>name</em>, <em>path</em>, <em>initial_data</em>, <em>axes=None</em>, <em>compression=True</em>, <em>chunk_size=None</em>, <em>overwrite=True</em><span class="sig-paren">)</span><a class="headerlink" href="#cfelpyutils.cfel_cxi.CXIWriter.add_stack_to_writer" title="Permalink to this definition"></a></dt>
<dd><p>Adds a new stack to the file.</p> <dd><p>Adds a new stack to the file.</p>
<p>Adds a new stack to the CXI Writer instance. The user must provide a name for the stack, that will identify <p>Adds a new stack to the CXI Writer instance. The user must provide a name for the stack, that will identify
the stack in all subsequents operations. The user must also provide the data that will be written as the the stack in all subsequents operations. The user must also provide the data that will be written as the
...@@ -198,9 +191,14 @@ the stack.</p> ...@@ -198,9 +191,14 @@ the stack.</p>
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>name</strong> (<em>str</em>) &#8211; stack name.</li> <li><strong>name</strong> (<em>str</em>) &#8211; stack name.</li>
<li><strong>path</strong> (<em>str</em>) &#8211; path in the hdf5 file where the stack will be written.</li> <li><strong>path</strong> (<em>str</em>) &#8211; path in the hdf5 file where the stack will be written.</li>
<li><strong></strong><strong>(</strong><strong>Union</strong> (<em>initial_data</em>) &#8211; numpy.ndarray, str, int, float): initial entry in the stack. It gets written to the</li> <li><strong></strong><strong>(</strong><strong>Union</strong><strong>[</strong><strong>numpy.ndarray</strong><strong>, </strong><strong>str</strong><strong>, </strong><strong>int</strong><strong>, </strong><strong>float</strong><strong>]</strong><strong></strong> (<em>initial_data</em>) &#8211; initial entry in the stack. It gets written to the</li>
<li><strong>as slice 0. Its characteristics are used to validate all data subsequently appended to the stack.</strong> (<em>stack</em>) &#8211; </li> <li><strong>as slice 0. Its characteristics are used to validate all data subsequently appended to the stack.</strong> (<em>stack</em>) &#8211; </li>
<li><strong>axes</strong> (<em>str</em>) &#8211; the &#8216;axes&#8217; attribute for the stack, as defined by the CXIDB file format.</li> <li><strong>axes</strong> (<em>str</em>) &#8211; the &#8216;axes&#8217; attribute for the stack, as defined by the CXIDB file format.</li>
<li><strong>compression</strong> (<em>Union</em><em>[</em><em>None</em><em>, </em><em>bool</em><em>,</em><em>str</em><em>]</em><em></em>) &#8211; compression parameter for the stack. This parameters works in the same</li>
<li><strong>as the normal compression parameter from h5py. The default value of this parameter is True.</strong> (<em>way</em>) &#8211; </li>
<li><strong>chunk_size</strong> (<em>Union</em><em>[</em><em>None</em><em>, </em><em>tuple</em><em>]</em><em></em>) &#8211; HDF5 chuck size for the stack. If this parameter is set to None, the</li>
<li><strong>writer will compute a chuck size automatically</strong> (<em>CXI</em>) &#8211; </li>
<li><strong>use the provided tuple to set the chunk size.</strong> (<em>will</em>) &#8211; </li>
<li><strong>overwrite</strong> (<em>bool</em>) &#8211; if set to True, a stack already existing at the same location will be overwritten. If set</li> <li><strong>overwrite</strong> (<em>bool</em>) &#8211; if set to True, a stack already existing at the same location will be overwritten. If set</li>
<li><strong>False</strong><strong>, </strong><strong>an attempt to overwrite a stack will raise an error.</strong> (<em>to</em>) &#8211; </li> <li><strong>False</strong><strong>, </strong><strong>an attempt to overwrite a stack will raise an error.</strong> (<em>to</em>) &#8211; </li>
</ul> </ul>
......
Search.setIndex({docnames:["cfelpyutils","index","modules"],envversion:51,filenames:["cfelpyutils.rst","index.rst","modules.rst"],objects:{"":{cfelpyutils:[0,0,0,"-"]},"cfelpyutils.cfel_crystfel":{load_crystfel_geometry:[0,1,1,""]},"cfelpyutils.cfel_cxi":{CXIWriter:[0,2,1,""]},"cfelpyutils.cfel_cxi.CXIWriter":{add_stack_to_writer:[0,3,1,""],append_data_to_stack:[0,3,1,""],close_file:[0,3,1,""],get_file_handle:[0,3,1,""],initialize_stacks:[0,3,1,""],write_simple_entry:[0,3,1,""],write_stack_slice_and_increment:[0,3,1,""]},"cfelpyutils.cfel_fabio":{read_cbf_from_stream:[0,1,1,""]},"cfelpyutils.cfel_geom":{apply_geometry_from_file:[0,1,1,""],apply_geometry_from_pixel_maps:[0,1,1,""],pixel_maps_for_image_view:[0,1,1,""],pixel_maps_from_geometry_file:[0,1,1,""]},"cfelpyutils.cfel_hdf5":{load_nparray_from_hdf5_file:[0,1,1,""]},"cfelpyutils.cfel_optarg":{parse_parameters:[0,1,1,""]},"cfelpyutils.cfel_psana":{dirname_from_source_runs:[0,1,1,""],psana_event_inspection:[0,1,1,""],psana_obj_from_string:[0,1,1,""]},cfelpyutils:{cfel_crystfel:[0,0,0,"-"],cfel_cxi:[0,0,0,"-"],cfel_fabio:[0,0,0,"-"],cfel_geom:[0,0,0,"-"],cfel_hdf5:[0,0,0,"-"],cfel_optarg:[0,0,0,"-"],cfel_psana:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"boolean":0,"case":0,"class":0,"float":0,"function":0,"import":0,"int":0,"new":0,"return":0,"true":0,For:0,Its:0,The:0,Use:0,about:0,access:0,accord:0,across:0,add:0,add_stack_to_writ:0,added:0,adher:0,after:0,again:0,against:0,all:0,allow:0,allowa:0,alreadi:0,also:0,amost:0,ani:0,anoth:0,api:0,appear:0,append:0,append_data_to_stack:0,appli:0,apply_geometry_from_fil:0,apply_geometry_from_pixel_map:0,argument:0,arrai:0,assign:0,attempt:0,attribut:0,automat:0,axes:0,backcspad:0,base:0,beam:0,been:0,befor:0,block:0,bool:0,brace:0,bracket:0,buffer:0,build:0,can:0,cannot:0,cbf_obj:0,cbfimag:0,center:0,cfel:0,cfel_crystfel:2,cfel_cxi:2,cfel_fabio:2,cfel_geom:2,cfel_hdf5:2,cfel_optarg:2,cfel_psana:2,cfelfabio:0,cfelgeom:0,cfelhdf5:0,cfeloptarg:0,cfelpsana:0,chang:0,characterist:0,check:0,choic:0,close:0,close_fil:0,command:0,config:0,configpars:0,configur:0,contain:0,content:[1,2],convers:0,convert:0,coordin:0,corner:0,correct:0,count:0,counter1:0,counter2:0,cours:0,cover:0,creat:0,crystfel:0,crystfel_geometri:0,cxi:0,cxidb:0,cxiwrit:0,cxix:0,data:0,data_as_slab:0,data_filenam:0,data_group:0,defin:0,describ:0,detector1:0,detector2:0,detector:0,detector_1:0,determin:0,dict:0,dictionari:0,directori:0,dirnam:0,dirname_from_source_run:0,distanc:0,document:0,doubl:0,dtype:0,dure:0,each:0,end:0,ensur:0,entri:0,entry_1:0,error:0,etc:0,event:0,exampl:0,exist:0,exp:0,expand:0,extract:0,fabio:0,fals:0,file:0,filenam:0,first:0,fix:0,fnam:0,follow:0,form:0,format:0,frame:0,from:0,frontcspad:0,full:0,gener:0,geometri:0,geometry_filenam:0,get:0,get_detector_geometry_2:0,get_file_handl:0,h5py:0,handl:0,has:0,hdf5:0,hold:0,html:0,http:0,identifi:0,im_out:0,imag:0,imageview:0,img_shap:0,implement:0,index:1,inform:0,initi:0,initial_data:0,initialize_stack:0,input:0,inspect:0,instanc:0,instanti:0,instead:0,integ:0,interact:0,intern:0,interoper:0,interpret:0,keep:0,kei:0,layout:0,left:0,level:0,like:0,line:0,list:0,load:0,load_crystfel_geometri:0,load_nparray_from_hdf5_fil:0,locat:0,low:0,make:0,manag:0,mani:0,manual:0,map:0,match:0,max_num_slic:0,miss:0,mod:0,modul:[1,2],monitor_param:0,more:0,multi:0,must:0,nake:0,name:0,ndarrai:0,need:0,never:0,next:0,non:0,none:0,nonetyp:0,nparrai:0,number:0,number_of_entri:0,numpi:0,object:0,onc:0,one:0,onli:0,open:0,oper:0,option:0,order:0,org:0,origin:0,out:0,output:0,overwrit:0,overwritten:0,own:0,p11:0,packag:2,page:1,paramet:0,pars:0,parse_paramet:0,parser:0,path:0,payload:0,petraiii:0,physic:0,pixel:0,pixel_maps_for_image_view:0,pixel_maps_from_geometry_fil:0,point:0,prefix:0,previou:0,print:0,process:0,project:0,provid:0,psana:0,psana_event_inspect:0,psana_obj_from_str:0,pyqtgraph:0,python:0,quot:0,rai:0,rais:0,rand:0,random:0,rang:0,rawconfigpars:0,read:0,read_cbf_from_stream:0,receiv:0,refer:0,reimplement:0,relev:0,represent:0,reset:0,respect:0,risk:0,rule:0,same:0,search:1,see:0,sender:0,set:0,sever:0,shape:0,simpl:0,singl:0,size:0,slab:0,slab_shap:0,slice:0,softwar:0,sourc:0,specifi:0,squar:0,stack:0,start:0,str:0,stream:0,string:0,structur:0,style:0,subdirectori:0,submodul:2,subsequ:0,succe:0,sure:0,sync:0,synchron:0,system:0,take:0,test1:0,test2:0,tfel:0,than:0,thei:0,them:0,thi:0,time:0,top:0,tri:0,tupl:0,turn:0,type:0,uncorrect:0,union:0,unless:0,usag:0,used:0,user:0,using:0,util:0,valid:0,valu:0,verbatim:0,visual:0,want:0,what:0,where:0,which:0,widget:0,without:0,word:0,work:0,write:0,write_simple_entri:0,write_slice_and_incr:0,write_stack_slice_and_incr:0,writer:0,written:0,www:0,your:0},titles:["cfelpyutils package","Welcome to cfelpyutils&#8217;s documentation!","cfelpyutils"],titleterms:{cfel_crystfel:0,cfel_cxi:0,cfel_fabio:0,cfel_geom:0,cfel_hdf5:0,cfel_optarg:0,cfel_psana:0,cfelfabio:[],cfelgeom:[],cfelhdf5:[],cfeloptarg:[],cfelpsana:[],cfelpyutil:[0,1,2],content:0,document:1,indic:1,modul:0,packag:0,submodul:0,tabl:1,welcom:1}}) Search.setIndex({docnames:["cfelpyutils","index","modules"],envversion:51,filenames:["cfelpyutils.rst","index.rst","modules.rst"],objects:{"":{cfelpyutils:[0,0,0,"-"]},"cfelpyutils.cfel_crystfel":{load_crystfel_geometry:[0,1,1,""]},"cfelpyutils.cfel_cxi":{CXIWriter:[0,2,1,""]},"cfelpyutils.cfel_cxi.CXIWriter":{add_stack_to_writer:[0,3,1,""],append_data_to_stack:[0,3,1,""],close_file:[0,3,1,""],get_file_handle:[0,3,1,""],initialize_stacks:[0,3,1,""],write_simple_entry:[0,3,1,""],write_stack_slice_and_increment:[0,3,1,""]},"cfelpyutils.cfel_fabio":{read_cbf_from_stream:[0,1,1,""]},"cfelpyutils.cfel_geom":{apply_geometry_from_file:[0,1,1,""],apply_geometry_from_pixel_maps:[0,1,1,""],pixel_maps_for_image_view:[0,1,1,""],pixel_maps_from_geometry_file:[0,1,1,""]},"cfelpyutils.cfel_hdf5":{load_nparray_from_hdf5_file:[0,1,1,""]},"cfelpyutils.cfel_optarg":{parse_parameters:[0,1,1,""]},"cfelpyutils.cfel_psana":{dirname_from_source_runs:[0,1,1,""],psana_event_inspection:[0,1,1,""],psana_obj_from_string:[0,1,1,""]},cfelpyutils:{cfel_crystfel:[0,0,0,"-"],cfel_cxi:[0,0,0,"-"],cfel_fabio:[0,0,0,"-"],cfel_geom:[0,0,0,"-"],cfel_hdf5:[0,0,0,"-"],cfel_optarg:[0,0,0,"-"],cfel_psana:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"boolean":0,"case":0,"class":0,"default":0,"float":0,"function":0,"import":0,"int":0,"new":0,"return":0,"true":0,For:0,Its:0,The:0,Use:0,about:0,access:0,accord:0,across:0,add:0,add_stack_to_writ:0,added:0,adher:0,after:0,again:0,against:0,all:0,allow:0,allowa:0,alreadi:0,also:0,amost:0,ani:0,anoth:0,api:0,appear:0,append:0,append_data_to_stack:0,appli:0,apply_geometry_from_fil:0,apply_geometry_from_pixel_map:0,argument:0,arrai:0,assign:0,attempt:0,attribut:0,automat:0,axes:0,backcspad:0,base:0,beam:0,been:0,befor:0,block:0,bool:0,brace:0,bracket:0,buffer:0,build:0,can:0,cannot:0,cbf_obj:0,cbfimag:0,center:0,cfel:0,cfel_crystfel:2,cfel_cxi:2,cfel_fabio:2,cfel_geom:2,cfel_hdf5:2,cfel_optarg:2,cfel_psana:2,cfelfabio:0,cfelgeom:0,cfelhdf5:0,cfeloptarg:0,cfelpsana:0,chang:0,characterist:0,check:0,choic:0,chuck:0,chunk:0,chunk_siz:0,close:0,close_fil:0,command:0,compress:0,comput:0,config:0,configpars:0,configur:0,contain:0,content:[1,2],convers:0,convert:0,coordin:0,corner:0,correct:0,count:0,counter1:0,counter2:0,cours:0,cover:0,creat:0,crystfel:0,crystfel_geometri:0,cxi:0,cxidb:0,cxiwrit:0,cxix:0,data:0,data_as_slab:0,data_filenam:0,data_group:0,defin:0,describ:0,detector1:0,detector2:0,detector:0,detector_1:0,determin:0,dict:0,dictionari:0,directori:0,dirnam:0,dirname_from_source_run:0,distanc:0,document:0,doubl:0,dtype:0,dure:0,each:0,end:0,ensur:0,entri:0,entry_1:0,error:0,etc:0,event:0,exampl:0,exist:0,exp:0,expand:0,extract:0,fabio:0,fals:0,file:0,filenam:0,first:0,fix:0,fnam:0,follow:0,form:0,format:0,frame:0,from:0,frontcspad:0,full:0,gener:0,geometri:0,geometry_filenam:0,get:0,get_detector_geometry_2:0,get_file_handl:0,h5py:0,handl:0,has:0,hdf5:0,hold:0,html:0,http:0,identifi:0,im_out:0,imag:0,imageview:0,img_shap:0,implement:0,index:1,inform:0,initi:0,initial_data:0,initialize_stack:0,input:0,inspect:0,instanc:0,instanti:0,instead:0,integ:0,interact:0,intern:0,interoper:0,interpret:0,keep:0,kei:0,layout:0,left:0,level:0,like:0,line:0,list:0,load:0,load_crystfel_geometri:0,load_nparray_from_hdf5_fil:0,locat:0,low:0,make:0,manag:0,mani:0,manual:0,map:0,match:0,max_num_slic:0,miss:0,mod:0,modul:[1,2],monitor_param:0,more:0,multi:0,must:0,nake:0,name:0,ndarrai:0,need:0,never:0,next:0,non:0,none:0,nonetyp:0,normal:0,nparrai:0,number:0,number_of_entri:0,numpi:0,object:0,onc:0,one:0,onli:0,open:0,oper:0,option:0,order:0,org:0,origin:0,out:0,output:0,overwrit:0,overwritten:0,own:0,p11:0,packag:2,page:1,paramet:0,pars:0,parse_paramet:0,parser:0,path:0,payload:0,petraiii:0,physic:0,pixel:0,pixel_maps_for_image_view:0,pixel_maps_from_geometry_fil:0,point:0,prefix:0,previou:0,print:0,process:0,project:0,provid:0,psana:0,psana_event_inspect:0,psana_obj_from_str:0,pyqtgraph:0,python:0,quot:0,rai:0,rais:0,rand:0,random:0,rang:[],rawconfigpars:0,read:0,read_cbf_from_stream:0,receiv:0,refer:0,reimplement:0,relev:0,represent:0,reset:0,respect:0,risk:0,rule:0,same:0,search:1,see:0,sender:0,set:0,sever:0,shape:0,simpl:0,singl:0,size:0,slab:0,slab_shap:0,slice:0,softwar:0,sourc:0,specifi:0,squar:0,stack:0,start:0,str:0,stream:0,string:0,structur:0,style:0,subdirectori:0,submodul:2,subsequ:0,succe:0,sure:0,sync:0,synchron:0,system:0,take:0,test1:0,test2:0,tfel:0,than:0,thei:0,them:0,thi:0,time:0,top:0,tri:0,tupl:0,turn:0,type:0,uncorrect:0,union:0,unless:0,usag:0,use:0,used:0,user:0,using:0,util:0,valid:0,valu:0,verbatim:0,visual:0,wai:0,want:0,what:0,where:0,which:0,widget:0,without:0,word:0,work:0,write:0,write_simple_entri:0,write_slice_and_incr:0,write_stack_slice_and_incr:0,writer:0,written:0,www:0,your:0},titles:["cfelpyutils package","Welcome to cfelpyutils&#8217;s documentation!","cfelpyutils"],titleterms:{cfel_crystfel:0,cfel_cxi:0,cfel_fabio:0,cfel_geom:0,cfel_hdf5:0,cfel_optarg:0,cfel_psana:0,cfelfabio:[],cfelgeom:[],cfelhdf5:[],cfeloptarg:[],cfelpsana:[],cfelpyutil:[0,1,2],content:0,document:1,indic:1,modul:0,packag:0,submodul:0,tabl:1,welcom:1}})
\ No newline at end of file \ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment