From 04726da6b51af5528feedbb601d57c4a47bc0006 Mon Sep 17 00:00:00 2001
From: Valerio Mariani <valerio.mariani@desy.de>
Date: Wed, 31 May 2017 16:12:59 +0200
Subject: [PATCH] Added function to check stack initialization status

---
 cfel_cxi.py                            |  12 ++++++++++++
 doc/build/doctrees/cfelpyutils.doctree | Bin 123734 -> 126572 bytes
 doc/build/doctrees/environment.pickle  | Bin 12357 -> 12509 bytes
 doc/build/html/cfelpyutils.html        |  17 +++++++++++++++++
 doc/build/html/genindex.html           |   2 ++
 doc/build/html/objects.inv             |  11 ++++-------
 doc/build/html/searchindex.js          |   2 +-
 7 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/cfel_cxi.py b/cfel_cxi.py
index 9e196d3..e919457 100644
--- a/cfel_cxi.py
+++ b/cfel_cxi.py
@@ -435,6 +435,18 @@ class CXIWriter:
 
         return self._fh
 
+    def are_stacks_initialized(self):
+        """Checks if stacks are initialized.
+        
+        Checks the status of the stacks in the file and returns the status to the user.
+        
+        Returns:
+            
+            status (bool): True if the stacks are initialized, False otherwise
+        """
+
+        return self._initialized
+
     def close_file(self):
         """Closes the file.
         
diff --git a/doc/build/doctrees/cfelpyutils.doctree b/doc/build/doctrees/cfelpyutils.doctree
index 447fe6ec10ac30061864de9f704d06aa8556093d..d967c728cfd7d53ae959dee4d50bed52145a9795 100644
GIT binary patch
delta 14080
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
R0|8d$v^J-v`Dd8L{u|0|S@-||

delta 12926
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

diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle
index fa918e092bdeb8c07df61a429b0460a5cb092da8..51792dd7586d708c0d0c6c862b66cdc94ca88df0 100644
GIT binary patch
delta 1215
zcmZuvOH30{6tw}TU`Jw=0wU7scc!JKDt<tyf+Au7MM%_z5lcHTEv2Y^jbH?1!$$|v
z+^LDi-^REhCfXQ{QKL~-7>q6;F)=_QapQvMf<!mo2T`ZQ&3SV^_ulvBy|I&@eW@2x
z;~yWUx|nordq*G^7NZJym@GKNY&DVn6_YiIr<1y0F_{gBr^HA=jQE2X=~g5%q6nbZ
z8sHa`pXP57!%hCqAj~qk@PRSFJ;nugZ4NYOi!~&1Njs|15GYO`MKYJZN{eKE%`L>s
z`Y$L&*A}6lxW8^UUA|`SqG^7E0Q1h3iN-8FRmE&CRmE%puDDYZ?{f@Pom*c)7k-14
zF12}!(Gwf*(<o!yjaX&0A%=|(#B0WK#3|#R3?eh_B9S@*O1~m+gFYcYx6pS+Y>E<}
zzb)Dnj08#07Y?2i19(!%<%*LloU{UZxD0GJ%y|*VIXX;dq62D8b%-}ibnq+FcEkmf
z9Wmcrf_Til5An8{Ca2Anhzll;o+*Wns<D)zGH4MHA6kkK=PW$pYU@tKYU?h<0jsx{
z$Z0LHh@S*IBJ>D4dIP7rVk8)jVw+Gy%8C{JN=*KHsojbYI*g(q5h*Ukhlmn7noQ3o
z)APynVluUjBy%O1-dUm`*&>=JFlBSuo}wbBw|BLQgovF)0YzSU0N+z5?!He6Jx4qA
z0tCC=@{E2`F0*xuFOplH8-vsKOvgAzq<H9GT-PZ2&iEy+-q$Lsy1s)4_B`_w+LeM7
z?^i-^D0};d(N3Xp_-3aUvxPsdnT8R*9&v`RMsx_J%rr)1FT6IcgKl95ijRf*yhXA6
z|IY>{1Q*-9IN>0{e?JY3qZEc5I;^d8l(CZ9iaW~LHnlM8*uzHDg2%ZRCY-dm$63!3
zwe`tayR^L$m@#ESc>%BQQu+8P=fm9s0}K~z!upp5d)Xe9535}V*gmz;?5c#HE;{Rx
zt6D#xvX*-Fx(&d&X|KcXD!shS=RjVc1Fzhh(f{uD>aQ;IjiB*l!I47h4;EHJu1B}D
f{Zfcnv*1S|&t6xRfZbEU-c$=wPrrtTpPriEktU+x

delta 1224
zcmY*YTWHfz7+!HpT^nT=*Q&du?YcH?(^L_!yLEG3rfy6HeGzNdW~QM{r)kw9qI+;M
zjhFeS;=m1G#1}<nil}%6aiYG7B24z6!?)qHAo!om(G<dW{_p$#%i)}p@6or1O3#$$
zH$5ojsQR*m92ZV#sx>wsBnNZZOd_dhsyUU8XOjZ-Q0tt^wvI15@5}l8NLHoe!k~Z!
zax5Vz+9^#`E^90-F$XKEcs_(5=@L0Cq*E|Mt%N63!`etBAty4C2tSz9RGT3yb~LAC
zFkLq)jmC)t^qN~t%H##}9g|6c4dr)`%$8fsNPbt0BVMZfiIP&a2K~v~)$L^YwXBU~
zduv&ksVSS>YpW!xU~eU=U}q;kEMGyC*%cjR@z%P@va3!{J6M04q)|*e;#Q^!G0FH4
zuQ6f7uS_Rm#IXVKx?|%~MWs?gMoh=GVNK=Xfv*AnI;zmDaFPanPEs`L>_MDyHdz#D
z&!UnNObx)zfDPO(I~px6Pr=|}h^v7iS1lUjt}Tc^Tw$xCE*{9ru}mT@!wh4Cu12?B
z=rD`%fwg%2aHSCs3O+Tmg;p$tc{|wL)oA$L-hvSVQ^*EK++@Z@cN^kIcPpZ$sqXZ`
z4zmk)Pp+4hcH_2LQ4#ZEek7ww`-^F&nC6P<xnimo)6pWjSh_LK;ck;`dI)tM&h!Yn
zJq^?o)TO78@_0@^CL!S}-J`!xN4NfXhqWP1*QGaTp2aKaKc}gbB1DhIL`|APQOrw)
zYU^Izar8wG3z)o6{Jv0}RV`6DEhnS>0{#x<ARaC%VM+*Mt6@!gg@N>XfsqN)6s-1=
zdpqtuV48-{-acv?Wwjngm(@T!%cCf>&GTX_yk@H54Z9x2KWrc3gs++I*ZcKmaNIP^
z`dZ+d&x%&iAErg4mGgH(%1^9!{>|{rZ=G-24bPnnYzlB-3H+BB{kdHXtj64zfiQi{
z*k&SV1IAtk9xjCTK5jF8(rDk}x?zkXQ~q#WFsDa5g4>}jNVJLIj`^wWaIdiz%6Shx
zVytfFdok-g-&%ReAY-U9`YW8{$(|gcE*cCz42C-CYewNksDmCe3f5J_CKp^?weue+
CU!2td

diff --git a/doc/build/html/cfelpyutils.html b/doc/build/html/cfelpyutils.html
index fba5fea..d539a01 100644
--- a/doc/build/html/cfelpyutils.html
+++ b/doc/build/html/cfelpyutils.html
@@ -232,6 +232,23 @@ the write_slice_and_increment.</p>
 </table>
 </dd></dl>
 
+<dl class="method">
+<dt id="cfelpyutils.cfel_cxi.CXIWriter.are_stacks_initialized">
+<code class="descname">are_stacks_initialized</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#cfelpyutils.cfel_cxi.CXIWriter.are_stacks_initialized" title="Permalink to this definition">¶</a></dt>
+<dd><p>Checks if stacks are initialized.</p>
+<p>Checks the status of the stacks in the file and returns the status to the user.</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True if the stacks are initialized, False otherwise</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">status (bool)</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
 <dl class="method">
 <dt id="cfelpyutils.cfel_cxi.CXIWriter.close_file">
 <code class="descname">close_file</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#cfelpyutils.cfel_cxi.CXIWriter.close_file" title="Permalink to this definition">¶</a></dt>
diff --git a/doc/build/html/genindex.html b/doc/build/html/genindex.html
index 32f0bac..c7e545d 100644
--- a/doc/build/html/genindex.html
+++ b/doc/build/html/genindex.html
@@ -97,6 +97,8 @@
       <li><a href="cfelpyutils.html#cfelpyutils.cfel_geom.apply_geometry_from_file">apply_geometry_from_file() (in module cfelpyutils.cfel_geom)</a>
 </li>
       <li><a href="cfelpyutils.html#cfelpyutils.cfel_geom.apply_geometry_from_pixel_maps">apply_geometry_from_pixel_maps() (in module cfelpyutils.cfel_geom)</a>
+</li>
+      <li><a href="cfelpyutils.html#cfelpyutils.cfel_cxi.CXIWriter.are_stacks_initialized">are_stacks_initialized() (cfelpyutils.cfel_cxi.CXIWriter method)</a>
 </li>
   </ul></td>
 </tr></table>
diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv
index 4f56f08..f75d756 100644
--- a/doc/build/html/objects.inv
+++ b/doc/build/html/objects.inv
@@ -2,10 +2,7 @@
 # Project: cfelpyutils
 # Version: 0.5
 # The remainder of this file is compressed using zlib.
-xÚ­–±ŽÜ †û}
-¢‹”j­\‘æÚTWDŠ”âÒ¡YÛ“`@€ïÖyúÆ»ÞÓnsx„æãg†Yµhü4&2Qøéipz4(¾
-µÚ›>
桬ì?‹ýîr-Ï¥
-SL<ÙNhŒ}þ’ºS˜2¸­Jä¬x¼Fßfiƒ #5ß?¿J2Fˆñ#g¯î
h-cõW&'ßÎH¾Zït-Ó{´ZjH©3~3TQ¶ÄñÚŒ
-	¥!»]V‡i%{°úÚÈR"0ôKÜâfâœTið¬íòdŸM4¤Pòå%YìÀ'Tð[8«/‰Ù½á´rZÙ7°<þªÊ3×v½˜ìkÀLç&Qo•ž›DOG^ÀÇzîʐ­’èP¾¾Ý™e®¢k#Ðëö[}F²wißÖC°D/›ë%9Ÿ tõ¢Š¸¯ñ"u‰ô,ÔK™ÝMÁ²ˆ¥zܸ®Ãh7(jæQâ+7nÑclºÃŸs“í>È1é'í”Ø_ï½4Ïý‹aס%«ñ8;8ðß»ž¬Åï9Ow붅±ãâ2É]ò%
-Þ:æ¶	Yÿ§'êÆi~ÚŸ
-îGÉt9·$÷ÝÍÓÕ­v!¨þ=½ØÊÞ_eýg¾ùœ¾†+
\ No newline at end of file
+xÚ­–±ŽÛ0†÷<…Š+Ð)Foèrk§
+èpÝF¢m¶²$Hò]ܧ/e9qÉrrC¦ÄO?I“‰jÑøiLd¢ðÓÓàôhP|jµ7}ÌCÙÙûÝå^^K¦˜x±Ðúü&;t¦0ep;Z•ÈYñx¾Í<ÒAGj¾ÿ~~	”0dŒ2ãGî^ÝÐZÆê¯LN¾‘Zït-Ó{´ZjH©3~;4`!EI–¡¨7c•qeK\†Í¨€P²Û£í0Í¢dVßAÛš²%‰›‰ó·"#
žU¢]:áÈùkŒ†Jž«Í‰ø†
+~rõ6»7\VîûC+Ûà–ÇïCU×ç‘Q/&{çÖ2ÓyöE§·JÏM¢§#oàc=weÈÖIt(_	ßîƒÌ2Wѵèuû­¾"Ù»ü*X!À’½l®—ä|‚ÐÕ‹*þ
â¹ÆOàa¨+¤`¡^ÊìÞh
+–E,ÝãÆÀ}F»AQ3?%¾òPàñ=ÈV ;ü9÷8Ùîƒ<“~ÒN‰ýõÙKƒð<߸vZ²³£ÿIaדµø=çån=¶ð/N¼ QÜ"¹ËK¾DÁGÇ<6!ëÿ´ãBݸÍOûÓFÁý(•.÷–⾋l1]Eµ‹AõïéÅVÎþ*û?säÿÄÖ¦†
\ No newline at end of file
diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js
index 6589a4c..ae3b77f 100644
--- a/doc/build/html/searchindex.js
+++ b/doc/build/html/searchindex.js
@@ -1 +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,""],create_link:[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,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,create_link: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,delet:0,describ:0,detector1:0,detector2:0,detector:0,detector_1:0,detectorname1:0,detectorname2: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,further: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,link: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,replac: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
+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,""],are_stacks_initialized:[0,3,1,""],close_file:[0,3,1,""],create_link:[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,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,are_stacks_initi: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,create_link: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,delet:0,describ:0,detector1:0,detector2:0,detector:0,detector_1:0,detectorname1:0,detectorname2: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,further: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,link: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,otherwis: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,replac: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,statu: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
-- 
GitLab