From 57efbd67bf96886fc9aa176ef98274fe25de823f Mon Sep 17 00:00:00 2001 From: Laura Mendoza Date: Fri, 13 Sep 2019 15:48:06 +0200 Subject: [PATCH 01/35] doc test --- doc/Makefile | 2 +- doc/build/doctrees/Auto_tofu.geom.doctree | Bin 6376 -> 6369 bytes doc/build/doctrees/Auto_tofu.pathfile.doctree | Bin 114297 -> 114211 bytes .../doctrees/Auto_tofu.plugins.AUG.doctree | Bin 6181 -> 6180 bytes .../doctrees/Auto_tofu.plugins.ITER.doctree | Bin 6198 -> 6197 bytes doc/build/doctrees/Auto_tofu.plugins.doctree | Bin 8581 -> 8580 bytes doc/build/doctrees/Auto_tofu.treat.doctree | Bin 5305 -> 5304 bytes doc/build/doctrees/Citation.doctree | Bin 9082 -> 9081 bytes doc/build/doctrees/Dependencies.doctree | Bin 9814 -> 9813 bytes doc/build/doctrees/Todos.doctree | Bin 6993 -> 6992 bytes doc/build/doctrees/Tutorial_AUG.doctree | Bin 12931 -> 12930 bytes .../doctrees/Tutorial_Geom_Advanced.doctree | Bin 21573 -> 21572 bytes .../Tutorial_Geom_HowToCreateGeometry.doctree | Bin 34841 -> 34840 bytes .../Tutorial_Geom_SynthDiag_Basic.doctree | Bin 24944 -> 24943 bytes doc/build/doctrees/Tutorial_ITER.doctree | Bin 11158 -> 11157 bytes doc/build/doctrees/Versions.doctree | Bin 8131 -> 8130 bytes doc/build/doctrees/environment.pickle | Bin 1689261 -> 1689413 bytes doc/build/doctrees/index.doctree | Bin 30526 -> 30525 bytes doc/build/doctrees/overview.doctree | Bin 34956 -> 34955 bytes doc/build/html/Auto_tofu.pathfile.html | 2 +- doc/build/html/objects.inv | Bin 741 -> 741 bytes doc/build/html/searchindex.js | 2 +- doc/source/Auto_tofu.geom.rst | 28 --- doc/source/Auto_tofu.pathfile.rst | 28 --- doc/source/Auto_tofu.plugins.AUG.rst | 43 ---- doc/source/Auto_tofu.plugins.ITER.rst | 44 ---- doc/source/Auto_tofu.plugins.rst | 48 ---- doc/source/Auto_tofu.treat.rst | 28 --- doc/source/Citation.rst | 41 ---- doc/source/Dependencies.rst | 64 ----- doc/source/Todos.rst | 34 --- doc/source/Tutorial_AUG.rst | 63 ----- doc/source/Tutorial_Geom_Advanced.rst | 102 -------- .../Tutorial_Geom_HowToCreateGeometry.rst | 224 ------------------ doc/source/Tutorial_Geom_SynthDiag_Basic.rst | 94 -------- doc/source/Tutorial_ITER.rst | 53 ----- doc/source/Versions.rst | 36 --- doc/source/conf.py | 185 ++++++++------- doc/source/index.rst | 18 +- doc/source/overview.rst | 86 ------- 40 files changed, 115 insertions(+), 1110 deletions(-) delete mode 100644 doc/source/Auto_tofu.geom.rst delete mode 100644 doc/source/Auto_tofu.pathfile.rst delete mode 100644 doc/source/Auto_tofu.plugins.AUG.rst delete mode 100644 doc/source/Auto_tofu.plugins.ITER.rst delete mode 100644 doc/source/Auto_tofu.plugins.rst delete mode 100644 doc/source/Auto_tofu.treat.rst delete mode 100644 doc/source/Citation.rst delete mode 100644 doc/source/Dependencies.rst delete mode 100644 doc/source/Todos.rst delete mode 100644 doc/source/Tutorial_AUG.rst delete mode 100644 doc/source/Tutorial_Geom_Advanced.rst delete mode 100644 doc/source/Tutorial_Geom_HowToCreateGeometry.rst delete mode 100644 doc/source/Tutorial_Geom_SynthDiag_Basic.rst delete mode 100644 doc/source/Tutorial_ITER.rst delete mode 100644 doc/source/Versions.rst delete mode 100644 doc/source/overview.rst diff --git a/doc/Makefile b/doc/Makefile index d4d543162..43d4408ff 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -5,7 +5,7 @@ SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = -BUILDDIR = build +BUILDDIR = ../../test_doc/tofu # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 diff --git a/doc/build/doctrees/Auto_tofu.geom.doctree b/doc/build/doctrees/Auto_tofu.geom.doctree index 0441db5da2d98a089f967fe266474fed137f0e5c..a1c6ae2be5f5ed17242032199d2ea14337af27de 100644 GIT binary patch delta 218 zcmaE1_|TB0fo1Boi7dbQ4fR8dQ;UlAb5rwD@~aXz^D{1GG@6epsGpdZn4F)Nl4z`- znpak=Uy`3zYOJ4=nWSG(S(1^TXRK#7S&v0R&M@92KHWSyEh*J9O}C&DD6E?c)L2}h ZYiOWnJ~@HKc5)2!Oxl>fIf11^1OPwfO6&jt delta 225 zcmaE8_`;B-fo1C5i7dYbjPx_|b5r$m5{vWGGRsnvH}f$rWmH&%CaUj}U!IqfpO{jt z@9G!g8Z`L~lZ3IkesN|=s%}AIa&}^RYO#Jvep;!np`MAJLA;rfX?(h+v8hFhp`mU; brLms5Zcb)iX~kq|=4-Sx+;;Oc7H<&%K_E=9 diff --git a/doc/build/doctrees/Auto_tofu.pathfile.doctree b/doc/build/doctrees/Auto_tofu.pathfile.doctree index 057979fd9c7d716b541bd3c34b0e6f945f6e8524..ce89412b291d7c496208e21775c8ad348d14c194 100644 GIT binary patch delta 2350 zcmezQhi&m6HkJmKsf-g@e)F5^hZd(673=4w=B4CUC2rbzV210#y}P=o%X6nNL@gWHg_g$GnbO zW^LZb63NK&+S5g2ashV=FN&ilf8;8g%*;Mhav@dRZL!&&!)N!?n3-!Ui_U zHB@rtyO|=JUrtYAq?Uo3-_2~}mRwC8*KHPGc8Y~shD{b<#=m*;>L5|c_0)0Q zHqSU{!A?~Jn@`s8F!oKl7A1~S_L5mQSZw}%O-OTk3?n1Q^aB=*Jk#T&7?lLlMHv`M zlM<)$?PCCg$%>0iwze}yuv04)O#jEpC^CH-2jfv{nYbNjq8+>BHmXEj(Dt8#jC_C4I8zL+zvEyrLyE=s)U=xbo~ZK_U%ojj9gsQGIBf6 HNH048((5c# delta 2393 zcmZ4dhwbMdHkJmKsZ0}DehZlCXXNLm>gOaD=ci?sr6zCYW8BNAun?U1VF{I7Zn4>f!>ldP`k$jscM$TuUo{^g` z#Qoq`*htlI%+If2p{|jW^Yghk&n$T&rm%sUE}iT@foro~PZcwDjos`&VHcaidTO|I zbK&%LjMOm-SRnaqzC5#tTVWkFTn04GVzU2g{>@*O?q;E$k(>QjCyFX;qLK?OC+F`M z+?;gKjGf9xdY!D|;h4zCz~EezSu)x0mCWRXn`ZJ7tWAM$2#2XDni;TAHw!UdztNKRtkh@e~crWZiy_lTnLZVJDS>#$r0ZB%{>!O@fSj z*{EmecA%lI22@MLHrs!AGP<)-(Y(h2j7yajmQf=Rr!TB$wBN2@%E-k<9Rs%m4Q#Rl E0Pa*KGynhq diff --git a/doc/build/doctrees/Auto_tofu.plugins.AUG.doctree b/doc/build/doctrees/Auto_tofu.plugins.AUG.doctree index 38cf83eb9b3401d658bb7c968f97b41f3a7dd9d5..14e6c43b9196354c888732bb2e2d7382121b567d 100644 GIT binary patch delta 33 ocmZ2#u*86+fn}=XM3&$D7W$#ZsYS*5xv6<6`BjOV`5DE;0mG9E1poj5 delta 34 pcmZ2tu+)I1fn}=HM3&zImiig_xvBa&iN*P8nPsWToB0^U!~xJ<3v2)Y diff --git a/doc/build/doctrees/Auto_tofu.plugins.ITER.doctree b/doc/build/doctrees/Auto_tofu.plugins.ITER.doctree index 98b6b8517b81b024d1979e72172f4ecd03012e23..74215aa9452d86424904c0af6b57d23208bd172e 100644 GIT binary patch delta 33 ocmdmHu+@O2fn}=JM3&$DminQ^sYS*5xv6<6`BjOV`5D#40m-rpN&o-= delta 34 pcmdmLu+4y_fn}=pM3&zIR{9zFxvBa&iN*P8nPsWToB0^k#R1l^3$XwI diff --git a/doc/build/doctrees/Auto_tofu.plugins.doctree b/doc/build/doctrees/Auto_tofu.plugins.doctree index 9ab3679fb70fcfb1cb28351981635ee86bdaf3c0..912202dc460a424da940d9515ae471bf61682172 100644 GIT binary patch delta 33 ocmZp5ZgFO5V3}Guk>xkPiGFBtYEiL%ZfagiepTXTe#SBd0LlgnumAu6 delta 34 pcmZp1Zgpm9V3}Gqk>$65seVR&ZmNDxVsU<2W?5?TWN?Z diff --git a/doc/build/doctrees/Auto_tofu.treat.doctree b/doc/build/doctrees/Auto_tofu.treat.doctree index 7eb13e6524b14233c9e99b08ec04d00a5d7e6978..2259a4d05c9597016d0602b5c750361e609f624e 100644 GIT binary patch delta 33 pcmdm~xkHnsfo1C2i7dbQjr2o{Q;UlAb5rwD@~aXz^E0jz1_0Ip3_Sn< delta 34 qcmdm?xl@y+fo1Bti7dYbjP*0}b5r$m5{vWGGRsnvH}f&B5(WU{a}1;a diff --git a/doc/build/doctrees/Citation.doctree b/doc/build/doctrees/Citation.doctree index db8644f7a4337ab6645545d0d10c52fe20072b0e..ce3e3c32cbd6e2755b39d49d3df9e335f3b8d155 100644 GIT binary patch delta 34 pcmez6_S21}fn{pmMivuBer^5G;?$yI{oK^Nl>Dm1%^r+KN&wx53*7(! delta 35 qcmezA_REc>fn{p`MivuB0UiB}{M=OioW$b%w9K;9Dm1%^r+=ssPd=3t#{M delta 35 qcmccWbIpgPfn}=qMivuB0R#Pv{M=OioW$b%w9K;9qyXT!3>yFd diff --git a/doc/build/doctrees/Tutorial_AUG.doctree b/doc/build/doctrees/Tutorial_AUG.doctree index eea3efb0853ca1fd39d88daf7db63ce6f15e85fe..f5b2445678a46bac07038de00d3fb146cf34c460 100644 GIT binary patch delta 34 pcmZopZAxWnV3}IJk;RRXUtd48IJKx)KQ}cmCBG_ha}=YdApps?3uFKQ delta 35 qcmZolZBAurV3}I6k;RQsz(7AEKQ~oBC$Ts`Ewd~&d2=MArXc{JOBUy delta 37 tcmX@Ig7N4IMwSMasa6|Vk{Jc8^fU5vQ}uHai}TYm%Tkj!moc6T0s#D<4Wj@6 diff --git a/doc/build/doctrees/Tutorial_Geom_HowToCreateGeometry.doctree b/doc/build/doctrees/Tutorial_Geom_HowToCreateGeometry.doctree index 7e2609b3de65354d79d628eca7d4323f979a4e4d..19c1c59e34fd8ff7f010c005e8931c27881baea3 100644 GIT binary patch delta 36 scmbO^foaABCYA=4sk|Fmk{J12^h1kNi;DGgQ}a^ts}eVtF)nTc0NFhZoB#j- delta 37 tcmbO+fobLhCYA=4seBt*k{AVC^)vEwQ}uHai}TYm%Tkj!mohGH0|4eb4FdoG diff --git a/doc/build/doctrees/Tutorial_Geom_SynthDiag_Basic.doctree b/doc/build/doctrees/Tutorial_Geom_SynthDiag_Basic.doctree index 46383adf99b38e325210cedb86dc9c191b287501..79b27e2b50ed13e6f54ca1da609a1b6610dac30e 100644 GIT binary patch delta 36 scmexxi1Ga)MwSMasVN&-CNT0l=!X`k78UE~rsk#OS0!#t<8 delta 37 tcmaEVi1EWAMwSMasi_-TCNK&(>SyHVrt0S;7U!pBmZc_dUd(tV9sn7x4#WTe diff --git a/doc/build/doctrees/Tutorial_ITER.doctree b/doc/build/doctrees/Tutorial_ITER.doctree index d55dbc5c5333e3d5e659e97cd729e57de4739726..c3fd87de69db6675f6b0e65b0ac71809528c8f51 100644 GIT binary patch delta 34 pcmbOhJ~f=Bfn{pfMivi7egpl`;?$yI{oK^Nl>Dm1%`uEtS^&*&3y=T+ delta 35 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�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�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Ƚ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Ƚ$rm7 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

@xNBAY8>C_y$Wxano7ceC*m?8QZiTqB*AP^^ zH)O_FU=-UsmUb}h{!aX(NlbD>ot|+o%mDQ`6{CG{>yU{VPA}=uugtjHq;vVh}h&=GU{_%`^V;1mv1M51hCHm&9`vH-& z9F7?5-C6f1Nsukv8uHJx?gJtpOAahyP>rC_M)2XR`zHy`jXNr6bRW&Sb910OTiqBp z{O9M~7l}VN?kJPdt<1USNcXUhAZzeTbFTf+{n0V47=>u>kJD3AL6uboGm!R!fa+Q; w;F`(`v?@dbtO$?58iYnOs8~?}j<=the=Yz5vp(eW@yUD^BY!j;VM5;eH}-Xq;s5{u diff --git a/doc/build/doctrees/index.doctree b/doc/build/doctrees/index.doctree index c33e16490be504b612f76c7a8cd85fe302ea8539..c1a594a8a5fcaec05b2afe27c798df67d8a0b176 100644 GIT binary patch delta 36 scmdn@j&bihMwSMasYV-FmN4;a=!X`k78UE~rsk#OS0!%V!PHg)00Z+500000 delta 37 tcmdn{j&a{RMwSMasm2>wmM{ru>SyHVrt0S;7U!pBmZc_d-pNavigation

@author: didiervezinet

-class tofu.pathfile.ID(Cls=None, Name=None, Type=None, Deg=None, Exp=None, Diag=None, shot=None, SaveName=None, SavePath='/home/lasofivec/tofu/doc', USRdict={}, LObj=None, fromdict=None, Include=['Mod', 'Cls', 'Type', 'Exp', 'Deg', 'Diag', 'Name', 'shot'])[source]
+class tofu.pathfile.ID(Cls=None, Name=None, Type=None, Deg=None, Exp=None, Diag=None, shot=None, SaveName=None, SavePath='/Users/mendoza/tofu/doc', USRdict={}, LObj=None, fromdict=None, Include=['Mod', 'Cls', 'Type', 'Exp', 'Deg', 'Diag', 'Name', 'shot'])[source]

A class used by all ToFu objects as an attribute

It stores all relevant data for the identification of instances Stored info can be the name of the instance, the experiment and diagnostics diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv index 1e7571e6c50fb1ae10eeba41ccd2dd342228dc7c..6684abb484cd328bda31ce86daefc0ed1d03c472 100644 GIT binary patch delta 630 zcmV-+0*U?Q1?2^hdViL|a+@#^hVMLuI_(uta`nx%8`m>wor#_H$jH(HYC&RPoQ_S0PPDg$yyW|dKq>0Fc46!+Q6_lHy7-Ba|ff7g^_!)qlcCIK7a&KULAQZuu4H`^C0c@nQn2w5$bgxLQss|A zn-w1oVz?D3O;kx?^k_& z^%+@}2&pe1oPV=VaF%nxWcISW4nctf;mbh$YWwN=I>0I%!M^nnrUYt+V;fhm{$?G_ zg`v#}^z0=!1`?Jg_~wu&oH)EJz1s|Z&lRwcn1G^N;K znWYZ4_918%owTrTKXfkC1uzlgMKZ1X7{A2vh-SQ|l79goBzX$Q{H$KFHH6v50HK5n znn^D5DsIP)_D?dS zJIMZXmT&l3X*z8umy#N^hAc=x3LMg3KBcp^McdclC~FJsDZWF7oderJdyoG9{-bf0 zS(Sry*XCV-e**)FihbBQ9O;Yut8gh5eu--Vul=l@&B@p8%9kGSo*4IkkZYhNOMS7k QIqt^!pJ)QXKjo}VmaURA5C8xG delta 630 zcmV-+0*U?Q1?2^hdVf~Uj+-zLzVj5W+AGoSHMcbBrjfSIYLjh`$gu}-3pT=rZEk&y zzFwcCV+;vSNU9|#?3wS!jAsx=#nmJMm6KvW%@waQAa`U|85Nl>HAzjLy?4p*0||pB zQ&5w}0^!5NE`6OmnWw;hZfFkc-4Cl2SCSc_B)Pw+buO}6Sbr+ZsMc@fO*EM3vGvZu zq>7JG_=+!Zo5F_HaJ$OO=9vp-MvANpkfZOQdx2=KWPOuLv;+yIVB{3Gasnl^nLgx#lp}b0l7< zuaQ-WkotmzOMmtiT;yC}GJ9EG7eRm%!o>i8wf*#bUBDuof?f3_ObOHsbDLD}{LMa? z3qzY5>T$Z51LID}glyGAH4PSkGsHnM0bZf{aYqY-t>Vf9H3661D#8_sRY|Z1O(}MG z%u)wi`w%pXPD0+@(#kW8CC@|V~i(TvwrGJoKMN*=;#epato8p3R0fKb8( zO{CHW9c;USDfcH1$k?iRgI~6Y%Vq=MvA&zVH0c6i(MPHgcG2?$==-U>sL)VI14)V2 zSSXQ5nvuA)Q)sDR4*|K*TGYbyj&a(fUgFrA19$WdN{!9sbw(F+!~;UbZQIfQO=ffl z*?;a5KW{5drETX@QiIlz1qn!jP5R4M>7wnS?J_vR+5`3w-yy@wfvupOqrboZXzXQH ztofu.geom","3. tofu.pathfile","4. tofu.plugins","4.1.1. AUG","4.1.2. ITER","2. tofu.treat","Citing ToFu:","Dependencies","To do for contributors","AUG-specific tutorial","How to create a diagnostic geometry","How to create a diagnostic geometry","How to compute integrated signal from synthetic emissivity","ITER-specific tutorial","Versions of ToFu:","Welcome to tofu\u2019s documentation!","Overview"],titleterms:{"function":12,"long":8,Ves:[3,4],access:[9,13],apertur:11,aug:[3,9],bolo:4,camera:11,cite:6,code:[2,8,12],comput:12,configur:11,content:[10,15],contributor:8,creat:[10,11],data:[3,9],depend:7,diagnost:[10,11],document:15,element:11,emiss:12,exist:[9,13],field:12,from:12,geom:[0,3,4],geometri:[8,9,10,11,13],give:12,how:[9,10,11,12,13],indic:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15],input:12,integr:12,iter:[4,13],librari:[9,13],load:[9,13],machin:2,math:8,orient:2,overview:16,pathfil:1,plot:[11,12],plugin:2,result:12,save:11,signal:12,specif:[9,13],struct:4,structur:11,sxr:[3,9],synthet:12,tabl:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15],tabul:12,term:8,tofu:[0,1,2,5,6,9,13,14,15],treat:5,tutori:[9,13],version:14,vessel:[10,11],welcom:15,write:12,your:12}}) \ No newline at end of file +Search.setIndex({docnames:["Auto_tofu.geom","Auto_tofu.pathfile","Auto_tofu.plugins","Auto_tofu.plugins.AUG","Auto_tofu.plugins.ITER","Auto_tofu.treat","Citation","Dependencies","Todos","Tutorial_AUG","Tutorial_Geom_Advanced","Tutorial_Geom_HowToCreateGeometry","Tutorial_Geom_SynthDiag_Basic","Tutorial_ITER","Versions","index","overview"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["Auto_tofu.geom.rst","Auto_tofu.pathfile.rst","Auto_tofu.plugins.rst","Auto_tofu.plugins.AUG.rst","Auto_tofu.plugins.ITER.rst","Auto_tofu.treat.rst","Citation.rst","Dependencies.rst","Todos.rst","Tutorial_AUG.rst","Tutorial_Geom_Advanced.rst","Tutorial_Geom_HowToCreateGeometry.rst","Tutorial_Geom_SynthDiag_Basic.rst","Tutorial_ITER.rst","Versions.rst","index.rst","overview.rst"],objects:{"tofu.pathfile":{CheckSameObj:[1,1,1,""],ID:[1,2,1,""],Open:[1,1,1,""],SaveName_Conv:[1,1,1,""],Save_Generic:[1,1,1,""],SelectFromListId:[1,1,1,""],convert_units:[1,1,1,""],get_PolyFromPolyFileObj:[1,1,1,""]},"tofu.pathfile.ID":{set_LObj:[1,3,1,""],set_Name:[1,3,1,""],set_SaveName:[1,3,1,""],set_USRdict:[1,3,1,""]},tofu:{geom:[0,0,0,"-"],pathfile:[1,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:{"0_11":7,"31408026e":12,"31675917e":12,"39941326e":12,"3rd":12,"40620027e":12,"boolean":1,"case":[1,8,12],"class":[0,1,11,15],"default":[1,11,12,14],"final":[1,16],"function":[1,8,10,15,16],"import":[9,11,12,13,16],"int":1,"long":[10,15],"new":[1,6,10,11],"return":[1,9,11,12,13],"short":11,"true":[1,9],"while":[2,11,16],Cls:1,For:[1,12,16],LOS:[0,1,11,12,16],Pos:1,Pts:12,That:1,The:[0,1,2,9,10,11,12,13,14,16],Then:12,There:1,These:16,Use:[10,15,16],Used:1,Useful:1,Using:16,VOS:12,Ves:[1,11],__doc__:15,_creat:1,_todict:1,abl:12,about:[1,10,11,16],absolut:[1,12],acccount:16,acceler:16,access:[2,12,15,16],accord:[1,14],account:[9,13],accur:16,accuraci:16,acknowledg:[10,15],activ:[10,11],adapt:[2,16],add:16,added:16,addinfo:1,addit:9,advanc:[10,11,14,16],advis:11,after:1,again:16,against:1,aim:[15,16],algorithm:12,all:[1,8,10,11,12,15,16],allow:[8,10,11,15,16],alon:16,along:[11,12],alreadi:[9,10,12,13,14,15],also:[1,6,9,10,11,12,16],among:[11,16],ang:11,angl:[8,11,12],ani:[1,10,11,12,15,16],anisotrop:16,anoth:16,anywai:11,apert:[1,11],apertur:[0,1,9,10,13,15,16],append:11,appli:[10,12],approach:[10,12,15,16],appropri:[1,11],approxim:[15,16],arbitrari:[1,10,11,12,15],architectur:16,arcsin:11,argument:[1,9,11,12],around:16,arrai:[1,9,11],articl:6,asdex:[6,9],ask:11,aspect:[8,15],assembl:11,assign:[10,11],assist:16,associ:[11,16],assum:12,attribut:[1,11],aug:[1,2,13,15],author:[1,6,10,15],autoamt:1,automat:[1,11],avail:[1,11,12],avoid:16,axes:11,axi:11,base:[6,16],basi:[10,11,15,16],basic:[10,11,12,15],becaus:12,been:[2,9,13,14,16],befor:[1,9,12,13,14],behaviour:[1,10,15],being:[2,15],belong:[1,11],below:[11,16],between:[1,9,13,16],bibtex:6,bolo:1,bolomet:16,bool:1,boost:16,both:[1,11,12,16],bottom:11,boundari:12,branch:8,brief:[10,15],briefli:[6,16],bug:15,build:[10,16],built:[1,16],cad:16,caid:[2,8,16],calc_sig:12,calcul:16,call:[8,12],callabl:12,cam1d:11,cam2:11,cam:1,camera:[1,9,10,13],campaign:[9,13],can:[1,2,9,10,11,12,13,15,16],cannot:16,capac:[6,16],cartesian:[1,11,12],center:[11,12],centimet:1,central:16,certain:14,chang:[1,9,11,13],check:[1,10,11,15],checksameobj:1,choic:[10,12,15,16],choos:[9,12],chosen:[1,11,16],circl:11,cite:[10,15,16],click:11,close:11,cluster:[9,13],code:[7,10,15,16],color:11,come:[9,13,16],command:[9,13],comment:1,common:16,commun:[15,16],comparison:16,comparisopn:16,compat:[8,9,16],compil:7,complet:[1,11,15],compress:[1,11],compris:[10,11],comput:[1,2,7,8,9,10,11,13,15,16],concentr:2,cone:16,config:11,configur:10,congratul:11,connect:[9,13],consid:[1,10],consol:[9,13,15],constitut:1,constraint:[1,12],construct:16,contact:15,contain:[1,11],contextu:15,continu:[11,15],contribut:[10,15],control:1,conveni:11,convent:14,converg:[10,11],convert:1,convert_unit:1,coordin:[1,11,12],coorind:1,core:16,correspond:[9,11,13,16],cos:11,costli:12,coverag:16,cpu:[8,16],creat:[1,8,12,15,16],create_camlos1d:11,create_camlos2d:11,creation:[1,10,11],crit:1,criteria:1,criterion:1,cross:[11,16],current:1,curv:16,custom:[2,12],customis:16,cut:16,cython:[7,8,16],d12:11,dai:15,data:[1,2,14,15],databas:16,date:[1,9,13],datetim:7,dateutil:7,debug:15,decid:[10,15],dedic:[6,11,12],def:12,defin:[1,10,11,12],definit:16,deg:1,degre:[1,14,16],demand:2,depend:[1,9,10,11,12,13,15,16],deprec:1,deriv:[1,12,16],describ:[6,8],descript:[10,15,16],design:[10,14,15,16],desir:[11,12],detail:[6,8,9,11,15,16],detect:[1,12],detector:[0,10,11,12,15,16],determin:7,develop:[2,14,15],diag:[1,11],diagnost:[1,9,13,14,15,16],dict:1,dictionari:1,dictionaryb:1,didier:15,didiervezinet:1,differ:[1,11,12,16],differenti:16,dimens:12,dimension:1,diod:1,direct:[10,15,16],directli:[12,16],discret:[10,12,15],discretis:16,discrimin:1,dismiss:1,disrupt:16,distanc:1,distribut:[7,10,15],distutil:15,div_r:11,div_z:11,divertor:11,django:16,dlong:11,doc:1,docstr:15,document:[6,7,8,9,10,14,16],docutil:7,doe:[1,10,11,12],doing:16,done:[1,12,16],due:[12,16],e11:11,e12:11,e21:11,e22:11,each:[1,2,8,9,10,11,12,13,15,16],easili:[11,16],edg:16,effect:[11,12],effort:2,either:[1,12,16],electron:16,element:[0,1],els:12,elt:11,eltv:11,emiss:[10,11,15,16],enabl:16,enclos:11,enough:[6,14,16],ensur:2,enter:[9,13],entir:11,environ:2,equal:11,error:12,etendu:[12,16],eurofus:6,eval:1,evalu:[1,12],even:11,everi:12,everyth:[2,11],evidenc:6,evolut:16,exact:16,exampl:[1,10,11,12,16],except:11,exist:[10,11,12,15,16],exp:[1,11,12],expand:11,expens:16,experi:[1,2,11],experiment:[9,13,16],explor:[11,16],express:1,extarg:12,extens:1,extra:12,extract:1,facecolor:11,facilit:16,fals:[1,12],famou:[10,11],far:[9,13],fast:[1,8,16],faster:16,featur:[12,16],fed:1,feed:[11,12],feedback:15,few:[8,9,13],ff_interp:12,field:[10,15,16],figsiz:11,figur:[11,16],file:[1,11,12],finalis:16,find:[10,11],findsolfil:1,finish:1,first:[12,14,15,16],fisher:16,fit:16,fix:12,flag:1,flexibl:16,folder:1,follow:[1,2,7,10,11,12,14,15,16],forceupd:1,form:[1,9],format:[1,9],former:1,fortran:16,found:[1,10,11,15,16],free:[10,15],friendly:14,frist:8,from:[1,10,11,15,16],fromdict:1,full:[1,15,16],fulli:16,functionn:16,further:16,fusion:[6,15,16],futur:16,garch:[9,13,15],gaussian:12,gave:11,gcc:7,gdetect:[9,12,13],gen:16,gener:[1,7,9,13,15,16],geom:[1,9,10,11,13,15],geometr:[11,15,16],geometri:[0,2,12,14,15,16],germani:15,get:[11,15,16],get_polyfrompolyfileobj:1,git:7,github:[2,10,15],give:15,going:11,good:[1,16],gpu:8,graphic:16,grid:16,group:[10,11,15],growth:6,guarante:15,gude:6,gui:[8,16],guid:[10,11],gysela:16,hand:16,handl:[14,15,16],happen:12,has:16,have:[1,2,9,10,11,12,13,14,15,16],head:[1,9,13],heaviest:1,held:[10,15],hello:[10,11],helloworld:11,help:[11,15],henc:[12,16],here:[1,10,11,12,15],highli:11,home:[],homepag:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15],horizont:11,host:[9,10,13,15],hour:8,how:[1,15],howev:16,http:6,hxr:1,hypot:12,idea:16,identif:[1,11],identifi:1,igochin:6,illustr:[11,16],impact:15,implement:[9,11,13,14],implicitli:1,importantli:15,improv:[15,16],includ:[1,6,8,11,12,14,16],increment:15,ind:1,inde:[1,11],independ:15,index:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15],info:[1,15],inform:[1,11,16],ingesson08fst:16,inner:11,inout:1,input:[1,10,15,16],insid:12,instal:[1,15],instanc:[1,9,11,12,13],instead:[1,9,10,11,15,16],institut:[9,13,15],integ:1,integr:[10,15],intel:7,intend:16,interact:11,interest:[6,16],interfac:16,intermedi:[1,12],internet:16,interpol:12,interpret:16,intersect:[10,11],introduc:11,invari:12,invers:[8,10,14,15,16],ion:[11,12],iop:6,ipp:[9,13,15],ipython:[7,9,11,13],isotrop:12,issu:16,iter:[1,2,12,15],its:[6,10,11,12,16],itself:[1,2,11,15,16],iython:15,jet:1,job:16,joint:16,jorek:16,journal:6,jul:1,just:[10,11,12],keep:[10,11,15,16],kei:[1,8,11,16],keyword:[1,9,11,12],laboratori:[2,10,15],languag:16,laptop:16,larg:16,larger:[1,10,11],lasofivec:[],last:16,latest:[9,13],lax:11,ldet:12,least:1,left:11,len:[1,10,11],length:11,let:11,letter:11,lfield:1,lgd:[9,13],librari:[8,10,11,15,16],licens:[10,15],lid:1,lien:16,light:1,like:[1,11,12,16],lim:11,limit:11,lin:1,linalg:11,line:[10,12,15,16],linear:[10,11],linearli:11,link:[1,8],linspac:11,list:[1,8,9,10,11,13,14,15,16],live:11,load:[1,10,11,12,15],loadtxt:1,lobj:1,local:[2,11,16],log:1,logic:1,look:16,lower:11,lstruct:11,machin:15,made:[1,11],mai:[1,2,6,9,11,13],main:[15,16],maintain:15,make:16,mani:14,manufactur:1,match:1,materi:1,matplotlib:[7,11,12,16],matrix:[8,16],max:[9,13,15],maximum:16,mdsplu:7,mean:[9,13],meantim:6,measur:16,mechan:1,mei:11,mendoza:1,mesh:[1,8,16],meshcheriakov:6,metadata:14,meter:1,method:[6,9,11,12,13,15,16],millimet:1,mind:[10,15,16],misc:11,miscellan:[11,15],mit:[10,15],mod:1,mode:[1,12,16],model:0,modifi:11,modul:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],modular:[15,16],monoton:6,month:8,more:[9,10,11,13,14,15,16],mosli:11,most:15,mostli:11,mpi:16,mst1:6,much:16,multipli:12,must:11,n12:11,name:[1,11,12],natur:1,ndarrai:[1,12],necessari:[1,10,11,12,16],need:[1,2,9,12,13,16],neither:[10,15],network:2,next:16,nomenclatur:2,non:[2,6,8,10,11,12,16],none:1,nor:[10,15],norm:11,normal:11,nose:[7,15],notic:[11,12,15],now:[1,9,11,13],npz:[1,11],nuclear:6,number:[1,6,9,10,11,12,13,15],numer:12,numpi:[1,7,9,11,12,16],nurb:16,obei:12,obj0:1,obj1:1,obj:1,object:[1,9,10,11,12,15,16],objectov:16,obstruct:12,offer:16,offlin:16,old:1,onc:[1,11],one:[1,6,9,10,11,12,13,16],ones:1,onli:[1,9,11,12,13,14,16],onlin:16,open:[1,2,10,12,14,15,16],openmp:16,oper:[1,16],optic:[1,10,11],optim:16,optimis:16,option:12,order:16,org:6,orient:[15,16],origin:1,orthogon:11,other:[1,9,11,13,15,16],otherwis:[10,11],our:12,out:[1,10,11,15],outpath:1,output:[1,12,16],over:11,overrid:1,overview:[10,15],own:[10,11],p1_2d:11,p2_2d:11,packag:[7,10,15,16],page:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],paper:6,parallel:[8,16],paramet:[1,12],part:[7,16],partial:12,particul:16,particular:[11,16],particularli:16,pass:[1,11,12],passiv:11,password:[9,13],path:[1,11,12],pathfil:[12,15],pathfileext:1,pattern:11,pck:1,pep426:14,perfom:12,perform:16,permiss:[10,15],pfc:11,phi:11,phillip:16,philosophi:16,physci:14,physic:[6,9,11,13,15,16],pigasu:[8,16],pip:7,place:1,plan:16,planar:[10,11],planck:[9,13,15],plane:11,plasma:[9,10,11,13,15,16],pleas:[6,10,15],plot:[7,15],plot_sig:12,plot_touch:11,plt:[11,12],plugin:[1,9,12,13,15],point:[1,6,11,12],poli:[1,11],poly1:11,poly2:11,poly_r:11,poly_z:11,polyfileobj:1,polygon2:7,polygon:[1,10,11],posit:[9,13,16],possibl:[8,16],postdoc:15,postexp:1,potenti:16,practic:1,pre:[9,11,12,14,16],precomp:12,precursor:6,predefin:16,preexp:1,prepar:6,prerequisit:12,present:[1,6],preserv:1,previou:16,pring:1,print:[1,11,12,15],problem:[8,10,15],procedur:1,process:15,produc:[12,14],progress:16,project:[10,11,15,16],proper:16,prospet:10,provid:[0,1,2,8,10,11,12,15,16],publish:[10,15],pure:11,purpos:11,pygment:7,pyplot:[11,12],python:[7,8,10,12,15,16],pyton:16,pyzmq:7,quad:12,qualiti:[10,15],quantit:1,quantiti:16,quick:11,quickli:1,rad:11,radiat:16,radiu:11,rai:[9,13,16],rate:6,ratio:16,ration:16,reach:[12,14],reader:6,readi:1,realli:12,reason:[8,11],recommend:[1,11],reconstruct:[1,16],record:1,rectangular:16,reduc:15,refer:[1,15,16],regard:16,region:11,regular:16,regularis:[10,15],rel:12,releas:14,relev:[1,16],reli:11,remain:2,remov:1,replacepath:1,report:15,repres:[10,11,16],reproduc:15,requir:[1,7,8,12,14,16],requisit:11,research:[10,15],resolut:12,resort:16,respect:16,respons:[10,15],rest:[11,16],result:[1,6,10,14,15,16],rotat:11,routin:[1,8,9],run:16,same:[1,8,11,12,16],satisfactori:14,save:[1,15],save_gener:1,savenam:[1,11],savename_conv:1,savepath:[1,11],savepathinp:1,savez:1,savez_compress:1,sawtooth:6,scientif:7,scipi:[7,16],search:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15],second:[12,16],section:11,see:[9,10,11,13],selalib:16,select:1,selectfromlistid:1,self:[10,11],semant:14,sens:15,sep:1,sertoli:6,serv:16,server:2,session:[11,12],set:[1,10,11,12,15,16],set_colors_random:11,set_lobj:1,set_nam:1,set_savenam:1,set_usrdict:1,setuptool:7,sever:[2,11,14,16],shall:1,shape0:1,shape:[10,11],shot:[1,9,11,13],should:[1,10,11,12],show:16,sight:[10,11,12,15,16],siglo:12,signal:[10,15],sigvo:12,simp:12,simpl:[10,11],simpli:[11,12,16],simualt:16,simul:[10,12,15,16],sin:11,sinc:[6,9,11,12,13,16],singl:12,size:[9,13,16],skip:11,skiprow:1,slight:11,slower:1,small:12,smaller:1,smooth:2,soft:[9,13],solid:[8,12],solut:16,solv:[10,15],some:[1,7,9,11,13,16],someon:12,sometim:[9,13],somewhat:14,somewher:1,sort:1,sourc:[1,2,10,14,15,16],space:1,spacial:12,span:11,spatial:16,specialist:2,specif:[2,11,12,15,16],specifi:[1,9,11,13],spheric:[8,10,11],spline:[1,16],ssh:[9,13],ssx:9,stabl:14,stack:6,stand:16,start:[9,11,13,15],state:14,stick:11,stop:12,store:[1,2,9,11,13],storign:1,str:1,struct:1,structral:11,structur:[0,15],success:[10,15],suffici:16,suit:16,suppos:12,suppress:12,surfac:[10,11],sxr:[1,13],syntax:15,synthet:[10,14,15,16],system:2,take:[11,12,16],tangenti:11,team:6,technolog:16,tem:11,term:[10,15],termin:[9,13],test:[1,7,10,11,15],tfaug:[9,13],tfg:11,tfg_vestor_misc_world_sh0:11,tfiter:13,tfpf:12,thank:16,thei:[1,2,11],them:[1,2,10,11,15],theori:[9,13],thet1:11,thet2:11,thet:11,thi:[1,6,8,9,10,11,12,13,14,15,16],thick:1,though:[11,16],three:16,through:[8,10,11,15],thu:[10,11,14,15],tikhonov:16,time:[9,11,12,13],titl:6,todo:[15,16],tofu:[7,8,10,11,12,16],tofu_geom:16,tofu_inv:16,tofu_matcomp:16,tofu_mesh:16,tofug:8,tok:[9,13],tokamak:[11,16],toki01:[9,13],tomograph:[10,14,15,16],tomographi:[15,16],too:16,tool:[10,11,15,16],tor:[1,11],tornado:7,toroid:[10,11,16],track:[1,11],transpar:[10,15],transpos:1,travel:16,treat:15,treatment:[9,14],trival:8,tutori:[10,11,12,15,16],two:[1,11,16],txt:1,type:[1,11,16],typic:[1,11],under:[1,10,15],underscor:1,unifrom:16,unit:1,unlik:11,unwant:[10,15],updat:1,upgrad:[6,9,15],url:6,use:[1,2,10,12,15,16],used:[1,11,14,15,16],useful:11,user:[1,2,14,16],uses:[1,6,7,10,12,15,16],using:[1,7,8,9,10,11,12,13,15,16],usr:1,usrdict:1,usual:15,util:11,vaccum:11,vacuum:0,val:1,valid:1,valu:[1,11,12],variabl:[1,16],vector:11,verb:1,veri:[8,10,15,16],version:[1,10,15,16],ves:11,vessel:[0,1,12,15],vezinet:[6,15],via:[2,9,13,16],view:[11,16],visit:15,visual:16,visualis:11,vol:12,volum:[6,10,11,12,15,16],wai:[12,16],wall:11,want:[11,12],warranti:10,web:6,webpag:15,wed:1,week:8,weiland:6,well:[11,15],were:14,west:1,what:[10,11,12,16],whatsoev:11,when:[1,11,12],whenev:[8,16],where:[1,9,11,12,13,15],whether:[1,9,16],which:[1,2,6,7,8,9,10,11,12,13,14,15,16],wide:16,window:9,wish:[11,15],without:[1,16],work:[8,10,14,15,16],world:[10,11],would:12,wrapper:8,write:8,writen:2,year:[6,8,15],yet:[10,11,15,16],you:[1,2,9,10,11,12,13,15],your:[9,10,11,13],yourself:11,zero:[11,12]},titles:["1. tofu.geom","3. tofu.pathfile","4. tofu.plugins","4.1.1. AUG","4.1.2. ITER","2. tofu.treat","Citing ToFu:","Dependencies","To do for contributors","AUG-specific tutorial","How to create a diagnostic geometry","How to create a diagnostic geometry","How to compute integrated signal from synthetic emissivity","ITER-specific tutorial","Versions of ToFu:","Welcome to tofu\u2019s documentation!","Overview"],titleterms:{"function":12,"long":8,Ves:[3,4],access:[9,13],apertur:11,aug:[3,9],bolo:4,camera:11,cite:6,code:[2,8,12],comput:12,configur:11,content:[10,15],contributor:8,creat:[10,11],data:[3,9],depend:7,diagnost:[10,11],document:15,element:11,emiss:12,exist:[9,13],field:12,from:12,geom:[0,3,4],geometri:[8,9,10,11,13],give:12,how:[9,10,11,12,13],indic:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15],input:12,integr:12,iter:[4,13],librari:[9,13],load:[9,13],machin:2,math:8,orient:2,overview:16,pathfil:1,plot:[11,12],plugin:2,result:12,save:11,signal:12,specif:[9,13],struct:4,structur:11,sxr:[3,9],synthet:12,tabl:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15],tabul:12,term:8,tofu:[0,1,2,5,6,9,13,14,15],treat:5,tutori:[9,13],version:14,vessel:[10,11],welcom:15,write:12,your:12}}) \ No newline at end of file diff --git a/doc/source/Auto_tofu.geom.rst b/doc/source/Auto_tofu.geom.rst deleted file mode 100644 index 39547abef..000000000 --- a/doc/source/Auto_tofu.geom.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.geom** -============== - -.. automodule:: tofu.geom - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - - -.. Local Variables: -.. mode: rst -.. End: - diff --git a/doc/source/Auto_tofu.pathfile.rst b/doc/source/Auto_tofu.pathfile.rst deleted file mode 100644 index 08fb4fd31..000000000 --- a/doc/source/Auto_tofu.pathfile.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.pathfile** -================= - -.. automodule:: tofu.pathfile - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - - -.. Local Variables: -.. mode: rst -.. End: - diff --git a/doc/source/Auto_tofu.plugins.AUG.rst b/doc/source/Auto_tofu.plugins.AUG.rst deleted file mode 100644 index fbbe47ba9..000000000 --- a/doc/source/Auto_tofu.plugins.AUG.rst +++ /dev/null @@ -1,43 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**AUG** -======= - - -**AUG.Ves** ------------ - -.. automodule:: tofu.plugins.AUG.Ves - :members: - - -**AUG.SXR.geom** ----------------- - -.. automodule:: tofu.plugins.AUG.SXR.geom - :members: - - -**AUG.SXR.data** ----------------- -.. automodule:: tofu.plugins.AUG.SXR.data - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/source/Auto_tofu.plugins.ITER.rst b/doc/source/Auto_tofu.plugins.ITER.rst deleted file mode 100644 index 2a3ce8669..000000000 --- a/doc/source/Auto_tofu.plugins.ITER.rst +++ /dev/null @@ -1,44 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**ITER** -=============================== - - -**ITER.Ves** ------------- - -.. automodule:: tofu.plugins.ITER.Ves - :members: - -**ITER.Struct** ---------------- - -.. automodule:: tofu.plugins.ITER.Struct - :members: - - -**ITER.Bolo.geom** ------------------- - -.. automodule:: tofu.plugins.ITER.Bolo.geom - :members: - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/source/Auto_tofu.plugins.rst b/doc/source/Auto_tofu.plugins.rst deleted file mode 100644 index 3bca24afa..000000000 --- a/doc/source/Auto_tofu.plugins.rst +++ /dev/null @@ -1,48 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.plugins** -================ - - -In an effort to adapt ToFu to several experiments and ensure a smooth use for non-specialists users, plugins can be developped to adapt ToFu to the local specificities of each laboratory or environment (local computer systems and networks, local geometry and nomenclature, local data storing systems...). - -While ToFu in itself is open-source, the plugins, which concentrate everything that is machine-specific, are writen on demand and customized for the local needs, they remain on the local servers and are not provided on the GitHub page of ToFu. It is via the laboratories that you may have access to them. - -The following plugins have been / are being developped: - -Machine-oriented plugins ------------------------- - -.. toctree:: - :maxdepth: 1 - - Auto_tofu.plugins.AUG - Auto_tofu.plugins.ITER - - -Code-oriented plugins ---------------------- - -1. CAID_ - -.. _CAID: https://www.qwant.com/web - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/source/Auto_tofu.treat.rst b/doc/source/Auto_tofu.treat.rst deleted file mode 100644 index d8536b49d..000000000 --- a/doc/source/Auto_tofu.treat.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.treat** -============== - -.. automodule:: tofu.treat - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - - -.. Local Variables: -.. mode: rst -.. End: - diff --git a/doc/source/Citation.rst b/doc/source/Citation.rst deleted file mode 100644 index 7cf988cb7..000000000 --- a/doc/source/Citation.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -Citing ToFu: -============ - -An article dedicated to describing ToFu and its capacities is in preparation, in the meantime please cite this one_ [#]_, which briefly describes it and uses it to present physics results. Since this paper may not present enough details for the interested reader, please also include a url pointing to this web-based documentation. - -.. _one: http://iopscience.iop.org/article/10.1088/0029-5515/56/8/086001/meta - -.. [#] D. Vezinet et al., 'Non-monotonic growth rates of sawtooth precursors evidenced with a new method on ASDEX Upgrade', Nuclear Fusion **56**, 086001, 2016 - -**Bibtex:** - -:: - - @article{0029-5515-56-8-086001, - author={D. Vezinet and V. Igochine and M. Weiland and Q. Yu and A. Gude and D. Meshcheriakov and M. Sertoli and the Asdex Upgrade - Team and the EUROfusion MST1 Team}, - title={Non-monotonic growth rates of sawtooth precursors evidenced with a new method on ASDEX Upgrade}, - journal={Nuclear Fusion}, - volume={56}, - number={8}, - pages={086001}, - url={http://stacks.iop.org/0029-5515/56/i=8/a=086001}, - year={2016}, - } - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/Dependencies.rst b/doc/source/Dependencies.rst deleted file mode 100644 index 135664f6e..000000000 --- a/doc/source/Dependencies.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -Dependencies -============ - -ToFu uses the following generic packages: - -- python/2.7.3 -- ipython/1.1.0 -- dateutil/2.4.0 -- docutils/0.12.0 -- distribute/0.6.34 - - -Scientific computing and plotting: - -- numpy/1.9.1 -- scipy/0.15.1 -- matplotlib/1.2.1 -- polygon2 -- datetime - - -Some part of ToFu are coded using Cython, which requires Cython and a compiler: - -- cython/0.19.1 -- gcc/4.8 -- intel/14.0 - - -Testing: - -- nose/1.3.4 - - -Documentation: - -- pygments/1.5 - - -To be determined: - -- pyzmq/13.0.2 -- tornado/2.4.1 -- setuptools -- mdsplus/5.0_11 -- pip -- git/1.8.4 - - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/Todos.rst b/doc/source/Todos.rst deleted file mode 100644 index 98696dbc4..000000000 --- a/doc/source/Todos.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**To do for contributors** -========================== - -This to do list includes aspects that require a few hours up to a few months of work. -Whenever possible, a link to a document describing the problem in details is provided. - - -Math and geometry: ------------------- -* Write a C routine for (very) fast computation of solid angle in non-trival cases using spherical geometry and write a python / cython wrapper (weeks) - - -Coding: -------- -* Parallelize (frist CPU then GPU) the key functions of the geometry module (months) -* Branch the meshing module to allow compatibility with CAID/Pigasus (months) -* Branch the matrix computation module for the same reason (months) -* Branch the inversion module for the same reason (months) - -Long term: ----------- -* Create a parallel library called ToFuG, which provides all ToFu functionalities through a GUI for each ToFu module (year) - - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/source/Tutorial_AUG.rst b/doc/source/Tutorial_AUG.rst deleted file mode 100644 index eee76d8cb..000000000 --- a/doc/source/Tutorial_AUG.rst +++ /dev/null @@ -1,63 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -AUG-specific tutorial -===================== - -How to access the ToFu library ------------------------------- - -The plugin for ASDEX Upgrade (AUG) is hosted on the theory (Tok) clusters of the Max-Planck Institute for Plasma Physics (IPP) in Garching. -If you have an account in IPP, you can then connect to one of the tok clusters where the library is hosted, via the command: - ->>> ssh toki01 - -Enter your password and then you need to load the module in the terminal - ->>> module load tofu - -You may need to load other modules on which ToFu depends (see the dependencies_). - -.. _dependencies : Dependencies.html - -You can then start a ipython console and load the AUG plugin for ToFu: - ->>> import tofu.plugins.AUG as tfAUG - - -How to load existing geometry ------------------------------- - -You can now load the geometry that was already computed and stored for some diagnostics (only the Soft X-Ray diagnostic at this date). -In general loading the geometry means using a method of the plugin that will load and return a list of :class:`tofu.geom.GDetect` instances. -On AUG, each :class:`tofu.geom.GDetect` instance corresponds to a camera head. -Since the geometry (position, aperture size...) of each camera head may change in time (changes are sometimes implemented between experimental campaigns), you can specify a shot number and the plugin will return the latest geometry that was computed before that shot number (only a few have been computed so far, but more will come). - ->>> LGD = tfAUG.SXR.geom.load(shot=31801) - -This command returns a list of :class:`tofu.geom.GDetect` instances with the latest geometry computed before shot 31801. - - -How to load SXR data --------------------- - -the ToFu plugin for AUG also comes with a data loading and formatting routine. -In addition to a shot number and a time window, you can choose whether the data is returned as numpy arrays or as a ToFu-compatible object for data pre-treatment via the Tofu keyword argument. - ->>> pre = tfAUG.SXR.data.load(shot=30801, Dt=[2.,2.01], Method='SX', Tofu=True) - -This command will return the SXR data for shot 30801 in the [2.,2.01] s time window using diagnostic 'SX.' (instead of SSX), in the form of a ToFu-compatible object. -See the documentation of the method for more details. - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/Tutorial_Geom_Advanced.rst b/doc/source/Tutorial_Geom_Advanced.rst deleted file mode 100644 index 7b4ba7d6d..000000000 --- a/doc/source/Tutorial_Geom_Advanced.rst +++ /dev/null @@ -1,102 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -How to create a diagnostic geometry -==================================== - -It is the geometry module that provides all the necessary tools for creating a new diagnostic. -A diagnostic comprises a set of detectors (ToFu creates one object for each detector and you can then group them into a larger object to represent cameras). -Each detector is basically defined by its active surface, which should be a planar polygon, and by a set of optics through which it 'sees' the plasma. -The optics can be a converging spherical lens or an arbitrary number of apertures (of arbitrary shape). -Each detector is also assigned to a vessel, which defines the linear or toroidal volume in which the plasma can exist. - -The following guides you through the creation of these objects in the famous 'hello-world' example: - -To find out more about what you can do with the geometry module check out the advanced_ tutorial. - -.. _advanced: - -Creating a vessel ------------------ - -If a vessel object does not exist yet, you have to create one (otherwise you can just load it an existing one). -A vessel object is basically defined by a 2D simple polygon (i.e.: non self-intersecting), - - - - - - - - - - - - -**Open-source:** - ToFu is distributed under the very permissive MIT_ license, thus allowing free use, keeping in mind that neither the author nor any of the laboratories in which he worked can be held responsible for unwanted behaviour or results. - It is instead transparency that is considered for as a warranty of quality on the long-term. - - ToFu is hosted on github_. - -.. _MIT: https://opensource.org/licenses/MIT -.. _github: https://github.com/ - -**Versions:** - A list of the successive versions of ToFu, with a brief description can be found here_. - -.. _here: Versions.html - -**Dependences:** - ToFu uses the following python packages_. - -.. _packages: Dependencies.html - - -**Citing ToFu:** - If you decide to use ToFu for research and published results please acknowledge this work by citing_ the project. - -.. _citing: Citation.html - - -Contents: ---------- - -**Description of the library modules:** - -.. toctree:: - :maxdepth: 1 - - overview - -**Code documentation:** - -.. toctree:: - :maxdepth: 1 - - Auto_tofu.geom - Auto_tofu.plugins.AUG.SXR.geom - Auto_tofu.plugins.ITER.Bolo.geom - - -**Tutorials and how to's:** - * How to build a diagnostic geometry - Create apertures and detectors to test a new configuration, to apply ToFu to your own problems, to design a prospetive diagnostic... - * How to compute integrated signal from 2D or 3D synthetic emissivity - Use an already-existing diagnostic geometry in a synthetic diagnostic approach to solve the direct problem and compute the line Of Sight and / or Volume of Sight integrated signals from a simulated emissivity field that you provide as an input. - * How to compute tomographic inversions - Use existing diagnostic geometry and signals to solve the inverse problem and compute tomographic inversions using a choice of discretization basis functions and regularisation functionals. - * How to contribute (to do's) - - -Indices and tables -================== -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/Tutorial_Geom_HowToCreateGeometry.rst b/doc/source/Tutorial_Geom_HowToCreateGeometry.rst deleted file mode 100644 index 4104db9ef..000000000 --- a/doc/source/Tutorial_Geom_HowToCreateGeometry.rst +++ /dev/null @@ -1,224 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -How to create a diagnostic geometry -==================================== - -It is the geometry module that provides all the necessary tools for creating a new diagnostic. -A diagnostic comprises a set of detectors (ToFu creates one object for each detector and you can then group them into a larger object to represent cameras). -Each detector is basically defined by its active surface, which should be a planar polygon, and by a set of optics through which it 'sees' the plasma. -The optics can be a converging spherical lens or an arbitrary number of apertures (of arbitrary shape). -Each detector is also assigned to a vessel, which defines the linear or toroidal volume in which the plasma can exist. - -The following guides you through the creation of these objects in the famous 'hello-world' example: - -To find out more about what you can do with the geometry module check out the advanced_ tutorial. - -.. _advanced: Tutorial_Geom_Advanced.html - - -As a pre-requisite, let's load some basic useful libraries in a ipython session, as well as the geometry module of ToFu: - ->>> import numpy as np ->>> import matplotlib.pyplot as plt ->>> plt.ion() ->>> # tofu-specific ->>> import tofu.geom as tfg - - -Creating, plotting and saving a vessel --------------------------------------- - -If a vessel object does not exist yet, you have to create one (otherwise you can just load it an existing one). -A vessel object is basically defined by a 2D simple polygon (i.e.: non self-intersecting), that is then expanded linearly or toroidally depending on the desired configuration. -This polygon limits the volume available for the plasma, where the emissivity can be non-zero. It is typically defined by the inner wall in a tokamak. - -Let's define the polygon limiting the vessel as a circle with a divertor-like shape at the bottom: - ->>> # Define the center, radius and lower limit ->>> R0, Z0, rad, ZL = 2., 0., 1., -0.85 ->>> # Define the key points in the divertor region below ZL ->>> Div_R, Div_Z = [R0-0.2, R0, R0+0.2], [-1.2, -0.9, -1.2] ->>> # Find the angles corresponding to ZL and span the rest ->>> thet1 = np.arcsin((ZL-Z0)/rad) ->>> thet2 = np.pi - thet1 ->>> thet = np.linspace(thet1,thet2,100) ->>> # Assemble the polygon ->>> poly_R = np.append(R0+rad*np.cos(thet), Div_R) ->>> poly_Z = np.append(Z0+rad*np.sin(thet), Div_Z) ->>> # Plot for checking ->>> f, l, a = plt.figure(facecolor='w', figsize=(6,6)), plt.plot(poly_R, poly_Z), plt.axis('equal') - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_01.png - :height: 300px - :width: 300 px - :scale: 100 % - :alt: Polygon used for defining the vaccum vessel where the plasma may live - :align: center - - Polygon used for defining the vaccum vessel where the plasma may live - -Notice that the polygon does not have to be closed, ToFu will anyway check that and close it automatically if necessary - -Now let's feed this 2D polygon to the appropriate ToFu class and specify that it should be a toroidal type (if linear type is chosen, the length should be specified by the 'DLong' keyword argument). -ToFu also asks for a name to be associated to this instance, and an experiment ('Exp') and a shot number (useful when the same experiment changes geometry in time). - ->>> # Create a toroidal Ves instance with name 'World', associated to experiment 'Misc' (for 'Miscellaneous') and shot number 0 ->>> ves = tfg.Ves(Name='HelloWorld', Poly=[poly_R,poly_Z], Type='Tor', Exp='Misc', shot=0) - -Now the vessel instance is created. I provides you with several key attributes and methods (see :class:`~tofu.geom.Ves` for details). -Among them the Id attribute is itself a class instance that contains all useful information about this vessel instance for identification, saving... In particular, that's where the name, the default saving path, the Type, the experiment, the shot number... are all stored. -A default name for saving was also created that automatically includes not only the name you gave but also the module from which this instance was created (tofu.geom or tfg), the type of object, the experiment, the shot number... -This recommended default pattern is useful for quick identification of saved object, it is advised not to modify it. - ->>> print(ves.Id.SaveName) -TFG_VesTor_Misc_World_sh0 - -Now, we can simply visualise the created vessel by using the dedicated method (keyword argument 'Elt' specifies the elements of the instance we want to plot, typically one letter corresponds to one element, here we just want the polygon): - ->>> # Plot the polygon, by default in two projections (cross-section and horizontal) and return the list of axes ->>> Lax = ves.plot(element='P') - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_02.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: The created vessel instance, plotted in cross-section and horizontal projections - :align: center - - The created vessel instance, plotted in cross-section and horizontal projections - - -Since the vessel is an important object (it defines where the plasma can live), all the other ToFu objects rely on it. It is thus important that you save it so that it can be used by other ToFu objects when necessary. - ->>> ves.save(Path='./') - -This method will save the instance as a numpy compressed file (.npz), using the path and file name found in ves.Id.SavePath and ves.Id.SaveName. -While it is highly recommended to stick to the default value for the SaveName, but you can easily modify the saving path if you want by specifying it using keyword argument Path. - - - -Creating, plotting and saving structural elements and configurations ---------------------------------------------------------------------- - -Unlike the vessel, which is important for physics reasons, the structural elements that ToFu allows to create are purely for illustrative purposes. They are entirely passive and have no effect whatsoever on the computation of the volume of sight of the detectors or on the plasma volume and are just made available for illustrations. - -Like for a vessel, a structural element is mostly defined by a 2D polygon. If a vessel instance is provided, the type of the structural element (toroidal or linear) is automatically the same as the type of the vessel, otherwise the type must be specified. - -A configuration, short for geometrical configuration is a set of vessel, and structural elements. - ->>> # Define two polygons, one that does not enclose the vessel and one that does ->>> thet = np.linspace(0.,2.*np.pi,100) ->>> poly1 = [[2.5,3.5,3.5,2.5],[0.,0.,0.5,0.5]] ->>> poly2 = [R0+1.5*np.cos(thet),1.5*np.sin(thet)] ->>> # Create the structural elements with the appropriate ToFu class, specifying the experiment and a shot number for keeping track of changes ->>> s1 = tfg.PFC(Name='S1', Poly=poly1, Exp='Misc', shot=0) ->>> # now we create a structure that is not continuous along phi ->>> s2 = tfg.PFC(Name='S2', Poly=poly2, Exp='Misc', shot=0, Lim=[[0., np.pi], [np.pi/2.,np.pi*3./2.]]) ->>> # Creating a configuration with vessel and structures ->>> config = tf.geom.Config(Name="test", Exp="Misc", lStruct=[ves,s1,s2]) ->>> config.set_colors_random() # to see different colors ->>> config.plot() ->>> config.save() - -.. figure:: figures_doc/config_plot.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: The created structural elements, plotted over the structural elements on both projections - :align: center - - The created structural elements, plotted over the structural elements on both projections - - -It is not necessary for ToFu (since structural elements are used by no other objects) but for convenience you can save a structral element using the same save() method as for any other object. - - - -Creating apertures ------------------- - -An aperture is also mosly defined by a planar polygon, except that the polygon coordinates should be provided in 3D cartesian coordinates (even though the polygon is planar, it mey not live in the same plane as other apertures or as the detector). - -We can easily define two different polygons for two different apertures - ->>> # Define the planes in which they will live by a point (O) and a vector (n) ->>> O1, n1 = (3.0,0.00,0.52), (-1.,0.1,-0.9) ->>> O2, n2 = (2.9,0.01,0.48), (-1.,0.0,-1.0) ->>> # Compute local orthogonal basis vectors in the planes ->>> e11, e21 = np.cross(n1,(0.,0.,1.)), np.cross(n2,(0.,0.,1.)) ->>> e12, e22 = np.cross(e11,n1), np.cross(e21,n2) ->>> # Normalize ->>> e11, e12 = e11/np.linalg.norm(e11), e12/np.linalg.norm(e12) ->>> e21, e22 = e21/np.linalg.norm(e21), e22/np.linalg.norm(e22) ->>> # Implement the planar polygons 2D coordinates ->>> p1_2D = 0.005*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]]) ->>> p2_2D = 0.01*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]]) ->>> # Compute the 3D coordinates ->>> p1 = [O1[0] + e11[0]*p1_2D[0,:] + e12[0]*p1_2D[1,:], O1[1] + e11[1]*p1_2D[0,:] + e12[1]*p1_2D[1,:], O1[2] + e11[2]*p1_2D[0,:] + e12[2]*p1_2D[1,:]] ->>> p2 = [O2[0] + e21[0]*p2_2D[0,:] + e22[0]*p2_2D[1,:], O2[1] + e21[1]*p2_2D[0,:] + e22[1]*p2_2D[1,:], O2[2] + e21[2]*p2_2D[0,:] + e22[2]*p2_2D[1,:]] ->>> # Create the apertures, specifying also the diagnostic the apertures belong to ->>> a1 = tfg.Apert('A1', p1, Ves=ves, Exp='Misc', shot=0, Diag='misc') ->>> a2 = tfg.Apert('A2', p2, Ves=ves, Exp='Misc', shot=0, Diag='misc') ->>> # Plot them, both the polygon and the vector, with the associated vessel (using EltVes), in 3D ->>> Lax = a1.plot(Elt='PV', EltVes='P') ->>> Lax = a2.plot(Lax=Lax, Elt='PV') - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_04.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: The created apertures, plotted over the vessel on both projections - :align: center - - The created apertures, plotted over the vessel on both projections - -ToFu allows you to save the apertures, if you wish, but if you created then only to pass tem on to detectors, you can also skip saving them. Indeed, once the detector associated to these apertures is created, you will save the detector object instead, and ToFu will automatically store all information about the apertures (everything necessary to re-create them when loading the detector object). - - -Creating cameras ----------------- - -Creating 1D cameras - ->>> cam1d = tf.geom.utils.create_CamLOS1D(config=config, P=[3.,0,-0.5], N12=100, F=0.1, D12=0.1, angs=[np.pi,0,0], Name='', Exp='Misc', Diag='') ->>> cam1d.plot() ->>> cam1d.plot_touch() # for an interactive plot (helpful to see each LOS) - -.. figure:: figures_doc/cam1d_plot.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: Plot of a 1D Camera - :align: center - -.. figure:: figures_doc/cam1d_plot_touch.png - :scale: 70 % - :alt: Interactive plot of a 1D Camera - :align: center - -Creating 2D cameras. We are going to create a 2D camera with a slight rotation of the angles of sight to have a more tangential view of the tokamak and the structures. - ->>> cam2 = tf.geom.utils.create_CamLOS2D(config=config, P=[3.,0,-0.5], N12=100, F=0.1, D12=0.1, angs=[np.pi,0.2,0], Name='', Exp='Misc', Diag='') ->>> cam2.plot_touch() # also interactive ! click on the left plot and see for yourself! - -.. figure:: figures_doc/cam2d_plot_touch.png - :scale: 70 % - :alt: Interactive plot of a 2D Camera - :align: center - -Congratulations ! You completed the basic tutorial for getting started and creating your own geometry, take you time now to explore all the methods and attributes of the classes introduced in :mod:`tofu.geom`. - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/Tutorial_Geom_SynthDiag_Basic.rst b/doc/source/Tutorial_Geom_SynthDiag_Basic.rst deleted file mode 100644 index f3e4c6ceb..000000000 --- a/doc/source/Tutorial_Geom_SynthDiag_Basic.rst +++ /dev/null @@ -1,94 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -How to compute integrated signal from synthetic emissivity -========================================================== - - -We are assuming here that you have access to an existing geometry (i.e. to :class:`~tofu.geom.Detect` or :class:`~tofu.geom.GDetect` objects that you or someone else created or that you can load). -It if is not the case you should first create the geometry you need, by following the basic_ geometry tutorial. - -.. _basic: Tutorial_Geom_HowToCreateGeometry.html - -We are also assuming that you have a code that can produce as output a simulated isotropic emissivity. Either directly or by spacial interpolation, you should be able to write a python function that computes an emissivity value in any arbitrary point inside the vessel volume. - - -As a prerequisite load the necessary modules: - ->>> import numpy as np ->>> import matplotlib.pyplot as plt ->>> plt.ion() ->>> # tofu-specific ->>> import tofu.pathfile as tfpf - - -Writing the input function --------------------------- - -In the following, all is done assuming **gd** is a :class:`~tofu.geom.GDetect` object, but the same would apply if it is just a :class:`~tofu.geom.Detect` object. -If the :class:`~tofu.geom.GDetect` object you want to use is not already existing in your session, you can load it (with its absolute path and file name) using the :meth:`tofu.pathfile.Open()` function or a dedicated plugin function. - -Instances of :class:`~tofu.geom.GDetect` have a method called :meth:`~tofu.geom.GDetect.calc_Sig()`, which takes as input **ff** a python function able to evaluate the emissivity value in any number of points provided in 3D cartesian coordinates. - -This function should obey the following constraints: - * It is a callable with one input argument and optionally keyword arguments - * The input argument is a (3,N) numpy.ndarray, where N is the number of points at which one wants to evaluate the emissivity, provided in 3D cartesian coordinates (X,Y,Z) - -Hence, suppose that we simulate a 2D (i.e.: invariant along the 3rd dimension) gaussian emissivity centered on point (2.,0.), we can define ff as - ->>> def ff(Pts, A=1., DR=1., DZ=1.): ->>> R = np.hypot(Pts[0,:],Pts[1,:]) ->>> Z = Pts[2,:] ->>> Emiss = A*np.exp(-(R-2.)**2/DR**2 - (Z-0.)**2/DZ**2) ->>> return Emiss - -What will happen when we feed ff to :meth:`~tofu.geom.GDetect.calc_Sig()` depends on the choice of method for the integration: - * If we want a volumic integration, the VOS of each detector will be discretized and ff will be called to evaluate the emissivity at each point before perfoming the integration - * If a Line Of Sight integration is desired, only the LOS is discretized for integration and the result is multiplied by the etendue - -By default, the method uses a pre-computed discretization of the VOS (because re-computing the solid angle for each point every time is costly), but this feature can be suppressed by setting PreComp=False if you want to use customized integration parameters. -For example, in both cases, the numerical integration can be done by choosing the resolution of the discretization, or by using an iterative algorithm that only stops when the required relative error on the integral value is reached. -In our case: - ->>> # Compute synthetic signal using a volume approach with resolution-fixed numerical integration method ->>> sigVOS, ldet = gd.calc_Sig(ff, extargs={'A':1.,'DR':1.,'DZ':1.}, Method='Vol', Mode='simps', PreComp=False) ->>> sigLOS, ldet = gd.calc_Sig(ff, extargs={'A':1.}, Method='LOS', Mode='quad', PreComp=False) ->>> print sigVOS, sigLOS -[[ 1.31675917e-06 1.40620027e-06]] [[ 1.31408026e-06 1.39941326e-06]] - -Notice that when using the 'quad' numerical integration method, only one extra argument can be passed on to ff. -Notice the small differences in the volume and LOS approaches, due to the small non-zero second derivative of the emissivity field and to boundary effects (where there is small partial obstruction of the VOS). - - -If your code gives a tabulated emissivity field ------------------------------------------------ - -Then you simply have to include an intermediate function that interpolates your emissivity field to compute it at any point. Like in the following example: - ->>> def ff(Pts): ->>> R = np.hypot(Pts[0,:],Pts[1,:]) ->>> Z = Pts[2,:] ->>> Emiss = ff_interp(R,Z) ->>> return Emiss - -Where ff_interp() is an interpolating function using tabulated output from your code. - -Plotting the result -------------------- - -The :meth:`~tofu.geom.GDetect.plot_Sig()` method provides a way of plotting the result, either by feeding it the output signal of :meth:`~tofu.geom.GDetect.calc_Sig()` or directly **ff** (in which case it simply calls :meth:`~tofu.geom.GDetect.plot_Sig()` for you). -This feature is only available for :class:`~tofu.geom.GDetect` objects since the signal of a single detector is just a single value that does not really require plotting... - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/Tutorial_ITER.rst b/doc/source/Tutorial_ITER.rst deleted file mode 100644 index ad5247d2e..000000000 --- a/doc/source/Tutorial_ITER.rst +++ /dev/null @@ -1,53 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -ITER-specific tutorial -====================== - -How to access the ToFu library ------------------------------- - -The plugin for ITER is hosted on the theory (Tok) clusters of the Max-Planck Institute for Plasma Physics (IPP) in Garching. -If you have an account in IPP, you can then connect to one of the tok clusters where the library is hosted, via the command: - ->>> ssh toki01 - -Enter your password and then you need to load the module in the terminal - ->>> module load tofu - -You may need to load other modules on which ToFu depends (see the dependencies_). - -.. _dependencies : Dependencies.html - -You can then start a ipython console and load the AUG plugin for ToFu: - ->>> import tofu.plugins.ITER as tfITER - - -How to load existing geometry ------------------------------- - -You can now load the geometry that was already computed and stored for some diagnostics (only the Soft X-Ray diagnostic at this date). -In general loading the geometry means using a method of the plugin that will load and return a list of :class:`tofu.geom.GDetect` instances. -On AUG, each :class:`tofu.geom.GDetect` instance corresponds to a camera head. -Since the geometry (position, aperture size...) of each camera head may change in time (changes are sometimes implemented between experimental campaigns), you can specify a shot number and the plugin will return the latest geometry that was computed before that shot number (only a few have been computed so far, but more will come). - ->>> LGD = tfAUG.SXR.geom.load(shot=31801) - -This command returns a list of :class:`tofu.geom.GDetect` instances with the latest geometry computed before shot 31801. - - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/Versions.rst b/doc/source/Versions.rst deleted file mode 100644 index 65b56bd46..000000000 --- a/doc/source/Versions.rst +++ /dev/null @@ -1,36 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -Versions of ToFu: -================= - -Many versions of ToFu have been developped before reaching a stable and somewhat satisfactory state. Several versions were already used for producing physcis results and tomographic inversions before the open-source release, which requires documentation and a certain degree of user-friendlyness, thus more work. - -The versioning convention used by ToFu is semantic_ versioning and the module metadata is implemented according to PEP426_. - -.. _semantic: http://semver.org/ -.. _PEP426: https://www.python.org/dev/peps/pep-0426/ - - -The following only lists the versions advanced enough for release: - -* **1.1.0** (default) - This is the first version released in open-source, it only includes the geometry module (for diagnostic designing and synthetic diagnostic) and the pre-treatment module (for data handling) - - - - - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/conf.py b/doc/source/conf.py index c9a73e0de..b14192dc4 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -10,83 +10,94 @@ # # All configuration values have a default; values that are commented out # serve to show the default. - -import sys, os +import os +import sys # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) -sys.path.insert(0, os.path.abspath('/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu/')) +sys.path.insert(0, os.path.abspath(".")) +sys.path.insert(0, os.path.abspath("../tofu/geom")) +sys.path.insert(0, os.path.abspath("../tofu/data")) +sys.path.insert(0, os.path.abspath("../tofu/dumpro")) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.napoleon', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode'] +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "sphinx.ext.napoleon", + "sphinx.ext.intersphinx", + "sphinx.ext.todo", + "sphinx.ext.coverage", + "sphinx.ext.mathjax", + "sphinx.ext.ifconfig", + "sphinx.ext.viewcode", +] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix of source filenames. -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'tofu_doc' -copyright = u'2016, Didier VEZINET' +project = u"tofu_doc" +copyright = u"2016, Didier VEZINET" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '1.1' +version = "1.1" # The full version, including alpha/beta/rc tags. -release = '1.1.0' +release = "1.1.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - +# modindex_common_prefix = [] # -- Napoleon settings --------------------------------------------------- @@ -107,60 +118,60 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'default'#'sphinx_rtd_theme' +html_theme = "default" #'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -html_title = 'tofu v1.1' +html_title = "tofu v1.1" # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = True @@ -169,59 +180,62 @@ html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'tofu_docdoc' +htmlhelp_basename = "tofu_docdoc" # -- Options for LaTeX output -------------------------------------------------- latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', + # The paper size ('letterpaper' or 'a4paper'). + #'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + #'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'tofu_doc.tex', u'tofu\\_doc Documentation', - u'Didier VEZINET', 'manual'), + ( + "index", + "tofu_doc.tex", + u"tofu\\_doc Documentation", + u"Didier VEZINET", + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output -------------------------------------------- @@ -229,12 +243,11 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'tofu_doc', u'tofu_doc Documentation', - [u'Didier VEZINET'], 1) + ("index", "tofu_doc", u"tofu_doc Documentation", [u"Didier VEZINET"], 1) ] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------------ @@ -243,63 +256,69 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'tofu_doc', u'tofu_doc Documentation', - u'Didier VEZINET', 'tofu_doc', 'One line description of project.', - 'Miscellaneous'), + ( + "index", + "tofu_doc", + u"tofu_doc Documentation", + u"Didier VEZINET", + "tofu_doc", + "One line description of project.", + "Miscellaneous", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # -- Options for Epub output --------------------------------------------------- # Bibliographic Dublin Core info. -epub_title = u'tofu_doc' -epub_author = u'Didier VEZINET' -epub_publisher = u'Didier VEZINET' -epub_copyright = u'2016, Didier VEZINET' +epub_title = u"tofu_doc" +epub_author = u"Didier VEZINET" +epub_publisher = u"Didier VEZINET" +epub_copyright = u"2016, Didier VEZINET" # The language of the text. It defaults to the language option # or en if the language is not set. -#epub_language = '' +# epub_language = '' # The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' +# epub_scheme = '' # The unique identifier of the text. This can be a ISBN number # or the project homepage. -#epub_identifier = '' +# epub_identifier = '' # A unique identification for the text. -#epub_uid = '' +# epub_uid = '' # A tuple containing the cover image and cover page html template filenames. -#epub_cover = () +# epub_cover = () # HTML files that should be inserted before the pages created by sphinx. # The format is a list of tuples containing the path and title. -#epub_pre_files = [] +# epub_pre_files = [] # HTML files shat should be inserted after the pages created by sphinx. # The format is a list of tuples containing the path and title. -#epub_post_files = [] +# epub_post_files = [] # A list of files that should not be packed into the epub file. -#epub_exclude_files = [] +# epub_exclude_files = [] # The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 +# epub_tocdepth = 3 # Allow duplicate toc entries. -#epub_tocdup = True +# epub_tocdup = True # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'http://docs.python.org/': None} +intersphinx_mapping = {"http://docs.python.org/": None} diff --git a/doc/source/index.rst b/doc/source/index.rst index bfe6d8fc3..21533e043 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -42,15 +42,16 @@ It is modular and generic in the sense that it was developed with the objective **Feedback - bug report - wish list** To provide feedback on ToFu itself please use the github_ page. -.. _github: https://github.com/ - + .. _github: https://github.com/ + To provide feedback on a specific plugin, please refer to that plugin's webpage where a contact will be indicated. **Miscellaneous** ToFu is tested with the nose_/1.3.4 library (not all methods are tested yet, in process...) ToFu can be installed using the distutils_ library. -.. _nose: https://pypi.python.org/pypi/nose + .. _nose: https://pypi.python.org/pypi/nose + .. _distutils: https://docs.python.org/2/distutils/ @@ -72,11 +73,12 @@ Notice that the main ToFu classes and methods have docstrings so you can access :maxdepth: 2 :numbered: :titlesonly: - - Auto_tofu.geom - Auto_tofu.treat - Auto_tofu.pathfile - Auto_tofu.plugins + + tofu.geom + tofu.data + tofu.dumpro + tofu.imas2tofu + tofu.mag **Tutorials and how to's:** * How to create / handle a diagnostic geometry diff --git a/doc/source/overview.rst b/doc/source/overview.rst deleted file mode 100644 index 9b56cb6e4..000000000 --- a/doc/source/overview.rst +++ /dev/null @@ -1,86 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**Overview** -============ - -(This project is not finalised yet, work in progress...) - - -**ToFu**, which stands for "TOmography for FUsion" is a python package (with parts in C/C++) providing all necessary tools for tomography diagnostics for the Fusion community, it is particularly relevant for X-ray and bolometer diagnostics on Tokamaks. On of the objectoves is to provide a common tool for tomographic inversions, with both accurate methods and enough flexibility to be easily adapted to any Tokamak and to the specific requirements of each user. The main language (Python) has been chosen for its open-source philosophy, for its object-oriented capacities, and for the good performance / flexibility ratio that it offers. The architecture of the **ToFu** package is intended to be modular to allow again for maximum flexibility and to facilitate customisation and evolutivity from the users. - -**ToFu**: provides in particular, but not only, the main following functionnalities : - - Using the 3D geometry of the diagnostic (positions of detectors and apertures are provided as inputs) to compute quantities of interest (e.g.: the optimal line of sight, the exact etendue..). This is done by the module ToFu_Geom. - - Building of a variable grid size mesh for spatial discretisation of the solution (i.e. emissivity field) on which B-splines of any degree can be added to serve as Local Basis Functions. This is done by the module ToFu_Mesh. - - Computing of the geometry matrix associated to a set of detectors and a set of basis functions, both with a full 3D approach or with a Line Of Sight (LOS) approximation. This is done by the module ToFu_MatComp, which uses both ToFu_Geom and ToFu_Mesh. - - Computing tomographic inversions based on the constructed geometry matrix and Phillips-Tikhonov inversion with a choice of objective functionals (among which first order and second order derivatives or Fisher information, and more to come). This is done by the module ToFu_Inv, which uses the matrix computed by ToFu_MatComp. - - Visualizing, exploring and interpreting the resulting inversions using a built-in Graphic User Interface. - -The joint use of a full 3D approach and of regular basis functions (B-splines) allows for advanced functionalities and flexibility, like in particular : - - Accurate computation of etendue and geometry matrix. - - Exact differential operators (provided sufficient degree of the basis function) instead of discretised operators (this feature and the previous one aim at improving the accuracy of tomographic inversions). - - Accurate description of toroidal-viewing detectors with potentially large viewing cones and for which the LOS approximation cannot be used. - - Making possible 3D inversions (provided the geometrical coverage of the plasma volume is sufficient, for example thanks to toroidal-viewing detectors). - - Enabling proper taking into acccount of anisotropic radiation (for example due to fast electrons due to disruptions). - -The **ToFu** package has built-in mesh and B-spline definitions, however, if used alone, it can only create and handle rectangular mesh (with variable grid size though). In order to allow for more optimised mesh and basis functions, the **ToFu** package is fully compatible with **Pigasus** (and **CAID**), which is a another Python package (with a Fortran core), which uses cutting-edge technologies from Computer-Assisted Design (CAD) to create optimised mesh (using Non-Unifrom - Rational B-Splines, or NURBS, curves) on which it can also add several different types of regular basis functions. It is a next-gen solution for optimisation of plasma-physics simulation codes. Hence, the final idea is that the same mesh and tools can be used for running CPU-expensive plasma physics simulations and, from their output, to compute the associated simulated measurements on any radiation diagnostics. This synthetic diagnostic approach is aimed at facilitating direct - comparisons between simulations and experimental measurements and at providing the community with flexible and cross-compatible tools to fit their needs. Plasma physics codes that are planning on using **Pigasus** in a near future include in particuler **JOREK** (in its **Django** version) and **GYSELA** (**SELALIB** in its next version). More information about **Pigasus** (lien), **JOREK** (lien) and **GYSELA** can be found on their respective pages. - -In order to avoid too much dependency issues, the **ToFu** package resorts to widely used Python libraries like scipy, numpy and matplotlib. Whenever it was possible, the idea was either to use a very common and accessible library or to have built-in methods doing the job. It can be run as a stand-alone on an offline computer (i.e.: on a laptop while travelling), in an online mode (using a central database on the internet) and with or without **Pigasus** (keeping in mind that only rectangular mesh can be created without it). - -For faster computation, some modules and/or methods are coded with Cython or Boost.Pyton. It is also intended to be MPI and OpenMP parallelized. - -The general architecture is briefly represented in the following figure: - -.. figure:: /figures_doc/Fig_Tutor_BigPicture_General.png - :height: 700px - :width: 1000px - :scale: 100 % - :alt: ToFu big picture - :align: center - - Modular architecture of ToFu, with its main modules. - -This general overview shows all the **ToFu** modules and their main functionnalities and dependancies. Particularly important are the modules **ToFu_Geom**, **ToFu_Mesh** and **ToFu_MatComp** which provide all necessary tools to pre-calculate the geometry matrix which is a key feature of the two main uses of **ToFu**. - -On the one hand, **ToFu** can be used as a synthetic diagnostic since from a simulated emissivity field it can compute the corresponding synthetic measurements for comparison with experimental measurements. This, as illustrated below, can be done in different ways depending on whether the simualted is used directly as a function, projected on a predefined mesh of the plasma volume, or if the simulated emissivity itself was computed on a mesh using the **Pigasus/CAID** code suite which is directly compatible with **ToFu**. These three possibilities are illustrated in the following figure: - -.. figure:: /figures_doc/Fig_Tutor_BigPicture_SynthDiag.png - :height: 700px - :width: 1000px - :scale: 100 % - :alt: ToFu big picture for synthetic diagnostics - :align: center - - Modular architecture of ToFu, with its main modules for synthetic diagnostics. - -On the other hand, **ToFu** can be used the other way around : use the experimental measurements to compute a reconstructed experimental emissivity field via a tomographic inversion, for comparisopn with a simulated emissivity field or simply for getting an idea of what the emissivity field looks like, which is illustrated in the following figure: - -.. figure:: /figures_doc/Fig_Tutor_BigPicture_Tomo.png - :height: 700px - :width: 1000px - :scale: 100 % - :alt: ToFu big picture for tomography - :align: center - - Modular architecture of ToFu, with its main modules for tomography. - -The following will go into further details regarding each module. - - -ToDo list: - - Rest of documentation, with relevant references (like :cite:Ingesson08FST) and figures - - Tutorial - - ToFu_Inv - - GUI (one for each module) - - Accelerate existing modules with Cython, Boost.Python + Parallelization - - Use it to do some physics at last !!! - - -.. Local Variables: -.. mode: rst -.. End: From 55c2cd4decdd9aaea63933f5e293062f1efd9584 Mon Sep 17 00:00:00 2001 From: Laura Mendoza Date: Fri, 13 Sep 2019 15:48:36 +0200 Subject: [PATCH 02/35] new rst --- doc/source/modules.rst | 7 ++++ doc/source/tofu.data.rst | 10 ++++++ doc/source/tofu.dumpro.rst | 10 ++++++ doc/source/tofu.dust.rst | 10 ++++++ doc/source/tofu.geom.inputs.rst | 10 ++++++ doc/source/tofu.geom.rst | 29 +++++++++++++++ doc/source/tofu.imas2tofu.rst | 10 ++++++ doc/source/tofu.mag.mag_ripple.rst | 10 ++++++ doc/source/tofu.mag.rst | 37 +++++++++++++++++++ doc/source/tofu.rst | 58 ++++++++++++++++++++++++++++++ 10 files changed, 191 insertions(+) create mode 100644 doc/source/modules.rst create mode 100644 doc/source/tofu.data.rst create mode 100644 doc/source/tofu.dumpro.rst create mode 100644 doc/source/tofu.dust.rst create mode 100644 doc/source/tofu.geom.inputs.rst create mode 100644 doc/source/tofu.geom.rst create mode 100644 doc/source/tofu.imas2tofu.rst create mode 100644 doc/source/tofu.mag.mag_ripple.rst create mode 100644 doc/source/tofu.mag.rst create mode 100644 doc/source/tofu.rst diff --git a/doc/source/modules.rst b/doc/source/modules.rst new file mode 100644 index 000000000..1bbbbdbba --- /dev/null +++ b/doc/source/modules.rst @@ -0,0 +1,7 @@ +tofu +==== + +.. toctree:: + :maxdepth: 4 + + tofu diff --git a/doc/source/tofu.data.rst b/doc/source/tofu.data.rst new file mode 100644 index 000000000..46c84bb68 --- /dev/null +++ b/doc/source/tofu.data.rst @@ -0,0 +1,10 @@ +tofu.data package +================= + +Module contents +--------------- + +.. automodule:: tofu.data + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.dumpro.rst b/doc/source/tofu.dumpro.rst new file mode 100644 index 000000000..71a885ac9 --- /dev/null +++ b/doc/source/tofu.dumpro.rst @@ -0,0 +1,10 @@ +tofu.dumpro package +=================== + +Module contents +--------------- + +.. automodule:: tofu.dumpro + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.dust.rst b/doc/source/tofu.dust.rst new file mode 100644 index 000000000..a67501650 --- /dev/null +++ b/doc/source/tofu.dust.rst @@ -0,0 +1,10 @@ +tofu.dust package +================= + +Module contents +--------------- + +.. automodule:: tofu.dust + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.geom.inputs.rst b/doc/source/tofu.geom.inputs.rst new file mode 100644 index 000000000..81881d04c --- /dev/null +++ b/doc/source/tofu.geom.inputs.rst @@ -0,0 +1,10 @@ +tofu.geom.inputs package +======================== + +Module contents +--------------- + +.. automodule:: tofu.geom.inputs + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.geom.rst b/doc/source/tofu.geom.rst new file mode 100644 index 000000000..16538623f --- /dev/null +++ b/doc/source/tofu.geom.rst @@ -0,0 +1,29 @@ +tofu.geom package +================= + +Subpackages +----------- + +.. toctree:: + + tofu.geom.inputs + +Submodules +---------- + +tofu.geom.utils module +---------------------- + +.. automodule:: tofu.geom.utils + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: tofu.geom + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.imas2tofu.rst b/doc/source/tofu.imas2tofu.rst new file mode 100644 index 000000000..efd5d4141 --- /dev/null +++ b/doc/source/tofu.imas2tofu.rst @@ -0,0 +1,10 @@ +tofu.imas2tofu package +====================== + +Module contents +--------------- + +.. automodule:: tofu.imas2tofu + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.mag.mag_ripple.rst b/doc/source/tofu.mag.mag_ripple.rst new file mode 100644 index 000000000..6f3ab238c --- /dev/null +++ b/doc/source/tofu.mag.mag_ripple.rst @@ -0,0 +1,10 @@ +tofu.mag.mag\_ripple package +============================ + +Module contents +--------------- + +.. automodule:: tofu.mag.mag_ripple + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.mag.rst b/doc/source/tofu.mag.rst new file mode 100644 index 000000000..5068d0367 --- /dev/null +++ b/doc/source/tofu.mag.rst @@ -0,0 +1,37 @@ +tofu.mag package +================ + +Subpackages +----------- + +.. toctree:: + + tofu.mag.mag_ripple + +Submodules +---------- + +tofu.mag.equimap module +----------------------- + +.. automodule:: tofu.mag.equimap + :members: + :undoc-members: + :show-inheritance: + +tofu.mag.magFieldLines module +----------------------------- + +.. automodule:: tofu.mag.magFieldLines + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: tofu.mag + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/tofu.rst b/doc/source/tofu.rst new file mode 100644 index 000000000..f35220ab8 --- /dev/null +++ b/doc/source/tofu.rst @@ -0,0 +1,58 @@ +tofu package +============ + +Subpackages +----------- + +.. toctree:: + + tofu.data + tofu.dumpro + tofu.dust + tofu.geom + tofu.imas2tofu + tofu.mag + +Submodules +---------- + +tofu.defaults module +-------------------- + +.. automodule:: tofu.defaults + :members: + :undoc-members: + :show-inheritance: + +tofu.pathfile module +-------------------- + +.. automodule:: tofu.pathfile + :members: + :undoc-members: + :show-inheritance: + +tofu.utils module +----------------- + +.. automodule:: tofu.utils + :members: + :undoc-members: + :show-inheritance: + +tofu.version module +------------------- + +.. automodule:: tofu.version + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: tofu + :members: + :undoc-members: + :show-inheritance: From 604d3002d0b2e8a654bbb6b229a358b4e33f9ba2 Mon Sep 17 00:00:00 2001 From: Laura Mendoza Date: Fri, 13 Sep 2019 16:42:47 +0200 Subject: [PATCH 03/35] new rst files --- doc/source/index.rst | 115 ----------------------------- doc/source/tofu.imas2tofu.rst | 10 --- doc/source/tofu.mag.mag_ripple.rst | 10 --- doc/source/tofu.mag.rst | 37 ---------- doc/source/tofu.rst | 2 - 5 files changed, 174 deletions(-) delete mode 100644 doc/source/index.rst delete mode 100644 doc/source/tofu.imas2tofu.rst delete mode 100644 doc/source/tofu.mag.mag_ripple.rst delete mode 100644 doc/source/tofu.mag.rst diff --git a/doc/source/index.rst b/doc/source/index.rst deleted file mode 100644 index 21533e043..000000000 --- a/doc/source/index.rst +++ /dev/null @@ -1,115 +0,0 @@ -.. tofu_doc documentation master file, created by - sphinx-quickstart on Tue Jul 26 17:00:43 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to tofu's documentation! -================================ - -**ToFu** (TOmography for FUsion) is an open-source python library first created at the Max-Planck Institute for Plasma Physics (IPP) in Garching (Germany) by Didier Vezinet (as a postdoc) through the years 2014-2016. -It is continuously maintained, debugged and upgraded to this day. - -It aims at providing the fusion and plasma community with an object-oriented, transparent and documented tool for designing tomography diagnostics, computing synthetic signal (direct problem) as well as tomographic inversions (inverse problem). -It gives access to a full 3D description of the diagnostic geometry, thus reducing the impact of geometrical approximations on the direct and, most importantly, on the inverse problem. - -It is modular and generic in the sense that it was developed with the objective of being machine-independent, thus guaranteeing that it can be used for arbitrary geometries and with an arbitrary number of apertures for each detector. - - -**Open-source:** - ToFu is distributed under the very permissive MIT_ license, thus allowing free use, keeping in mind that neither the author nor any of the laboratories in which he worked can be held responsible for unwanted behaviour or results. - It is instead transparency, reproducibility and incremental improvements that guarantee quality on the long-term. - - ToFu is hosted on github_. - -.. _MIT: https://opensource.org/licenses/MIT -.. _github: https://github.com/ - -**Versions:** - A list of the successive versions of ToFu, with a brief description can be found here_. - -.. _here: Versions.html - -**Dependences:** - ToFu uses the following python packages_. - -.. _packages: Dependencies.html - - -**Citing ToFu:** - If you decide to use ToFu for research and published results please acknowledge this work by citing_ the project. - -.. _citing: Citation.html - -**Feedback - bug report - wish list** - To provide feedback on ToFu itself please use the github_ page. - .. _github: https://github.com/ - -To provide feedback on a specific plugin, please refer to that plugin's webpage where a contact will be indicated. - - -**Miscellaneous** - ToFu is tested with the nose_/1.3.4 library (not all methods are tested yet, in process...) - ToFu can be installed using the distutils_ library. - .. _nose: https://pypi.python.org/pypi/nose - -.. _distutils: https://docs.python.org/2/distutils/ - - -Contents: ---------- - -**Description of the library structure:** - -.. toctree:: - :maxdepth: 1 - - overview - -**Code documentation:** - -Notice that the main ToFu classes and methods have docstrings so you can access contextual help with the usual python syntax from a iython console (print .__doc__, or ?). - -.. toctree:: - :maxdepth: 2 - :numbered: - :titlesonly: - - tofu.geom - tofu.data - tofu.dumpro - tofu.imas2tofu - tofu.mag - -**Tutorials and how to's:** - * How to create / handle a diagnostic geometry - - Visit the basic_ tutorial for getting started: create, plot and save a vessel, apertures and detectors and group them - - Check out the complete set of detailed_ tutorials for more info on each of these aspects and on others. - * How to compute integrated signal from 2D or 3D synthetic emissivity - - Visit the tutorial_ for getting started: load an already-existing diagnostic geometry in a synthetic diagnostic approach to solve the direct problem and compute the line Of Sight and / or Volume of Sight integrated signals from a simulated emissivity field that you provide as an input. - * How to compute tomographic inversions (to do) - Use existing diagnostic geometry and signals to solve the inverse problem and compute tomographic inversions using a choice of discretization basis functions and regularisation functionals. - * How to contribute (todos_) - -.. _basic: Tutorial_Geom_HowToCreateGeometry.html -.. _detailed: Tutorial_Geom_Advanced.html -.. _tutorial: Tutorial_Geom_SynthDiag_Basic.html -.. _todos: Todos.html - - -**Plugin-specific tutorials:** - * AUG_ : load the existing geometry, load data - * ITER_ : load existing geometry... - -.. _AUG : Tutorial_AUG.html -.. _ITER : Tutorial_ITER.html - - -Indices and tables -================== -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/source/tofu.imas2tofu.rst b/doc/source/tofu.imas2tofu.rst deleted file mode 100644 index efd5d4141..000000000 --- a/doc/source/tofu.imas2tofu.rst +++ /dev/null @@ -1,10 +0,0 @@ -tofu.imas2tofu package -====================== - -Module contents ---------------- - -.. automodule:: tofu.imas2tofu - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/tofu.mag.mag_ripple.rst b/doc/source/tofu.mag.mag_ripple.rst deleted file mode 100644 index 6f3ab238c..000000000 --- a/doc/source/tofu.mag.mag_ripple.rst +++ /dev/null @@ -1,10 +0,0 @@ -tofu.mag.mag\_ripple package -============================ - -Module contents ---------------- - -.. automodule:: tofu.mag.mag_ripple - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/tofu.mag.rst b/doc/source/tofu.mag.rst deleted file mode 100644 index 5068d0367..000000000 --- a/doc/source/tofu.mag.rst +++ /dev/null @@ -1,37 +0,0 @@ -tofu.mag package -================ - -Subpackages ------------ - -.. toctree:: - - tofu.mag.mag_ripple - -Submodules ----------- - -tofu.mag.equimap module ------------------------ - -.. automodule:: tofu.mag.equimap - :members: - :undoc-members: - :show-inheritance: - -tofu.mag.magFieldLines module ------------------------------ - -.. automodule:: tofu.mag.magFieldLines - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: tofu.mag - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/tofu.rst b/doc/source/tofu.rst index f35220ab8..bec0bb12e 100644 --- a/doc/source/tofu.rst +++ b/doc/source/tofu.rst @@ -10,8 +10,6 @@ Subpackages tofu.dumpro tofu.dust tofu.geom - tofu.imas2tofu - tofu.mag Submodules ---------- From 6a1abc4a19d85919f88a21dcd191d16ade81d27c Mon Sep 17 00:00:00 2001 From: Laura Mendoza Date: Fri, 13 Sep 2019 18:34:03 +0200 Subject: [PATCH 04/35] [doc] new doc start --- .gitignore | 16 +- doc/Makefile | 4 +- doc/build/doctrees/Auto_tofu.geom.doctree | Bin 6369 -> 0 bytes doc/build/doctrees/Auto_tofu.pathfile.doctree | Bin 114211 -> 0 bytes .../Auto_tofu.plugins.AUG.SXR.geom.doctree | Bin 64221 -> 0 bytes .../doctrees/Auto_tofu.plugins.AUG.doctree | Bin 6180 -> 0 bytes .../Auto_tofu.plugins.ITER.Bolo.geom.doctree | Bin 7778 -> 0 bytes .../doctrees/Auto_tofu.plugins.ITER.doctree | Bin 6197 -> 0 bytes doc/build/doctrees/Auto_tofu.plugins.doctree | Bin 8580 -> 0 bytes doc/build/doctrees/Auto_tofu.treat.doctree | Bin 5304 -> 0 bytes doc/build/doctrees/Autodoc.doctree | Bin 1044959 -> 0 bytes doc/build/doctrees/Citation.doctree | Bin 9081 -> 0 bytes doc/build/doctrees/Dependencies.doctree | Bin 9813 -> 0 bytes doc/build/doctrees/Todos.doctree | Bin 6992 -> 0 bytes doc/build/doctrees/Tutorial_AUG.doctree | Bin 12930 -> 0 bytes .../doctrees/Tutorial_Geom_Advanced.doctree | Bin 21572 -> 0 bytes .../Tutorial_Geom_HowToCreateGeometry.doctree | Bin 34840 -> 0 bytes .../Tutorial_Geom_SynthDiag_Basic.doctree | Bin 24943 -> 0 bytes doc/build/doctrees/Tutorial_ITER.doctree | Bin 11157 -> 0 bytes doc/build/doctrees/Versions.doctree | Bin 8130 -> 0 bytes doc/build/doctrees/environment.pickle | Bin 1689413 -> 0 bytes doc/build/doctrees/index.doctree | Bin 30525 -> 0 bytes doc/build/doctrees/overview.doctree | Bin 34955 -> 0 bytes doc/build/html/.buildinfo | 4 - doc/build/html/Auto_tofu.geom.html | 128 - doc/build/html/Auto_tofu.pathfile.html | 463 - .../html/Auto_tofu.plugins.AUG.SXR.geom.html | 251 - doc/build/html/Auto_tofu.plugins.AUG.html | 137 - .../Auto_tofu.plugins.ITER.Bolo.geom.html | 126 - doc/build/html/Auto_tofu.plugins.ITER.html | 127 - doc/build/html/Auto_tofu.plugins.html | 143 - doc/build/html/Auto_tofu.treat.html | 123 - doc/build/html/Autodoc.html | 2256 ---- doc/build/html/Citation.html | 125 - doc/build/html/Dependencies.html | 142 - doc/build/html/Todos.html | 119 - doc/build/html/Tutorial_AUG.html | 144 - doc/build/html/Tutorial_Geom_Advanced.html | 173 - .../Tutorial_Geom_HowToCreateGeometry.html | 261 - .../html/Tutorial_Geom_SynthDiag_Basic.html | 174 - doc/build/html/Tutorial_ITER.html | 133 - doc/build/html/Versions.html | 113 - .../_images/Fig_Tutor_BigPicture_General.png | Bin 188450 -> 0 bytes .../Fig_Tutor_BigPicture_SynthDiag.png | Bin 181571 -> 0 bytes .../_images/Fig_Tutor_BigPicture_Tomo.png | Bin 160388 -> 0 bytes .../html/_images/Fig_Tutor_Geom_Basic_01.png | Bin 20328 -> 0 bytes .../html/_images/Fig_Tutor_Geom_Basic_02.png | Bin 72875 -> 0 bytes .../html/_images/Fig_Tutor_Geom_Basic_03.png | Bin 111941 -> 0 bytes .../html/_images/Fig_Tutor_Geom_Basic_04.png | Bin 68599 -> 0 bytes .../html/_images/Fig_Tutor_Geom_Basic_05.png | Bin 81877 -> 0 bytes doc/build/html/_images/cam1d_plot.png | Bin 86376 -> 0 bytes doc/build/html/_images/cam1d_plot_touch.png | Bin 73892 -> 0 bytes doc/build/html/_images/cam2d_plot_touch.png | Bin 62712 -> 0 bytes doc/build/html/_images/config_plot.png | Bin 62602 -> 0 bytes doc/build/html/_modules/index.html | 78 - doc/build/html/_modules/tofu/geom.html | 129 - doc/build/html/_modules/tofu/geom/_core.html | 4518 ------- doc/build/html/_modules/tofu/pathfile.html | 1692 --- .../tofu/plugins/AUG/SXR/data/_core.html | 580 - .../tofu/plugins/AUG/SXR/geom/_core.html | 751 -- .../_modules/tofu/plugins/AUG/Ves/_core.html | 260 - .../tofu/plugins/ITER/Bolo/geom/_core.html | 389 - .../tofu/plugins/ITER/Struct/_core.html | 238 - .../_modules/tofu/plugins/ITER/Ves/_core.html | 296 - doc/build/html/_modules/tofu/treat/_core.html | 796 -- doc/build/html/_sources/Auto_tofu.geom.txt | 28 - .../html/_sources/Auto_tofu.pathfile.txt | 28 - .../Auto_tofu.plugins.AUG.SXR.geom.txt | 35 - .../html/_sources/Auto_tofu.plugins.AUG.txt | 43 - .../Auto_tofu.plugins.ITER.Bolo.geom.txt | 27 - .../html/_sources/Auto_tofu.plugins.ITER.txt | 44 - doc/build/html/_sources/Auto_tofu.plugins.txt | 48 - doc/build/html/_sources/Auto_tofu.treat.txt | 28 - doc/build/html/_sources/Autodoc.txt | 19 - doc/build/html/_sources/Citation.txt | 41 - doc/build/html/_sources/Dependencies.txt | 63 - doc/build/html/_sources/Todos.txt | 34 - doc/build/html/_sources/Tutorial_AUG.txt | 63 - .../html/_sources/Tutorial_Geom_Advanced.txt | 102 - .../Tutorial_Geom_HowToCreateGeometry.txt | 247 - .../Tutorial_Geom_SynthDiag_Basic.txt | 94 - doc/build/html/_sources/Tutorial_ITER.txt | 53 - doc/build/html/_sources/Versions.txt | 36 - doc/build/html/_sources/overview.txt | 86 - doc/build/html/_static/ajax-loader.gif | Bin 673 -> 0 bytes doc/build/html/_static/basic.css | 763 -- doc/build/html/_static/classic.css | 261 - doc/build/html/_static/comment-bright.png | Bin 3500 -> 0 bytes doc/build/html/_static/comment-close.png | Bin 3578 -> 0 bytes doc/build/html/_static/comment.png | Bin 3445 -> 0 bytes doc/build/html/_static/default.css | 1 - doc/build/html/_static/doctools.js | 314 - doc/build/html/_static/down-pressed.png | Bin 347 -> 0 bytes doc/build/html/_static/down.png | Bin 347 -> 0 bytes doc/build/html/_static/file.png | Bin 286 -> 0 bytes doc/build/html/_static/jquery-1.11.1.js | 10308 ---------------- doc/build/html/_static/jquery.js | 4 - doc/build/html/_static/minus.png | Bin 90 -> 0 bytes doc/build/html/_static/plus.png | Bin 90 -> 0 bytes doc/build/html/_static/pygments.css | 69 - doc/build/html/_static/searchtools.js | 506 - doc/build/html/_static/sidebar.js | 159 - doc/build/html/_static/underscore-1.3.1.js | 999 -- doc/build/html/_static/underscore.js | 31 - doc/build/html/_static/up-pressed.png | Bin 345 -> 0 bytes doc/build/html/_static/up.png | Bin 345 -> 0 bytes doc/build/html/_static/websupport.js | 808 -- doc/build/html/genindex.html | 159 - doc/build/html/index.html | 205 - doc/build/html/objects.inv | Bin 741 -> 0 bytes doc/build/html/overview.html | 159 - doc/build/html/py-modindex.html | 107 - doc/build/html/search.html | 93 - doc/build/html/searchindex.js | 1 - doc/source/conf.py | 15 +- .../_sources/index.txt => source/index.rst} | 18 +- doc/source/modules.rst | 2 +- doc/source/tofu.data.rst | 44 + doc/source/tofu.dumpro.rst | 52 + doc/source/tofu.dust.rst | 28 + doc/source/tofu.geom.inputs.rst | 10 - doc/source/tofu.geom.rst | 101 +- doc/source/tofu.rst | 8 + examples/README.rst | 4 + examples/tutorials/README.rst | 3 + examples/tutorials/plot_basic_tutorial.py | 64 + setup.py | 9 +- tofu/geom/_core.py | 5133 +++++--- tofu/geom/utils.py | 964 +- 129 files changed, 4124 insertions(+), 33286 deletions(-) delete mode 100644 doc/build/doctrees/Auto_tofu.geom.doctree delete mode 100644 doc/build/doctrees/Auto_tofu.pathfile.doctree delete mode 100644 doc/build/doctrees/Auto_tofu.plugins.AUG.SXR.geom.doctree delete mode 100644 doc/build/doctrees/Auto_tofu.plugins.AUG.doctree delete mode 100644 doc/build/doctrees/Auto_tofu.plugins.ITER.Bolo.geom.doctree delete mode 100644 doc/build/doctrees/Auto_tofu.plugins.ITER.doctree delete mode 100644 doc/build/doctrees/Auto_tofu.plugins.doctree delete mode 100644 doc/build/doctrees/Auto_tofu.treat.doctree delete mode 100644 doc/build/doctrees/Autodoc.doctree delete mode 100644 doc/build/doctrees/Citation.doctree delete mode 100644 doc/build/doctrees/Dependencies.doctree delete mode 100644 doc/build/doctrees/Todos.doctree delete mode 100644 doc/build/doctrees/Tutorial_AUG.doctree delete mode 100644 doc/build/doctrees/Tutorial_Geom_Advanced.doctree delete mode 100644 doc/build/doctrees/Tutorial_Geom_HowToCreateGeometry.doctree delete mode 100644 doc/build/doctrees/Tutorial_Geom_SynthDiag_Basic.doctree delete mode 100644 doc/build/doctrees/Tutorial_ITER.doctree delete mode 100644 doc/build/doctrees/Versions.doctree delete mode 100644 doc/build/doctrees/environment.pickle delete mode 100644 doc/build/doctrees/index.doctree delete mode 100644 doc/build/doctrees/overview.doctree delete mode 100644 doc/build/html/.buildinfo delete mode 100644 doc/build/html/Auto_tofu.geom.html delete mode 100644 doc/build/html/Auto_tofu.pathfile.html delete mode 100644 doc/build/html/Auto_tofu.plugins.AUG.SXR.geom.html delete mode 100644 doc/build/html/Auto_tofu.plugins.AUG.html delete mode 100644 doc/build/html/Auto_tofu.plugins.ITER.Bolo.geom.html delete mode 100644 doc/build/html/Auto_tofu.plugins.ITER.html delete mode 100644 doc/build/html/Auto_tofu.plugins.html delete mode 100644 doc/build/html/Auto_tofu.treat.html delete mode 100644 doc/build/html/Autodoc.html delete mode 100644 doc/build/html/Citation.html delete mode 100644 doc/build/html/Dependencies.html delete mode 100644 doc/build/html/Todos.html delete mode 100644 doc/build/html/Tutorial_AUG.html delete mode 100644 doc/build/html/Tutorial_Geom_Advanced.html delete mode 100644 doc/build/html/Tutorial_Geom_HowToCreateGeometry.html delete mode 100644 doc/build/html/Tutorial_Geom_SynthDiag_Basic.html delete mode 100644 doc/build/html/Tutorial_ITER.html delete mode 100644 doc/build/html/Versions.html delete mode 100644 doc/build/html/_images/Fig_Tutor_BigPicture_General.png delete mode 100644 doc/build/html/_images/Fig_Tutor_BigPicture_SynthDiag.png delete mode 100644 doc/build/html/_images/Fig_Tutor_BigPicture_Tomo.png delete mode 100644 doc/build/html/_images/Fig_Tutor_Geom_Basic_01.png delete mode 100644 doc/build/html/_images/Fig_Tutor_Geom_Basic_02.png delete mode 100644 doc/build/html/_images/Fig_Tutor_Geom_Basic_03.png delete mode 100644 doc/build/html/_images/Fig_Tutor_Geom_Basic_04.png delete mode 100644 doc/build/html/_images/Fig_Tutor_Geom_Basic_05.png delete mode 100644 doc/build/html/_images/cam1d_plot.png delete mode 100644 doc/build/html/_images/cam1d_plot_touch.png delete mode 100644 doc/build/html/_images/cam2d_plot_touch.png delete mode 100644 doc/build/html/_images/config_plot.png delete mode 100644 doc/build/html/_modules/index.html delete mode 100644 doc/build/html/_modules/tofu/geom.html delete mode 100644 doc/build/html/_modules/tofu/geom/_core.html delete mode 100644 doc/build/html/_modules/tofu/pathfile.html delete mode 100644 doc/build/html/_modules/tofu/plugins/AUG/SXR/data/_core.html delete mode 100644 doc/build/html/_modules/tofu/plugins/AUG/SXR/geom/_core.html delete mode 100644 doc/build/html/_modules/tofu/plugins/AUG/Ves/_core.html delete mode 100644 doc/build/html/_modules/tofu/plugins/ITER/Bolo/geom/_core.html delete mode 100644 doc/build/html/_modules/tofu/plugins/ITER/Struct/_core.html delete mode 100644 doc/build/html/_modules/tofu/plugins/ITER/Ves/_core.html delete mode 100644 doc/build/html/_modules/tofu/treat/_core.html delete mode 100644 doc/build/html/_sources/Auto_tofu.geom.txt delete mode 100644 doc/build/html/_sources/Auto_tofu.pathfile.txt delete mode 100644 doc/build/html/_sources/Auto_tofu.plugins.AUG.SXR.geom.txt delete mode 100644 doc/build/html/_sources/Auto_tofu.plugins.AUG.txt delete mode 100644 doc/build/html/_sources/Auto_tofu.plugins.ITER.Bolo.geom.txt delete mode 100644 doc/build/html/_sources/Auto_tofu.plugins.ITER.txt delete mode 100644 doc/build/html/_sources/Auto_tofu.plugins.txt delete mode 100644 doc/build/html/_sources/Auto_tofu.treat.txt delete mode 100644 doc/build/html/_sources/Autodoc.txt delete mode 100644 doc/build/html/_sources/Citation.txt delete mode 100644 doc/build/html/_sources/Dependencies.txt delete mode 100644 doc/build/html/_sources/Todos.txt delete mode 100644 doc/build/html/_sources/Tutorial_AUG.txt delete mode 100644 doc/build/html/_sources/Tutorial_Geom_Advanced.txt delete mode 100644 doc/build/html/_sources/Tutorial_Geom_HowToCreateGeometry.txt delete mode 100644 doc/build/html/_sources/Tutorial_Geom_SynthDiag_Basic.txt delete mode 100644 doc/build/html/_sources/Tutorial_ITER.txt delete mode 100644 doc/build/html/_sources/Versions.txt delete mode 100644 doc/build/html/_sources/overview.txt delete mode 100644 doc/build/html/_static/ajax-loader.gif delete mode 100644 doc/build/html/_static/basic.css delete mode 100644 doc/build/html/_static/classic.css delete mode 100644 doc/build/html/_static/comment-bright.png delete mode 100644 doc/build/html/_static/comment-close.png delete mode 100644 doc/build/html/_static/comment.png delete mode 100644 doc/build/html/_static/default.css delete mode 100644 doc/build/html/_static/doctools.js delete mode 100644 doc/build/html/_static/down-pressed.png delete mode 100644 doc/build/html/_static/down.png delete mode 100644 doc/build/html/_static/file.png delete mode 100644 doc/build/html/_static/jquery-1.11.1.js delete mode 100644 doc/build/html/_static/jquery.js delete mode 100644 doc/build/html/_static/minus.png delete mode 100644 doc/build/html/_static/plus.png delete mode 100644 doc/build/html/_static/pygments.css delete mode 100644 doc/build/html/_static/searchtools.js delete mode 100644 doc/build/html/_static/sidebar.js delete mode 100644 doc/build/html/_static/underscore-1.3.1.js delete mode 100644 doc/build/html/_static/underscore.js delete mode 100644 doc/build/html/_static/up-pressed.png delete mode 100644 doc/build/html/_static/up.png delete mode 100644 doc/build/html/_static/websupport.js delete mode 100644 doc/build/html/genindex.html delete mode 100644 doc/build/html/index.html delete mode 100644 doc/build/html/objects.inv delete mode 100644 doc/build/html/overview.html delete mode 100644 doc/build/html/py-modindex.html delete mode 100644 doc/build/html/search.html delete mode 100644 doc/build/html/searchindex.js rename doc/{build/html/_sources/index.txt => source/index.rst} (96%) delete mode 100644 doc/source/tofu.geom.inputs.rst create mode 100644 examples/README.rst create mode 100644 examples/tutorials/README.rst create mode 100644 examples/tutorials/plot_basic_tutorial.py diff --git a/.gitignore b/.gitignore index 1eb7475db..b6b2f1fd8 100644 --- a/.gitignore +++ b/.gitignore @@ -57,5 +57,17 @@ Details # installation dir usr/ -# tests of LOS on west and ITER -tofu/tests/tests01_geom/laura_tmp/ +# no PyCharm config files +.idea/ + +# do not commit sphinx built files +doc/build/html/ + +# do not commit built compiled files on windows +*.pyd + +# do not commit sphinx-gallery files +doc/source/auto_examples/ + +# do not commit nose tests files +*.noseids diff --git a/doc/Makefile b/doc/Makefile index 43d4408ff..3bbf7b24b 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -42,9 +42,9 @@ clean: -rm -rf $(BUILDDIR)/* html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR) @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + @echo "Build finished. The HTML pages are in $(BUILDDIR)." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml diff --git a/doc/build/doctrees/Auto_tofu.geom.doctree b/doc/build/doctrees/Auto_tofu.geom.doctree deleted file mode 100644 index a1c6ae2be5f5ed17242032199d2ea14337af27de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6369 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 diff --git a/doc/build/doctrees/Auto_tofu.plugins.AUG.doctree b/doc/build/doctrees/Auto_tofu.plugins.AUG.doctree deleted file mode 100644 index 14e6c43b9196354c888732bb2e2d7382121b567d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6180 zcmbtY+lw4o8P8;Zz_O z>ztbD5d!+KFkufOTE6%s_+VsVL3~i3M9@`MLH0@XMO^;@5g%0W^7~F*yVE;8ivu%E zedjyh`R=!`u6+B_GpF>AYTCXPNyil(&$pR~RhJ%_6?zncyy!b)9#ZRfKG{Ye)@OedTbUH1=-)G^z!wz<0UV9L$Ra45)=|>W;5Y=VJ z7NDSNmTL+DApWm-<~aGUZbw1!(KoHVkPQ+X{NvbQBcmTjswT}LVaL3oR$Rwp@oq&` z0~1Wjm@o4szO1U52)DcU1PetMLfZaU%&znYQ5RBo6NK)Ik@O7$b^IQKzd;j((^#NK^oyL zevLo7TZdH7C6>-4;al0aTGQ-z?lX~z(8w8h$CYA?jj^& z`%a1N_3{N(GoxX9A1s)eUNoqafJ!R5J|jKI93%Z^BK;S>`1#I|`QxWmFiuslPAbUI zN_v=v<88mpcE;ciKzsypfI?J|p-$o@c^IH)Sf)4C z8ve3L;5wEgei;z!Z-LVf-!R2PH zJ8DBd9S#4?3|@f#lYvw{yPw-F2Ta**^l6Zr<#%heN=iI|;YOdFbA7JuMi+@B#cyV) z&k*3mh8kTV^g^t%g`VSAN8JUCl#N9AH&1|nteu)k6bfdB7Js-p6NGAG>Nq(qEN0_% zZN$Q2)r3-Juk3T$TFxAB!r^T$)_LO01ZRdaH z?~#NJ^uHfRy2y*ETBR(dt6Ne~kdkYbKb{(h(2{Sy;#;QMx^IS#F7wHZ!*9(wnD(9@ zEYPEBOvdhx2uvEb>H&%yhA2iF8hsyE%e;bjH2b3`0OxvYAjPnq77Z&}F}G9+GR?_P z7jQEAF%U*SA*}h2Z_hrya>uiCMI;~7PyXuvee!11FI-BUgBwu0)keG3PTQ@bt;+mGjas)7E4g{Jhw7$0bonULlf&wG-V_*q>8H8 ztPj)oRFnD>YSuuPnPWg2GDKjKP-t74ju%AIKqpLn!VoP`BnR!=ZQ%4`wc_O_D)C zQ5-6Ab+XxTO>Y>{8~}Ncd`@G*qt1uS@vi)`OOQUul}V#OEC zDBsjxf+*W}gp;`F8N+r2Wn~DGa#_m)f?reX5Jn&bOufW`*Q991z@d2!ZF@6dK@qjY z3)=Po?uw_$w^fTv8Hk;3_u$~56C6tJdmTR>26%SkO644)ilL0pW=TQXWFUmOS3At1ED*v607Co^*_) zmONG;*4$v7#X^!CeoH#C;mB*)@8zEeyiIZFNpoUwXUJXr!cA9P+F7Y}F*XrTUycyI z0yod=@8r{PsU#*Eykc>TkQVHlgcU4C`NzQRy(mEUPisfLDoextF`UG=9B%+qXYqfI zG6M47G~Ol~_nD25Jj7d^Vej}@U9eo=+%p)a57)r3g{nyl#Ur)My!{xH8%>Fn2@rbl zA}Sm3YiT4yhqn1yJOrpf)Hz@|FXOxOYvVMAQUV8P z4WJrfC$Oy~^IsmlN9FZTR0SCC^CSK`f0I8M{gI%*r$67LKi|clNHyp>%~E=EstFwF z`#sKj{HVv@?CFa=ed#FTXK6`zncqn0-vIqPpwIae{)Q&b-_n#v-_hhZ%3h=8-oT8e z;c!|c!kOU901K%0f&(_h`TaIXRoAuGNV{6CCHYv%Zp(HwQoJ*kE!*<@Mdk>%?A~CE&IKvSj5W-D>a0EiQ2}dA6xWXCE0O1VxedqV8yJvTH*CzQs_$OcV zeVXm6u6oDsy?XD}>(}mR`Ee^vg3#2W*q5fl!>){y3T;1jnRaBfvns|SuPc+4o;0*8 zqoL};=(cU!;zg+!1Gz-Qt9Gp7uIzaoNh7NZQ+OXle$bM}@gm~aqw@>Xc$38K zwAKsLP7s+|kVsu?#$jCR$hb>m^QqWp(xyp*1Y*UJ>&v#GN=CcIM9sH6HsDrMw3uNdrKxxbxYDdu}utv7}TVxO%!B{`BvyEY~7#HfvUoK zHKlfl;bQ;61rKV}y|$?bz1~d6(=8Q5om#iosrj3UJ|l0*m1Gy%jnWaL!E z&cHWxV?&HKz1Ag&V(174e%j-`hHh$zkyhv#gXfzYVkn=z1y5KT`1B$%TC%32sn`_; zk)-O}5J(ixM#q5eC_oH-Xi3K#Z~%2!jF{XO^kM};Zmp`D8tUeTI?_-#HfW|QrWwGQ z!jop$lV;eHW~?XG)KRH!X;8hY#?-J(RdsGuF`uiq#1wMgmeC1yR81Royg|2DH$fXD zp{&pyK=x!tcQUd!0NLZmU%-sVkJDX1dq1NMg@)kOp`^Q6ol^tqK+?X1%>JH@+)bk6 zs8gX?u)jB>`@mk^#dKb>na-3t$u#cYNaMU*hHE^q`4A5J9=-Ir%XB)U2TRYtH*I>5 zemIwbUWQ@XRD3=j%IHkFs!&o{V?8_|6+I%Rig+-Ccra7MgR>qR=$sn$SocY`4$J-W zs$!7mGJ2Fj=3sJeb1-=YaD6DpRarpi2Ur$>_K7~G9(X=Vk3-#8X7mI@%2em9ejCAS zreP=(Hw+9gd=m1V&q$QI7lMf0>sHZIY@Vm9VmP0qg@x_xFK}LV;oO&Vv+pZaf7K?h zV}34NyIY}GgXuFFy@o*<1EsS?#C53wsm~WaHrC%k&$0mS7O>2h{4Q+N5>e6XXs@R# zZWDVa8^j5(hDiRjCfByHEiNA}hC34}L%y z>C&jm`T<;>y`8}~86_<5UhJ9$uh|P78Cf3>Up^c=?ntM6xRbfF;P^iiSDhN7z(UC9-NI&Ua2qtAhFFc|bk z^}2--u!DRvJpNpnrw$t$rc}mweqP}OrEc{3aDp$$=nFyDX8l!|pJQLnm%eDDPrNCk zFUHz+KGBU~54he1`jU-4@ugeXweJ&OW_{w#8GSkH#CzYg-Y33di@kGKu?}CU*y?Y| z=&Q<&Z!R`kJAd_NJFCm9Dz|AV>{d2?>kHacyW%8H1D5!PK})=awfM%u5~W1+O|Zl_XY?(gXf5$JYYDZ<0&magTd`(g0;bMSrIB2b zU8rn?|J$~Jun+&YTln9R(RVO0u9*gi(RYH{+t(Z9ySAV|l{wz^F`2^(@O{=C@6PD^a{*wEA1KZ7gKUm>4VdGH2F>wK*5QX? zjx~AcM_`N}&FIHK&l=<1n~fn6CAsW;Pewn^5MBdqxa=(B>#VaDkwt~$L|)O-PuMVD z=JM+~HvME(brnZ#`YAE0%A3V|z4eKcep-##!r@?%&C=$^V9|=Z`CaB`AlLgc`dOB1 z5^_Bnx4h7K%F}_pnQ%p1rtpzs6a5?u^7FVjEO*0M)AMj~c)u9!Av@vXBk31%bM#{z zhpcPMy!wkkZ!13ZOTh7$Gy0Vh$M@NIqFBBUWb~^nAE$O40y*p84zMPevhw^|RlQ$r z#rnFE^{<2V015gH@chk;eyim9fi<2V%;>k7=PvL(6Zz|K$l3kQ^Rb&Q+5IlqmAmQp z!0Goh`h$|w2Q4Q!2Kz={0#6Ly(C9;q@*lEuilI<0%5ZK+;pfF|3xzXke%vPPydRd!0l{ryYl3yo4<4$mN#o@%_+Q@{FUsz({|#a$dtb_;Tb_yRk_e zEnB!-I`Fa3!Nn*!Hd}F=hr!=D^0D0-Yau&mJq()lp1nZcUc0+)PzKJx4=?fUx1QGl zb(Hk=LdRNf<;blLr$^_`6Q^#)aVu1HsE~n+cluTh19W+Q^57t zTE?$l+`{U7m8kPIwhm5Fkht!8v8+({<;dS}(ok{@XgHuu>AM`ULvOYaf#)& zVl7MAj{koN#7x$KbmF#qEHXjcG2WtN*XjRzw({gklz7W$w2n0g)I~20e8GWzF% zrfP%!MJdmSNwd;Li_0x{8~WD<{hQb~Af%=E?+yA7v46vI?jsud&j$UM7{dk4DrxAy z8}vV%&c&V*4bCBY8@d(Hzb|;%R5f}#-Zb}CA)2p%|}>rp&pdd$+~@)HaycCfA=m|yBHvMjuJH~)QLp@zEV zEXoB9jV_@L&COBgNZE}%;snNlU6HTLVzj3BVCQp}^*H`ydIGs(|h*1Sg@Rv*HM zjmFi4)Os)8&x_H(&%H!XVhl$aUvC?u_hGi7r|>JrOA}bL=&LZ7>HYj>5|wg*A|i2f zk&QlJw;kk{qednPY7wKa#&BK32&ptm&<&_O<%KC)`T82XkM*_q&GdD=R!o(S<8rma zpcp-kH<0rx@QbyNeml1c&}$B)(TDJEUhL8B7B-;wp6XB^#+*2$lB8#5>u7Ap_;wJ; zq+N@3r_Sw`y1t&5jKOpAsz~2}@hbZFvbWaBHrlboC(u<4ddRf4R5$uYJ3F4l%(9g6 z2ooH_LDehzCVn0dy{MC-5W+@Z>YI6Phm77~i@ z(XTThZpa3$MBm1Pac-7JY1dumD5Fnc4p!akr`?|0Kf^}fj(LP1l*B>Qj*G>2AVgUJOvv##-NFXAiW(*t_IPG?qda{Vm+I@JT_>;^nG13{|`R zxVPp;uDzM*d$H(>*eRn$eV-+kE8a6Q^`T`q)Gx8qlW0!GaO40dMMqv}^!;{ziqXS& zC)=PeP6_Y{c>J7aeDsAbMC?&wUaX^?z!ufp5w`pA_eM4F~X;zy@-?vE*E?-apy?% zD=?3yAR1*7*%3yY$Hcstunx8c=VNwukLe;&x|AYm8vQutt_ZXsduvhTm6#Jw8AX${tFQ#esj!SaCPu#+ zlMQjuo*8`Ol-hpClo8v|*U#YXDjKEU5)OAh^%_iZs<2r0!+V2ir%iESV-~knh<=tg zZL=Tew2S9VU%+n_g~)ysArGM#d5@~8{i&E5_?~Jj4DHzsP5dH}9pjAJvYU}n?dOT| qTW5LuPQ_T6I*j(Qw4o(_ZDSWzkZxm;=?;F?(S}z1ciIEr+D8GNvoUG_ diff --git a/doc/build/doctrees/Auto_tofu.plugins.ITER.doctree b/doc/build/doctrees/Auto_tofu.plugins.ITER.doctree deleted file mode 100644 index 74215aa9452d86424904c0af6b57d23208bd172e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6197 zcmbtY-HRMq6`#pW_jJ!kPcku^4JMmTHp|XV>~1j%>pZEDC2^Ks&}`mfrMl~O-|DHZ zDyweIhY-+*g$a8R(elM7!3QG?3*v+NB!arK3bIe4FXH+Si1?s_AHQ>}Zq@D1?DQ-S z%rJHCx#ynyJNJBkb@AI<&(5hI*>Hk>B3v(S`+>vaRMv?~^ijGg>yf=5 z2T9atshk5xpSzwDF+Y8fZt^)<6?QaaB|opowRXE{1$!*obJ_lO%9kFba@iIla(juu zDI|5lbz(@6OMTCdV-WFw#ka@Ve>Eow%a5Mj-;LNHvGX^ zeU|Q2WHq#*q)7P!pXUp*s;}_r&g(IY;tnq91YfZ`A{Znc+`5x7bUvGiz#?Kh^pc_L z$L+iKZhxU2#Uf35xbITT`oazT0w7-DRk|X9Q4y~2n6V^lTU)e$YfHgEc*Psad2R2tu>vt;_fUa!h#!EY?vG5ioybK4GJ4@C~~_XpMVI&oq)(jj>zW% zFK7>0Fn$`8Z{(mf6etCwfy?v?F7!?F5+4N3*Jm*iG;bQvTrxMvhJvOC&0D0ofsR^f z(~7ziR!#s2LZ<=RG~8z6uJ5>g7B_9*X$rgN;aTR09Jf?BJO2@s|6!(lmp|7vRX+|8 zy6fAa}l?6DA&$Sk*ZEB7LXVl%d&na7_-nGGE0Z6I>M+ujO>sb zeEiqyCXj+?%n)Xg8_GkTl7jG{y6X}H0ACtXu6X3_l*vWoMP$VEDFeTN;ixfpvY z?)?rjek*Gcivw?uIqA;)NdhTSzMBU>iUhx!#rz8}{k#MjM&ZBIF;K2=L#yqFL*^@` z9%j(}Mz8a~5m<6P4!P?ev~9=9bM0z~6y*9t>j3)={IU&{DqLS>GXvV1K1IK!l2E>& zDzyFY^p!T{qB=(|!~*$q34dF3E}Kpv|HkfrP470DlogOMQ~AvC$ud>%!U@K<>!+iY z`8i}w93>7zln@Jas9eEcb`W}Q-xcX&wY+afetM*~<|TzJFGm*pM{cp_q2S+7QqVLn zG5>WI^J&aG4qz+1xoPu`TDYHbhkt5|m!$t_lC0_dh2aXqgyBY?g1BjYH%H3^;wdaQ z`ouBYk2T)tB8emi)`t2F5l(HW(G_AZuVq^32ERJ$%uvKM67kc3MQ}91+EB1kvtE^_}DwXqFDxCk!2+k_GA>b|-zVs~h7doSCH;q)FOsMN) zS>t&&Gg7=s%ac3*Gk>3MSVt*5kxk_?MJbiuvW$Y5ywnfI6a5j&^Rur8ecNl^wt@wV?2Kx7}2N51p_9{I7PS3W7ZfoDMV zRtxo3E3dc8HbAeM)!2#E9m=RuIC3Y|j48j&bP1+OMkC6mt3}m$>K;p8LcT-mXq9iu z>K$6DvU!w_{sJ`kN-QrP%Y}~j5l#n#sg~A7pIbD!{2IOIdD-YE5jDY9-u!mus-~#I zqAP1L69P2|TK{v!EMR~JRiHLWW%a)8B`92r3gpGEtfK^Bku8EK#fM{~qZjr##K%f@ z42n*F7oW@dXA*h%S`$IvqE4Pxaa;v@MTe=}7zBav1Hp{Noq4%NZML6`t%E@jjZx3Z z2D%nEv~vH8A@ZXcg?WrTGPd?z!7V*cz=`>We87OqM=T5?6vb?hdFjp>xy)^^_^ilt z?7#(9!WK!anJTj4uwF96aSf_as9u9yW{*LsiwLesmqOvvaQ!e57K&l26ox2*5;17K z+=^ZNe|d7zVo?-C7ROul@UGNQz(u1b*Mme%N~tI*sk}0^G9_ZPb_V&Nk;yG}sJwpf zmDbBRe{x}Jvph?8hyfG_M4k#aYo6^76KVx;AB3MXnE1%^5$gw$V>yg!R~+Nwadc(1 zANT`Y6NtEug*Y{E4^m#04V#83B}ty4(aoBZj6=WLt|&m)kIDQc zDU4a-1Qx;~xX!{?f|yz6PW4LQWqWSyW>0k8a@?5WGA@#9xuhL}Uz4l2Obi#W)ldho zCTFt-F12i^+#4YaORpteP`QVAt~i?Bwrp}C!g#yW+27x9hlhd(emjVU9f$38z!`T^ zd4YD2MA~7Y>jKI`1$7p-UikPY0ZStq^rwy?N_os>eT)bKOzd1H2I?4Uf^b9~K@TqA z2%hfL2b z7teIjqY;)|jmI|p>B|Y+H^$EM>O1?iJW7fgf>-(+U1T5j&D;tWqxfTC_ihrR{--&l z8lC0t{uqxW=)3*^rq=$yK@kD*Z<6mU8~2z4mpsH-oM908SYGIRfxT-n^dFvuehYb% zCX7dNf%$tWnm1|`DH6c-@QNsL;9UzVYde(9&*31v3W4D$uyJVk_z1CTf|?B|L58$J z`B4-dn999p$EsVRVJ8J}kXAriBJPZ~nMMA~qxUJn{)w^x<2`=F-{5cYC!;?S_4oAW zd-UhK_>;&wZKrNZjZ&3>BelQFS(hJm`CDDJv8y&6CHx#s3@`H=nfx1&e;e{Sf5P8X z!ui`u^5{EC{F?b{)VEhp1RTGDR%7>k|^| z`c$=PV?sWHbR;M%T$q-Xub?$S+$q=^7-PU)FCh}Xea6zYCPC+m_zB=*|x~E${vkRbP z{x0}-XYk2Np4sN*V%BUg-tE5f8l{(Pevfdc=i^kyxtTn3wLZb*h=`!?L^KRLWFiF z7LY<*Cv7VN2RUQ9MigNXf7d*tpZ-<1;-LKK80OuObyFJrVO!Wn&OeFej4*mco$!X7 za&3<#H)?V^FtACH@JT+wC*^d0gy&ngA{It19MbaNFj~Uz#x0z>l@hdGjD@e$U^8&z zp6x}=FcL}J!BJ--W(wQ)3f=G;pQh819%{lCE~`w*rOTJAd@f&Bnjn=$BJ{mpg_b`{ zY%n!-lkJi&<*Dk@#-1#~++&d>8!+%fnfRLYmZ;WU0$@$(pd9>1N${4C!9(WRq^ zo&nKCQWV$t1%B>ET^+aq9U8sR2zX_$Uw>}m#EETBGdzuTyM8D%;cJFv1VX#%UyJE0 zVlckpYHT-Pp-pg#KyGQwi{g-Jh8FdGUvMpsm3%&X27Y)KTS#tS%Mdsm#MoXh=hSRA zFEvxsZ+@z~htu6Z-ugLoSD>G71E$wgn6~-3_ED(5nxT0vM>kM?Ee&hDrfl&#f*DJ3 zYkQh4BIb5A8@LG=AgQ9>6^+1^VeyJK;5P7N`ko2&08&gNu@CKucgw7d_@Ar7UW z1{kks2u9iSykwZ$FVNSWoHLGGgVzvss|z@Em99r&tg zvIrAC5%-61{HgAWsB%2rl{kJKfV}naIG!JeWBIw8z-QNYU4K9r%%i3^%%bWc1mzZY zAWIy7i*zC0OUc!RxS}q^I$aZf>{*rjFx{_Qi~_j)Zqu-=ESH)Qz9~Xh%?VQ42VU3w zyj(tze;`MqNCSvb#?_Xq2Pm2^-nyQ=owVhn2dB1gUi}*8m^@|UvWhKaPj1SI|AhaP z$$H<|wOAl{a$^F?7;bS&aN2UJ=lY%GzMST^Wg*$SFXuA`#X#MQ`yCcCE4gt(&Z_h$ z@;!Gixld`weinNlfg-;<8mQ%BrkjlcvI`^$i7}eCd}r7Ii1n<{n>>>T*c=fXIU-%eo}g30bO4M};11UDliVLo~v`Vun zr)WiaF=yX6+()CPuG&>jrD^)#hmbaL7=OZDe&?UV$`6ks{v(J!DD``2LLuvLT}loL(0_1}Sa)pqA#yV)Y9JxMhZDRE1Cum%*W^4wldnFcDK65#oFmh1D6 z`9Dbk4W#c{RkoZh44Nvi;z+Az70zS4XqceD`=KsGC_Ti5R<=FMMpmKHA7OMT9%cSB zZmMt|=L`xDe%^VM{-;WnzR45*pcI4_X2kL9fGS!}n-Mc>U`#Mz*!e;waB zo`%>fL(IJBLU)PyhqB>Url|V~(>fr<61~842_ZX7GE1q_b*J!a1F9 z&_2&QuZ`hRB~@Vyy@G_lgSH6kT0W)aiPOV6IfH>TI!uxbIfvgUfL$s@aedPCzzDr$ zUoFkLCYAHiK5o)J(h8h#`_&`%Lng}O9nrsX4Ekf5wC}@Mz}W$l?$Z`wQs)-_$YJjk zqu;EIBDu)86vitChK={5F&kfZx)?pK>3%qd!*NXaGm>#^(>c3DULI@2X6vxQ502PK z)n-Kh_A%&>ve`oFh7mJDlixXTz0VI#D_aa(?>E?kvgwfZrc-{o?efoI%l&@L_8-o2 zza7KjIF|bh);+A{@-vLs?Go(p>m#;NwHwj@>KOE6?N;8td8(SHqjEaEl8{1NrqJ$O zgp4d4P{hu!v7tob3?&lz6|<#PE(aBOi|nD!vs9* zv#Gp+UTxO19P0!yD!o*9KErrjK29BDQ|NScstUx?JA1k+8s1EtFG4|lE|QOpr9y7} zX2RD%P~B#}r(ACF5Wp|c7AE9^8He;xpl1&RZFwpmQMpK4)*~haG8a6LEEn%3UG$I9 z%tKZ&{hHy%NMVbl<(al@AZwul%@0vZH_#PkkudrJKIT#}$U42d_?*o?_KtF*nygu@6Zar) zfl?gG^1zoFeT+2FBsCcw3YpJ>?V-!Aqqd~PpqI!-EV>&nY(zHxUK^g&Ss41E&VgMQ z4FdIQVw)n7i+(JIxzrSwM4la)8DZh{03f-L@-6pJyLI#0#tV=?JTbCZF3}kxD2hWx zu8KqRuHp4!stl-%O5{m2O62K~nSN;L=&Ar85JR1twwy-GxQk;#BetcNW#fWD4^HKf zJW0=6^H$ss^a6NLtQxR^xzICQVz{VApj|H_^Or+G#A3_W5idct1YhwZrdL-gl)%e& z?8r_bx~N-rL;)KI$#yxDI|RQVPvI~TT)@bhL-QG#o;Q=^LcoI3YiTdY_XEHcq6yn_ zsLBn{F895rANE@4N47v2wGz2XD~Kbl(9yYomW7J;EZBJJx#yvlg|KUmh@p{E%vxSd z3*X19rp-iGiJ@uCEgE%dZ*Q9E9SAfQ6v z0U5eMXOUiZ<;u`#`iP5RaO>tDD9cnU19jm?hAfj16ctnp8?mah=z*95I;iH1NY2pe zbZkAn3D%r1z@MGZ)2;9xf7e;UT4$bq&CstY`t>|fe3pKFLZAP^uUIyS6_sl0DOxex zSG?N%y|!Z0RxI|_^0r#KAM<5;WL@JIQ;8S(yZoLK$KO}7_$R3#%F>h|=if@&d=+3y zMf0c#l`9dH(-8^+IbEvU>PSilkN{@=j_($jRiuxM3>MUlA&!k)s#>%%#2@iI6m)^C zj`GT8Q1l=~6=Vx|7=~x#wLU`hOBoiCs5*=^aUp$C%}2|7GJ8BPU*xjx_@->W4C91! z32G_cv?ucC{wL^pjh?y+Z?&oqgwzT65avFtpF;QkRnYz62s&BIF2M;ol@|6>+wE(w n(oK~9a|lGn{GS_89{54ZPtFyZP`)#3(S4AGPHLpYo#uZ5DE1CP diff --git a/doc/build/doctrees/Auto_tofu.treat.doctree b/doc/build/doctrees/Auto_tofu.treat.doctree deleted file mode 100644 index 2259a4d05c9597016d0602b5c750361e609f624e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5304 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

ssu#XAkaRbq)c~*CjL{+_q$|uA`dR3of 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�-k=YhosO15N;=T!u=?;pJHhC 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

#rLT2+DDoxjR%GD|_fblXc|rI|@^hva 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

N0ZLvW2>~AtfE=x7GK0m+sBl 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

=`VKPKEP>h(nGJ;tJSg_etaU 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 L%qxX5alQIq2G6w5 diff --git a/doc/build/doctrees/Dependencies.doctree b/doc/build/doctrees/Dependencies.doctree deleted file mode 100644 index 91ba3da4ef06c3f29a95ef760bdb0297b6f51ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9813 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 SOH0q06umM>r$sg1YX1*KVQ8HI diff --git a/doc/build/doctrees/Todos.doctree b/doc/build/doctrees/Todos.doctree deleted file mode 100644 index 058365488eb6a0415a07cddbe37c9e88e464bf0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6992 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 jBmHR$I+p)*q!YLK)Sp@|kT6VNa+XJ>}F zWW7a*A}C6w0}^7&m?dCuZ%SnI?`G*Zsg|aV92dpu_wm`*ODMne0>9yqJot zZXBdhlVxHIE1KN#?1=f<#f*=MeKBh$PT=eHe4J14eHXKNOpYf`;<3tX=zO=!o6=h3G z9V`aKEe`};BMA(v*<^8SB%B$m!F{RWIgQAQdWukUTP`aJbrSH_6}&6_W}*r|22$|j zAox4*_fGuXhQAX)lP^g0?oiA5?ErTg;EstY(AsK8R>&*7T$|iAHns`?LoaPRzR?OI z;{)f<-n(X82(i{?#ys#|Fr3)nL7Xt#2z-eUkP4!nF~1tDFBnZP#at8{K}$|PVr|qO z^DMu)ZanD6kRLEl9*x1cV;PU}UhFhuWB$R%9>dwbalaKoBK>xK`oWgb3sQqymziPt zM8Y8T6Iz3{i*l}saa`{k&A|5|xJ2r}XT{}7uwDYxp$C6XcpwqE@ zdpT#!TQq?@XquE#_ewj%XdAI;72l60*JFOM?fqQ+3 zGYMN{gfKGQAhIEiwh}v%PoF^*Aa`D1$x)*d*r~@zPD$OdyW{wUO`H?g?!XfLOF-e{ zJ7>q?0&`&eh{pJOB7Tm8!U<-uV8QUo5)xvBH_9mSkMWCSmvhAd;%qD%S3@czkis*Hep*TP{2dxK}>7LT`{)rb)ASRMjOTgo;Z1VMh= zXtSWhk}?9^VpU0--{JP(Y@dr1-@c@lOJI*z?d;ljcaMz~V(Wth+J_b3!G&3g(FH>- zFJhM6qi7&R45yr6jCdbkDO8Msk6}BAs}UT^h%WHGo^*ldgH~d!)gFgEFBcd%H{l2- zZ7X35i1vKY#AlJ^NhpX$)UuzX3%EFE6I|13)oI$naqhSI|1#`Wn(eFNgVXfO-@WgA;Sl?Vng49EqM z9KjHDfQ!LFv-H*9jtZ>z|{ z0k!AVZ}5gTlRRNGCav@s<$T~wgC$*t_?T_r63qGu=!;`R%W3=ZLK#J?9Igk*V;&@i zpLQDXwRxaZ7^yDNHYX`D#{=s?R?QLMAOA#KXUfod@#lL4b0bS%fu+;QabVjswm^g?7icp^8k$hn*yR&@*L?M#1R?x-MFdQtjOz# zMT4y6f7gk~mYn;iUOI#)G60+tLuUH8<-QZt8YKC=yO(IV4R*Q5hio6pG50VXNfa&k zRHuO*@X5Ua8&=%6%g-C}>E4Eqp=?=8F{3$i?Yz^=Pk!qy?*vyn!aHf{`hW4@tq6ev zn~^*iG%96IP-K49c)mz<$f(Isxi8UKphV~4`_CGuRZdeszxH@t296Xg&r?uy`mR%V zpFFitIEWqW(87Wm`%(8HQs)r`-D=iTjp^T2jp@b4Dn-?Zm8g)JM{5WXcN765-bzq? z8xrE_5G{}FWKbvZF9WmVTR>3p3|lS*S=K<7s`r1xT?8A#mmRnWYsmI(x`+^4U!RL; z)8!S=J)crab2bz49{*lj9+kEbEGrdD5{EJoN zuyzoWq}K8gs`}7FRT~dRm2#|H7%T~|&c?}_Aermn4UTf~D8NIb&t&3`FkI%cD)p`A zd9(>HE0nEv9lWY_%Z#(hgCNE*M=Fn0lb|B{(5s9}F{#E7QzjZBEsY|phng=^QnF

9ks?g&zw$G)lvMe&r=ST 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 tv%fI}ZU^7(SMbGNSUSR{hs$@ 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 O4+)tG6H?qsqxQcH`-pb{ diff --git a/doc/build/doctrees/Tutorial_ITER.doctree b/doc/build/doctrees/Tutorial_ITER.doctree deleted file mode 100644 index c3fd87de69db6675f6b0e65b0ac71809528c8f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11157 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 diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle deleted file mode 100644 index dfd983a65a46d9adaea7a63b6c9484cd5c82609b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1689413 zcmdSC4X|8Cb{t_e)_V6qoIJ-$O^e=ie+aEoY^&9Gq_m;hprNe$B z!IO=&yWQH^A00F0l=B2j-@-FT`BF= zvf=i23+RtD(oQF743rW^k6h_*CH-XUe5*0ohx)GVj}9*OA@N!^dU&^RY>Mw?%rbZKwTOa;J`pfdSfJf#JATmXdGBS*+wmO8|ukN z#giy{AFrPh7kl-7eHVI=SNns#UV>*IZVq-kwLvr4g+dQ)CEN932Q_Cdw+5u=BUHN! zw^Uu7RL^IF`k>Xwt?UqLgf76u9@qDq>Ft^}woa>i6YSlg2*w;ly$tGk^Non5Hr zbIt3`tH4;e(oGhih-3j?sL^lrs3;5R_JV0Zi*RF?TUjINbn4wC9cHR94=26hW^JJA z03eU3pKwjhv=8plarGOIbXr+6u`U%2u=$bEW0o(f?ZP)xqktOU(HsnVFP|mfn=SVC z0NPzl`#Wd%*P4yBAKm{d{$FM&8d+A`Zjt%Ip&VEBD=r;Vm)h1t$I#N?oXPg#$yB#+ zDARrhrnRpBweUf5_;_sCC)2yo+F4YW9vsv+$?6Vo&|h`wVRCS1HaltKCf>i)$_9{v z?hHo{-KuwnC>pw+=Cjb!1L&vr*S-d1qp8uMVfSV?z1`h!?%{g#!%)gWDlt9PJkwm% zm(Mmos{S#05I(xTw?Dd1KTpPw-?i;s_(A=|VN}x2kbJhe@CXW4C$H1$D;*uuzq9?i ze&H!CWR2fb+SKO$D6x6 z`(5aYX-AJ{!(OkSz^wB-Xw76DqbDJu>fLIMbQeCnhUciO#C-+$F#5w<(rb0n9oC$> zgobQgI;B*CrbPimZM#zkw^8Hq9<){OQ#Z6*Z^0iO=Tw9~^oYdE> zSmi7G>c&xcD&?qZ!#+$|m;NyNoL;MOb8r8ydg!?MU2E-hQ?#--^t%t~=E+s_m}#wO zq4-yAE9oJ2xOl&=qTOa!W1payq=pAJ5eC#d9e(>!bv=0#dgAuZ&4S;6`Lp;B4?0;5 z-G6I)k1st!ml`mY{vcyP9?77i!J9+X9~#Y_vaZ$Y%1#kLym>w`>U-S2Z{i2#7e+_8 zajDjMpk0U0KCD7dY9AE*JpgSY+JPS*>?cDl@G<3I^PZ{soYuR#$^pzPpE<0eAG?}#%-$}wfV=*KUVgw-cr46%`#%T*L(xrg!;$#p|4O+Yi2GqOeBHxQjgTkBhA0o z{D^+`ghEDi+a0vF5oPT+e?Z^R-9^^WZbDZM>F(p zsBz;PwDf48H8d*fwT-uVT(R!f&2ca!6=A)C;w`)H`b>n_iE?GacuC zT}yIOVOkw{u4;V;!8w}!CWa10B|NI$x!p%7*xe!TiGJ;2^xv&7<6*=c3c2}dh@-sA z3DuKoGcgf7`^P*=v+ajoYA!X;>4)+Vt3TkV!Q9c&oQ|5;^utFK6?|5THmAsssw>;| zTP;XpE;d`uwz}KA+3e_lEH}^V=XGJxV)}Is1oe$4G&BYbwP9}y0USCO)q5%$9W7)q zu1$1M)H|um`X%%+Dr!b-t)no${g}ekK9j1YMd9z)^{e_Gbx*wn@dgE)sM7=g^cM`Y z4q5E_RE$Ply-sUjD*CR*(>ExJG9j!XYF;pePpZNc;cY&iI=DE11F=g*tT5Pamel)= z=6>@nn}S*cziTQ%bCU?p4K1Xy*&@EvGc>2S~+qU*}zh6h#L zU9X0 ziK=n7w%^egDJISk6gRfI?QF5pNrzkLy!*)_G;_9&0r}ZZYZGY<{nptR7GGNYuCr>u zJy>jKpVq_kPi`cypIN%Re&+J!OSM-wE?-Lf_?OX@>O}$Mw&KxoE{btQ)GHnM(rMW7 zm!92Ew9xs>TdfS^{5{om9r)50>7h6Hp&Uq;hFkZEodhH4I|GVqsFE=xJ7g}YUh5>^ zr`T1El)m2nQKW#V_d3e=hSYQ1&99&0>j>-8n(9#5U%xZIRkY|qy^pKZ;c7R0)C}&r zJLG#uhkK-Klu-pK%}dS8$`BsbPiar3uAJ0YFqT0bD@S1Bns@0N)aLZRb}^QPH|q>{ zyCxzsqeprKL$)mrl%Cel4^oWMZzY|Y8LUu%t>duA^#iU0Qspt2R)2D!3$IF=drZHk zZjnPnkc2*pZZ$vKyr>>|Qa@sOKJFydZ8HK!EZOMPGxC?}@=0n8=-V4NYcjTbw7Ahv z&>z7~Uc6tuV%-_Eb}`DtfX2OXJMG`3nCRkz?wxwKfqn~KLEU(&U@g7`~2{pR*EBqwivJwR9 zohSK5u)^~3dQqg&VIII}{XW3}U5x6JLA}*MvSDb9h~6KtjWn9njg1aH_sKIq_<;}q zHDlYy)Fa*GHWY;_7#$pTF^bT3|CqW*{Z;N&^Wg#UDrggE3va6fwmZnzU{o>~zsMBE4;r(0^c7rOfdbdD-gDVkw-%MAVYG0r}c-%;-4 zvHU0efO-&~Vy*oL#)CXw+}=uVVT`z=axo7k-7`pbr3YeDT=v;xQeo zb!z|^F+a*6GfwAEbGFnsJ23B z?<$_8Yzp!P-I^XYz>td4SXGcerU$TZ6j)CdSW0w+1u9$}oj5zp`e!#=-LuWsaM0=$ zuUOj3arHZo=I`*0;;n^(2z?&qgOE$5gfIfcL7F0V*S_Q=tV$*l^>D5EYI9XN1QnyG zCjvoNag*E{M>r;cIq@dqaXUq627)Keb(ITInGTMl%?%aCBcz!V+zL`)4RzLUzKgg*bu0nnL z9qw%_FjEfWUHJo?NUxE>)CZKSGefeXFi6WGMC+wAfM>s=WTB!`o*5HJxHURbVCZr@ z$uuSp(?Y_kkKvPHcqiX(b&=pim<~Lh*3bRrQCw0<79K9WMcwYZ_^P_aKUDq@P3toV zG4asje0`^rZo;1Q#1KMBb@xfh%Fa|hJ?%cgIn3e_4?{I6-3Nv-dVA?6 zO>7kyCvuv6*273^-9WdN+yO2|UJBPIu3_}C8+t&EOKQ!ezC{58YD@vVCkM}Nwt6*m ztY}c^Nc7MX>Qhgh;3+`U2odtD>yPKxF}I>zC#9&&OAGnUZOj28HLDvi23y*7dLj2ba#LBXmPe{PHV+sIBiI(|x{G->IFeXYin-Cp^eS_5PFcy``;N z=<$;+j9ivmH2p=hODBqVF{O>UkJ0<(Td$_KH_~Ogl@L2Zbj&pzJ)h8627_~o*GH!c z5OQnOV}XPwimB4}zcJiwp22*_=%mrS4stPIrK)+#z1YNT1rqsay!VgZ;ojte;~vjH z=V+M6$K|J;SK9Skbv=hgcX=k7U!qa${>1~MC!DwR3=_TK($EBR;Bq$D!sX^u_}|m` z-+S=C7cYKdIC|Vfgp^N%S?Y8V&3TIJ7~-O%x{C?Tl(Ov9;zoy|14_fu59p41P(0k3%rA739G?O_&yk_{>Z94&C3;P&m?_S_kQkh6F) zJBx^u-pHpy&`?H4``Zl*F={eYjcgAge{}~rb)@|A3Jd0eXlJ2AK&+T|K{0m{=4?y z%zu4q>s#$n{_E5K?1Sx}$bX%C>Q?)2EQd`LC4|KhplG{MUuYvi5(P|9bVk zKhyq?^IxlL-)R3Q`LEBWKimGv{MVI_U2lIg|Mj^)d#wG9{MY)={Z9LC{%hl(*Vn<_AWPnBV|e3R+R2CmmpeXyXr1i~Onm zAKkxZ^h6%27%{IN_?v) zFuHkh@%h?|wVjt5+ndREZ=dPy;mI?*z{>8NdH$n|FP*vbiI3Ml{^DY?v!hqxkQY5$ zL#Kkyw+3V0|Awk3D$Q5k{?f3!(*>bQqJn&1yMSWVQ?(9cF6-$-{;{p@1&*}R)nFMI<{-Gq2s`|V#s zMYVq!{~>c89Yfj`fea=IZ`b#-eUw}^Xw}A5GgK}58>7SM{py$>s2hNP0)Wv$(^eGH zL&}dShpl{x@_00^%oe*ehDD#QN4*?rjE?l{w@q}^d~0;L(Zu>Pq=GRlX@860AHw({ zg{ANd?SD;Ik3ILCiZ!S)Jog-ipSZ|x9NfT&lNzsD1+z$xpw+6iZu({G`sg7&alYUF zV;~GS>lm69DHrN?9%x~3k7X2xiWn3lL^Yj`tA{b;Rs7gQ+g1s~H?Yp((4da-7gor$ z|4_@J*TJog4yu50t^KFC-2Qz{+x|2BB?tT;@E3yox&HGP`p^HT|J?Tg-NT?vP5UCX zk8)kSzdmdqz>W65!b8JNJUg`%W0mruso_{D2OXtQCqB7S4n6lA!fIC+4^XHr+LyYbB|kTH zQO8RD>8at2LQQT!0S`P z2@M=@G(eHsEDTIaMao?Aj28KqW-KF(u_9%B1__XbLAuaTDUgNw!WJ?wT`V9%i7B>H2@zp+ z6TP9!|LZfBp9UP?&hr1xjOC|sY^3}zv;MIRU^qw?DAT*sr$ssoDm&j<*zTvh3mGNF zXhLBDY1u4m-D+W$NL0%#K)Sa6a7JlqoF0+(N$O2wO`_}}UCKY3v6PfQh?MeCPK45u z@IX%xxUb80@LoNy5Z>I4#u(0 z_*jkq^q7r?Ix5H3rubfuy(!++Lvf1x)F`}7(T>WgwJEkx`Ls6m=_;4jrcO)c(c08C z=)pTVS(QI)le<#6voT*<+4< zwf_xSqe&a6zSznN*lx4^C-k5ijDD`F1%wT1ZE85m;OMz@q<$ZQ$iseXU*}mK)@vD5 z!U6iHL2&yh{$rxaOH`psh}EfC4a6%s#Ik~De-eL!NrrP}H(o8fak=bCzDs>Ui|nGnkyBwQOflsxzik`B=*uYZj`{rY?-9`d(Ft zCA_FrvRf76dvgeF0Lk=8o}v_=nxzz+=9=09Pq(KxLDzAdqNZg#4kr&LoX1o2uxfWd zUsd3+^Z18T!-Wl-rg)I^RBHu=^Y~!MdHjQ^Sv?E>IR)`o!g>6QsimDz#}Vi8K#`~_ zoX2lZT^LXGzgZQcXtuvm6{2t++5l#99)Ew9QownrT=2KWd3@M)9x`1le8=;-?|9jJbKuid|Ks^2fCEe|c)zC)D`p>1QxkEJ}EWOPB{ENPTnKx9}$~O)!lDA}UO}6<%4_Az;z(6Ns1yjd)GYJ2CEPmihFjibb^EhJR2f~DnVQ^@Z0�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�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

- -
-
-
-
- -
-

1. tofu.geom

-

The geometry module of tofu

-

Provides classes to model the 3D geometry of: -* the vacuum vessel and structural elements -* LOS -* apertures and detectors

-
-

1.1. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Auto_tofu.pathfile.html b/doc/build/html/Auto_tofu.pathfile.html deleted file mode 100644 index 9a506408a..000000000 --- a/doc/build/html/Auto_tofu.pathfile.html +++ /dev/null @@ -1,463 +0,0 @@ - - - - - - - 3. tofu.pathfile — tofu v1.1 - - - - - - - - - - - - - - - - -
-
-
-
- -
-

3. tofu.pathfile

-

Created on Wed Jul 30 14:37:31 2014

-

@author: didiervezinet

-
-
-class tofu.pathfile.ID(Cls=None, Name=None, Type=None, Deg=None, Exp=None, Diag=None, shot=None, SaveName=None, SavePath='/Users/mendoza/tofu/doc', USRdict={}, LObj=None, fromdict=None, Include=['Mod', 'Cls', 'Type', 'Exp', 'Deg', 'Diag', 'Name', 'shot'])[source]
-

A class used by all ToFu objects as an attribute

-

It stores all relevant data for the identification of instances -Stored info can be the name of the instance, the experiment and diagnostics -it belongs to, or other user-defined info -Also provides default names for saving the instances

-
-
Parameters
-
    -
  • Cls (str) – Class of the object on which info should be stored:

  • -
  • Name (str) – Name of the instance (user-defined) -Should be a str without space ‘ ‘ or underscore ‘_’ -(automatically removed if present)

  • -
  • Type (None / str) – Type of object (i.e.: ‘Tor’ or ‘Lin’ for a Ves)

  • -
  • Deg (None / int) – Degree of the b-splines constituting the tofu.mesh object

  • -
  • Exp (None / str) – Flag specifying the experiment (e.g.: ‘WEST’, ‘AUG’, ‘ITER’, ‘JET’…)

  • -
  • Diag (None / str) – Flag indicating the diagnostic (e.g.: ‘SXR’, ‘HXR’, ‘Bolo’…)

  • -
  • shot (None / int) – A shot number from which the instance is valid (for tracking changes)

  • -
  • SaveName (None / str) – Overrides the default file name for saving (not recommended)

  • -
  • SavePath (None / str) – Absolute path where the instance should be saved

  • -
  • USRdict (None / dict) – A user-defined dictionary containing information about the instance -All info considered relevant can be passed here -(e.g.: thickness of the diode, date of installation…)

  • -
  • LObj (None / dict / list) –

    -
    Either:
      -
    • list: list of other ID instances of objects on which the created object depends (this list will then be sorted by class and formatted into a dictionary storign key attributes)

    • -
    • dict: a ready-made such dictionary

    • -
    -
    -
    -

  • -
-
-
-
-
-set_LObj(LObj=None)[source]
-

Set the LObj attribute, storing objects the instance depends on

-

For example: -A Detect object depends on a vessel and some apertures -That link between should be stored somewhere (for saving/loading). -LObj does this: it stores the ID (as dict) of all objects depended on.

-
-
Parameters
-

LObj (None / dict / ID / list of such) –

-
Provide either:
    -
  • A dict (derived from _todict())

  • -
  • A ID instance

  • -
  • A list of dict or ID instances

  • -
-
-
-

-
-
-
- -
-
-set_Name(Name, SaveName=None, Include=['Mod', 'Cls', 'Type', 'Exp', 'Deg', 'Diag', 'Name', 'shot'], ForceUpdate=False)[source]
-

Set the Name of the instance, automatically updating the SaveName

-

The name should be a str without spaces or underscores (removed) -When the name is changed, if SaveName (i.e. the name used for saving) -was not user-defined, it is automatically updated

-
-
Parameters
-
    -
  • Name (str) – Name of the instance, without ‘ ‘ or ‘_’ (automatically removed)

  • -
  • SaveName (None / str) – If provided, overrides the default name for saving (not recommended)

  • -
  • Include (list) – Controls how te default SaveName is generated -Each element of the list is a key str indicating whether an element -should be present in the SaveName

  • -
-
-
-
- -
-
-set_SaveName(SaveName=None, Include=['Mod', 'Cls', 'Type', 'Exp', 'Deg', 'Diag', 'Name', 'shot'], ForceUpdate=False)[source]
-

Set the name for saving the instance (SaveName)

-
-
SaveName can be either:
    -
  • provided by the user (no constraint) - not recommended

  • -
  • automatically generated from Name and key attributes (cf. Include)

  • -
-
-
-
-
Parameters
-
    -
  • SaveName (None / str) – If provided, overrides the default name for saving (not recommended)

  • -
  • Include (list) – Controls how te default SaveName is generated -Each element of the list is a key str indicating whether an element -should be present in the SaveName

  • -
  • ForceUpdate (bool) –

    -
    Flag indicating the behaviour when SaveName=None:
      -
    • True : A new SaveName is generated, overriding the old one

    • -
    • False : The former SaveName is preserved (default)

    • -
    -
    -
    -

  • -
-
-
-
- -
-
-set_USRdict(USRdict={})[source]
-

Set the USRdict, containing user-defined info about the instance

-

Useful for arbitrary info (e.g.: manufacturing date, material…)

-
-
Parameters
-

USRdict (dict) – A user-defined dictionary containing info about the instance

-
-
-
- -
- -
-
-tofu.pathfile.SaveName_Conv(Mod=None, Cls=None, Type=None, Name=None, Deg=None, Exp=None, Diag=None, shot=None, version=None, usr=None, Include=['Mod', 'Cls', 'Type', 'Exp', 'Deg', 'Diag', 'Name', 'shot'])[source]
-

Return a default name for saving the object

-

Includes key info for fast identification of the object from file name -Used on object creation by ID -It is recommended to use this default name.

-
- -
-
-tofu.pathfile.CheckSameObj(obj0, obj1, LFields=None)[source]
-

Check if two variables are the same instance of a ToFu class

-

Checks a list of attributes, provided by LField

-
-
Parameters
-
    -
  • obj0 (tofu object) – A variable refering to a ToFu object of any class

  • -
  • obj1 (tofu object) – A variable refering to a ToFu object of the same class as obj0

  • -
  • LFields (None / str / list) –

    -
    The criteria against which the two objects are evaluated:
      -
    • None: True is returned

    • -
    • str or list: tests whether all listed attributes have the same value

    • -
    -
    -
    -

  • -
-
-
Returns
-

A (bool) – True only is LField is None or a list of attributes that all match

-
-
-
- -
-
-tofu.pathfile.SelectFromListId(LId, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Out=<class 'bool'>)[source]
-

Return the indices or instances of all LOS matching criteria

-

The selection can be done according to 2 different mechanisms

-

Mechanism (1): provide the value (Val) a criterion (Crit) should match -The criteria are typically attributes of ID -(i.e.: name, or user-defined attributes like the camera head…)

-

Mechanism (2): (used if Val=None) -Provide a str expression (or a list of such) to be fed to eval() -Used to check on quantitative criteria.

-
-
    -
  • PreExp: placed before the criterion value (e.g.: ‘not ‘ or ‘<=’)

  • -
  • PostExp: placed after the criterion value

  • -
  • you can use both

  • -
-
-

Other parameters are used to specify logical operators for the selection -(match any or all the criterion…) and the type of output.

-
-
Parameters
-
    -
  • Crit (str) –

    Flag indicating which criterion to use for discrimination -Can be set to:

    -
    -
      -
    • any attribute of ID -(e.g.: ‘Name’,’SaveName’,’SavePath’…)

    • -
    • any key of ID.USRdict (e.g.: ‘Exp’…)

    • -
    -
    -

  • -
  • Val (None / list / str) – The value to match for the chosen criterion, can be a list -Used for selection mechanism (1)

  • -
  • PreExp (None / list / str) – A str (or list of such) expression to be fed to eval(), -Placed before the criterion value -Used for selection mechanism (2)

  • -
  • PostExp (None / list / str) – A str (or list of such) expression to be fed to eval() -Placed after the criterion value -Used for selection mechanism (2)

  • -
  • Log (str) –

    -
    Flag indicating whether the criterion shall match:
      -
    • ’all’: all provided values

    • -
    • ’any’: at least one of them

    • -
    -
    -
    -

  • -
  • InOut (str) –

    -
    Flag indicating whether the returned indices are:
      -
    • ’In’: the ones matching the criterion

    • -
    • ’Out’: the ones not matching it

    • -
    -
    -
    -

  • -
  • Out (type / str) –

    -
    Flag indicating in which form to return the result:
      -
    • int: as an array of integer indices

    • -
    • bool: as an array of boolean indices

    • -
    • ’Name’: as a list of names

    • -
    • ’LOS’: as a list of LOS instances

    • -
    -
    -
    -

  • -
-
-
Returns
-

ind (list / np.ndarray) – The computed output, of nature defined by parameter Out

-
-
-
- -
-
-tofu.pathfile.convert_units(P, In='cm', Out='m')[source]
-

Quickly convert distance units between meters, centimeters and millimeters

-
- -
-
-tofu.pathfile.get_PolyFromPolyFileObj(PolyFileObj, SavePathInp=None, units='m', comments='#', skiprows=0, shape0=2)[source]
-

Return a polygon as a np.ndarray, extracted from a txt file or from a ToFu object, with appropriate units

-

Useful for tofu.plugins.AUG.Ves._create()

-
-
Parameters
-
    -
  • PolyFileObj (str / tofu.geom object / np.ndarray) –

    -
    The source where the polygon is to be found, either:
      -
    • str: the name of a file containing the coorindates of a polygon to be loaded with numpy.loadtxt()

    • -
    • A tofu.geom object: with attribute ‘Poly’

    • -
    • np.ndarray: an 2-dimensional array containing the 2D cartesian coordinates of a polygon

    • -
    -
    -
    -

  • -
  • SavePathInp (str / None) – The absolute path where the input file is stored

  • -
  • units (str) – Flag indicating in which units the polygon coordinates is expressed in the input file / object / array (will be converted to meters)

  • -
  • comments (str) – Parameter to be fed to numpy.loadtxt() if PolyFileObj is a file name

  • -
  • skiprows (int) – Parameter to be fed to numpy.loadtxt() if PolyFileObj is a file name

  • -
  • shape0 (int) – Specifies whether the loaded array is a (2,N) or (3,N) array (transposed it if necessary)

  • -
-
-
Returns
-

    -
  • Poly (np.ndarray) – (2,N) np.ndarray containing the 2D cartesian coordinates of the polygon, where N is the number of points

  • -
  • addInfo (dict) – Dictionaryb containing information on the origin of the polygon, for the record (e.g.: the name and absolute path of the file from which it was extracted)

  • -
-

-
-
-
- -
-
-tofu.pathfile.Save_Generic(obj, SaveName=None, Path='./', Mode='npz', compressed=False, Print=True)[source]
-

Save a ToFu object under file name SaveName, in folder Path

-

ToFu provides built-in saving and loading functions for ToFu objects. -There is now only one saving mode:

-
-
    -
  • ‘npz’: saves a dict of key attributes using numpy.savez()

  • -
-
-
-
Good practices are:
    -
  • save Ves and Struct

  • -
  • intermediate optics (Apert and -Lens) generally do not need to be saved -Indeed, they will be autoamtically included in larger objects -like Detect or Cam objects

  • -
-
-
-
-
Parameters
-
    -
  • SaveName (str) – The file name, if None (recommended) uses obj.Id.SaveName

  • -
  • Path (str) – Path where to save the file

  • -
  • Mode (str) –

    -
    Flag specifying the saving mode
      -
    • ’npz’: Only mode currently available (‘pck’ deprecated)

    • -
    -
    -
    -

  • -
  • compressed (bool) – Indicate whether to use np.savez_compressed (slower but smaller files)

  • -
-
-
-
- -
-
-tofu.pathfile.Open(pathfileext=None, shot=None, t=None, Dt=None, Mesh=None, Deg=None, Deriv=None, Sep=True, Pos=True, OutPath=None, ReplacePath=None, Ves=None, out='full', Verb=False, Print=True)[source]
-

Open a ToFu object saved file

-

This generic open function identifies the required loading routine by detecting how the object was saved from the file name extension. -Also, it uses FindSolFile() to identify the relevant file in case key criteria such as shot, Deg… are provided instead of the file name itself. -Finally, once all the relevant data is loaded from the file, a ToFu object is re-created, if necessary by implicitly loading all other objects it may depend on (i.e.: vessel, apertures…)

-

If pathfileext is not provided (None), then the following keyword arguments are fed to FindSolFile(): shot, t, Dt, Mesh, Deg, Deriv, Sep, Pos

-
-
Parameters
-
    -
  • pathfileext (None / str) – If provided, the name of the file to load

  • -
  • OutPath (None / str) – If provided, the absolute path where the file is to be found

  • -
  • ReplacePath (str) – If provided, ? (to finish)

  • -
  • Ves (None /) – If provided, the tofu.geom.Ves object that shall be used to reconstruct the object (if not provided, the appropriate vessel will be loaded).

  • -
  • out (str) – Flag indicating whether the object should be loaded completely (‘full’), in a light dismissing the heaviest attributes (‘light’) or whether only the Id or a list of Id should be returned (‘Id’), valid only for ‘.npz’

  • -
  • Verb (bool) – Flag indicating whether to pring intermediate comments on the loading procedure

  • -
-
-
Returns
-

obj ToFu object – The loaded and re-created ToFu object

-
-
-
- -
-

3.1. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Auto_tofu.plugins.AUG.SXR.geom.html b/doc/build/html/Auto_tofu.plugins.AUG.SXR.geom.html deleted file mode 100644 index 65aba80aa..000000000 --- a/doc/build/html/Auto_tofu.plugins.AUG.SXR.geom.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - - - 4.2.1. AUG.SXR — tofu v1.1 - - - - - - - - - - - - - - - - - -
-
-
-
- -
-

4.2.1. AUG.SXR

-
-

4.2.1.1. AUG.SXR.geom

-
-
-tofu.plugins.AUG.SXR.geom.create(shot=0, VesName='V1', SavePathObj=None, Root='/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu', forceshot=False, overwrite=False, save=True, dtime=None, dtFormat='D%Y%m%d_T%H%M%S', CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, Calc=True, Verb=True, Etend_Method='quad', Etend_RelErr=0.001, Etend_dX12=[0.01, 0.01], Etend_dX12Mode='rel', Etend_Ratio=0.02, Colis=True, LOSRef='Cart', Cone_DRY=0.0025, Cone_DXTheta=0.0030679615757712823, Cone_DZ=0.0025, Cone_NPsi=20, Cone_Nk=60)[source]
-

Create, save and return all the GDetect objects relevant for the input shot, unless already created for a relevant reference shot

-

Create the tofu.geom.GDetect objects (i.e.: the cameras, which are groups of detectors) from geometry taken from CSX disgnostic for the proposed shot or earlier (looks for the oldest version of the matching geometry) and stores them in the SavePathObj.

-

All extra arguments are fed to Detect

- --- - - - - - -
Parameters:
    -
  • shot (int) – Shot number for which to build the geometry
  • -
  • VesName (str) – Name of the tfg.Ves object to be fed as an input to the tofu.geom.GDetect objects
  • -
  • SavePathObj (None / str) – Absolute path where the created tofu.geom.GDetect objects should be saved (if save=True), if None the default is used
  • -
  • Root (str) – If SavePathObj=None, a default value is created by appending ‘/tofu/plugins/AUG/SXR/geom/Objects/’ to Root
  • -
  • forceshot (bool) – Flag indicating whether the shot number shall be downgraded to the oldest shot with the same geometry (False) or whether the provided shot number shall be enforced (True, for all camera heads)
  • -
  • overwrite (bool) – Flag indicating whether new tofu.geom.GDetect objects shall be computed (and possibly saved) when similar ones already exist (True)
  • -
  • save (bool) – Flag indicating whether to save the created tofu.geom.GDetect objects (in SavePathObj)
  • -
  • dtime (None / dtm.datetime) – If provided (i.e.: not None), used as a label of the created tofu.geom.GDetect objects (mostly used for debugging)
  • -
  • dtFormat (str) – The time format to be used for labelling the created tofu.geom.GDetect objects (mostly used for debugging)
  • -
-
Returns:

LGD (list) – A list of all the created tfg.GDetect objects

-
-
- -
-
-tofu.plugins.AUG.SXR.geom.load(Cams=None, shot=None, SavePathObj=None, Root='/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu', sort=False, out='full', Test=True)[source]
-

Load and return the desired GDetect objects (i.e.: camera heads)

-

Directly fecthes and loads the desired GDetect objects.

- --- - - - -
Parameters:
    -
  • Cams (str / list) – A name or a list of names of the camera heads to be loaded (available are [‘F’,’G’,’H1’,’H2’,’H3’,’I1’,’I2’,’I3’,’J1’,’J2’,’J3’,’K1’,’K2’,’L’,’M’])
  • -
  • shot (int / float / np.float) – A shot number indicating which version of the geometry should be loaded (the )
  • -
  • SavePathObj (None / str) – Absolute path where the created tofu.geom.GDetect objects should be saved (if save=True), if None the default is used
  • -
  • Root (str) – If SavePathObj=None, a default value is created by appending ‘/tofu/plugins/AUG/SXR/geom/Objects/’ to Root
  • -
  • sort (bool) – Flag indicating whether the loaded tofu.geom.GDetect objects shall be returned sorted by alphabetical order of the names (True) or in the same order as asked in Cams (False)
  • -
  • out (str) – Flag indicating whether the object should be loaded completely (‘full’), in a light dismissing the heaviest attributes (‘light’) or whether only the Id or a list of Id should be returned (‘Id’), valid only for ‘.npz’
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
  • Returns
  • -
  • --------
  • -
  • LGD (list / tofu.geom.GDetect) – The loaded tofu.geom.GDetect, returned as a single object if Cams was provided as a single name, as a list otherwise
  • -
-
-
- -
-
-

4.2.1.2. AUG.SXR.data

-
-
-tofu.plugins.AUG.SXR.data.load(shot=None, Names=None, Mode='SSX', Dt=None, Join=True, tRef='fmin', Method='interp', NoGeom=True, Tofu=True, Verb=True, Test=True)[source]
-

Load SXR data from the AUG database and returns it either as numpy arrays or a ToFu-compatible object with appropriate methods

-

Part of the difficulty is that all channels do not have the same sampling frequency and time vector. -Hence, there is an option to uniformize the time base.

- --- - - - - - -
Parameters:
    -
  • shot (int) – Shot number for which the SXR data should be loaded
  • -
  • Names (None / str / list) – If provided, data is loaded only for the specified channel(s)
  • -
  • Mode (str) – Flag indicating whether data should be loaded from a down-sampled database (‘SSX’, , faster loading) or from the complete database ( depending on the channel)
  • -
  • Dt (None / iterable) – If provided, a len()=2 iterable giving the time interval of interest (recommended to avoid very large data files)
  • -
  • Join (bool) – Flag, useful when Mode=’SX’, indicating whether the different time bases of the channels shall be uniformized
  • -
  • tRef (None / str / np.ndarray) –
    -
    Flag or time vector, useful when Mode=’SX’ and Join=True, indicating which time basis should be used as a reference
    -
      -
    • ‘fmin’: the time vector of the channel presenting the smallest sampling frequency is used as a reference
    • -
    • ‘fmax’: the time vector of the channel presenting the highest sampling frequency is used as a reference
    • -
    • any channel name: the time vector of the specifiec channel is used as a reference
    • -
    • np.ndarray: the provided time vector is used as a reference
    • -
    -
    -
    -
  • -
  • Method (str) – Flag, usefule when Mode=’SX’ and Join=True, indicating how the
  • -
  • NoGeom (bool) –
    -
    Flag indicating whether the data should be stripped of its geometrical calibration factor (thus being expressed in W instead of W/m2), to allow for:
    -
      -
    • Application of a tofu-computed etendue in case of a LOS approach
    • -
    • Direct use of the signal in case of a VOS approach
    • -
    -
    -
    -
  • -
  • Tofu (bool) – Flag indicating whether the loaded data should be returned as (SXR, t, Names) where the first two are np.ndarrays and Names is a list or as a tofu.data.PreData object
  • -
  • Verb (bool) – Flag indicating whether extra comments should be printed to give feedback on the progress of the routine
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

out (tuple / tofu.data.PreData)

-
-
- -
-
-

4.2.1.3. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Auto_tofu.plugins.AUG.html b/doc/build/html/Auto_tofu.plugins.AUG.html deleted file mode 100644 index 15c4dcaef..000000000 --- a/doc/build/html/Auto_tofu.plugins.AUG.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - 4.1.1. AUG — tofu v1.1 - - - - - - - - - - - - - - - - -
-
-
-
- -
-

4.1.1. AUG

-
-

4.1.1.1. AUG.Ves

-
-
-

4.1.1.2. AUG.SXR.geom

-
-
-

4.1.1.3. AUG.SXR.data

-
-
-

4.1.1.4. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Auto_tofu.plugins.ITER.Bolo.geom.html b/doc/build/html/Auto_tofu.plugins.ITER.Bolo.geom.html deleted file mode 100644 index b2777221e..000000000 --- a/doc/build/html/Auto_tofu.plugins.ITER.Bolo.geom.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - 4.2.2. tofu.plugins.ITER.Bolo.geom — tofu v1.1 - - - - - - - - - - - - - - - - -
-
-
-
- -
-

4.2.2. tofu.plugins.ITER.Bolo.geom

-
-

4.2.2.1. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Auto_tofu.plugins.ITER.html b/doc/build/html/Auto_tofu.plugins.ITER.html deleted file mode 100644 index 8acc57b2a..000000000 --- a/doc/build/html/Auto_tofu.plugins.ITER.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - 4.1.2. ITER — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -
-

4.1.2. ITER

-
-

4.1.2.1. ITER.Ves

-
-
-

4.1.2.2. ITER.Struct

-
-
-

4.1.2.3. ITER.Bolo.geom

-
-
-

4.1.2.4. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Auto_tofu.plugins.html b/doc/build/html/Auto_tofu.plugins.html deleted file mode 100644 index f6c34331d..000000000 --- a/doc/build/html/Auto_tofu.plugins.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - 4. tofu.plugins — tofu v1.1 - - - - - - - - - - - - - - - - -
-
-
-
- -
-

4. tofu.plugins

-

In an effort to adapt ToFu to several experiments and ensure a smooth use for non-specialists users, plugins can be developped to adapt ToFu to the local specificities of each laboratory or environment (local computer systems and networks, local geometry and nomenclature, local data storing systems…).

-

While ToFu in itself is open-source, the plugins, which concentrate everything that is machine-specific, are writen on demand and customized for the local needs, they remain on the local servers and are not provided on the GitHub page of ToFu. It is via the laboratories that you may have access to them.

-

The following plugins have been / are being developped:

-
-

4.1. Machine-oriented plugins

- -
-
-

4.2. Code-oriented plugins

-
    -
  1. CAID

  2. -
-
-
-

4.3. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Auto_tofu.treat.html b/doc/build/html/Auto_tofu.treat.html deleted file mode 100644 index 6aed2370e..000000000 --- a/doc/build/html/Auto_tofu.treat.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - 2. tofu.treat — tofu v1.1 - - - - - - - - - - - - - - - - -
-
-
-
- -
-

2. tofu.treat

-
-

2.1. Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Autodoc.html b/doc/build/html/Autodoc.html deleted file mode 100644 index 20fe79bd2..000000000 --- a/doc/build/html/Autodoc.html +++ /dev/null @@ -1,2256 +0,0 @@ - - - - - - - - tofu.geom — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -
-

tofu.geom

-

Load all core packages and modules which are all machine-independent, diagnostic-independent and code-independent

-

Created on Wed May 18 2016

-

@version: 0.9 -@author: didiervezinet -@author_email: didier.vezinet@gmail.com

-
-
-class tofu.geom.Ves(Id, Poly, Type='Tor', DLong=None, Sino_RefPt=None, Sino_NP=50, Clock=False, arrayorder='C', Exp=None, shot=None, dtime=None, dtimeIn=False, SavePath=None)[source]
-

A class defining a Linear or Toroidal vaccum vessel (i.e. a 2D polygon representing a cross-section and assumed to be linearly or toroidally invariant)

-

A Ves object is mostly defined by a close 2D polygon, which can be understood as a poloidal cross-section in (R,Z) cylindrical coordinates if Type=’Tor’ (toroidal shape) or as a straight cross-section through a cylinder in (Y,Z) cartesian coordinates if Type=’Lin’ (linear shape). -Attributes such as the surface, the angular volume (if Type=’Tor’) or the center of mass are automatically computed. -The instance is identified thanks to an attribute Id (which is itself a tofu.ID class object) which contains informations on the specific instance (name, Type...).

- --- - - - - - -
Parameters:
    -
  • Id (str / tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID()
  • -
  • Poly (np.ndarray) – An array (2,N) or (N,2) defining the contour of the vacuum vessel in a cross-section, if not closed, will be closed automatically
  • -
  • Type (str) – Flag indicating whether the vessel will be a torus (‘Tor’) or a linear device (‘Lin’)
  • -
  • DLong (list / np.ndarray) – Array or list of len=2 indicating the limits of the linear device volume on the x axis
  • -
  • Sino_RefPt (None / np.ndarray) – Array specifying a reference point for computing the sinogram (i.e. impact parameter), if None automatically set to the (surfacic) center of mass of the cross-section
  • -
  • Sino_NP (int) – Number of points in [0,2*pi] to be used to plot the vessel sinogram envelop
  • -
  • Clock (bool) – Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False)
  • -
  • arrayorder (str) – Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous (‘C’) or Fortran-contiguous (‘F’)
  • -
  • Exp (None / str) – Flag indicating which experiment the object corresponds to, allowed values are in [None,’AUG’,’MISTRAL’,’JET’,’ITER’,’TCV’,’TS’,’Misc’]
  • -
  • shot (None / int) – Shot number from which this Ves is usable (in case of change of geometry)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • dtime (None / dtm.datetime) – A time reference to be used to identify this particular instance (used for debugging mostly)
  • -
  • dtimeIn (bool) – Flag indicating whether dtime should be included in the SaveName (used for debugging mostly)
  • -
-
Returns:

Ves (Ves object) – The created Ves object, with all necessary computed attributes and methods

-
-
-
-BaryS
-

Return the (surfacic) center of mass of the polygon defining the vessel cross-section

-
- -
-
-BaryV
-

Return the (volumic) center of mass of the polygon defining the vessel cross-section

-
- -
-
-Id
-

Return the tfpf.ID object of the vessel

-
- -
-
-Poly
-

Return the polygon defining the vessel cross-section

-
- -
-
-Sino_NP
-

Return the number of points used used for plotting the Ves polygon in projection space

-
- -
-
-Sino_RefPt
-

Return the 2D coordinates of the points used as a reference for computing the Ves polygon in projection space (where sinograms are plotted)

-
- -
-
-Surf
-

Return the area of the polygon defining the vessel cross-section

-
- -
-
-Type
-

Return the type of vessel

-
- -
-
-Vect
-

Return the polygon elementary vectors

-
- -
-
-Vin
-

Return the normalized vectors pointing inwards for each segment of the polygon

-
- -
-
-VolLin
-

Return the angular volume of the polygon defining the vessel cross-section of Tor type

-
- -
-
-arrayorder
-

Return the flag indicating which order is used for multi-dimensional array attributes

-
- -
-
-get_InsideConvexPoly(RelOff=0.05, ZLim='Def', Spline=True, Splprms=[100.0, 2.0, 3], NP=100, Plot=False, Test=True)[source]
-

Return a polygon that is a smaller and smoothed approximation of Ves.Poly, useful for excluding the divertor region in a Tokamak

-

For some uses, it can be practical to approximate the polygon defining the Ves object (which can be non-convex, like with a divertor), by a simpler, sligthly smaller and convex polygon. -This method provides a fast solution for computing such a proxy.

- --- - - - - - -
Parameters:
    -
  • RelOff (float) – Fraction by which an homothetic polygon should be reduced (1.-RelOff)*(Poly-BaryS)
  • -
  • ZLim (None / str / tuple) – Flag indicating what limits shall be put to the height of the polygon (used for excluding divertor)
  • -
  • Spline (bool) – Flag indiating whether the reduced and truncated polygon shall be smoothed by 2D b-spline curves
  • -
  • Splprms (list) – List of 3 parameters to be used for the smoothing [weights,smoothness,b-spline order], fed to scipy.interpolate.splprep()
  • -
  • NP (int) – Number of points to be used to define the smoothed polygon
  • -
  • Plot (bool) – Flag indicating whether the result shall be plotted for visual inspection
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

Poly (np.ndarray) – (2,N) polygon resulting from homothetic transform, truncating and optional smoothing

-
-
- -
-
-get_MeshCrossSection(CrossMesh=[0.01, 0.01], CrossMeshMode='abs', Test=True)[source]
-

Return a (2,N) array of 2D points coordinates meshing the Ves cross-section using the spacing specified by CrossMesh for each direction (taken as absolute distance or relative to the total size)

-

Method used for fast automatic meshing of the cross-section using a rectangular mesh uniform in each direction. -Returns the flattened points coordinates array, as well as the two increasing vectors and number of points.

- --- - - - - - -
Parameters:
    -
  • CrossMesh (iterable) – Iterable of len()==2 specifying the distance to be used between points in each direction (R or Y and Z), in absolute value or relative to the total size of the Ves in each direction
  • -
  • CrossMeshMode (str) – Flag specifying whether the distances provided in CrossMesh are absolute (‘abs’) or relative (‘rel’)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

    -
  • Pts (np.ndarray) – Array of shape (2,N), comtaining the 2D coordinates of the N points consituting the mesh, only points lying inside the cross-section are returned
  • -
  • X1 (np.ndarray) – Flat array of the unique first coordinates of the mesh points (R or Y)
  • -
  • X2 (np.ndarray) – Flat array of the unique second coordinates of the mesh points (Z)
  • -
  • NumX1 (int) – Number of unique values in X1 (=X1.size)
  • -
  • NumX2 (int) – Number of unique values in X2 (=X2.size)
  • -
-

-
-
- -
-
-isInside(Pts, In='(X, Y, Z)')[source]
-

Return an array of booleans indicating whether each point lies inside the Ves volume

-

Tests for each point whether it lies inside the Ves object. -The points coordinates can be provided in 2D or 3D, just specify which coordinate system is provided using the ‘In’ parameter. -An array of boolean flags is returned.

- --- - - - - - -
Parameters:
    -
  • Pts (np.ndarray) – (2,N) or (3,N) array with the coordinates of the points to be tested
  • -
  • In (str) – Flag indicating the coordinate system in which the points are provided, in [‘(X,Y,Z)’,’(R,Z)’,’‘]
  • -
-
Returns:

ind (np.ndarray) – Array of booleans of shape (N,), True if a point is inside the Ves volume

-
-
- -
-
-plot(Lax=None, Proj='All', Elt='PIBsBvV', Pdict=None, Idict={'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, Bsdict={'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, Bvdict={'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, Vdict={'color': 'r', 'scale': 10}, IdictHor={'c': 'k', 'ls': 'dashed'}, BsdictHor={'c': 'b', 'ls': 'dashed'}, BvdictHor={'c': 'g', 'ls': 'dashed'}, Lim=[1.5707963267948966, 6.283185307179586], Nstep=50, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True)[source]
-

Plot the polygon defining the vessel, with a cross-section view, a longitudinal view or both, and optionally its reference point for plotting it in projection space

-

Generic method for plotting the Ves object, the projections to be plotted, the elements to plot, and the dictionaries or properties to be used for plotting each elements can all be specified using keyword arguments. -If an ax is not provided a default one is created.

- --- - - - - - -
Parameters:
    -
  • Lax (list or plt.Axes) – The axes to be used for plotting (provide a list of 2 axes if Proj=’All’), if None a new figure with axes is created
  • -
  • Proj (str) – Flag specifying the kind of projection used for the plot (‘Cross’ for a cross-section, ‘Hor’ for a horizontal plane, or ‘All’ for the two plots)
  • -
  • Elt (str) –
    -
    Flag specifying which elements to plot, each capital letter corresponds to an element
    -
      -
    • ‘P’: polygon
    • -
    • ‘I’: point used as a reference for computing impact parameters
    • -
    • ‘Bs’: (surfacic) center of mass
    • -
    • ‘Bv’: (volumic) center of mass for Tor type
    • -
    • ‘V’: vector pointing inward perpendicular to each segment defining the polygon
    • -
    -
    -
    -
  • -
  • Pdict (dict or None) – Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj=‘3d’, set to ToFu_Defauts.py if None
  • -
  • Idict (dict) – Dictionary of properties used for plotting point ‘I’ in Cross-section projection, fed to plt.Axes.plot()
  • -
  • IdictHor (dict) – Dictionary of properties used for plotting point ‘I’ in horizontal projection, fed to plt.Axes.plot()
  • -
  • Bsdict (dict) – Dictionary of properties used for plotting point ‘Bs’ in Cross-section projection, fed to plt.Axes.plot()
  • -
  • BsdictHor (dict) – Dictionry of properties used for plotting point ‘Bs’ in horizontal projection, fed to plt.Axes.plot()
  • -
  • Bvdict (dict) – Dictionary of properties used for plotting point ‘Bv’ in Cross-section projection, fed to plt.Axes.plot()
  • -
  • BvdictHor (dict) – Dictionary of properties used for plotting point ‘Bv’ in horizontal projection, fed to plt.Axes.plot()
  • -
  • Vdict (dict) – Dictionary of properties used for plotting point ‘V’ in cross-section projection, fed to plt.Axes.quiver()
  • -
  • LegDict (dict or None) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • Lim (list or tuple) – Array of a lower and upper limit of angle (rad.) or length for plotting the ‘3d’ Proj
  • -
  • Nstep (int) – Number of points for sampling in ignorable coordinate (toroidal angle or length)
  • -
  • draw (bool) – Flag indicating whether the fig.canvas.draw() shall be called automatically
  • -
  • a4 (bool) – Flag indicating whether the figure should be plotted in a4 dimensions for printing
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

La list or plt.Axes Handles of the axes used for plotting (list if several axes where used)

-
-
- -
-
-plot_Sinogram(Proj='Cross', ax=None, Ang='theta', AngUnit='rad', Sketch=True, Pdict=None, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True)[source]
-

Plot the sinogram of the vessel polygon, by computing its envelopp in a cross-section, can also plot a 3D version of it

-

The envelop of the polygon is computed using self.Sino_RefPt as a reference point in projection space, and plotted using the provided dictionary of properties. -Optionaly a smal sketch can be included illustrating how the angle and the impact parameters are defined (if the axes is not provided).

- --- - - - - - -
Parameters:
    -
  • Proj (str) – Flag indicating whether to plot a classic sinogram (‘Cross’) from the vessel cross-section (assuming 2D), or an extended 3D version ‘3d’ of it with additional angle
  • -
  • ax (None or plt.Axes) – The axes on which the plot should be done, if None a new figure and axes is created
  • -
  • Ang (str) – Flag indicating which angle to use for the impact parameter, the angle of the line itself (xi) or of its impact parameter (theta)
  • -
  • AngUnit (str) – Flag for the angle units to be displayed, ‘rad’ for radians or ‘deg’ for degrees
  • -
  • Sketch (bool) – Flag indicating whether a small skecth showing the definitions of angles ‘theta’ and ‘xi’ should be included or not
  • -
  • Pdict (dict) – Dictionary of properties used for plotting the polygon envelopp, fed to plt.plot() if Proj=’Cross’ and to plt.plot_surface() if Proj=‘3d’
  • -
  • LegDict (None or dict) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • draw (bool) – Flag indicating whether the fig.canvas.draw() shall be called automatically
  • -
  • a4 (bool) – Flag indicating whether the figure should be plotted in a4 dimensions for printing
  • -
  • Test (bool) – Flag indicating whether the inputs shall be tested for conformity
  • -
-
Returns:

ax (plt.Axes) – The axes used to plot

-
-
- -
-
-save(SaveName=None, Path=None, Mode='npz')[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save()

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
-
-
- -
- -
-
-class tofu.geom.Struct(Id, Poly, Type='Tor', DLong=None, Ves=None, Clock=False, arrayorder='C', Exp=None, shot=None, dtime=None, dtimeIn=False, SavePath=None)[source]
-

A class defining a Linear or Toroidal structural element (i.e. a 2D polygon representing a cross-section and assumed to be linearly or toroidally invariant), like a Ves but with less properties.

-

A Struct object is mostly defined by a close 2D polygon, which can be understood as a poloidal cross-section in (R,Z) cylindrical coordinates if Type=’Tor’ (toroidal shape) or as a straight cross-section through a cylinder in (Y,Z) cartesian coordinates if Type=’Lin’ (linear shape). -Attributes such as the surface, the angular volume (if Type=’Tor’) or the center of mass are automatically computed. -The instance is identified thanks to an attribute Id (which is itself a tofu.ID class object) which contains informations on the specific instance (name, Type...).

- --- - - - - - -
Parameters:
    -
  • Id (str / tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID()
  • -
  • Poly (np.ndarray) – An array (2,N) or (N,2) defining the contour of the vacuum vessel in a cross-section, if not closed, will be closed automatically
  • -
  • Type (str) – Flag indicating whether the vessel will be a torus (‘Tor’) or a linear device (‘Lin’)
  • -
  • DLong (list / np.ndarray) – Array or list of len=2 indicating the limits of the linear device volume on the x axis
  • -
  • Ves (None or Ves) – An optional associated vessel
  • -
  • Clock (bool) – Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False)
  • -
  • arrayorder (str) – Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous (‘C’) or Fortran-contiguous (‘F’)
  • -
  • Exp (None / str) – Flag indicating which experiment the object corresponds to, allowed values are in [None,’AUG’,’MISTRAL’,’JET’,’ITER’,’TCV’,’TS’,’Misc’]
  • -
  • shot (None / int) – Shot number from which this Ves is usable (in case of change of geometry)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • dtime (None / dtm.datetime) – A time reference to be used to identify this particular instance (used for debugging mostly)
  • -
  • dtimeIn (bool) – Flag indicating whether dtime should be included in the SaveName (used for debugging mostly)
  • -
-
Returns:

struct (Struct object) – The created Struct object, with all necessary computed attributes and methods

-
-
-
-BaryS
-

Return the (surfacic) center of mass of the polygon defining the vessel cross-section

-
- -
-
-BaryV
-

Return the (volumic) center of mass of the polygon defining the vessel cross-section

-
- -
-
-DLong
-

Return the length spanned by the object in the ignorable coordinate

-
- -
-
-Id
-

Return the tfpf.ID object of the structure

-
- -
-
-Poly
-

Return the polygon defining the vessel cross-section

-
- -
-
-Surf
-

Return the area of the polygon defining the vessel cross-section

-
- -
-
-Type
-

Return the type of structure

-
- -
-
-Vect
-

Return the polygon elementary vectors

-
- -
-
-Ves
-

Return the associated Ves object, if any

-
- -
-
-Vin
-

Return the normalized vectors pointing inwards for each segment of the polygon

-
- -
-
-VolLin
-

Return the angular volume of the polygon defining the vessel cross-section of Tor type

-
- -
-
-arrayorder
-

Return the flag indicating which order is used for multi-dimensional array attributes

-
- -
-
-isInside(Pts, In='(X, Y, Z)')[source]
-

Return an array of booleans indicating whether each point lies inside the Ves volume

-

Tests for each point whether it lies inside the Ves object. -The points coordinates can be provided in 2D or 3D, just specify which coordinate system is provided using the ‘In’ parameter. -An array of boolean flags is returned.

- --- - - - - - -
Parameters:
    -
  • Pts (np.ndarray) – (2,N) or (3,N) array with the coordinates of the points to be tested
  • -
  • In (str) – Flag indicating the coordinate system in which the points are provided, in [‘(X,Y,Z)’,’(R,Z)’,’‘]
  • -
-
Returns:

ind (np.ndarray) – Array of booleans of shape (N,), True if a point is inside the Ves volume

-
-
- -
-
-plot(Lax=None, Proj='All', Elt='PBsBvV', Pdict=None, Bsdict={'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, Bvdict={'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, Vdict={'color': 'r', 'scale': 10}, BsdictHor={'c': 'b', 'ls': 'dashed'}, BvdictHor={'c': 'g', 'ls': 'dashed'}, Lim=[1.5707963267948966, 6.283185307179586], Nstep=50, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True)[source]
-

Plot the polygon defining the vessel, with a cross-section view, a longitudinal view or both, and optionally its reference point for plotting it in projection space

-

Generic method for plotting the Ves object, the projections to be plotted, the elements to plot, and the dictionaries or properties to be used for plotting each elements can all be specified using keyword arguments. -If an ax is not provided a default one is created.

- --- - - - - - -
Parameters:
    -
  • Lax (list or plt.Axes) – The axes to be used for plotting (provide a list of 2 axes if Proj=’All’), if None a new figure with axes is created
  • -
  • Proj (str) – Flag specifying the kind of projection used for the plot (‘Cross’ for a cross-section, ‘Hor’ for a horizontal plane, or ‘All’ for the two plots)
  • -
  • Elt (str) –
    -
    Flag specifying which elements to plot, each capital letter corresponds to an element
    -
      -
    • ‘P’: polygon
    • -
    • ‘Bs’: (surfacic) center of mass
    • -
    • ‘Bv’: (volumic) center of mass for Tor type
    • -
    • ‘V’: vector pointing inward perpendicular to each segment defining the polygon
    • -
    -
    -
    -
  • -
  • Pdict (dict or None) – Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj=‘3d’, set to ToFu_Defauts.py if None
  • -
  • Bsdict (dict) – Dictionary of properties used for plotting point ‘Bs’ in Cross-section projection, fed to plt.Axes.plot()
  • -
  • BsdictHor (dict) – Dictionry of properties used for plotting point ‘Bs’ in horizontal projection, fed to plt.Axes.plot()
  • -
  • Bvdict (dict) – Dictionary of properties used for plotting point ‘Bv’ in Cross-section projection, fed to plt.Axes.plot()
  • -
  • BvdictHor (dict) – Dictionary of properties used for plotting point ‘Bv’ in horizontal projection, fed to plt.Axes.plot()
  • -
  • Vdict (dict) – Dictionary of properties used for plotting point ‘V’ in cross-section projection, fed to plt.Axes.quiver()
  • -
  • LegDict (dict or None) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • Lim (list or tuple) – Array of a lower and upper limit of angle (rad.) or length for plotting the ‘3d’ Proj
  • -
  • Nstep (int) – Number of points for sampling in ignorable coordinate (toroidal angle or length)
  • -
  • draw (bool) – Flag indicating whether the fig.canvas.draw() shall be called automatically
  • -
  • a4 (bool) – Flag indicating whether the figure should be plotted in a4 dimensions for printing
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

La list or plt.Axes Handles of the axes used for plotting (list if several axes where used)

-
-
- -
-
-save(SaveName=None, Path=None, Mode='npz')[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save()

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
-
-
- -
- -
-
-class tofu.geom.LOS(Id, Du, Ves=None, Sino_RefPt=None, arrayorder='C', Clock=False, Type=None, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None)[source]
-

A Line-Of-Sight object (semi-line with signed direction) with all useful geometrical parameters, associated Ves object and built-in methods for plotting, defined in (X,Y,Z) cartesian coordinates

-

A Line of Sight (LOS) is a semi-line. It is a useful approximate representation of a (more accurate) Volume of Sight (VOS) when the latter is narrow and elongated. -It is usually associated to a detector placed behind apertures. -When associated to a Ves object, special points are automatically computed (entry point, exit point, closest point to the center of the Ves object...) as well as a projection in a cross-section. -While tofu provides the possibility of creating LOS objects for academic and simplification pueposes, it is generally not recommended to use them for doing physics, consider using a Detect object instead (which will provide you with a proper and automatically-computed VOS as well as with a LOS if you want).

- --- - - - -
Parameters:
    -
  • Id (str / tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID()
  • -
  • Du (list / tuple) – List of 2 arrays of len=3, the (X,Y,Z) coordinates of respectively the starting point D of the LOS and its directing vector u (will be automatically normalized)
  • -
  • Ves (Ves) – A Ves instance to be associated to the created LOS
  • -
  • Sino_RefPt (None or np.ndarray) – If provided, array of size=2 containing the (R,Z) (for ‘Tor’ Type) or (Y,Z) (for ‘Lin’ Type) coordinates of the reference point for the sinogram
  • -
  • arrayorder (str) – Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous (‘C’) or Fortran-contiguous (‘F’)
  • -
  • Type (None) – (not used in the current version)
  • -
  • Exp (None / str) – Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used
  • -
  • Diag (None / str) – Diagnostic to which the Lens belongs
  • -
  • shot (None / int) – Shot number from which this Lens is usable (in case its position was changed from a previous configuration)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • dtime (None / dtm.datetime) – A time reference to be used to identify this particular instance (used for debugging mostly)
  • -
  • dtimeIn (bool) – Flag indicating whether dtime should be included in the SaveName (used for debugging mostly)
  • -
-
-
-
-plot(Lax=None, Proj='All', Lplot='Tot', Elt='LDIORP', EltVes='', Leg='', Ldict={'lw': 2, 'c': 'k'}, MdictD={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictI={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictO={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictR={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictP={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, draw=True, a4=False, Test=True)[source]
-

Plot the LOS, in a cross-section projection, a horizontal projection or both, and optionally the Ves object associated to it.

-

Plot the desired projections of the LOS object. -The plot can include the special points, the directing vector, and the properties of the plotted objects are specified by dictionaries.

- --- - - - - - -
Parameters:
    -
  • Lax (list / plt.Axes) – The axes to be used for plotting (provide a list of 2 axes if Proj=’All’), if None a new figure with axes is created
  • -
  • Proj (str) – Flag specifying the kind of projection used for the plot (‘Cross’ for a cross-section, ‘Hor’ for a horizontal plane, ‘All’ both and ‘3d’ for 3d)
  • -
  • Elt (str) –
    -
    Flag specifying which elements to plot, each capital letter corresponds to an element
    -
      -
    • ‘L’: LOS
    • -
    • ‘D’: Starting point of the LOS
    • -
    • ‘I’: Input point (i.e.: where the LOS enters the Vessel)
    • -
    • ‘O’: Output point (i.e.: where the LOS exits the Vessel)
    • -
    • ‘R’: Point of minimal major radius R (only for Vessel of Type=’Tor’)
    • -
    • ‘P’: Point of used for impact parameter (i.e.: minimal distance to reference point Sino_RefPt)
    • -
    -
    -
    -
  • -
  • Lplot (str) – Flag specifying whether to plot the full LOS (‘Tot’: from starting point output point) or only the fraction inside the vessel (‘In’: from input to output point)
  • -
  • EltVes (str) – Flag specifying the elements of the Vessel to be plotted, fed to plot()
  • -
  • Leg (str) – Legend to be used to identify this LOS, if Leg=’’ the LOS name is used
  • -
  • Ldict (dict / None) – Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj=‘3d’, set to ToFu_Defauts.py if None
  • -
  • MdictD (dict) – Dictionary of properties used for plotting point ‘D’, fed to plt.Axes.plot()
  • -
  • MdictI (dict) – Dictionary of properties used for plotting point ‘I’, fed to plt.Axes.plot()
  • -
  • MdictO (dict) – Dictionary of properties used for plotting point ‘O’, fed to plt.Axes.plot()
  • -
  • MdictR (dict) – Dictionary of properties used for plotting point ‘R’, fed to plt.Axes.plot()
  • -
  • MdictP (dict) – Dictionary of properties used for plotting point ‘P’, fed to plt.Axes.plot()
  • -
  • LegDict (dict or None) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • Vesdict (dict) – Dictionary of kwdargs to fed to plot(), and ‘EltVes’ is used instead of ‘Elt’
  • -
  • draw (bool) – Flag indicating whether the fig.canvas.draw() shall be called automatically
  • -
  • a4 (bool) – Flag indicating whether the figure should be plotted in a4 dimensions for printing
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

La (list / plt.Axes) – Handles of the axes used for plotting (list if several axes where used)

-
-
- -
-
-plot_Sinogram(Proj='Cross', ax=None, Elt='LV', Sketch=True, Ang='theta', AngUnit='rad', Ldict={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, Vdict={'edgecolor': (0.8, 0.8, 0.8, 1.0), 'linewidth': 1, 'linestyle': 'solid', 'facecolor': (0.8, 0.8, 0.8, 1.0)}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True)[source]
-

Plot the sinogram of the vessel polygon, by computing its envelopp in a cross-section, can also plot a 3D version of it

-

Plot the LOS in projection space (where sinograms are plotted) as a point. -You can plot the conventional projection-space (in 2D in a cross-section), or a 3D extrapolation of it, where the third coordinate is provided by the angle that the LOS makes with the cross-section plane (useful in case of multiple LOS with a partially tangential view).

- --- - - - - - -
Parameters:
    -
  • Proj (str) – Flag indicating whether to plot a classic sinogram (‘Cross’) from the vessel cross-section (assuming 2D), or an extended 3D version (‘3d’) of it with additional angle
  • -
  • ax (None or plt.Axes) – The axes on which the plot should be done, if None a new figure and axes is created
  • -
  • Elt (str) –
    -
    Flag indicating which elements to plot, each capital letter stands for one element
    -
      -
    • ‘L’: LOS
    • -
    • ‘V’: Vessel
    • -
    -
    -
    -
  • -
  • Ang (str) – Flag indicating which angle to use for the impact parameter, the angle of the line itself (xi) or of its impact parameter (theta)
  • -
  • AngUnit (str) – Flag for the angle units to be displayed, ‘rad’ for radians or ‘deg’ for degrees
  • -
  • Sketch (bool) – Flag indicating whether a small skecth showing the definitions of angles ‘theta’ and ‘xi’ should be included or not
  • -
  • Ldict (dict) – Dictionary of properties used for plotting the LOS point, fed to plt.plot() if Proj=’Cross’ and to plt.plot_surface() if Proj=‘3d’
  • -
  • Vdict (dict) – Dictionary of properties used for plotting the polygon envelopp, fed to plt.plot() if Proj=’Cross’ and to plt.plot_surface() if Proj=‘3d’
  • -
  • LegDict (None or dict) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the figure should be plotted in a4 dimensions for printing
  • -
  • Test (bool) – Flag indicating whether the inputs shall be tested for conformity
  • -
-
Returns:

ax (plt.Axes) – The axes used to plot

-
-
- -
-
-save(SaveName=None, Path=None, Mode='npz')[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save()

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
-
-
- -
- -
-
-class tofu.geom.GLOS(Id, LLOS, Ves=None, Sino_RefPt=None, Type=None, Exp=None, Diag=None, shot=None, arrayorder='C', Clock=False, dtime=None, dtimeIn=False, SavePath=None)[source]
-

An object regrouping a group of LOS objects with some common features (e.g.: all belong to the same camera) and the same Ves object, provides methods for common computing and plotting

-

Usually LOS correspond to detectors which are naturally grouped in ‘cameras’ (sets of detectors located in the same place or sharing an aperture or a data acquisition system). -The GLOS object provided by tofu provides the object-oriented equivalent. -The GLOS objects provides the same methods as the LOS objects, plus extra methods for fast handling or selecting of the whole set. -Note that you must first create each LOS independently and then provide them as a list argument to a GLOS object.

- --- - - - -
Parameters:
    -
  • Id (str / tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID()
  • -
  • LLOS (list / :class:'LOS') – List of LOS instances with the same Ves instance
  • -
  • Type (None) – (not used in the current version)
  • -
  • Exp (None / str) – Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used
  • -
  • Diag (None / str) – Diagnostic to which the Lens belongs
  • -
  • shot (None / int) – Shot number from which this Lens is usable (in case its position was changed from a previous configuration)
  • -
  • Sino_RefPt (None / iterable) – If provided, array of size=2 containing the (R,Z) (for ‘Tor’ Type) or (Y,Z) (for ‘Lin’ Type) coordinates of the reference point for the sinogram
  • -
  • arrayorder (str) – Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous (‘C’) or Fortran-contiguous (‘F’)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • None / dtm.datetime (dtime) – A time reference to be used to identify this particular instance (used for debugging mostly)
  • -
  • bool (dtimeIn) – Flag indicating whether dtime should be included in the SaveName (used for debugging mostly)
  • -
-
-
-
-plot(Lax=None, Proj='All', Lplot='Tot', Elt='LDIORP', EltVes='', Leg='', Ldict={'lw': 2, 'c': 'k'}, MdictD={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictI={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictO={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictR={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, MdictP={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, draw=True, a4=False, Test=True)[source]
-

Plot the GLOS, with a cross-section view, a horizontal view or both, and optionally the Ves object associated to it.

-

Plot all the LOS of the GLOS, or only a selection of them (using the same parameters as self.select()).

- --- - - - - - -
Parameters:
    -
  • Lax (list or plt.Axes) – The axes to be used for plotting (provide a list of 2 axes if Proj=’All’), if None a new figure with axes is created
  • -
  • Proj (str) – Flag specifying the kind of projection used for the plot (‘Cross’ for a cross-section, ‘Hor’ for a horizontal plane, ‘All’ both and ‘3d’ for 3d)
  • -
  • Elt (str) –
    -
    Flag specifying which elements to plot, each capital letter corresponds to an element
    -
      -
    • ‘L’: LOS
    • -
    • ‘D’: Starting point of the LOS
    • -
    • ‘I’: Input point (i.e.: where the LOS enters the Vessel)
    • -
    • ‘O’: Output point (i.e.: where the LOS exits the Vessel)
    • -
    • ‘R’: Point of minimal major radius R (only for Vessel of Type=’Tor’)
    • -
    • ‘P’: Point of used for impact parameter (i.e.: minimal distance to reference point ImpRZ)
    • -
    -
    -
    -
  • -
  • Lplot (str) – Flag specifying whether to plot the full LOS (‘Tot’: from starting point output point) or only the fraction inside the vessel (‘In’: from input to output point)
  • -
  • EltVes (str) – Flag specifying the elements of the Vessel to be plotted, fed to plot()
  • -
  • Leg (str) – Legend to be used to identify this LOS, if Leg=’’ the LOS name is used
  • -
  • Ldict (dict or None) – Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj=‘3d’, set to ToFu_Defauts.py if None
  • -
  • MdictD (dict) – Dictionary of properties used for plotting point ‘D’, fed to plt.Axes.plot()
  • -
  • MdictI (dict) – Dictionary of properties used for plotting point ‘I’, fed to plt.Axes.plot()
  • -
  • MdictO (dict) – Dictionary of properties used for plotting point ‘O’, fed to plt.Axes.plot()
  • -
  • MdictR (dict) – Dictionary of properties used for plotting point ‘R’, fed to plt.Axes.plot()
  • -
  • MdictP (dict) – Dictionary of properties used for plotting point ‘P’, fed to plt.Axes.plot()
  • -
  • LegDict (dict or None) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • Vesdict (dict) – Dictionary of kwdargs to fed to plot(), and ‘EltVes’ is used instead of ‘Elt’
  • -
  • Lim (list or tuple) – Array of a lower and upper limit of angle (rad.) or length for plotting the ‘3d’ Proj
  • -
  • draw (bool) – Flag indicating whether the fig.canvas.draw() shall be called automatically
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
  • None or np.ndarray (ind) – Array of indices (int or bool) of the LOS to be plotted if only some of them are to be plotted
  • -
  • kwdargs – kwdargs to be fed to GLOS.select() if ind=None and only a fraction of the LOS are to be plotted
  • -
-
Returns:

La (list or plt.Axes) – Handles of the axes used for plotting (list if several axes where used)

-
-
- -
-
-plot_Sinogram(Proj='Cross', ax=None, Elt='LV', Sketch=True, Ang='theta', AngUnit='rad', Ldict={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, Vdict={'edgecolor': (0.8, 0.8, 0.8, 1.0), 'linewidth': 1, 'linestyle': 'solid', 'facecolor': (0.8, 0.8, 0.8, 1.0)}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Plot the sinogram of the vessel polygon, by computing its envelopp in a cross-section, can also plot a 3D version of it

-

Plot all the LOS of the GLOS, or only a selection of them in projection space

- --- - - - - - -
Parameters:
    -
  • Proj (str) – Flag indicating whether to plot a classic sinogram (‘Cross’) from the vessel cross-section (assuming 2D), or an extended 3D version ‘3d’ of it with additional angle, default: ‘Cross’
  • -
  • ax (None or plt.Axes) – The axes on which the plot should be done, if None a new figure and axes is created, default: None
  • -
  • Elt (str) –
    -
    Flag indicating which elements to plot, each capital letter stands for one element, default: ‘LV’
    -
      -
    • ‘L’: LOS
    • -
    • ‘V’: Vessel
    • -
    -
    -
    -
  • -
  • Ang (str) – Flag indicating which angle to use for the impact parameter, the angle of the line itself (xi) or of its impact parameter (theta), default: ‘theta’
  • -
  • AngUnit (str) – Flag for the angle units to be displayed, ‘rad’ for radians or ‘deg’ for degrees, default: ‘rad’
  • -
  • Sketch (bool) – Flag indicating whether a small skecth showing the definitions of angles ‘theta’ and ‘xi’ should be included or not
  • -
  • Ldict (dict) – Dictionary of properties used for plotting the LOS point, fed to plt.plot() if Proj=’Cross’ and to plt.plot_surface() if Proj=‘3d’, default: see ToFu_Defaults.py
  • -
  • Vdict (dict) – Dictionary of properties used for plotting the polygon envelopp, fed to plt.plot() if Proj=’Cross’ and to plt.plot_surface() if Proj=‘3d’, default: see ToFu_Defaults.py
  • -
  • LegDict (None or dict) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None, default: see ToFu_Defaults.py
  • -
  • draw (bool) – Flag indicating whether to draw the figure, default: True
  • -
  • Test (bool) – Flag indicating whether the inputs shall be tested for conformity, default: True
  • -
-
Returns:

ax (plt.Axes) – The axes used to plot

-
-
- -
-
-save(SaveName=None, Path=None, Mode='npz')[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save()

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
-
-
- -
-
-select(Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Out=<type 'bool'>)[source]
-

Return the indices or instances of all instances matching the specified criterion.

-

The selection can be done according to 2 different mechanism (1) and (2).

-

For mechanism (1): the user provides the value (Val) that the specified criterion (Crit) should take for a LOS to be selected. -The criteria are typically attributes of the self.Id attribute (i.e.: name of the instance, or user-defined attributes like the camera head...)

-

For mechanism (2), used if Val=None: the user provides a str expression (or a list of such) to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: ‘not ‘ or ‘<=’). -Another str or list of str expressions can be provided that will be placed after the criterion value.

-

Other parameters are used to specify logical operators for the selection (match any or all the criterion...) and the type of output.

- --- - - - - - -
Parameters:
    -
  • Crit (str) – Flag indicating which criterion to use for discrimination -Can be set to any attribute of the tofu.pathfile.ID class (e.g.: ‘Name’,’SaveName’,’SavePath’...) or any key of ID.USRdict (e.g.: ‘Exp’...)
  • -
  • Val (list, str or None) – The value to match for the chosen criterion, can be a list of different values -Used for selection mechanism (1)
  • -
  • PreExp (list, str or None) – A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: ‘not ‘) -Used for selection mechanism (2)
  • -
  • PostExp (list, str or None) – A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed after the criterion value (e.g.: ‘>=5.’) -Used for selection mechanism (2)
  • -
  • Log (str) – Flag indicating whether the criterion shall match all provided values or one of them (‘any’ or ‘all’)
  • -
  • InOut (str) – Flag indicating whether the returned indices are the ones matching the criterion (‘In’) or the ones not matching it (‘Out’)
  • -
  • Out (type / str) – Flag indicating in which form shall the result be returned, as an array of integer indices (int), an array of booleans (bool), a list of names (‘Names’) or a list of instances (‘LOS’)
  • -
-
Returns:

ind (list / np.ndarray) – The computed output (array of index, list of names or instances depending on parameter ‘Out’)

-
-

Examples

-
>>> import tofu.geom as tfg
->>> ves = tfg.Ves('ves', [[0.,1.,1.,0.],[0.,0.,1.,1.]], DLong=[-1.,1.], Type='Lin', Exp='Misc', shot=0)
->>> los1 = tfg.LOS('los1', ([0.,-0.1,-0.1],[0.,1.,1.]), Ves=ves, Exp='Misc', Diag='D', shot=0)
->>> los2 = tfg.LOS('los2', ([0.,-0.1,-0.1],[0.,0.5,1.]), Ves=ves, Exp='Misc', Diag='D', shot=1)
->>> los3 = tfg.LOS('los3', ([0.,-0.1,-0.1],[0.,1.,0.5]), Ves=ves, Exp='Misc', Diag='D', shot=1)
->>> glos = tfg.GLOS('glos', [los1,los2,los3])
->>> ind = glos.select(Val=['los1','los3'], Log='any', Out='LOS')
->>> print [ii.Id.Name for ii in ind]
-['los1', 'los3']
->>> ind = glos.select(Val=['los1','los3'], Log='any', InOut='Out', Out=int)
-array([1])
-
-
-
- -
- -
-
-class tofu.geom.Lens(Id, O, nIn, Rad, F1, F2=inf, R1=None, R2=None, dd=None, Ves=None, Type='Sph', Exp=None, Diag=None, shot=None, arrayorder='C', Clock=False, SavePath=None, dtime=None, dtimeIn=False)[source]
-

A Lens class with all geometrical data and built-in methods, defined as a planar polygon in 3D cartesian coordinates, with optional Ves object

-

A Lens object is useful for implementing one of the two possible optical arrangements available in tofu. -A Lens (implicitly convergent) is used for focusing incoming light on a detector of reduced size (i.e.g: like the end of an optic fiber cable). -In this case, anmd in its current version, tofu only handles spherical lenses and assumes that the detector has a circular active surface, centered on the same axis as the lens and located in its focal plane.

- --- - - - -
Parameters:
    -
  • Id (str or tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID()
  • -
  • O (iterable) – Array of 3D cartesian coordinates of the center of the Lens
  • -
  • nIn (iterable) – Array of 3D cartesian coordiantes of the vector defining the axis of the Lens
  • -
  • Rad (float) – Radius of the Lens
  • -
  • F1 (float) – Focal length of the Lens, on the detector side
  • -
  • F2 (float) – Focal length of the Lens, on the plasma side (only np.inf supported so far)
  • -
  • Type (str) – Flag indicating the type of Lens (only ‘Sph’ - for spherical lens - supported so far)
  • -
  • R1 (None or float) – Radius of the first face of the Lens, for full description only
  • -
  • R2 (None or float) – Radius of the second face of the Lens, for full description only
  • -
  • dd (None or float) – Width of the Lens along its axis, for full description only
  • -
  • Ves (Ves) – Ves object to which the aperture is assigned
  • -
  • Exp (None or str) – Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used
  • -
  • Diag (None or str) – Diagnostic to which the Lens belongs
  • -
  • shot (None or int) – Shot number from which this Lens is usable (in case its position was changed from a previous configuration)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • Clock (bool) – Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False), default: False
  • -
  • arrayorder (str) – Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous (‘C’) or Fortran-contiguous (‘F’), default: ‘C’
  • -
  • dtime (None or dtm.datetime) – A time reference to be used to identify this particular instance (used for debugging mostly), default: None
  • -
  • dtimeIn (bool) – Flag indicating whether dtime should be included in the SaveName (used for debugging mostly), default: False
  • -
-
-
-
-Poly
-

Return a simple representation of the Lens as a 3D circle (if Lens.Type=’Sph’)

-
- -
-
-plot(Lax=None, Proj='All', Elt='PV', EltVes='', Leg=None, LVIn=0.1, Pdict={'lw': 2, 'c': 'k', 'ls': 'solid'}, Vdict={'color': 'r', 'lw': 2, 'ls': 'solid'}, Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True)[source]
-

Plot the Lens object, optionally with the associated Ves object

-

Plot the chosen projections of the Lens polygon.

- --- - - - - - -
Parameters:
    -
  • Lax (list or plt.Axes) – The axes to be used for plotting (provide a list of 2 axes if Proj=’All’), if None a new figure with axes is created
  • -
  • Proj (str) – Flag specifying the kind of projection used for the plot (‘Cross’ for a cross-section, ‘Hor’ for a horizontal plane, ‘All’ both and ‘3d’ for 3d)
  • -
  • Elt (str) –
    -
    Flag specifying which elements to plot, each capital letter corresponds to an element
    -
      -
    • ‘P’: polygon
    • -
    • ‘V’: vector perpendicular to the polygon, oriented towards the interior of the Vessel
    • -
    -
    -
    -
  • -
  • EltVes (str) – Flag specifying the elements of the Vessel to be plotted, fed to plot()
  • -
  • Leg (str) – Legend to be used to identify this LOS, if Leg=’’ the LOS name is used
  • -
  • LVIn (float) – Length (in data coordinates, meters) of the vector ‘V’
  • -
  • Pdict (dict) – Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj=‘3d’, set to ToFu_Defauts.py if None (default: None)
  • -
  • Vdict (dict) – Dictionary of properties used for plotting vector ‘V’, fed to plt.Axes.plot()
  • -
  • Vesdict (dict) – Dictionary of kwdargs to fed to plot(), and ‘EltVes’ is used instead of ‘Elt’
  • -
  • LegDict (dict or None) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • draw (bool) – Flag indicating whether the fig.canvas.draw() shall be called automatically
  • -
  • a4 (bool) – Flag indicating whether the figure should be a4 size (for printing or saving as pdf for example)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

Lax (list or plt.Axes) – Handles of the axes used for plotting (list if several axes where used)

-
-
- -
-
-plot_alone(ax=None, V='red', nin=1.5, nout=1.0, Lmax='F', V_NP=50, src=None, draw=True, a4=False, Test=True)[source]
-

Plot a 2D representation of the Lens object, optionally with 2D viewing cone and rays of several sources in the plane, either with reduced of full representation

-

Plot a sketch of the Lens, optionally with ray-traced incoming light beams. -This plotting routine does not consider any syurrounding and plots everything assuming the origine of the coordinate system is on the Lens

- --- - - - - - -
Parameters:
    -
  • ax (None or plt.Axes) – Axes to be used for plotting, if None a new figure with axes is created (default: None)
  • -
  • V (str) – Flag indicating whether the Lens should be considered in its reduced geometry model (‘red’) or its full version (‘full’), default: ‘red’
  • -
  • nin (float) – Value of the optical index to be used inside the Lens (useful when V=’full’ only)
  • -
  • nout (float) – Value of the optical index to be used outside the Lens (useful when V=’full’ only)
  • -
  • Lmax (float) – Maximum length on which the source beams should be plotted after going through the Lens, if ‘F’ all beams are plotted up to the focal plane
  • -
  • V_NP (int) – Number of points to be used to plot each circle fraction of the full version of the Lens geometry (useful when V=’full’ only)
  • -
  • src (None or dict) –
    -
    Dictionary of parameters for the source of ray beams:
    -
      -
    • ‘Pt’: iterable of len()=2 with the 2D cartesian coordinates of the point where the source should be located with reference to the Lens center (0,0) and axis (1,0)
    • -
    • ‘Type’: Flag indicating whether the source should a point (‘Pt’) or an array of parallel beams perpendicular to a plane passing through Pt
    • -
    • ‘nn’: iterable of len()=2 with the 2D cartesian coordinates of a vector directing the array of parallel beams
    • -
    • ‘NP’: int, number of beams to be plotted from the source
    • -
    -
    -
    -
  • -
  • draw (bool) – Flag indicating whether the fig.canvas.draw() shall be called automatically, default: True
  • -
  • a4 (bool) – Flag indicating whether the figure should be a4 size (for printing or saving as pdf for example)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity, default: True
  • -
-
Returns:

ax (plt.Axes) – Handle of the axes used for plotting

-
-
- -
-
-save(SaveName=None, Path=None, Mode='npz')[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save()

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
-
-
- -
- -
-
-class tofu.geom.Apert(Id, Poly, Type=None, Ves=None, Exp=None, Diag=None, shot=None, arrayorder='C', Clock=False, SavePath=None, dtime=None, dtimeIn=False)[source]
-

An Aperture class with all geometrical data and built-in methods, defined as a planar polygon in 3D cartesian coordinates, with optional Ves object

-

An Apert object is useful for implementing one of the two possible optical arrangements available in tofu. -An aperture is modelled as a planar polygon (of any non self-intersecting shape) through which light can pass (fully transparent) and around which light cannot pass (fully non-transparent). -One of the added-values of tofu is that it allows to create several non-coplanar aperture and assign them to a single detector. It then computes automatically the volume of sight by assuming that a detectable photon should go through all apertures.

- --- - - - -
Parameters:
    -
  • Id (str or tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID()
  • -
  • Poly (np.ndarray) – An array (2,N) or (N,2) defining the contour of the aperture in 3D (X,Y,Z) cartesian coordinates, if not closed, will be closed automatically
  • -
  • Ves (Ves) – Ves object to which the aperture is assigned
  • -
  • Type (None or str) – Flag specifying the type of Apert
  • -
  • Exp (None or str) – Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used
  • -
  • Diag (None or str) – Diagnostic to which the Lens belongs
  • -
  • shot (None or int) – Shot number from which this Lens is usable (in case its position was changed from a previous configuration)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • Clock (bool) – Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False)
  • -
  • dtime (None or dtm.datetime) – A time reference to be used to identify this particular instance (mostly used for debugging)
  • -
  • dtimeIn (bool) – Flag indicating whether dtime should be included in the SaveName (mostly used for debugging)
  • -
-
-
-
-BaryS
-

Return the (surfacic) center of mass of the polygon (in 3D cartesian coordinates)

-
- -
-
-Id
-

Return the associated tfpf.ID object

-
- -
-
-NP
-

Return the number of points defining the polygon

-
- -
-
-Poly
-

Return the planar polygon defining the aperture (in 3D cartesian coordinates)

-
- -
-
-Surf
-

Return the area of the polygon

-
- -
-
-Ves
-

Return the associated Ves object

-
- -
-
-nIn
-

Return the normalized vector perpendicular to the polygon surface and oriented towards the interior of the associated vessel (in 3D cartesian coordinates)

-
- -
-
-plot(Lax=None, Proj='All', Elt='PV', EltVes='', Leg=None, LVIn=0.1, Pdict={'lw': 2, 'c': 'k', 'ls': 'solid'}, Vdict={'color': 'r', 'lw': 2, 'ls': 'solid'}, Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True)[source]
-

Plot the Apert, with a cross-section view, a horizontal view or both, or a 3d view, and optionally the Ves object associated to it.

-

Plot the desired projections of the polygon defining the aperture.

- --- - - - - - -
Parameters:
    -
  • list or plt.Axes (Lax) – The axes to be used for plotting (provide a list of 2 axes if Proj=’All’), if None a new figure with axes is created
  • -
  • str (Leg) – Flag specifying the kind of projection used for the plot (‘Cross’ for a cross-section, ‘Hor’ for a horizontal plane, ‘All’ both and ‘3d’ for 3d)
  • -
  • str
    -
    Flag specifying which elements to plot, each capital letter corresponds to an element
    -
      -
    • ‘P’: polygon
    • -
    • ‘V’: vector perpendicular to the polygon, oriented towards the interior of the Vessel
    • -
    -
    -
    -
  • -
  • str – Flag specifying the elements of the Vessel to be plotted, fed to plot()
  • -
  • str – Legend to be used to identify this LOS, if Leg=’’ the LOS name is used
  • -
  • float (LVIn) – Length (in data coordinates, meters) of the vector ‘V’
  • -
  • dict (Vesdict) – Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj=‘3d’, set to ToFu_Defauts.py if None
  • -
  • dict – Dictionary of properties used for plotting vector ‘V’, fed to plt.Axes.plot()
  • -
  • dict – Dictionary of kwdargs to fed to plot(), and ‘EltVes’ is used instead of ‘Elt’
  • -
  • dict or None (LegDict) – Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None
  • -
  • bool (Test) – Flag indicating whether the fig.canvas.draw() shall be called automatically
  • -
  • bool – Flag indicating whether the figure should be a4 size (for printing or saving as pdf for example)
  • -
  • bool – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

La list or plt.Axes – Handles of the axes used for plotting (list if several axes where used)

-
-
- -
-
-save(SaveName=None, Path=None, Mode='npz')[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save()

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
-
-
- -
- -
-
-class tofu.geom.Detect(Id, Poly, Optics=None, Ves=None, Sino_RefPt=None, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, Calc=True, Verb=True, Etend_Method='quad', Etend_RelErr=0.001, Etend_dX12=[0.01, 0.01], Etend_dX12Mode='rel', Etend_Ratio=0.02, Colis=True, LOSRef='Cart', Cone_DRY=0.0025, Cone_DXTheta=None, Cone_DZ=0.0025, Cone_NPsi=20, Cone_Nk=60, arrayorder='C', Clock=False, Type=None, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None)[source]
-

A Detector class with all geometrical data and built-in methods, defined as a planar polygon in 3D cartesian coordinates, with optional aperture objects

-

A Detect object is at the core of tofu’s added value and is mostly defined by a 3D planar polygon of any non self-intersecting shape representing the active surface of a detector. -It can then be associated to optics (a Lens or a list of Apert objects) and to a Ves to automatically compute a natural :class:’LOS’ (with its etendue) and, most importantly, a proper VOS (that can be discretized for 3D numerical integration). -It can be 2 different types: either ‘Circ’ if it is associated to a Lens (in which case it is simply defined by radius and is assumed to be circular and placed at the focal plane of the Lens object), or None in the more general case in which it is associated to a set of apertures. -Most of the commonly used quantities are automatically calculated (etendue of the LOS, VOS...) and it comes with built-in methods for plotting and computing synthetic data.

-

To compute the VOS, tofu tests all points inside a 3D grid to see if each point is visible from the detector through the apertures or not. -The meshed space is determined by the volume spanned by a LOS sampling of the VOS. -Then, a contour function is used to find the polygons limiting the cross-section and horizontal projections of the VOS. -Once computed, the viewing cones are assigned to attributes of the Detect instance.

-

In the particular case (1) when the LOS of the detector lies entirely inside one cross-section (e.g.: tomography diagnostics), tofu also computes the integral in the direction of the ignorable coordinate of the solid angle on a regular mesh (for faster computation of the geometry assuming toroidaly invariant basis functions). -This regular mesh is defined in 2D, by the distance between a mesh point and the detector (k) and by the poloidal angle between the LOS and the line going from the detector to the mesh point (psi)

- --- - - - -
Parameters:
    -
  • Id (str or tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID()
  • -
  • Poly (dict or np.ndarray) –
    -
    Contains the information regarding the geometry of the Detect object
    -
      -
    • np.ndarray: (2,N) or (N,2) defining the contour of the detector active surface in 3D (X,Y,Z) cartesian coordinates, if not closed, will be closed automatically, if Type=None
    • -
    • dict: dictionary of properties for a circular detector placed in the focal plane of a Lens on its axis, contains field ‘Rad’=float (radius), if Optics is Lens and Type=’Circ’
    • -
    -
    -
    -
  • -
  • Optics (list or Lens) – The optics to be associated to the detector, either a spherical Lens or a list of apertures Apert
  • -
  • Ves (Ves or None) – Ves object to which the detector is assigned
  • -
  • Sino_RefPt (np.ndarray or None) – Array of size=2 containing the (R,Z) (for ‘Tor’ Type) or (Y,Z) (for ‘Lin’ Type) coordinates of the reference point for the sinogram
  • -
  • CalcEtend (bool) – Flag indicating whether to compute the etendue
  • -
  • CalcSpanImp (bool) – Flag indicating whether to compute the maximal span of the viewing volume
  • -
  • CalcCone (bool) – Flag indicating whether to compute the viewing volume or viewing cone and its two projections
  • -
  • CalcPreComp (bool) – Flag indicating whether to pre-compute a set of pre-defined points inside the viewing volume for faster computation of signal from 3D emissivity
  • -
  • Calc (bool) – Flag indicating whether to compute all the above
  • -
  • Verb (bool) – Flag indicating whether the creation of the object should be verbose (comments for each step)
  • -
  • Etend_Method (str) – Flag indicating which numerical integration to use for the computation of the etendue (picked from scipy.integrate : ‘quad’, ‘simps’, ‘trapz’)
  • -
  • Etend_RelErr (float) – If Etend_Method=’quad’, specifies the maximum relative error to be tolerated on the value of the integral (i.e.: etendue)
  • -
  • Etend_dX12 (list) – If Etend_Method in [‘simps’,’trapz’], which implies a discretization of the plane perpendicular to the LOS, specifies the resolution of the discretization
  • -
  • Etend_dX12Mode (str) – If Etend_Method in [‘simps’,’trapz’], specifies whether Etend_dX12 should be iunderstood as an absolute distance (‘abs’) or a fraction of the maximum width (‘rel’)
  • -
  • Etend_Ratio (float) – The numerical integration is performed on an automatically-deterimned interval, this ratio (fraction of unity) is a safety margin to increase a bit the interval and make sure all non-zero values are included
  • -
  • Colis (bool) – Flag indicating whether the collision detection mechanism should be considered when computing the VOS
  • -
  • LOSRef (str) – Key indicating which of the LOS in the LOS dictionary should be considered as the reference LOS
  • -
  • Cone_DRY (float) – Resolution of the grid in the R (for ‘Tor’ vessel types) or Y (for ‘Lin’ vessel types) direction, in meters
  • -
  • Cone_DXTheta (float) – Resolution of the grid in the toroidal (for ‘Tor’ vessel types, in radians) or X (for ‘Lin’ vessel types, in meters) direction
  • -
  • Cone_DZ (float) – Resolution of the grid in the Z direction, in meters
  • -
  • Cone_NPsi (int) – Number of points of the regular mesh in psi direction (angle), in case (1)
  • -
  • Cone_Nk (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
  • Type (None / str) – If the detector is associated to a Lens, it should be of type ‘Circ’ (only circular shaped detectors are handled by tofu behind spherical lenses)
  • -
  • Exp (None or str) – Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used
  • -
  • Diag (None or str) – Diagnostic to which the Lens belongs
  • -
  • shot (None or int) – Shot number from which this Lens is usable (in case its position was changed from a previous configuration)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • Clock (bool) – Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False), default: False
  • -
  • arrayorder (str) – Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous (‘C’) or Fortran-contiguous (‘F’), default: ‘C’
  • -
  • dtime (None or dtm.datetime) – A time reference to be used to identify this particular instance (used for debugging mostly)
  • -
  • dtimeIn (bool) – Flag indicating whether dtime should be included in the SaveName (used for debugging mostly)
  • -
-
-
-
-BaryS
-

Return the (surfacic) center of mass of the polygon (in 3D cartesian coordinates)

-
- -
-
-Cone_PolyCross
-

Return the polygon that is the projection in a cross-section of the viewing cone

-
- -
-
-Cone_PolyHor
-

Return the polygon that is the projection in a horizontal plane of the viewing cone

-
- -
-
-Id
-

Return the associated tfpf.ID object

-
- -
-
-LOS
-

Return the dictionary of associated LOS objects

-
- -
-
-NP
-

Return the number of points defining the polygon

-
- -
-
-Optics
-

Return the list of associated Optics objects (Lens or list of Apert)

-
- -
-
-OpticsNb
-

Return the number of associated Optics

-
- -
-
-OpticsType
-

Return the type of associated Optics objects

-
- -
-
-Poly
-

Return the planar polygon defining the aperture (in 3D cartesian coordinates)

-
- -
-
-Rad
-

Return the radius of the polygon (if Type=’Circ’, else None)

-
- -
-
-SAngCross_Int
-

Return the integral of the solid angle at pre-computed points of the VOS in a cross-section projection

-
- -
-
-SAngCross_Points
-

Return the pre-computed points of the VOS in a cross-section projection

-
- -
-
-SAngHor_Int
-

Return the integral of the solid angle at pre-computed points of the VOS in a horizontal projection

-
- -
-
-SAngHor_Points
-

Return the pre-computed points of the VOS in a horizontal projection

-
- -
-
-Sino_RefPt
-

Return the coordinates (R,Z) or (Y,Z) for Ves of Type ‘Tor’ or (Y,Z) for Ves of Type ‘Lin’ of the reference point used to compute the sinogram

-
- -
-
-Surf
-

Return the area of the polygon

-
- -
-
-Ves
-

Return the associated Ves object

-
- -
-
-calc_Etendue_AlongLOS(Length='', NP=20, Modes=['trapz', 'quad'], RelErr=0.001, dX12=[0.005, 0.005], dX12Mode='abs', Ratio=0.02, Colis=True, LOSRef=None, Test=True)[source]
-

Return the etendue computed at different points along the LOS, with various numerical methods, with or without collision detection

-

Computing the etendue along the LOS of a Detect object can be useful for checking whether the etendue is constant (as it should be if the LOS approximation is to be used). -Cases with non-constant etendue include in particular partially obstructed VOS in the divertor region of Tokamaks. -Also useful for debugging: if the etendue is not constant but the VOS is not obstructed, something might be wrong with the computation of the etendue or with the model (e.g.: for Lens optics). -Indeed, the model implemented for a Lens is ideal, but a close look at the etendue shows that the model is not perfect (but sufficiently accurate for most uses though).

- --- - - - - - -
Parameters:
    -
  • Length (str) – Flag indicating whether to use the full length of the VOS (including partially obstructed parts: ‘’), or just the length of the LOS unil its exit point (‘LOS’).
  • -
  • NP (int) – Number of points (uniformly distributed along the LOS) where the etendue should be computed
  • -
  • Modes (list or str) – Flag or list of flags indicating which numerical integration methods shoud be used in [‘quad’,’simps’,’trapz’]
  • -
  • RelErr (float) – For ‘quad’, a positive float defining the relative tolerance allowed
  • -
  • dX12 (list) – For ‘simps’ or ‘trapz’, a list of 2 floats defining the resolution of the sampling in X1 and X2
  • -
  • dX12Mode (str) – For ‘simps’ or’trapz’, ‘rel’ or ‘abs’, if ‘rel’ the resolution dX12 is in dimensionless units in [0;1] (hence a value of 0.1 means 10 discretisation points between the extremes), if ‘abs’ dX12 is in meters
  • -
  • Ratio (float) – A float specifying the relative margin to be taken for integration boundaries
  • -
  • Colis (bool) – Flag indicating whether collision detection should be used
  • -
  • LOSRef (None or str) – Flag indicating which LOS should be used
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

    -
  • Etend (np.ndarray) – Computed etendues
  • -
  • Pts (np.ndarray) – (3,NP) array specifying the 3D (X,Y,Z) coordinates of the points along the LOS where the etendue was computed
  • -
  • kPts (np.ndarray) – (NP,) array of the distance-coordinate k along the LOS
  • -
  • LOSRef (str) – The LOS that was used
  • -
-

-
-
- -
-
-calc_SAngNb(Pts=None, Proj='Cross', Slice='Int', DRY=None, DXTheta=None, DZ=None, Colis=True)[source]
-

Compute the solid angle subtended by the Detect+Optics system as seen for desired points, in a slice or integrated manner

-

Mostly useful in the GDetect object when there are several detectors. -Computes, for each point in the desired projection, the total solid angle subtended by all the detectors (or its integral) and the number of detectors that ‘see’ each point.

- --- - - - - - -
Parameters:
    -
  • Pts (None / np.ndarray) – (3,N) array of cartesian (X,Y,Z) coordinates of the provided N points, if None a default set of points is computed according to DRY, DXTheta and DZ
  • -
  • Proj (str) – Flag indicating to which projection of the VOS the method should be applied
  • -
  • Slice (str) – Flag indicating whether to compute the solid angle (‘Slice’), the maximum solid angle along the ignorable coordinate (‘Max’), or the integral over the ignorable coordinate (‘Int’)
  • -
  • DRY (None / float) – Resolution (in horizontal direction of the cross-section) of the mesh to be constructed if the points are not provided
  • -
  • DXTheta (None / float) – Resolution (in ignorable coordinate direction) of the mesh to be constructed if the points are not provided
  • -
  • DZ (None / float) – Resolution (in vertical direction) of the mesh to be constructed if the points are not provided
  • -
  • Colis (bool) – Flag indicating whether collision detection should be used
  • -
-
Returns:

    -
  • SA (np.ndarray) – Array of (ND,NP) solid angle values, where ND is the number of detectors and NP the number of points
  • -
  • Nb (np.ndarray) – Array of (ND,NP) booleans, True if a point is seen by a detector
  • -
  • Pts (np.ndarray) – The computed points (in case they were not provided)
  • -
-

-
-
- -
-
-calc_SAngVect(Pts, In='(X, Y, Z)', Colis=True, Test=True)[source]
-

Return the Solid Angle of the Detect-Apert system as seen from the specified points, including collisions detection or not

-

Compute the solid angle and the directing vector subtended by the Detect-Optics system as seen from the desired points (provided in the specified coordinates). -This can be useful for visualizing the solid angle distribution or for computing synthetic signal from simulated emissivity in a 3D numerical integration manner. -The automtic detection of collisions with the edges of the Ves object can be switched off (not recommended).

- --- - - - - - -
Parameters:
    -
  • Pts (np.ndarray) – (2,N) or (3,N) array of coordinates of the provided N points
  • -
  • In (str) – Flag indicating in which coordinate system the Pts are provided, must be in [‘(R,Z)’,’(X,Y,Z)’,’(R,phi,Z)’]
  • -
  • Colis (bool) – Flag indicating whether collision detection should be activated
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

SAng (np.ndarray) – (N,) array of floats, the computed solid angles

-
-
- -
-
-calc_Sig(ff, extargs={}, Method='Vol', Mode='simps', PreComp=True, epsrel=0.0001, dX12=[0.005, 0.005], dX12Mode='abs', ds=0.005, dsMode='abs', MarginS=0.001, Colis=True, Test=True)[source]
-

Return the signal computed from an input emissivity function, using a 3D or LOS method

-

The synthetic signal resulting from a simulated emissivity can be computed automatically in several ways. -The user can choose between a VOS and a LOS approach (volume integration or line integration with etendue). -In each case the user can choose between the numerical integration method (from scipy.integrate + np.sum()). -It is possible to specify that, for a VOS approach, you want to use the pre-conputed mesh for faster computation (see set_SigPrecomp()). -For a VOS approach, the user can specify how fine the discretization should be. -The collision detection with the edges of the Ves object can be switched off (not recommended).

- --- - - - - - -
Parameters:
    -
  • ff (function) –
    -
    Input emissiviy function, should take one input as follows:
    -
      -
    • ff(Pts), where Points is a np.ndarray of shape=(3,N), with the (X,Y,Z) coordinates of any N number of points
    • -
    -
    -
    -
  • -
  • Method (str) – Flag indicating whether the spatial integration should be done with a volume (‘Vol’) or a LOS (‘LOS’) approach
  • -
  • Mode (str) – Flag indicating the numerical integration method in [‘quad’,’simps’,’trapz’,’nptrapz’,’sum’]
  • -
  • PreComp (bool) – Flag indicating whether the pre-computed grid should be used
  • -
  • epsrel (float) – Float specifying the tolerated relative error on the numerical integration, used for ‘quad’
  • -
  • dX12 (list) – Array of the 2 resolutions to be used to define the grid in a plane perpendicular to the LOS
  • -
  • dX12Mode (str) – Flag specifying whether the values in dX12 are absolute distances or relative values (i.e. fraction of the total width [0;1])
  • -
  • ds (float) – Float indicating the resolution in the longitudinal direction
  • -
  • dsMode (str) – Flag specifying whether ds is an absolute distance or relative (i.e. fraction of the total length [0;1])
  • -
  • Colis (bool) – Flag indicating whether collision detection should be used
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

Sig (float) – The computed signal

-
-
- -
-
-isInside(Points, In='(X, Y, Z)', Test=True)[source]
-

Return an array of indices indicating whether each point lies both in the cross-section and horizontal porojections of the viewing cone

-

Like for the Ves object, points can be provided in 2D or 3D coordinates (specified by ‘In’), and an array of booleans is returned.

- --- - - - - - -
Parameters:
    -
  • Points (np.ndarray) – (2,N) or (3,N) array of coordinates of the N points to be tested
  • -
  • In (str) –
    -
    Flag indicating in which coordinate system the Points are provided, must be in [‘(R,Z)’,’(Y,Z)’,’(X,Y)’,’(X,Y,Z)’,’(R,phi,Z)’]
    -
      -
    • ‘(R,Z)’: All points are assumed to lie in the horizontal projection, for ‘Tor’ vessel type only
    • -
    • ‘(Y,Z)’: All points are assumed to lie in the horizontal projection, for ‘Lin’ vessel type only
    • -
    • ‘(X,Y)’: All points are assumed to lie in the cross-section projection
    • -
    -
    -
    -
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

ind (np.ndarray) – (N,) array of booleans with True if a point lies inside both projections of the viewing cone

-
-
- -
-
-nIn
-

Return the normalized vector perpendicular to the polygon surface and oriented towards the interior of the associated vessel (in 3D cartesian coordinates)

-
- -
-
-plot(Lax=None, Proj='All', Elt='PVC', EltLOS='LDIORP', EltOptics='P', EltVes='', Leg=None, LOSRef=None, Pdict={'lw': 2, 'c': 'k', 'ls': 'solid'}, Vdict={'color': 'r', 'lw': 2, 'ls': 'solid'}, Cdict={'edgecolors': 'k', 'antialiaseds': False, 'linestyles': '-', 'linewidths': 0.0, 'alpha': 0.2, 'facecolors': (0.8, 0.8, 0.8, 0.2)}, LVIn=0.1, LOSdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'EltVes': '', 'Proj': 'All', 'Test': True, 'Elt': 'LDIORP', 'MdictP': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictR': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Leg': '', 'Lplot': 'Tot', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'MdictI': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Ldict': {'lw': 2, 'c': 'k'}, 'MdictO': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictD': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}}, Opticsdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'Pdict': {'lw': 2, 'c': 'k', 'ls': 'solid'}, 'Vdict': {'color': 'r', 'lw': 2, 'ls': 'solid'}, 'EltVes': '', 'Leg': '', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'LVIn': 0.1, 'Test': True, 'Elt': 'PV', 'Proj': 'All'}, Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True)[source]
-

Plot the Detect instance in a projection or in 3D, its polygon, perpendicular vector, projected viewing cones and optionally its LOS, Apert, and Ves objects

-

The Detect instance can be plotted in a cross-section or horizontal projection, or in 3D. -Several of its attributes can be plotted too using the usual ‘Elt’ keyword argument. -Dedicated ‘Elt’ keyword arguments are also usable to specify the elements to be plotted for sub-classes like LOS, Apert, and Ves. -Dedicated dictionary help specify how each element sshould be plotted.

- --- - - - - - -
Parameters:
    -
  • Lax (None, plt.Axes or list) – Axes or list of axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • Proj (str) – Flag indicating whether to plot the cross-section (‘Cross’), the horizontal projection (‘Hor’), both (‘All’) or a 3D representation (‘3D’)
  • -
  • Elt (str) –
    -
    Flag indicating which elements of the Detect instance to plot, each capital letter stands for an element
    -
      -
    • ‘P’: polygon
    • -
    • ‘V’: perpendicular vector
    • -
    • ‘C’: viewing cone
    • -
    -
    -
    -
  • -
  • EltLOS (None or str) – Flag indicating which elements of the LOS to plot, will be fed to LOS.plot(), if None uses the ‘Elt’ arg of LOSdict instead
  • -
  • EltOptics (None or str) – Flag indicating which elements of the Aperts to plot, will be fed to Apert.plot(), if None uses the ‘Elt’ arg of Apertdict instead
  • -
  • EltVes (None or str) – Flag indicating which elements of the Ves to plot, will be fed to plot(), if None uses the ‘Elt’ arg of Vesdict instead
  • -
  • Leg (str) – Legend to be used for the detector, if ‘’ the Detect.iD.Name is used
  • -
  • LOSRef (None or str) – Flag indicating which LOS should be represented, if None Detect._LOSRef is used
  • -
  • Pdict (dict) – Dictionary of properties for the Polygon
  • -
  • Vdict (dict) – Dictionary of properties for the Vector
  • -
  • Cdict (dict) – Dictionary of properties for the Cone
  • -
  • LVIn (float) – Length of the Vector
  • -
  • LOSdict (dict) – Dictionary of properties for the LOS if EltLOS is not ‘’, fed to LOS.plot()
  • -
  • Apertdict (dict) – Dictionary of properties for the Apert if EltOptics is not ‘’, fed to Apert.plot()
  • -
  • Vesdict (dict) – Dictionary of properties for the Ves if EltVes is not ‘’, fed to plot()
  • -
  • LegDict (dict) – Dictionary of properties for the legend, fed to plt.legend()
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the default figure should be of size a4 paper
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

Lax plt.Axes or list – Axes or list of axes used for plotting

-
-
- -
-
-plot_Etend_AlongLOS(ax=None, NP=20, kMode='rel', Modes=['trapz'], Length='', RelErr=0.001, dX12=[0.005, 0.005], dX12Mode='abs', Ratio=0.02, LOSRef=None, LOSPts=True, Ldict={'lw': 2, 'c': 'k', 'ls': 'solid'}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, Colis=True, draw=True, a4=True, Test=True)[source]
-

Plot the etendue of the selected LOS along it, with or without collision detection

-

The number of points along the LOS where the etendue is computed can be specified via arguments, as well as the numerical integration method. -Arguments Length, NP, Modes, RelErr, dX12, dX12Mode, Ratio, Colis, LOSRef are fed to calc_Etendue_AlongLOS()

- --- - - - - - -
Parameters:
    -
  • ax (None or plt.Axes) – Axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • kMode (str) – Flag indicating whether the distance on the line should be plotted as abolute distance (‘abs’) or relative to the total length (‘rel’)
  • -
  • Ldict (dict) – Dictionary of properties for plotting the result
  • -
  • LegDict (None / dict) – If None, no legend is plotted, else LegDict is fed to :meth:’~matplotlib.pyplot.Axes.legend’
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the created figure should have a4 dimensions (useful for printing)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

ax (plt.Axes) – The axes used for plotting

-
-
- -
-
-plot_SAngNb(Lax=None, Proj='Cross', Slice='Int', Pts=None, plotfunc='scatter', DRY=None, DXTheta=None, DZ=None, Elt='P', EltVes='P', EltLOS='', EltOptics='P', Pdict={'lw': 2, 'c': 'k', 'ls': 'solid'}, Vdict={'color': 'r', 'lw': 2, 'ls': 'solid'}, Cdict={'edgecolors': 'k', 'antialiaseds': False, 'linestyles': '-', 'linewidths': 0.0, 'alpha': 0.2, 'facecolors': (0.8, 0.8, 0.8, 0.2)}, LVIn=0.1, LOSdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'EltVes': '', 'Proj': 'All', 'Test': True, 'Elt': 'LDIORP', 'MdictP': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictR': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Leg': '', 'Lplot': 'Tot', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'MdictI': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Ldict': {'lw': 2, 'c': 'k'}, 'MdictO': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictD': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}}, Opticsdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'Pdict': {'lw': 2, 'c': 'k', 'ls': 'solid'}, 'Vdict': {'color': 'r', 'lw': 2, 'ls': 'solid'}, 'EltVes': '', 'Leg': '', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'LVIn': 0.1, 'Test': True, 'Elt': 'PV', 'Proj': 'All'}, Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, CDictSA=None, CDictNb=None, Colis=True, a4=False, draw=True, Test=True)[source]
-

Plot the solid angle projections (integrated ‘Int’ or maximum ‘Max’) as well as the number of detectors visible from each point in the plasma

-

Mostly useful with the GDetect object, used to visualize the goemetrical coverage in terms of total solid angle and number of detectors ‘seeing’ each point for a set of detectors (see calc_SAngNb() method for details).

- --- - - - - - -
Parameters:
    -
  • Lax (None or list or plt.Axes) – Axes or list of Axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • Proj (str) – Flag indicating whether to plot the cross-section (‘Cross’) or the horizontal projection (‘Hor’)
  • -
  • Mode (str, None or float) –
    -
    Flag indicating whether to plot:
    -
      -
    • ‘Int’: the integrated value along the projected coordinates
    • -
    • ‘Max’: the maximum value along the projected coordinates
    • -
    • float: the projected coordinate at which to plot the slice (Theta or X if Proj=’Cross’, Z if Proj=’Hor’)
    • -
    • None: the slice is done in the middle of the viewing volume
    • -
    -
    -
    -
  • -
  • plotfunc (str) – Flag indicating which plotting method to use (‘scatter’, ‘contour’, ‘contourf’ or ‘imshow’)
  • -
  • DCross (float) – Resolution along the 1st cross-section coordinate (R for Type=’Tor’, Y for Type=’Lin’)
  • -
  • DXTheta (float) – Resolution along the ignorable coordinate (Theta for Type=’Tor’, X for Type=’Lin’)
  • -
  • DZ (float) – Vertical resolution (for both Types)
  • -
  • CDictSA (dict) – Properties of the solid angle plot, to be fed to the function chosen by plotfunc
  • -
  • CDictNb (dict) – Properties of the Nb plot, to be fed to the chsoen plotting routine
  • -
  • Colis (bool) – Flag indicating whether collision detection should be used
  • -
  • a4 (bool) – Flag indicating whether to use a4 dimensions to create a new figure if Lax=None
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

Lax (plt.Axes or list) – List of the axes used for plotting

-
-
- -
-
-plot_Sinogram(ax=None, Proj='Cross', Elt='DLV', Ang='theta', AngUnit='rad', Sketch=True, Ddict={'lw': 1, 'c': 'k', 'ls': 'solid'}, Ldict={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, Vdict={'edgecolor': (0.8, 0.8, 0.8, 1.0), 'linewidth': 1, 'linestyle': 'solid', 'facecolor': (0.8, 0.8, 0.8, 1.0)}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, LOSRef=None, draw=True, a4=False, Test=True)[source]
-

Plot the the Detect VOS in projection space, optionally also the associated Ves object and reference LOS

-

In projection space, a VOS is a patch (as opposed to a LOS which is a point). -The patch is estimated by plotting a large number of LOS sampling the VOS and taking the convex hull of the resulting points on projection space. -Notice that this method results in irrelevant patches for VOS lying at the edges of the projection space. -See plot_Sinogram() for details.

- --- - - - - - -
Parameters:
    -
  • ax (None / plt.Axes) – Axes on which to plot the Etendue, if None a default axes is created
  • -
  • Proj (str) – Flag indicating whether to plot the traditional sinogram in a cross-section (‘Cross’) or a 3D sinogram (‘3d’), cannot be ‘3d’ if ‘D’ in Elt.
  • -
  • Elt (str) – Flags indicating whether to plot the VOS of the Detect (‘D’ in Elt => only Proj=’Cross’), the LOS (‘L’ in Elt) and the Ves (‘V’ in Elt)
  • -
  • Ang (str) – Flag indicating which angle to use for the plot, with respect to the considered line () or to the impact parameter line ()
  • -
  • AngUnit (str) – Flag indicating whether the angle should be measured in ‘rad’ or ‘deg’
  • -
  • Sketch (bool) – Flag indicating whether a small sketch illustrating the definitions of angles and impact parameter should be included
  • -
  • Ddict (dict) – Plotting properties of the VOS of the Detect, fed to plt.plot()
  • -
  • Ldict (dict) – Plotting properties of the LOS, fed to plt.plot()
  • -
  • Vdict (dict) – Plotting properties of the Ves, fed to plt.plot()
  • -
  • LegDict (None / dict) – Plotting properties of the legend, if None no legend is plotted
  • -
  • LOSRef (None / str) – Flag indicating which LOS to plot, if None self._LOSRef is used
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the created figure should have a4 dimensions (useful for printing)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

ax (plt.Axes) – The axes used for plotting

-
-
- -
-
-refine_ConePoly(dMax=0.02, Proj='Cross', indPoly=0, Verb=True, Test=True)[source]
-

Reduce the number of points of the selected Cone_Poly projection using the provided maximum distance and checking for convexity

-

Provide a built-in method to simplify the 2 projections of the viewing cone (VOS). -In its raw form, the projection of the VOS is a polygon with potentially a high number of points (computed using matplotlib._cntr() function). -A re-sampled version of this polygon is computed by taking its convex hull and checking, for each edge, how far it is from the original edge. -Each edge (2 points) of the convex hull is then compared to the set of original edges it encloses. -If the maximum distance between this convex hull-derived edge and the original set of edges is smaller than dMax, then the convex hull-derived egde is used, otherwise the original edges are preserved. -The method does not return a value, instead it assigns the new polygon to a dedicated attribute of the object, thus ensuring that both the original and the re-sampled projections of the VOS are available.

- --- - - - -
Parameters:
    -
  • dMax (float) – Threshold absolute distance that limits the acceptable discrepancy between the original polygon and its convex hull (checked for each edge of the convex hull)
  • -
  • Proj (str) – Flag indicating to which projection of the VOS the method should be applied
  • -
  • indPoly (int) – Index of the polygon to be treated (i.e.: in case one projection of the VOS results in a list of several polygons instead of just one polygon as is usually the case)
  • -
  • Verb (bool) – Flag indicating whether a one-line comment should be printed at the end of the calculation giving the number of points of the new polygon vs the number of points of the original polygon
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
-
- -
-
-save(SaveName=None, Path=None, Mode='npz', SynthDiag=False)[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() -In the case of Detect and GDetect instances, there is an additional keyword argument ‘SynthDiag’ which allows to not save the pre-computed 3D mesh of the VOS for synthetic diagnostic. -Indeed, this pre-computed data is often large and results in big files. Not saving it results in significantly smaller files, and it can be re-computed when loading the instance.

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
  • SynthDiag (bool) – Flag indicating whether the pre-computed mesh for synthetic diagnostics calculations shall be saved too (can be heavy, if False, it will be re-computed when opening the saved object)
  • -
-
-
- -
-
-set_SigPrecomp(CalcPreComp=True, dX12=None, dX12Mode=None, ds=None, dsMode=None, MarginS=None, Colis=None)[source]
-

Precompute a 3D grid for fast integration of a 3D emissivity for a synthetic diagnostic approach

-

In order to accelerate the computation of synthetic signal from simulated emissivity, it is possible to pre-compute a discretisation of the VOS (mesh points + solid angle) and store it as an attribute of the Detect object. -While such pre-computation does speed-up significantly the numerical integration, it also burdens the object with heavy attributes that can make it too big to save. -Hence, the saving method has a special argument that allows to specify that these pre-computed attributes should not be saved but should instead be re-computed automatically when loading the file. -The parameters dX12, dX12Mode, ds and dsMode give the user control over how fine the discretization of the VOS should be, which affects both the accuracy of the numerical integration and the size of the resulting mesh.

- --- - - - -
Parameters:
    -
  • CalcPreComp (bool) – Flag indicating whether the pre-computation should be run
  • -
  • dX12 (list) – Array of the 2 resolutions to be used to define the grid in a plane perpendicular to the LOS
  • -
  • dX12Mode (str) – Flag specifying whether the values in dX12 are absolute distances or relative values (i.e. fraction of the total width [0;1])
  • -
  • ds (float) – Float indicating the resolution in the longitudinal direction
  • -
  • dsMode (str) – Flag specifying whether ds is an absolute distance or relative (i.e. fraction of the total length [0;1])
  • -
  • MarginS (float) – Float specifying
  • -
  • Colis (bool) – Flag indicating whether collision detection should be used
  • -
-
-
- -
- -
-
-class tofu.geom.GDetect(Id, LDetect, Type=None, Exp=None, Diag=None, shot=None, Sino_RefPt=None, LOSRef=None, arrayorder='C', Clock=False, dtime=None, dtimeIn=False, SavePath=None)[source]
-

An object grouping a list of Detect objects with some common features (e.g.: all belong to the same camera) and the same Ves object, provides methods for common computing and plotting

-

A GDetect object is a convenient tool for managing groups of detectors, applying common treatment, plotting... -It is typically suited for a camera (e.g.: a group of detectors sharing a common aperture)

- --- - - - -
Parameters:
    -
  • Id (str or tfpf.ID) – A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to ID
  • -
  • LDetect (list or Detect) – List of Detect instances with the same Ves instance
  • -
  • Type (None) – Not used in the current verion of tofu
  • -
  • Exp (None or str) – Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used
  • -
  • Diag (None or str) – Diagnostic to which the Lens belongs
  • -
  • shot (None or int) – Shot number from which this Lens is usable (in case its position was changed from a previous configuration)
  • -
  • SavePath (None / str) – If provided, forces the default saving path of the object to the provided value
  • -
  • Sino_RefPt (None or iterable) – If provided, forces the common Sino_RefPt to the provided value for all Detect instances
  • -
  • arrayorder (str) – Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous (‘C’) or Fortran-contiguous (‘F’)
  • -
  • dtime (None or dtm.datetime) – A time reference to be used to identify this particular instance (used for debugging mostly)
  • -
  • dtimeIn (bool) – Flag indicating whether dtime should be included in the SaveName (used for debugging mostly)
  • -
-
-
-
-Id
-

the associated tfpf.ID object

-
- -
-
-LDetect
-

Return the list of Detect instances the GDetect object comprises

-
- -
-
-Optics
-

Return the list of optics the GDetect object comprises (either Lens or Apert)

-
- -
-
-Sino_RefPt
-

Return the coordinates (R,Z) or (Y,Z) for Ves of Type ‘Tor’ or (Y,Z) for Ves of Type ‘Lin’ of the reference point used to compute the sinogram

-
- -
-
-Ves
-

Return the Ves instance associated to the GDetect object

-
- -
-
-calc_SAngVect(Pts, In='(X, Y, Z)', Colis=True, Test=True)[source]
-

Applies calc_SAngVect() to all Detect instances

-

Return the result as two 2D arrays where the first dimension is the number of Detect instances -see calc_SAngVect() for details

-
- -
-
-calc_Sig(ff, extargs={}, Method='Vol', Mode='simps', PreComp=True, epsrel=0.0001, dX12=[0.005, 0.005], dX12Mode='abs', ds=0.005, dsMode='abs', MarginS=0.001, Colis=True, Test=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Applies calc_Sig() to all Detect instances

-

See calc_Sig() for details -Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to select()

-
- -
-
-get_GLOS(Name=None, LOSRef=None)[source]
-

Return the GLOS instance that can be built by grouping the LOS of each Detect instance

-

Can be useful for handling a GLOS instead of a GDetect (heavier) instance

- --- - - - - - -
Parameters:
    -
  • Name (None / str) – Name to be given to the GLOS instance, if None a name is built from the name of the GDetect object by appending ‘_GLOS’
  • -
  • LOSRef (None / str) – Key indicating which LOS to be used, if None the default LOSRef is used
  • -
-
Returns:

glos (GLOS) – The constructed GLOS instance

-
-
- -
-
-isInside(Points, In='(X, Y, Z)', Test=True)[source]
-

Return an array of indices indicating whether each point lies both in the cross-section and horizontal porojections of the viewing cone of each Detect

-

see isInside() for details

- --- - - - - - -
Parameters:
    -
  • Points (np.ndarray) – (2,N) or (3,N) array of coordinates of the N points to be tested
  • -
  • In (str) –
    -
    Flag indicating in which coordinate system the Points are provided, must be in [‘(R,Z)’,’(Y,Z)’,’(X,Y)’,’(X,Y,Z)’,’(R,phi,Z)’]
    -
      -
    • ‘(R,Z)’: All points are assumed to lie in the horizontal projection, for ‘Tor’ vessel type only
    • -
    • ‘(Y,Z)’: All points are assumed to lie in the horizontal projection, for ‘Lin’ vessel type only
    • -
    • ‘(X,Y)’: All points are assumed to lie in the cross-section projection
    • -
    -
    -
    -
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

ind (np.ndarray) – (ND,N) array of booleans with True if a point lies inside both projections of the viewing cone, where ND is the number of Detect instances

-
-
- -
-
-nDetect
-

Return the number of Detect instances the GDetect object comprises

-
- -
-
-plot(Lax=None, Proj='All', Elt='PVC', EltLOS='LDIORP', EltOptics='P', EltVes='', Leg=None, LOSRef=None, Pdict={'lw': 2, 'c': 'k', 'ls': 'solid'}, Vdict={'color': 'r', 'lw': 2, 'ls': 'solid'}, Cdict={'edgecolors': 'k', 'antialiaseds': False, 'linestyles': '-', 'linewidths': 0.0, 'alpha': 0.2, 'facecolors': (0.8, 0.8, 0.8, 0.2)}, LVIn=0.1, LOSdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'EltVes': '', 'Proj': 'All', 'Test': True, 'Elt': 'LDIORP', 'MdictP': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictR': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Leg': '', 'Lplot': 'Tot', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'MdictI': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Ldict': {'lw': 2, 'c': 'k'}, 'MdictO': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictD': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}}, Opticsdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'Pdict': {'lw': 2, 'c': 'k', 'ls': 'solid'}, 'Vdict': {'color': 'r', 'lw': 2, 'ls': 'solid'}, 'EltVes': '', 'Leg': '', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'LVIn': 0.1, 'Test': True, 'Elt': 'PV', 'Proj': 'All'}, Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Plot all or a subset of the Detect instances in a projection or in 3D

-

See plot() for details -Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to select()

- --- - - - - - -
Parameters:
    -
  • Lax (None, plt.Axes or list) – Axes or list of axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • Proj (str) – Flag indicating whether to plot the cross-section (‘Cross’), the horizontal projection (‘Hor’), both (‘All’) or a 3D representation (‘3D’)
  • -
  • Elt (str) –
    -
    Flag indicating which elements of the Detect instance to plot, each capital letter stands for an element
    -
      -
    • ‘P’: polygon
    • -
    • ‘V’: perpendicular vector
    • -
    • ‘C’: viewing cone
    • -
    -
    -
    -
  • -
  • EltLOS (None or str) – Flag indicating which elements of the LOS to plot, will be fed to LOS.plot(), if None uses the ‘Elt’ arg of LOSdict instead
  • -
  • EltOptics (None or str) – Flag indicating which elements of the Aperts to plot, will be fed to Apert.plot(), if None uses the ‘Elt’ arg of Apertdict instead
  • -
  • EltVes (None or str) – Flag indicating which elements of the Ves to plot, will be fed to plot(), if None uses the ‘Elt’ arg of Vesdict instead
  • -
  • Leg (str) – Legend to be used for the detector, if ‘’ the Detect.iD.Name is used
  • -
  • LOSRef (None or str) – Flag indicating which LOS should be represented, if None Detect._LOSRef is used
  • -
  • Pdict (dict) – Dictionary of properties for the Polygon
  • -
  • Vdict (dict) – Dictionary of properties for the Vector
  • -
  • Cdict (dict) – Dictionary of properties for the Cone
  • -
  • LVIn (float) – Length of the Vector
  • -
  • LOSdict (dict) – Dictionary of properties for the LOS if EltLOS is not ‘’, fed to LOS.plot()
  • -
  • Apertdict (dict) – Dictionary of properties for the Apert if EltOptics is not ‘’, fed to Apert.plot()
  • -
  • Vesdict (dict) – Dictionary of properties for the Ves if EltVes is not ‘’, fed to plot()
  • -
  • LegDict (dict) – Dictionary of properties for the legend, fed to plt.legend()
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the default figure should be of size a4 paper
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

Lax plt.Axes or list – Axes or list of axes used for plotting

-
-
- -
-
-plot_Etend_AlongLOS(ax=None, NP=20, kMode='rel', Modes=['trapz'], RelErr=None, dX12=None, dX12Mode=None, Ratio=None, LOSRef=None, LOSPts=True, Ldict={'lw': 2, 'c': 'k', 'ls': 'solid'}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, Colis=True, draw=True, a4=True, Test=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Plot the etendue of the selected LOS along it, with or without collision detection

-

The number of points along the LOS where the etendue is computed can be specified via arguments, as well as the numerical integration method. -See plot_Etendue_AlongLOS() for details -Arguments Length, NP, Modes, RelErr, dX12, dX12Mode, Ratio, Colis, LOSRef are fed to calc_Etendue_AlongLOS() -Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to select()

- --- - - - - - -
Parameters:
    -
  • ax (None or plt.Axes) – Axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • NP (int) – Number of points along the LOS at which the Etendue should be computed
  • -
  • kMode (str) – Flag indicating whether the distance on the line should be plotted as abolute distance (‘abs’) or relative to the total length (‘rel’)
  • -
  • Modes (str or list) – Flag or list of flags indicating which integration method should be used
  • -
  • Colis (bool) – Flag indicating whether collision detection should be used
  • -
  • LOSRef (None or str) – Flag indicating which LOS should be used
  • -
  • Ldict (dict) – Dictionary of properties for plotting the result
  • -
  • LegDict (None / dict) – If None, no legend is plotted, else LegDict is fed to :meth:’~matplotlib.pyplot.Axes.legend’
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the created figure should have a4 dimensions (useful for printing)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

ax (plt.Axes) – The axes used for plotting

-
-
- -
-
-plot_Etendues(Mode='Etend', Elt='', ax=None, Adict={'marker': '+', 'lw': 2, 'c': 'k', 'ls': 'None'}, Rdict={'marker': 'x', 'lw': 2, 'c': 'b', 'ls': 'None'}, Edict={'marker': 'o', 'lw': 2, 'c': 'g', 'ls': 'None'}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Plot the etendues of all or a subset of the Detect instances for the chosen LOS

-

A given Detect+Optics system has a VOS, under proper conditions, this VOS can be approximated by a LOS, but the choice of the LOS is not unique, there is an infinite number of possible LOS in a single VOS. -The LOS automatically computed by tofu os the ‘natural’ option : goes from the midlle of the Detect area throught the middle of the optics. -Then tofu automatically computes the associated etendue. -This methods plots all the etendues of all the chosen Detect instances for the chosen LOS, which is by default the ‘natural’ LOS computed by tofu

- --- - - - - - -
Parameters:
    -
  • Mode (str) – Flasg indicating whether to plot the etendue (‘Etend’) or a geometrical calibration factor (‘Calib’) computed as the 4pi/etendue
  • -
  • Elt (str) – Flag indicating whether to plot, in addition to the etendue, also the direct (‘A’) and reverse (‘R’) 0-order approximation of the etendue
  • -
  • ax (None or plt.Axes) – Axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • Adict (dict) – Dictionary of properties for plotting the direct 0-order approximation of the etendue (if ‘A’ in Elt), fed to plot()
  • -
  • Rdict (dict) – Dictionary of properties for plotting the reverse 0-order approximation of the etendue (if ‘R’ in Elt), fed to plot()
  • -
  • Edict (dict) – Dictionary of properties for plotting the etendue, fed to plot()
  • -
  • LegDict (dict) – If None, no legend is plotted, else LegDict is fed to :meth:’~matplotlib.pyplot.Axes.legend’
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the created figure should have a4 dimensions (useful for printing)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

ax (plt.Axes) – The axes used for plotting

-
-
- -
-
-plot_SAngNb(Lax=None, Proj='Cross', Slice='Int', Pts=None, plotfunc='scatter', DRY=None, DXTheta=None, DZ=None, Elt='P', EltVes='P', EltLOS='', EltOptics='P', Pdict={'lw': 2, 'c': 'k', 'ls': 'solid'}, Vdict={'color': 'r', 'lw': 2, 'ls': 'solid'}, Cdict={'edgecolors': 'k', 'antialiaseds': False, 'linestyles': '-', 'linewidths': 0.0, 'alpha': 0.2, 'facecolors': (0.8, 0.8, 0.8, 0.2)}, LVIn=0.1, LOSdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'EltVes': '', 'Proj': 'All', 'Test': True, 'Elt': 'LDIORP', 'MdictP': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictR': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Leg': '', 'Lplot': 'Tot', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'MdictI': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'Ldict': {'lw': 2, 'c': 'k'}, 'MdictO': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, 'MdictD': {'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}}, Opticsdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'Pdict': {'lw': 2, 'c': 'k', 'ls': 'solid'}, 'Vdict': {'color': 'r', 'lw': 2, 'ls': 'solid'}, 'EltVes': '', 'Leg': '', 'Lax': None, 'Vesdict': {'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, 'LVIn': 0.1, 'Test': True, 'Elt': 'PV', 'Proj': 'All'}, Vesdict={'draw': True, 'LegDict': {'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, 'BsdictHor': {'c': 'b', 'ls': 'dashed'}, 'Bvdict': {'marker': 'x', 'mew': 2, 'c': 'g', 'markersize': 8, 'ls': 'dashed'}, 'Lim': [1.5707963267948966, 6.283185307179586], 'Test': True, 'Proj': 'All', 'IdictHor': {'c': 'k', 'ls': 'dashed'}, 'Elt': 'PIBsBvV', 'Pdict': None, 'Vdict': {'color': 'r', 'scale': 10}, 'Idict': {'marker': 'x', 'mew': 2, 'c': 'k', 'markersize': 8, 'ls': 'dashed'}, 'Bsdict': {'marker': 'x', 'mew': 2, 'c': 'b', 'markersize': 8, 'ls': 'dashed'}, 'Lax': None, 'BvdictHor': {'c': 'g', 'ls': 'dashed'}, 'Nstep': 50}, CDictSA=None, CDictNb=None, Colis=True, a4=False, draw=True, Test=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Plot the solid angle projections (integrated ‘Int’ or maximum ‘Max’) as well as the number of detectors visible from each point in the plasma

-

See plot_SAngNb() for details -Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to select()

- --- - - - - - -
Parameters:
    -
  • Lax (None or list or plt.Axes) – Axes or list of Axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • Proj (str) – Flag indicating whether to plot the cross-section (‘Cross’) or the horizontal projection (‘Hor’)
  • -
  • Mode (str, None or float) –
    -
    Flag indicating whether to plot:
    -
      -
    • ‘Int’: the integrated value along the projected coordinates
    • -
    • ‘Max’: the maximum value along the projected coordinates
    • -
    • float: the projected coordinate at which to plot the slice (Theta or X if Proj=’Cross’, Z if Proj=’Hor’)
    • -
    • None: the slice is done in the middle of the viewing volume
    • -
    -
    -
    -
  • -
  • plotfunc (str) – Flag indicating which plotting method to use (‘scatter’, ‘contour’, ‘contourf’ or ‘imshow’)
  • -
  • DCross (float) – Resolution along the 1st cross-section coordinate (R for Type=’Tor’, Y for Type=’Lin’)
  • -
  • DXTheta (float) – Resolution along the ignorable coordinate (Theta for Type=’Tor’, X for Type=’Lin’)
  • -
  • DZ (float) – Vertical resolution (for both Types)
  • -
  • CDictSA (dict) – Properties of the solid angle plot, to be fed to the function chosen by plotfunc
  • -
  • CDictNb (dict) – Properties of the Nb plot, to be fed to ...
  • -
  • Colis (bool) – Flag indicating whether collision detection should be used
  • -
  • a4 (bool) – Flag indicating whether to use a4 dimensions to create a new figure if Lax=None
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

Lax plt.Axes or list List of the axes used for plotting

-
-
- -
-
-plot_Sig(ffSig, extargs={}, Method='Vol', Mode='simps', ax=None, Leg='', Sdict={'marker': '+', 'lw': 2, 'c': 'k', 'ls': 'solid'}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, draw=True, a4=False, Test=True, PreComp=True, epsrel=0.0001, dX12=[0.005, 0.005], dX12Mode='abs', ds=0.005, dsMode='abs', MarginS=0.001, Colis=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Plot the ignal computed for each or a subset of the Detect instances

-

If the signal is not directly provided as an array, it is computed from a function. -If ffSig is a callable function, arguments ffSig, extargs, Method, Mode, PreComp, epsrel, dX12, dX12Mode, ds, dsMode, MarginS, Colis and Test are fed to calc_Sig() -Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to select()

- --- - - - - - -
Parameters:
    -
  • np.ndarray or callable (ffSig) – Either a np.ndarray containing the signal to be plotted (of shape (ND,) or (N,ND) where ND is the number of detectors to be plotted) or a callable to be fed to for computing the signal
  • -
  • ax (None or plt.Axes) – Axes to be used for plotting, if None a new figure and appropriate axes are created
  • -
  • Sdict (dict) – Dictionary of properties for plotting the signal, fed to plot()
  • -
  • Leg (str) – Label to be used for the plot
  • -
  • LegDict (dict) – If None, no legend is plotted, else LegDict is fed to :meth:’~matplotlib.pyplot.Axes.legend’
  • -
  • draw (bool) – Flag indicating whether to draw the figure
  • -
  • a4 (bool) – Flag indicating whether the created figure should have a4 dimensions (useful for printing)
  • -
  • Test (bool) – Flag indicating whether the inputs should be tested for conformity
  • -
-
Returns:

ax (plt.Axes) – The axes used for plotting

-
-
- -
-
-plot_Sinogram(ax=None, Proj='Cross', Elt='DLV', Ang='theta', AngUnit='rad', Sketch=True, Ddict={'lw': 1, 'c': 'k', 'ls': 'solid'}, Ldict={'c': 'k', 'markersize': 8, 'lw': 2, 'mew': 2, 'ls': 'None', 'marker': 'x'}, Vdict={'edgecolor': (0.8, 0.8, 0.8, 1.0), 'linewidth': 1, 'linestyle': 'solid', 'facecolor': (0.8, 0.8, 0.8, 1.0)}, LegDict={'loc': 2, 'bbox_to_anchor': (1.01, 1), 'prop': {'size': 10}, 'ncol': 1, 'borderaxespad': 0.0, 'frameon': False}, LOSRef=None, draw=True, a4=False, Test=True, ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In')[source]
-

Plot the VOS of all or of a subset of the Detect instances in projection space, optionally also the associated Ves object and reference LOS

-

See plot_Sinogram() for details -Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to select()

-
- -
-
-save(SaveName=None, Path=None, Mode='npz', SynthDiag=False)[source]
-

Save the object in folder Name, under file name SaveName, using specified mode

-

Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() -In the case of Detect and GDetect instances, there is an additional keyword argument ‘SynthDiag’ which allows to not save the pre-computed 3D mesh of the VOS for synthetic diagnostic. -Indeed, this pre-computed data is often large and results in big files. Not saving it results in significantly smaller files, and it can be re-computed when loading the instance.

- --- - - - -
Parameters:
    -
  • SaveName (None / str) – The name to be used for the saved file, if None (recommended) uses self.Id.SaveName
  • -
  • Path (None / str) – Path specifying where to save the file, if None (recommended) uses self.Id.SavePath
  • -
  • Mode (str) – Flag specifying whether to save the object as a numpy array file (‘.npz’, recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues)
  • -
  • SynthDiag (bool) – Flag indicating whether the pre-computed mesh for synthetic diagnostics calculations shall be saved too (can be heavy, if False, it will be re-computed when opening the saved object)
  • -
-
-
- -
-
-select(Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Out=<type 'bool'>)[source]
-

Return the indices or instances of all instances matching the specified criterion.

-

The selection can be done according to 2 different mechanism (1) and (2).

-

For mechanism (1): the user provides the value (Val) that the specified criterion (Crit) should take for a tofu.geom.Detect to be selected. -The criteria are typically attributes of the self.Id attribute (i.e.: name of the instance, or user-defined attributes like the camera head...)

-

For mechanism (2), used if Val=None: the user provides a str expression (or a list of such) to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: ‘not ‘ or ‘<=’). -Another str or list of str expressions can be provided that will be placed after the criterion value.

-

Other parameters are used to specify logical operators for the selection (match any or all the criterion...) and the type of output. -See select() for examples

- --- - - - - - -
Parameters:
    -
  • Crit (str) – Flag indicating which criterion to use for discrimination -Can be set to any attribute of the tofu.pathfile.ID class (e.g.: ‘Name’,’SaveName’,’SavePath’...) or any key of ID.USRdict (e.g.: ‘Exp’...)
  • -
  • Val (list, str or None) – The value to match for the chosen criterion, can be a list of different values -Used for selection mechanism (1)
  • -
  • PreExp (list, str or None) – A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: ‘not ‘) -Used for selection mechanism (2)
  • -
  • PostExp (list, str or None) – A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed after the criterion value (e.g.: ‘>=5.’) -Used for selection mechanism (2)
  • -
  • Log (str) – Flag indicating whether the criterion shall match all provided values or one of them (‘any’ or ‘all’)
  • -
  • InOut (str) – Flag indicating whether the returned indices are the ones matching the criterion (‘In’) or the ones not matching it (‘Out’)
  • -
  • Out (type / str) – Flag indicating in which form shall the result be returned, as an array of integer indices (int), an array of booleans (bool), a list of names (‘Names’) or a list of instances (‘Detect’)
  • -
-
Returns:

ind (list / np.ndarray) – The computed output (array of index, list of names or instances depending on parameter ‘Out’)

-
-
- -
-
-set_SigPrecomp(CalcPreComp=True, dX12=[0.005, 0.005], dX12Mode='abs', ds=0.005, dsMode='abs', MarginS=0.001, Colis=True)[source]
-

Applies set_SigPrecomp() to all Detect instances

-
- -
- -
-
-tofu.plugins.AUG.SXR.geom.create(shot=0, VesName='V1', SavePathObj=None, RootpluginElt='/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu/tofu/plugins/AUG/SXR/geom', forceshot=False, overwrite=False, save=True, CamHeads=['F', 'G', 'H1', 'H2', 'H3', 'I1', 'I2', 'I3', 'J1', 'J2', 'J3', 'K1', 'K2', 'L', 'M'], dtime=None, dtFormat='D%Y%m%d_T%H%M%S', CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, Calc=True, Verb=True, Etend_Method='quad', Etend_RelErr=0.001, Etend_dX12=[0.01, 0.01], Etend_dX12Mode='rel', Etend_Ratio=0.02, Colis=True, LOSRef='Cart', Cone_DRY=0.0025, Cone_DXTheta=0.0030679615757712823, Cone_DZ=0.0025, Cone_NPsi=20, Cone_Nk=60)[source]
-

Create the tfg.GDetect objects (i.e.: the cameras, which are groups of detectors) from geometry taken from CSX disgnostic for the proposed shot or earlier (looks for the oldest version of the matching geometry) and stores them in the SavePathObj

- --- - - - -
Parameters:
    -
  • shot (int) – Shot number for which to build the geometry
  • -
  • VesName (str) – Name of the tfg.Ves object to be fed as an input to the tfg.GDetect objects
  • -
  • SavePathObj (None / str) – Absolute path where the created tfg.GDetect objects should be saved (if save=True), if None the default is used
  • -
  • RootpluginElt (str) – If SavePathObj=None, a default value is created by appending ‘/Objects/’ to RootpluginElt
  • -
  • forceshot (bool) – Flag indicating whether the shot number shall be downgraded to the oldest shot with the same geometry (False) or whether the provided shot number shall be enforced (True, for all camera heads)
  • -
  • overwrite (bool) – Flag indicating whether new tfg.GDetect objects shall be computed (and possibly saved) when similar ones already exist (True)
  • -
  • save (bool) – Flag indicating whether to save the created tfg.GDetect objects (in SavePathObj)
  • -
  • dtime (None / dtm.datetime) – If provided (i.e.: not None), used as a label of the created tfg.GDetect objects (mostly used for debugging)
  • -
  • dtFormat (str) – The time format to be used for labelling the created tfg.GDetect objects (mostly used for debugging)
  • -
-
-

:param All other arguments are fed to Detect:

- --- - - - -
Returns:LGD (list) – A list of all the created tfg.GDetect objects
-
- -
-
-tofu.plugins.AUG.SXR.geom.load(Cams=[], shot=inf, SavePathObj=None, RootpluginElt='/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu/tofu/plugins/AUG/SXR/geom', sort=False)[source]
-

Load and return the desired tfg.GDetect objects (i.e.: camera heads)

- --- - - - -
Parameters:
    -
  • Cams (list / tfg.GDetect) – A name or a list of names of the camera heads to be loaded (available are [‘F’,’G’,’H1’,’H2’,’H3’,’I1’,’I2’,’I3’,’J1’,’J2’,’J3’,’K1’,’K2’,’L’,’M’])
  • -
  • shot (int / float / np.float) – A shot number indicating which version of the geometry should be loaded (the )
  • -
  • SavePathObj (None / str) – Absolute path where the created tfg.GDetect objects should be saved (if save=True), if None the default is used
  • -
  • RootpluginElt (str) – If SavePathObj=None, a default value is created by appending ‘/Objects/’ to RootpluginElt
  • -
  • sort (bool) – Flag indicating whether the loaded GDetect objects shall be returned sorted by alphabetical order of the names (True) or in the same order as asked in Cams (False)
  • -
  • Returns
  • -
  • --------
  • -
  • Cams – The loaded tfg.GDetect objects, returned as a single object if Cams was provided as a single name, as a list otherwise
  • -
-
-
- -
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Citation.html b/doc/build/html/Citation.html deleted file mode 100644 index ebb52ae62..000000000 --- a/doc/build/html/Citation.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - Citing ToFu: — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

Citing ToFu:

-

An article dedicated to describing ToFu and its capacities is in preparation, in the meantime please cite this one 1, which briefly describes it and uses it to present physics results. Since this paper may not present enough details for the interested reader, please also include a url pointing to this web-based documentation.

-
-
1
-
    -
  1. Vezinet et al., ‘Non-monotonic growth rates of sawtooth precursors evidenced with a new method on ASDEX Upgrade’, Nuclear Fusion 56, 086001, 2016

  2. -
-
-
-

Bibtex:

-
@article{0029-5515-56-8-086001,
-  author={D. Vezinet and V. Igochine and M. Weiland and Q. Yu and A. Gude and D. Meshcheriakov and M. Sertoli and the Asdex Upgrade
-Team and the EUROfusion MST1 Team},
-  title={Non-monotonic growth rates of sawtooth precursors evidenced with a new method on ASDEX Upgrade},
-  journal={Nuclear Fusion},
-  volume={56},
-  number={8},
-  pages={086001},
-  url={http://stacks.iop.org/0029-5515/56/i=8/a=086001},
-  year={2016},
-}
-
-
-
-

Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Dependencies.html b/doc/build/html/Dependencies.html deleted file mode 100644 index db52a34dd..000000000 --- a/doc/build/html/Dependencies.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - Dependencies — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

Dependencies

-

ToFu uses the following generic packages:

-
    -
  • python/2.7.3

  • -
  • ipython/1.1.0

  • -
  • dateutil/2.4.0

  • -
  • docutils/0.12.0

  • -
  • distribute/0.6.34

  • -
-

Scientific computing and plotting:

-
    -
  • numpy/1.9.1

  • -
  • scipy/0.15.1

  • -
  • matplotlib/1.2.1

  • -
  • polygon2

  • -
  • datetime

  • -
-

Some part of ToFu are coded using Cython, which requires Cython and a compiler:

-
    -
  • cython/0.19.1

  • -
  • gcc/4.8

  • -
  • intel/14.0

  • -
-

Testing:

-
    -
  • nose/1.3.4

  • -
-

Documentation:

-
    -
  • pygments/1.5

  • -
-

To be determined:

-
    -
  • pyzmq/13.0.2

  • -
  • tornado/2.4.1

  • -
  • setuptools

  • -
  • mdsplus/5.0_11

  • -
  • pip

  • -
  • git/1.8.4

  • -
-
-

Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Todos.html b/doc/build/html/Todos.html deleted file mode 100644 index 2ae0cc775..000000000 --- a/doc/build/html/Todos.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - To do for contributors — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

To do for contributors

-

This to do list includes aspects that require a few hours up to a few months of work. -Whenever possible, a link to a document describing the problem in details is provided.

-
-

Math and geometry:

-
    -
  • Write a C routine for (very) fast computation of solid angle in non-trival cases using spherical geometry and write a python / cython wrapper (weeks)

  • -
-
-
-

Coding:

-
    -
  • Parallelize (frist CPU then GPU) the key functions of the geometry module (months)

  • -
  • Branch the meshing module to allow compatibility with CAID/Pigasus (months)

  • -
  • Branch the matrix computation module for the same reason (months)

  • -
  • Branch the inversion module for the same reason (months)

  • -
-
-
-

Long term:

-
    -
  • Create a parallel library called ToFuG, which provides all ToFu functionalities through a GUI for each ToFu module (year)

  • -
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Tutorial_AUG.html b/doc/build/html/Tutorial_AUG.html deleted file mode 100644 index 538fcb87a..000000000 --- a/doc/build/html/Tutorial_AUG.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - AUG-specific tutorial — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

AUG-specific tutorial

-
-

How to access the ToFu library

-

The plugin for ASDEX Upgrade (AUG) is hosted on the theory (Tok) clusters of the Max-Planck Institute for Plasma Physics (IPP) in Garching. -If you have an account in IPP, you can then connect to one of the tok clusters where the library is hosted, via the command:

-
>>> ssh toki01
-
-
-

Enter your password and then you need to load the module in the terminal

-
>>> module load tofu
-
-
-

You may need to load other modules on which ToFu depends (see the dependencies).

-

You can then start a ipython console and load the AUG plugin for ToFu:

-
>>> import tofu.plugins.AUG as tfAUG
-
-
-
-
-

How to load existing geometry

-

You can now load the geometry that was already computed and stored for some diagnostics (only the Soft X-Ray diagnostic at this date). -In general loading the geometry means using a method of the plugin that will load and return a list of tofu.geom.GDetect instances. -On AUG, each tofu.geom.GDetect instance corresponds to a camera head. -Since the geometry (position, aperture size…) of each camera head may change in time (changes are sometimes implemented between experimental campaigns), you can specify a shot number and the plugin will return the latest geometry that was computed before that shot number (only a few have been computed so far, but more will come).

-
>>> LGD = tfAUG.SXR.geom.load(shot=31801)
-
-
-

This command returns a list of tofu.geom.GDetect instances with the latest geometry computed before shot 31801.

-
-
-

How to load SXR data

-

the ToFu plugin for AUG also comes with a data loading and formatting routine. -In addition to a shot number and a time window, you can choose whether the data is returned as numpy arrays or as a ToFu-compatible object for data pre-treatment via the Tofu keyword argument.

-
>>> pre = tfAUG.SXR.data.load(shot=30801, Dt=[2.,2.01], Method='SX', Tofu=True)
-
-
-

This command will return the SXR data for shot 30801 in the [2.,2.01] s time window using diagnostic ‘SX.’ (instead of SSX), in the form of a ToFu-compatible object. -See the documentation of the method for more details.

-
-
-

Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Tutorial_Geom_Advanced.html b/doc/build/html/Tutorial_Geom_Advanced.html deleted file mode 100644 index df0336e98..000000000 --- a/doc/build/html/Tutorial_Geom_Advanced.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - How to create a diagnostic geometry — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

How to create a diagnostic geometry

-

It is the geometry module that provides all the necessary tools for creating a new diagnostic. -A diagnostic comprises a set of detectors (ToFu creates one object for each detector and you can then group them into a larger object to represent cameras). -Each detector is basically defined by its active surface, which should be a planar polygon, and by a set of optics through which it ‘sees’ the plasma. -The optics can be a converging spherical lens or an arbitrary number of apertures (of arbitrary shape). -Each detector is also assigned to a vessel, which defines the linear or toroidal volume in which the plasma can exist.

-

The following guides you through the creation of these objects in the famous ‘hello-world’ example:

-

To find out more about what you can do with the geometry module check out the advanced tutorial.

-
-

Creating a vessel

-

If a vessel object does not exist yet, you have to create one (otherwise you can just load it an existing one). -A vessel object is basically defined by a 2D simple polygon (i.e.: non self-intersecting),

-
-
Open-source:

ToFu is distributed under the very permissive MIT license, thus allowing free use, keeping in mind that neither the author nor any of the laboratories in which he worked can be held responsible for unwanted behaviour or results. -It is instead transparency that is considered for as a warranty of quality on the long-term.

-

ToFu is hosted on github.

-
-
-
-
Versions:

A list of the successive versions of ToFu, with a brief description can be found here.

-
-
-
-
Dependences:

ToFu uses the following python packages.

-
-
-
-
Citing ToFu:

If you decide to use ToFu for research and published results please acknowledge this work by citing the project.

-
-
-
-
-

Contents:

-

Description of the library modules:

-
- -
-

Code documentation:

-
- -
-
-
Tutorials and how to’s:
    -
  • -
    How to build a diagnostic geometry

    Create apertures and detectors to test a new configuration, to apply ToFu to your own problems, to design a prospetive diagnostic…

    -
    -
    -
  • -
  • -
    How to compute integrated signal from 2D or 3D synthetic emissivity

    Use an already-existing diagnostic geometry in a synthetic diagnostic approach to solve the direct problem and compute the line Of Sight and / or Volume of Sight integrated signals from a simulated emissivity field that you provide as an input.

    -
    -
    -
  • -
  • -
    How to compute tomographic inversions

    Use existing diagnostic geometry and signals to solve the inverse problem and compute tomographic inversions using a choice of discretization basis functions and regularisation functionals.

    -
    -
    -
  • -
  • How to contribute (to do’s)

  • -
-
-
-
-
-
-

Indices and tables

- -
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Tutorial_Geom_HowToCreateGeometry.html b/doc/build/html/Tutorial_Geom_HowToCreateGeometry.html deleted file mode 100644 index c63cf3a00..000000000 --- a/doc/build/html/Tutorial_Geom_HowToCreateGeometry.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - How to create a diagnostic geometry — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

How to create a diagnostic geometry

-

It is the geometry module that provides all the necessary tools for creating a new diagnostic. -A diagnostic comprises a set of detectors (ToFu creates one object for each detector and you can then group them into a larger object to represent cameras). -Each detector is basically defined by its active surface, which should be a planar polygon, and by a set of optics through which it ‘sees’ the plasma. -The optics can be a converging spherical lens or an arbitrary number of apertures (of arbitrary shape). -Each detector is also assigned to a vessel, which defines the linear or toroidal volume in which the plasma can exist.

-

The following guides you through the creation of these objects in the famous ‘hello-world’ example:

-

To find out more about what you can do with the geometry module check out the advanced tutorial.

-

As a pre-requisite, let’s load some basic useful libraries in a ipython session, as well as the geometry module of ToFu:

-
>>> import numpy as np
->>> import matplotlib.pyplot as plt
->>> plt.ion()
->>> # tofu-specific
->>> import tofu.geom as tfg
-
-
-
-

Creating, plotting and saving a vessel

-

If a vessel object does not exist yet, you have to create one (otherwise you can just load it an existing one). -A vessel object is basically defined by a 2D simple polygon (i.e.: non self-intersecting), that is then expanded linearly or toroidally depending on the desired configuration. -This polygon limits the volume available for the plasma, where the emissivity can be non-zero. It is typically defined by the inner wall in a tokamak.

-

Let’s define the polygon limiting the vessel as a circle with a divertor-like shape at the bottom:

-
>>> # Define the center, radius and lower limit
->>> R0, Z0, rad, ZL = 2., 0., 1., -0.85
->>> # Define the key points in the divertor region below ZL
->>> Div_R, Div_Z = [R0-0.2, R0, R0+0.2], [-1.2, -0.9, -1.2]
->>> # Find the angles corresponding to ZL and span the rest
->>> thet1 = np.arcsin((ZL-Z0)/rad)
->>> thet2 = np.pi - thet1
->>> thet = np.linspace(thet1,thet2,100)
->>> # Assemble the polygon
->>> poly_R = np.append(R0+rad*np.cos(thet), Div_R)
->>> poly_Z = np.append(Z0+rad*np.sin(thet), Div_Z)
->>> # Plot for checking
->>> f, l, a = plt.figure(facecolor='w', figsize=(6,6)), plt.plot(poly_R, poly_Z), plt.axis('equal')
-
-
-
-Polygon used for defining the vaccum vessel where the plasma may live -

Polygon used for defining the vaccum vessel where the plasma may live

-
-

Notice that the polygon does not have to be closed, ToFu will anyway check that and close it automatically if necessary

-

Now let’s feed this 2D polygon to the appropriate ToFu class and specify that it should be a toroidal type (if linear type is chosen, the length should be specified by the ‘DLong’ keyword argument). -ToFu also asks for a name to be associated to this instance, and an experiment (‘Exp’) and a shot number (useful when the same experiment changes geometry in time).

-
>>> # Create a toroidal Ves instance with name 'World', associated to experiment 'Misc' (for 'Miscellaneous') and shot number 0
->>> ves = tfg.Ves(Name='HelloWorld', Poly=[poly_R,poly_Z], Type='Tor', Exp='Misc', shot=0)
-
-
-

Now the vessel instance is created. I provides you with several key attributes and methods (see Ves for details). -Among them the Id attribute is itself a class instance that contains all useful information about this vessel instance for identification, saving… In particular, that’s where the name, the default saving path, the Type, the experiment, the shot number… are all stored. -A default name for saving was also created that automatically includes not only the name you gave but also the module from which this instance was created (tofu.geom or tfg), the type of object, the experiment, the shot number… -This recommended default pattern is useful for quick identification of saved object, it is advised not to modify it.

-
>>> print(ves.Id.SaveName)
-TFG_VesTor_Misc_World_sh0
-
-
-

Now, we can simply visualise the created vessel by using the dedicated method (keyword argument ‘Elt’ specifies the elements of the instance we want to plot, typically one letter corresponds to one element, here we just want the polygon):

-
>>> # Plot the polygon, by default in two projections (cross-section and horizontal) and return the list of axes
->>> Lax = ves.plot(element='P')
-
-
-
-The created vessel instance, plotted in cross-section and horizontal projections -

The created vessel instance, plotted in cross-section and horizontal projections

-
-

Since the vessel is an important object (it defines where the plasma can live), all the other ToFu objects rely on it. It is thus important that you save it so that it can be used by other ToFu objects when necessary.

-
>>> ves.save(Path='./')
-
-
-

This method will save the instance as a numpy compressed file (.npz), using the path and file name found in ves.Id.SavePath and ves.Id.SaveName. -While it is highly recommended to stick to the default value for the SaveName, but you can easily modify the saving path if you want by specifying it using keyword argument Path.

-
-
-

Creating, plotting and saving structural elements and configurations

-

Unlike the vessel, which is important for physics reasons, the structural elements that ToFu allows to create are purely for illustrative purposes. They are entirely passive and have no effect whatsoever on the computation of the volume of sight of the detectors or on the plasma volume and are just made available for illustrations.

-

Like for a vessel, a structural element is mostly defined by a 2D polygon. If a vessel instance is provided, the type of the structural element (toroidal or linear) is automatically the same as the type of the vessel, otherwise the type must be specified.

-

A configuration, short for geometrical configuration is a set of vessel, and structural elements.

-
>>> # Define two polygons, one that does not enclose the vessel and one that does
->>> thet = np.linspace(0.,2.*np.pi,100)
->>> poly1 = [[2.5,3.5,3.5,2.5],[0.,0.,0.5,0.5]]
->>> poly2 = [R0+1.5*np.cos(thet),1.5*np.sin(thet)]
->>> # Create the structural elements with the appropriate ToFu class, specifying the experiment and a shot number for keeping track of changes
->>> s1 = tfg.PFC(Name='S1', Poly=poly1, Exp='Misc', shot=0)
->>> # now we create a structure that is not continuous along phi
->>> s2 = tfg.PFC(Name='S2', Poly=poly2, Exp='Misc', shot=0, Lim=[[0., np.pi], [np.pi/2.,np.pi*3./2.]])
->>> # Creating a configuration with vessel and structures
->>> config = tf.geom.Config(Name="test", Exp="Misc", lStruct=[ves,s1,s2])
->>> config.set_colors_random() # to see different colors
->>> config.plot()
->>> config.save()
-
-
-
-The created structural elements, plotted over the structural elements on both projections -

The created structural elements, plotted over the structural elements on both projections

-
-

It is not necessary for ToFu (since structural elements are used by no other objects) but for convenience you can save a structral element using the same save() method as for any other object.

-
-
-

Creating apertures

-

An aperture is also mosly defined by a planar polygon, except that the polygon coordinates should be provided in 3D cartesian coordinates (even though the polygon is planar, it mey not live in the same plane as other apertures or as the detector).

-

We can easily define two different polygons for two different apertures

-
>>> # Define the planes in which they will live by a point (O) and a vector (n)
->>> O1, n1 = (3.0,0.00,0.52), (-1.,0.1,-0.9)
->>> O2, n2 = (2.9,0.01,0.48), (-1.,0.0,-1.0)
->>> # Compute local orthogonal basis vectors in the planes
->>> e11, e21 = np.cross(n1,(0.,0.,1.)), np.cross(n2,(0.,0.,1.))
->>> e12, e22 = np.cross(e11,n1), np.cross(e21,n2)
->>> # Normalize
->>> e11, e12 = e11/np.linalg.norm(e11), e12/np.linalg.norm(e12)
->>> e21, e22 = e21/np.linalg.norm(e21), e22/np.linalg.norm(e22)
->>> # Implement the planar polygons 2D coordinates
->>> p1_2D = 0.005*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]])
->>> p2_2D = 0.01*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]])
->>> # Compute the 3D coordinates
->>> p1 = [O1[0] + e11[0]*p1_2D[0,:] + e12[0]*p1_2D[1,:], O1[1] + e11[1]*p1_2D[0,:] + e12[1]*p1_2D[1,:], O1[2] + e11[2]*p1_2D[0,:] + e12[2]*p1_2D[1,:]]
->>> p2 = [O2[0] + e21[0]*p2_2D[0,:] + e22[0]*p2_2D[1,:], O2[1] + e21[1]*p2_2D[0,:] + e22[1]*p2_2D[1,:], O2[2] + e21[2]*p2_2D[0,:] + e22[2]*p2_2D[1,:]]
->>> # Create the apertures, specifying also the diagnostic the apertures belong to
->>> a1 = tfg.Apert('A1', p1, Ves=ves, Exp='Misc', shot=0, Diag='misc')
->>> a2 = tfg.Apert('A2', p2, Ves=ves, Exp='Misc', shot=0, Diag='misc')
->>> # Plot them, both the polygon and the vector, with the associated vessel (using EltVes), in 3D
->>> Lax = a1.plot(Elt='PV', EltVes='P')
->>> Lax = a2.plot(Lax=Lax, Elt='PV')
-
-
-
-The created apertures, plotted over the vessel on both projections -

The created apertures, plotted over the vessel on both projections

-
-

ToFu allows you to save the apertures, if you wish, but if you created then only to pass tem on to detectors, you can also skip saving them. Indeed, once the detector associated to these apertures is created, you will save the detector object instead, and ToFu will automatically store all information about the apertures (everything necessary to re-create them when loading the detector object).

-
-
-

Creating cameras

-

Creating 1D cameras

-
>>> cam1d = tf.geom.utils.create_CamLOS1D(config=config, P=[3.,0,-0.5], N12=100, F=0.1, D12=0.1, angs=[np.pi,0,0], Name='', Exp='Misc', Diag='')
->>> cam1d.plot()
->>> cam1d.plot_touch() # for an interactive plot (helpful to see each LOS)
-
-
-
-Plot of a 1D Camera -
-
-Interactive plot of a 1D Camera -
-

Creating 2D cameras. We are going to create a 2D camera with a slight rotation of the angles of sight to have a more tangential view of the tokamak and the structures.

-
>>> cam2 = tf.geom.utils.create_CamLOS2D(config=config, P=[3.,0,-0.5], N12=100, F=0.1, D12=0.1, angs=[np.pi,0.2,0], Name='', Exp='Misc', Diag='')
->>> cam2.plot_touch() # also interactive ! click on the left plot and see for yourself!
-
-
-
-Interactive plot of a 2D Camera -
-

Congratulations ! You completed the basic tutorial for getting started and creating your own geometry, take you time now to explore all the methods and attributes of the classes introduced in tofu.geom.

-
-
-

Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Tutorial_Geom_SynthDiag_Basic.html b/doc/build/html/Tutorial_Geom_SynthDiag_Basic.html deleted file mode 100644 index 75a60d81f..000000000 --- a/doc/build/html/Tutorial_Geom_SynthDiag_Basic.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - How to compute integrated signal from synthetic emissivity — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

How to compute integrated signal from synthetic emissivity

-

We are assuming here that you have access to an existing geometry (i.e. to Detect or GDetect objects that you or someone else created or that you can load). -It if is not the case you should first create the geometry you need, by following the basic geometry tutorial.

-

We are also assuming that you have a code that can produce as output a simulated isotropic emissivity. Either directly or by spacial interpolation, you should be able to write a python function that computes an emissivity value in any arbitrary point inside the vessel volume.

-

As a prerequisite load the necessary modules:

-
>>> import numpy as np
->>> import matplotlib.pyplot as plt
->>> plt.ion()
->>> # tofu-specific
->>> import tofu.pathfile as tfpf
-
-
-
-

Writing the input function

-

In the following, all is done assuming gd is a GDetect object, but the same would apply if it is just a Detect object. -If the GDetect object you want to use is not already existing in your session, you can load it (with its absolute path and file name) using the tofu.pathfile.Open() function or a dedicated plugin function.

-

Instances of GDetect have a method called calc_Sig(), which takes as input ff a python function able to evaluate the emissivity value in any number of points provided in 3D cartesian coordinates.

-
-
This function should obey the following constraints:
    -
  • It is a callable with one input argument and optionally keyword arguments

  • -
  • The input argument is a (3,N) numpy.ndarray, where N is the number of points at which one wants to evaluate the emissivity, provided in 3D cartesian coordinates (X,Y,Z)

  • -
-
-
-

Hence, suppose that we simulate a 2D (i.e.: invariant along the 3rd dimension) gaussian emissivity centered on point (2.,0.), we can define ff as

-
>>> def ff(Pts, A=1., DR=1., DZ=1.):
->>>     R = np.hypot(Pts[0,:],Pts[1,:])
->>>     Z = Pts[2,:]
->>>     Emiss = A*np.exp(-(R-2.)**2/DR**2 - (Z-0.)**2/DZ**2)
->>>     return Emiss
-
-
-
-
What will happen when we feed ff to calc_Sig() depends on the choice of method for the integration:
    -
  • If we want a volumic integration, the VOS of each detector will be discretized and ff will be called to evaluate the emissivity at each point before perfoming the integration

  • -
  • If a Line Of Sight integration is desired, only the LOS is discretized for integration and the result is multiplied by the etendue

  • -
-
-
-

By default, the method uses a pre-computed discretization of the VOS (because re-computing the solid angle for each point every time is costly), but this feature can be suppressed by setting PreComp=False if you want to use customized integration parameters. -For example, in both cases, the numerical integration can be done by choosing the resolution of the discretization, or by using an iterative algorithm that only stops when the required relative error on the integral value is reached. -In our case:

-
>>> # Compute synthetic signal using a volume approach with resolution-fixed numerical integration method
->>> sigVOS, ldet = gd.calc_Sig(ff, extargs={'A':1.,'DR':1.,'DZ':1.}, Method='Vol', Mode='simps', PreComp=False)
->>> sigLOS, ldet = gd.calc_Sig(ff, extargs={'A':1.}, Method='LOS', Mode='quad', PreComp=False)
->>> print sigVOS, sigLOS
-[[  1.31675917e-06   1.40620027e-06]] [[  1.31408026e-06   1.39941326e-06]]
-
-
-

Notice that when using the ‘quad’ numerical integration method, only one extra argument can be passed on to ff. -Notice the small differences in the volume and LOS approaches, due to the small non-zero second derivative of the emissivity field and to boundary effects (where there is small partial obstruction of the VOS).

-
-
-

If your code gives a tabulated emissivity field

-

Then you simply have to include an intermediate function that interpolates your emissivity field to compute it at any point. Like in the following example:

-
>>> def ff(Pts):
->>>     R = np.hypot(Pts[0,:],Pts[1,:])
->>>     Z = Pts[2,:]
->>>     Emiss = ff_interp(R,Z)
->>>     return Emiss
-
-
-

Where ff_interp() is an interpolating function using tabulated output from your code.

-
-
-

Plotting the result

-

The plot_Sig() method provides a way of plotting the result, either by feeding it the output signal of calc_Sig() or directly ff (in which case it simply calls plot_Sig() for you). -This feature is only available for GDetect objects since the signal of a single detector is just a single value that does not really require plotting…

-
-
-

Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Tutorial_ITER.html b/doc/build/html/Tutorial_ITER.html deleted file mode 100644 index 2409529b1..000000000 --- a/doc/build/html/Tutorial_ITER.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - ITER-specific tutorial — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

ITER-specific tutorial

-
-

How to access the ToFu library

-

The plugin for ITER is hosted on the theory (Tok) clusters of the Max-Planck Institute for Plasma Physics (IPP) in Garching. -If you have an account in IPP, you can then connect to one of the tok clusters where the library is hosted, via the command:

-
>>> ssh toki01
-
-
-

Enter your password and then you need to load the module in the terminal

-
>>> module load tofu
-
-
-

You may need to load other modules on which ToFu depends (see the dependencies).

-

You can then start a ipython console and load the AUG plugin for ToFu:

-
>>> import tofu.plugins.ITER as tfITER
-
-
-
-
-

How to load existing geometry

-

You can now load the geometry that was already computed and stored for some diagnostics (only the Soft X-Ray diagnostic at this date). -In general loading the geometry means using a method of the plugin that will load and return a list of tofu.geom.GDetect instances. -On AUG, each tofu.geom.GDetect instance corresponds to a camera head. -Since the geometry (position, aperture size…) of each camera head may change in time (changes are sometimes implemented between experimental campaigns), you can specify a shot number and the plugin will return the latest geometry that was computed before that shot number (only a few have been computed so far, but more will come).

-
>>> LGD = tfAUG.SXR.geom.load(shot=31801)
-
-
-

This command returns a list of tofu.geom.GDetect instances with the latest geometry computed before shot 31801.

-
-
-

Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/Versions.html b/doc/build/html/Versions.html deleted file mode 100644 index ae7f306a0..000000000 --- a/doc/build/html/Versions.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - Versions of ToFu: — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -
-

Versions of ToFu:

-

Many versions of ToFu have been developped before reaching a stable and somewhat satisfactory state. Several versions were already used for producing physcis results and tomographic inversions before the open-source release, which requires documentation and a certain degree of user-friendlyness, thus more work.

-

The versioning convention used by ToFu is semantic versioning and the module metadata is implemented according to PEP426.

-

The following only lists the versions advanced enough for release:

-
    -
  • -
    1.1.0 (default)

    This is the first version released in open-source, it only includes the geometry module (for diagnostic designing and synthetic diagnostic) and the pre-treatment module (for data handling)

    -
    -
    -
  • -
-
-

Indices and tables

- -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_images/Fig_Tutor_BigPicture_General.png b/doc/build/html/_images/Fig_Tutor_BigPicture_General.png deleted file mode 100644 index 1775bce9f6b9034be349e3e18a4cec9de6e786bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188450 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%0DaQFk{+cbnJ`s?3ex}80yLJp78CCu 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 uRnm5L)W@^DV6kI2{Ox^k@#f>sa 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
Ua8^ zHuTTYapd9LmzT9p@%IJh>QF9jPk%qyI(wt8Nq<{9Bzxy=_(rdPk1js8LU^Yp zKceYg=(B!mo&v)`DEEFZ!>LKnx99)93w0)QHDzh(m!20JZRkXD@!PDWC`&hdz_aAY zq$vY2TdDER_iTYUaB@<9&ayfjFhM z3PnW3t*|hTk03SG&B3vX!_>&J%2aK?5NGEPoC)P;mQ++B?n^lQ84F89zwsnfW~1Th z(j;T)_3$mu!-pufOC0+jCAmLP3#Eu@sz!TUn~nIi+M5QpjuO(3xo+=%Tg!YeIdztl zwC-AEk#+80(V9jx`vEs3wde22G5ev$|K|ee({1naL_JtGf;bLa?GAhoU5O&RsP`5g zLKc)HJfbZwj_s}TD8v}wbeB`l@RbR3R1KR_xvm~u!^H@WeULw;@@;^zH@So;sP7T+ zVv+*^CU8uw!_8wqi!#qhS|2LM4EkMT zoC?3MD$@a#gH6Jf4Z@&pdwqi(OUPc@G z2Af7F5`ET=_{vzmPp>abQ;#@R_;pW?)KT{1p+C~o%uy-oT`xVmCePqKf#c(iYN?Ow z*GUu>NM7Efk0_)u1!w4}c3T=oZ1Ig}^YkmF2C|sl$@~KjWX24=T5#uH!Zne`9eW(l zL0F^F3KBCyjBR3?64l+K`q=D=VGA$_<9DVBFMe*OTPkrjHe(U zCExp?1i23%7)H`Rr_pRXFD!Ccr0)?uM<9sFX~k$vnjwq1VA&+7IdfV~qk2!_NA&~! zmOhQAo)?atoo;Cuq1%%UOsVt0=F$78&sI@Ma}ZZgQc}CymsCZy+N5l$&|uoomHeYC zYYbjf#oSwN!tZBZBEc3Y!9_)EMsG)D&bdfUIWzRzkE1~$!u>C5*-il`FpMeAW`+y| zeYBh{ewT?|aR{796eZ0U_q>BFdwS3GI{u_i$9(54N4+%KF+k*h_r>C@q@3o!+5jch zf1Q48OOP~y6ML%oW!lyjr9_FZsIa4P?^U2x4#t3mMbGK(E<08Kz(!!_hu>@5rJAPB zCnkhgk%%l;drI>qXVdg~L7|P8NrvjLsL672Ux!SGV^kr4`pA zlWEtc+lmX+RF&%fKGZ=UYrO2jS+0Qww_Z?gXQb|}!aX3)0uP2S3wU1}r(&dun)=5r z|L|i=KBL5yUp6vgd-_Y@TT~ZS6(Nx#LcolmAS-}RIZk{^X}Y+VdG0dyQU-nMiO6GN znyng|z}ENO2!tE7lGztYBp&5#oQimLaXmGhg$7CI6j(F;w3`0JslukTIBAlGIH|Ke zWLcnI#E+0112-*xi-k)oW3{;cW8@=zb7T`uK}CYZ%GLk21i`;Yb>AGhoOzMo&|-cB z?LGW3MaChQv#r}g*IdEM`mTm=xww|D6iF8J)V#jnp$BdeGt+wDk|@rEw!^2{H$x=5 zvmqryt=4>Imn9M#)wbu(CMiQaR{ zPincahS_LbS7lKrPU+>S}Los6R{48W3*JNND;ZOaqIyehrL zY`XD17fdvwlUT@*YU_`WJ>z|W+I09q3j%TjDw6;ql0dPMc{T}W%{cW@--Dm?;E>jt zbZGzi{y;Rn$cB(r>Zt`?JH2dCG40My#F?LOHm|f{vZHGA)TlW|vS|8?4{N;})kzdM z?9C=wq_6Gr-!H4gA!mO~>jp%_k;MgH;U1p-4%O9Tar)!AVjKgBiX#i-^hmWhOnZY9 zi#0d-nZ>a;N*yz!PbF&R(tILR(iw@Pd;hLMZtDx>Dd8lq(2m?84sqpv%{{~QEheW6 zV|3|_d9q9nj!sy>X>Q8dAr9H|+Uz!P*3%-(zs4r5JSwMo;a)1Qa#Veium;>_-^60R z(QCkMa4@#8&ugFWrtbcLyLeQ!kK3P%)#RnCO&-NxH*GaFcm=#2_E|}j^G>M2ybM|) zxrXA4ny_EVIRzdC*C7S=q|P!(#q>~KhbglQ%jk^JJ`z5msh~Eyse}LCM%MOW5Oc(* zPqtIdR~0WFtbO6^5q*&Lqkim+Bprnhg0|N}`HZE4gI^HWe~q$@DCpVbB+Gftz)%9t z`sqIQUV~ytQ>suLr3rIpKF+h}KLXuaXO|IzXIv^|`NDj`7+uKI9P6bY+2!gT`xj#{ zK~`2g5)zUT9)gAvsqw)3=JI}Ob-3p|49}WK^j2eWcG9lYE4t=~tsgrJR?v5t%zXUt3R8UZEPfD{J&7DhS_N z-(C%nGpnLao3IAOdtLhCKX{;?WG(~bX>xL4CFm^(_T?}#OYWZAOH(Vi*H7G>?Sv)` zB&OeqU7-RHs*i4}7`+8)oMrHeQ`Oh#_9#)~2W9?!2Y(|2TcD4waqYADM@h`et!qq@ z?uQnp3)izavfRpgQ9jQCgJinn3kKE{&Zi!$I{HwK@81jc*`GeW-x5`i+4&OXhB`rE zCjS&q-5&{E^7Ow}E~=XB?H}sx?ah;vL~&_cr~{_2C#h;lD;IZclldb z_uzX8e7F$EDD$ZzQ>~$aZI{sJRU^gj^74U!xJOU&=Yp92!s46-|HvA!5zME~%yB$B zjd3YZEycwP&GnlMeERGk$#*nyAN))*B0cNT|k_e>tob1=ggrG;s4M!Mr(j zekXP-AdrC=&8leTbqJ0Q)bce5f*BIKY;MVxmIU4gEbr`q3ZtE<=;y|Yt4YnrLy>X`B^A=m3?y8ZUNpmlBm$whh>UtfyAGCJ3!y?Ix)t?1kzf3l4F)*UISf=|7xF%w2Ch@3LF{poK#(kTZpWTZfz$MIERopIm7px! zvdcE{rvb-z?iPuM5)Ie`ko6iy;)f0E*B0OL@z9T&o_G(<1)5W|g1$+oi66Zr3{yc> z_!cA+&&Ij#l6xN@h6Q}F-fg90oA@vuju;F!zrCufits+wH=E^t!pwZ++0&b2ir5?^ zcD&tIeR=up8&*jBcH)od*Rq--Ar~7ZjVfI)VpA&%UFHrE5)W5+N;<%Y6V&C41D~I= zib6FfnOD}XD)}G<4WrDZacx2T=>>J0hY>%u~V0hIwRy=eVpoM}}ja zEE5=HPd>N8+xtUWylJoF4#jlWW)0^eeMIxp`Pn_Q`$G`2PY=Q3f0MSb$frTAH)?AM z5cg{ocD6+!q){3^4M-Ud`<9|b6bwQWU$H*=?#$ELo4|TCz}aQ!8tM;c_s5DD@f9qf z^IH;KW)_PbIc~j5JV!g4T|XO`X)^g)Jy|d20%0E+r#BA@5V?Pk9OgJnM^^8|4@|bp z0)*6z*m|eodMcJ$TmI2wB-a8eTF5A zO$}M0zl!76Vm=icZXE9}rp{b`^N;Ol9}6RpPz_WyYiX6725xu!rkEXFpU9u_?6KuQb)~f zp3~r4(lETs-#9r+@@YNRRtg8kzdePSo!v!Y;Pn_?UjwM|pY$D^nn)*|+sX|@K0l(%pcrE%z z!ajG8Kk(k}{X{i?Gw~Wb(V^3|>5(VM{Gzuv`tK#%dLmzU|50Ky<*-=e#Cu8N1w)&3 z@~SA{eM7rMr-ay~reZ~lLJwt>A^#IE565-k@J|h%4|k%BnCXA|$axjlC}IPrRMq_> zh%$rKwToXJI+@eIZOO>ArMKpQw9r;CAxAvSr)+9fOiynv3?bE;SFOae%iiLo5w z`(%&MSancxO~@-F4*K`CoFusN;;BX9h$M=~Vxjh-!&_4N z`j6ilf8=9r6)C9@H5R$1*!;Xcgdjt)I)u9dxMj$Lw5ygl2V+=_PQk17lGJ4>pvOZ| zCCZ3i2Fa{A%{Wg(j-rxINR+)F}+cr z+vm-z9BwgD%LR9H%f6rSv+Z78X`N&V|6na^sZzSL;~XZMTY!O@nbBHQltP%_lP62k zTH1@$)Ef6HY*cr86t}}9z;Vg$y*c9Ravw}8ZF^lom-@pjJw4aI^y&RlfYaWnv0!<^ z(QY=KHB8w@N1j-G&I>nZS_zN|!zhRiu}@d+sc=fw>hKnJbA=tF1_Th(A^ndUaMc4u z?FKW@tS5b?w*SVkxYknsg~!`p%9#f3?tWAFs|RwmQ~Cg%yeXE=wdv8Pq?0tN=a=^N zB^(!>5_b9SV(sGM245Mnz8bjJuSb(xK4WK(e9my<+x$!QFDF)>84g}FeeUwUQP8S{ z>3KsTN)r!)Elr$9NQm;{;)0xl0u3c1A_6$gKW-$3OGrHuzRg^_ko_jO-;51pB>m}? z$0J~gcx1uDK_+{uY2UaE7A}$R5=|3em1j%*HCBXfy}cI5+_m%bKP97E8b#)pVR&vL zLc(mlcrgbC&3WtVD7wast-W;%Q}==DB{oMr!)4%AU{?216t$a(@A{{v=|zrK=3frO zX*BhVS_7L~l<;dbRDB)eCG60n;?^3z{4(98Tw!mulE?tj`UU?=BgI08A$07BVFxEj z9{heDsPx-?i(<2dRpsg| zoO>;XH^D#WY_)V0?#++W_l`Fan!yKmkNdnQ8+NYct`k3g$UdTf^e%W_wxDfj;AO%K z*mmsM9CYK=>8W7pKB9jMT8-zu`FP99*KfmSa@Ou@*LKg!#-?+_Eu*zntUZS7g$((( zf{8UuJ&mssKMYm%(-wTTQq2{cA_rnZSvyR;8W-+;S2@4B@(2FqFL5j~w-2uF-V_U< z%wA2JqB5)ecK3VHX?k0&MN;@gAG|i(ybf%?m_j>^7exghv`znRqwN;4Z9i^y{4ww5 zzEKUz_@UG|1nSQ&CdiV(H)x6vK+#WhdM!pRJ>E+JN0ZG`AA@^o6Bqp~EIuQu zhlUcq)M|a42*${@cWWy)v@p!eXrB|RujW0y4wH0yvAe!30ShZEXqjm-<_H{|chWbR z?p%7QNmec*(&NCYBTZ{sq$M7({^__YvLGxxwU@qE6?1R%^og}$&2Kj=s~%4G_MaZa zy`$>-D&y;kpUt?gnFso`l5%BsFB-k}O(G&A2mP5tV{Y26QKpnmZ#|NN?e9NxlfPZg zoR`4&U2g$^-@UZBz&1~(dV25JApNl2qZY*n zh?JI=Y{Mf_t83)AmaSb$lg{w*5rbCCiAMcR-#{Evku$!3S#O`SURrX;`{wcY?=d5n z*Jqv1EE7?lLS8Bc-%^BesKhwZp*O=7nlf*>XIYDBy`P+V93N%B@#(}`_TyLGcNz3EK(0kgN2bgVr6<-r zS-PqDV_O0%ug0!Fe*@}(6!bq@v*l8fD$%kb5j>gZc)!?`8GfT)djaxR=|}j{S3v z?LAK??Zjsu#fEy%q6-Vw&mQ@0@D6g?&H1K+1q)y|U?BSomQ2g<(<0t=*fr zj*gRi`GYGZ1>awJbJf@z`EeD&Vq076rsmnm5;yG$DwC29!U3L_Kcsej^e|nOg^z`` zlQ{rCEFyrP=lz+%-tOB)u_w*tgUFq|nh%4geUG5fNC5B;4j#FC;+75eb_?6(B>Dfg z6UZs$JmNMfjp&9|bAXW%XtC0n(dRR=Zx<@#JXC^jZBJQwk;SUoKlwk=%^Y{o;jijY z)y#jRWOCLtLJ6n)81=#8Xvw0N__4?!@m*r-gp0?R9rboFIhDPA^&_pqGvr6H-`N{W z*Bl3t&T=#70Kq}^WRcpL1tPv+w9x1*@M55C>89A<@IbfqYr^xatTDoajl_*hxakch z7_s`{eLW=fj?xL7UzI5-Gfb*Yn@Q(A1$Hl6_cUR$_J{l=0Rb93nZD*A8)0YfTO!IK z(gDfGgTdfjc}6!G%ma{vHywp5^~@|fomgwW%M^)F!fZ9Yq`^kxu4&v)z`aNMvk(Uj zc^TYG^O8v)z^NNv`w1~K@PsJ}fQ!sK)y@NeXTuZz6;kk7M?oR;EY7`t{W~wOyczy) z&R0G@W5*>q-QVw*XGz_N$0W1Ds;cA|<(@HUkAeheaO0~hwD$355GEwG*{3Id^8rZZ zO?~m;C8D=UcsqJw!tw-;hp~RMofo8`0dLR z9gvw~++5j!p}-vK-ov$?LzAlCf04y@Zi5%ws>6M<-?L)SD*fZ? zid&GWEyCe_N@Z4P*>K4s7i5M)U&8o0Y?r*VMX3YSeq+iiQCI4XB`T8r;BX1wZV|;P zp5))7pkUzH;IAgGbbJg>9QlLm`X zV*}v0*KcW1YK)&~Ax-c?i?+f!Ih9($1<0OEM zpYn(I1xb@Uv8fhFOhe}t>zf?9H2^MV)~|XF@K;7r#VWvVZNvVdnH;YAyP;w!^{v#2d|Mh{TdsA!aRTsz5$7x(H93qBP;+Fhb(b z8%it+>)-aR6BKpn*O+|2y^G@^;o-rhLB>uEgiRMrV5BpjX0pSaljj~*&ONDW`V(Kq zs*>XP@U1DG`c09*d0SSmgP&S#4oOBNPIH!8JPt`(o`ufqVUomxV#i9}E=?YVRizI0 z+;g*#IR+VFWo3=$#dBzTv-B4Bj^C^(Db^7oXcq~lhRKJ16KyE17yL_i)ju5_xBe&8 z>W&z}*+n!LpNN4pG%Q_I#vWGCq73HVCNaX;#=$q#vt6kWSwdOXEYs>Dj3Si}GP81V zTk^(1iHVQjn4$g7{ot-Pp;ksOsiT|B(wi|VIhYEtRw=&Tf#tQ*L?C=e?Upu8HWf^0 zT!6DWth{DF>msaJ48S6vm}J!(#6BsCKg&8Ld4@;+o@$I=eAixG=jYDi0d*~mOjJEo$knco1W zA~fuIUM|gcL)7usuq+ikxvrz4SZtn=U}3?DUowt>E1Fg;>gdR=if!F`-!9}1^d5C!V6%Te0{Q)+47?GRdE8)05a)2k{g1G!=$E7}{8pzh!@M2B;zs`M& zuPxt#E2wb#uq!LFm(uhNlQEWrJmuP8$B&^$zE;NZIp^17(W($x_VEb@=-=&fj`5ji zFxB2IJX+n%8mD+1$TQD|l3uZQ1@)2$ZM#;kPjpm0#jhd@UC3*JckLsIOVmPWUPR2n zKYZ0>N*zL`HCa?F=AxtH-%4S0y)M?zWg0-bwzh@>#;$eIQEDL2N7FUWF77&x>fGno z;>M{)x4zA7*JpXY(md(qvY`AM6($A^nYl4EU_N))Fw7kH?Yqr{lT*S7KY;L*a*6LA za`U(kBWSZ_v~R8kJk*O9`1g^nMI{M_=1}mFQ70h_*g|M6k|I+zK45oaD`;^m4J)*X{DdnZZBQZ#sJx#be#Lz!(i>#!MbSq z_UzBm++Jvp`jXdX$}xs>csMV76)>Wben1$#U|(zv$L6vg2RLBjbNLww6- ze*|b-3uZtGKtk6Tkw)WFT&S3E=nY!bu)0Yb0dF;y?;k%})rX+v3+o_Z@JJ)=qB$=H zH>&u41sqq9UE9yW;(Nn!J6KuPE8`RT9Sm#UJDY}$8XJqdma`?x{VwX*UNOJ$VWR)# zSx-kxhI=++5zSaO_1w%Q9+AV_Ch&0CrLVY-_v~O|AkUSwq+>h3OijBftw$ThtjbP} zoy;UGf1$$?v73E*dTJNi!9QFiJ@uWvC?caGT_g1WAkNaq?+a!kd7l0hFymm2TlRLl z$`QF1XrQ2J~8sMMPe6+88H7w6x^N3+COUJ)i({?k?!4tJbd3)PFAF zZkSxn-cw>s%;x3MSHtg|Fm22MtCM=V{bO3}aUc&L#eRHz-zh4N1O4L?2pIti3Qd!| zw1gJLS2Lm5HQP-@|9MhU_Sf0Pq^wrcMQDrhsk#nRZ=0P^14r-j4;#8@Asx`kPNEef zRH|{#5deB%L_PH%q_kPNCOIU+!er`uzPYh5Xs!Ij#mh?|f2nMi=Zk)uJePH|jthJ^sk8eyL0XO&c-a z6dj5kX}|dn6(<7<&5DLxxH%AQUHNBGAlpzaQu@P5d)92>9E3FA)Qr{HRYD~mH$vIh zpyl*Od|GA248ByyN9)y7Q@ zB&e{KPCq-VqA#5+Za%8Rvm(1O`_7vd0i<3z+DxS^ z6S=S(LrZxqEx)Yg0TiSFUX z+$Fkd&Fiug48kncYq4+X>Cr?$zcY8mpX)oGk%n17Ia{vwbD6t%`9PhiPXU2)2lo3k znb_rIu-K6zr31yi+Z=)xNAA;zBCp5nrP%k~7m_7TnTC=dqONL$Jm18cn?^In2m7ni$@I{q&wE==-jAT;}xC(0i%iP0ZpWS zg>is8QK#!KD)72oRF|$=`l-#*~fTEgqOmgLwOGzUNIMWZp_bn2j zAk@$^_>;D^&Q0+h4;uz5*RJ*Fpui?6Gwm}1^C)Ufdq~+pAga%4n1EPndW8pv=wpwP}~#D!&qQ>}kZPtWh(KWnk~XN_X1 zV6Hr{T^^>e`Bu}OyadfPh+QoFz2q3B-@eJ(*619|0DR7>>g8kd7|7IAKR5DJKT&<7vFcE3zOb2=nc&?!-yTDpgTR3sj(iUz$YTI0Q&JLT-@9tW?Y{txDy(4 zDgOHs8IsZ>3emwqg83^4bEf`flL(eoTF>jOR$iH@nR`6^A5|aL$B3NHSa{oV4-#R8 zy3`x}?(gsD>cT+zSyDoXtsMEA7mhvds2&z(uhH0N(q2H|f`g)I>iO-JqhwfkLd<=X zh78z|?$5b7gDTZ&qs7`i_J-*r7yz=X?`)xOE~W=<(V*cufvDXYu2@-e9+m;Tr~lIrPzx zJeJ<)-07;^A|EDnh(u2ApYAUap|}YA@&4iMfNlunnQ-;A^9u}HI|pwTE#;nRS7vJQ zDn<9gViE{9DT5CW5A*GH7!#TMQe=ZD z36C5Xn;xUM+=9XQ=2ANfP+6Pyly_U?_7a+}JV}v~$U9IgeyQJA03%X@T&#Sgjj~WG zA7`@Z8~;;TGFG&5Vbgv03(qS5OJdQ~3|RQxtoK%wKNK6*s)#HWCPhL0Pb`Bg|Mlu5lpV2Al9+0@sVhZ-`cBRtvXPcN+Cl8~c|_@-o>i9y5a^otSh1o1^!b-X zKCr_5hXyf z85y}h{E(}~A!=-VcjSiSKG@q-{^0K}zUg91#HDciPhrmIsHgkUO;jioQ~hp2o*>D& zE^0PevsoCAn*lu+(wS=3a*w_pU@j-`GI-FYiYDdp<%H%ZcxB+|vZIjdz>N6scF>gh z`PuKNA>To!C**}jPoGaCZ`uAt%?SU!q_|VbVFNA)E9)9GZ5aCm!6;guhMTW^95lFn zVNDBgi&_P97M4AvFRB0m8dkMZB@ZEX${`+R$yfed) z892$wIcx9z-D`c;S{rjiRcy36uN4!sQ`W9M!LNz&8m@ImWIB`%XX3l_QEX$a$wAer>FwEc$<9w$*zCdx`p z3bIwXEBnilNH6c2oI+V62?@~1KCaX-x~#0Mpl!~ze~9CmcT^FSEr@T?9hX~tui`W| zMU;}n$H#|+q`acS37XA(g3cx_4OQJj=e{}G(*a#lY@CZ`79nSz! z=7d28N5}PQ468ZD;OR0-7wQCY_6eq@O>Ri)M=k z{~;&uV?n+pZSSVEu$--U-|2?2#w5fmTT{wqawXbf9A51 z(!_d3AIL=j15C&7ShcW(S4rAAYb~$TwD~un44#he2O{&mpp^`Rpg8X!ftiGQIw6ZlHFVro^0)4-Qweo*$#WurVjjSa(+nBlWZ>|>?DB?;{B4T zX{W4$0;745Jfm{a_QjHtbsI;=-FZ&V7ok=$(cw>@{>1XCJt~b{&&+H!=UEHnD;_6C zBT|RCE`8C&K}UW1_5F|b=1EDIn2ZC`5C|=y)5@nJ(@w+Sm(G_PD(>;xgzn9<#Y=p> zMnc!HM8q>V&CJZy`q2d}Oi4B;%ctz|CJ;>mfoM(qu=Fgeiv77L?)mvM<2o7RQF4mz zt@5_}dLxv26IH5}aW@PnF%GwWV>#rVJ@U&QWkVJ62`MR9LiAZxp zO?-69f@KKjY`nGrGa;nHuIIfn9CN$^* zJ4X&U;OUW(RgXQww}T!CRiKd2tf{r|K+oI`QdsKO?VIy0^IpE9Z(MxY!~XKk*mRtSLrbU5eKPf`Wi3$z0#R`>Cj@j^ z3CAy}Um-g&kCSi+3rW7#J0`~bej+#J+++r^{>#U~ce`93W z1*R6y*XLD;h)FH1^&M#UAyT6EL+8f zhlizaSXS85k^RJs3Gkc{Zayu8TtuurX+rd4QJ%IOtWePHjD-o`(hV?DK4Gd%ll|)W znwOW8+akg@<4*Ick5_1_8k@|z&3kqDrlr9IJ>Z(H-m7n5`Gq=UUiq`@>kmFDA1oRi ztSr33_aZf*RaibO8hs%V;_IU&M=PO?%wtQuxld3wO-6UdZr1Ru`Ogd$Qaf$joT$`& zx)nh>9QLFPIyP1}>y1XYubqo3K0i9=0btX@ z(L23ah8HhI%sr&qzb1L_-o4kaU&p!(XCKb+SMQ7mAw`gjz5I3kz(13o{tuY#s$1Da zm#DcO8>K=g_?@6B3_zV2HUf3hp7bB;lr-(sum)Nn`(w$+Ad7Eg}s)-LGAAf_ttBJEa$wxEN(e$%yqSQbbQ?1 z^)HN3>nGkDh+(9vm{G^i_j;yc5Z+Qm%Er?dVmhXUl*+&;)X}$RXJ`59QF$&s5aBqa zwjR)FIyyQeBwJfsJ&<^A`)J~OBwh94kPeb8gM!8PIkg=jFjd-d(KMACz%Eopx;o)@ zH)N(a4-zXf^@c^eWR8V_k%sfXz?7A{mmNGm_KpcBl1f6pc60V6?TOU>ypo|5ruY^* z=INK9DV`}sno-_RMGf|jj_@C}M7<=SFTY0d!G-BVfcWa_=jK9_vJ%{wFw^th;N~vi zV=fg5$71=4vp#YOFi>|K&FvRO7L17IQV=~QS9ILozGRLA#0+3QN`o4_tV4gkTubZb z4?zq-i`#g(C5&p*v}fm=o0SI5v zW#Qpz9=h;&>gm^Q*G5Nu$+PX9)L~-_HG4KCDd{xDR#aA@GQcC+47R5Ygtd3KI^^tbp{R(g3;7a&S3bA`1$K>CS{4duD3jmvsDu1!gd$E%G% z$p8)ut(3_z1vObZD}zHCdec_6@pr`Z-bM0`Oq=1h(9U(rsqsLk@C^V)buPU*j;VF2 z1XFCk0T`T(UZY9EP9`Q1;TYM@#MEqs*$7y>H5}$!g`T;T~YsQbId=`%7D+Ra( zsr7BUdP!NqF#0nTGexjMvO1(%V_vmW_vS&GLE*M8Tg0(-=2m_)sL_BL8*$r1LmKW{ zf%DTYeVx9E3W0eGQ9Ez5~()mT^BKKW7kGkVHE(@92OBlWN}89E>HWNg1!Q|M=^zTRI=qy8@WX+se(_iM z+(VuVJ9~inW8Q5GOG>`H9aeglN z+p>}gq+rl^D2wC_NV#6TIO7IWPynjKixbdctle*4GRR9oNDzo}1F;>N_JhzScI=e> z^p#ALA+~=`Zc~Y}@-k1QY8QYH3JPw{B@EXOn`_`4+0F|V_0*Ibqn_bMiYK0qR_Z2~ z6ujC3;(<`~(!$!QNO4#_&Z5eljl{0^-7N<4kE5ejZAW!VM{Dpq^vs-;c7M{mVG59I zOGIKTaumwCy7ET^Zesadi+gi-chpo3j}I0AH%CP}an-V)*WV0pf){_}U3=rG1T(YU zrW6h8ZKhfcrNMCk4FN3+L8;D&>_hd!YJ{?K>m74x!tTaKJd~thZU}Qu+N&k77|;XX zCC#3gnPE%nE>+KSPQHyP#slfM#LUup${XMYChc~&_wTO^^WY8ULe;pb8oF55kw`|@ zJFO?4Zx`KD-!)%IW5#JHJ~f?n>9&M)y^dsfx#$D6E=JuC3WV*L72n_lawEhs7nWOZ zwXDE-?E<$>5^7P}dyaOn)Rqe>R##SbQ+HO#NbLAqhX6ddqPx|WFEdt4#b1RKe+QZ~ME``tMlRWXh0dD9~icQ3kK7>^d29*AgZM zcE%Ged5Its-lMtSP*?7iKj0a-baQX1s2t)cdEcW7%C;9l3-0I$c;5|j(0e377w+`$SxP+hKm(5_&` zixxw49I}zbom(Es?JaUi(ICPWu6u6PIqTTu>lQ@{9L8#)5Aku#sbIen=s5NFD0cb zQ7O|bA|k2!Q&~9~2VIn+fsUPd1Hv|GgT)nhP;Zy^^xcYj9ZJjlUZZ>GE54l)AM?IK zGF1KKzLiN~Es94-$jx=VZi2AvS0RBGcuMknz&nc>_Uz$vFtc@O8TD>rA2?wfY7k$3 zd;#grvN1h4D<1C6+>~$MUf*d+HQAAMJ$%4{BqA{;ggYJ{8eh@5_tfH z8ml~+Y2Q?-3}8&D$+JkLc-ArDYn#2fw78s113HMgh>P_r<=pNh;)qw?p_5Z6H+OVr z(XL^vXW9wYv$b4zEu}@DcK?MX27Sr@_dW;F_pC5O98+ zTYUk91sd%~#)Q8JMTF~BozYTSwDi3BTq-ZfAnARIO(0cxWOP*7CX!d@3RqnrjuVQ= zkf>i{#h>~!*i&zOKr>e_T%Bya6o0$+&E;TKWyY`_zbS60Zxsb$c({39kurEAy_sLp zzTOs)eVwik*PMZ7ll@$fl4V`YROa8%zry-Dv@cbCr|7B?q}y|O>tY1d)6*S~M1LYu zBe7yn_bx&hC6xXde#O%|-DgZy(RDWpO_10K1T*mG`uY&#wS_FEv6B=eexAls3*n&> zu)iZ&1xo4^Mk{x8EUcQXudoIBWQD?85)NYy<5$Df*4*TYYNgxjB6`nH>s!+-F?^h_6QA7v4U|=HaUW!%sNVnP2lso0n&L`eJtH8@ z$Urfl)!}Zk>^<0562(j)^4F85rdFxvm+%oF-ps-_r%i__6hsQgz9X9+w{aU%l{^zP$F$0K@PaT7G(Gr^}h1{B5651 znZ>2lKF?)+;L9^gM>%2P@_45#(&a|Ey#rx^m)dS4BQOt$M2A~a8AKuL9t2pEvkvg} zc=O*7OZfGQ-Y5@LdJ_;5()A}GHQ`s3l(>pKn*33g7`ldrhBFjoV6W=*VOSpT3_He$ zmd;N0!$A10cza8`X)n?T+EM%-0B|@QD}7cNO-n~&-=$qp1}*hjTx>!~j=Er--;&Oj zmcX;JV_#LQGaW=iLSMlq|KSQ`?SL@U6sAPdytpOnIem1n(l%1*){DnqVqq-wKv!12 z{qTVv3WeIQV9;ngclYZ*F35qBfms>9-`Ca2{hELKl?WODPa?;$lZ3GagwNl7x4R`_ zL~CxOukKw?Z7x`NKb167fb7J@1>`nxmmeO6F2r!q>SX^sSTWp+6?k^y%)8P_?>G9S z?fdlH+(Y+?MujNk+o))wBPr^dFoKGi|0;mF?N-L`!ehnE4gQL5^|G6W;Y9N&Xw!sq ze(92$$av1(OLlTu51EcH3yj^CZ<%r&woY1F-Vw*1sjjQX^Dt4igCoiKcx3@!gm?(# z63O8IK8$q!Ufi)szDqh;WKYghzjh3ioty?TpPnB}k-ul=G9Sz5dw`j{YFO!wwo#H~$&{r;Jp#w#Lr!Ks{~! ztXA>VqqQ_7{2ahxAue09hA9@kZ{|DOLy5SD6CVa zVnuYfw7@-aIG#5JR8nlHgO4_py~RNvf&$L7485OLN4=X94as)KQX=EW{J20v4*+oT z+TT}qnc00Z*`{>5aWnTWJQ6&LhiNG9=u=>AQExaDTkVCD?TphLZYb$SfsI?&i?`g9 z{n^P%bd9TIfPJHt@}GmQ!;s>L5 z%!$8Bo1 zwmO3Rd9uJZPu)>6cH15M4%?du< zT{&KcS19uNZgNl#BBbGc`+iKLVW{y@yA=O;(7D~PKi#{U^%%4L_}9WV89C!T>NjP> z6ocm;9@w`0=?`-#ItPN9&d2ZjFcpQh(hzMF*o&#v2ZsCrBs^i9Up;WsP0?ZSb}3+v z&O_jAh-{Lb``2B~!%tD*CbJ}Duf&>~V*4^DU(Avmg>pd{Ng#Q?cat}b~lE26Q oj{yyg?fCdVn?e5dfm?q_g@&l*_Xn@bkbpz`mVr7-)$Zwk0o254dL36n5hs5#3_~A$omKc1sZ`k z`ke9@eCLMqF&6kAxx1o@HYGg#DIdIquTQw#)^|rB&X|+_JCY-xZHGW`B2|SM zYVH&kT5jQuMy~zgNt_g9qm1Tu+e9$HmqwVwGwy{h9e&?IC>Pq9*so zp6BFJ)aonZ-U}nQ_@5g`X}D}`Y*MG3b$>3E^~uP$h^f&d|L?MF-aj_AJzUjnDsZ^U*ceVq@89VmD?elI&2;jn zwKoRr)Uv@f5$II4>HBLLs3>+PruNwO|A-vWjT9O`GiSQCv9`14z0z`gHFcvtd*ObY ztRJy?c|$s$yVgjU@@a9$h4ZAV8rN4HcwUHC4{uQAnJu3daO~K~qSOVrpk{L#}?M^`xZNqTaa- zZmx`p#}FM4#|YS})t#n;9q+kV-LA@mpZE5;Q+*dM$*d1*NqYR&h|jn{y7mlp?;S$b zYDH1NDY&qp7aaR5Ay!qgTR&qqXU;XfZ1CIgx+Dd+mxYB>(4bGM00a9Vt=>qfHiGDV?cbk3+7XJyo=TCO{JCc&4bDs~7g{^>) zh{&u&;H<>TdQlJ?f`)y8K?qc7*L;MBO^^jH!ZSU$zdq!@P^L{P^V)~6Td&}Ry zV!Atrhj9EO)eEvf!bspL()%M2KU|ndp|wH^i|#jYAzqlQQl$0>$8HOUq{;$4uln?# zxo*|_^oJ2|Q7Sm=d_Z(w4R6{EM?ChHiIm^YlwWYuh6tc9hJ*buF)a=Aqb=kJ;@Puj zdU|>{OifMWGfBIX!kyNasVCSfO8qWt-hZs#L}WKGXkv#Y_{ZPwg6yKAGtu1FUY(EW z9BeRVP(pIO3C7*#iP1n+ED=~SvaBIid7s|g=H{d%Lux+fR$1|up;0QifdA5Nahdwm zsq^enHyM<6Ax5O-{-&RC+^mM{@vEt0L(r~gUA5_zoI3cyv41{h5Q1;eb7^;x-==>%N0qb?fF_2%~Db1ro2S?U2A zf7j#>)_ONSE?#^bRo86L<% ztYSJ1X}^vj8rKV)6$Z)=pN2hadW}vq0m=2l|DgHk8IQ|!q{LJRVQVCOPKNzn)y?x6 zLS{|QqSQxowb9-EG!U~LaCl->vIlxMTFi>W-_Vfa7$wLE*=h98GutFh)Y$~pEW%D~ zqq7;Q`V5D|YVc>`Yu6gEJ>o=CRLHf7PP^6AvK^zXxRllxf3~n3{Wsv|{LTruT`$p- zN~G&YvQ@A!YSeq;84=C1tCA{^I*-GBI|iHI81c+OQz>cEP`yZG9}%VIraJ*&8;_i) zB=eUu9U~AgQz$e;mX^Abs?%%Fbd2l?;(`9s=j)EJ{3+^fqSTxIjluRG@*f3iqdFEA z_!ZM%mj%uHSn1#5r1|~3y7GdbCK4{h>G0}b=A6vv=R3_NRc?pjU}Nj3upg1~s=v*B zzcRArmh8@AnPkwuKPFPSe2843d9uN;n=zb${78c8v2=}`{8q8}?(=DVRUSr~478!h z_h^0{9i8`lRNLFzXrcfEm7bv?cJs!#WKqgu!8t7fD0$o}R#Je)0J0}93wc)rtQ z{d{t!j!dj+zb(Vnt5>UCevkzR2Pf}%O35t<1q1}J71a_hdRe(z&6KgH^^N>#th7Em zUn+Q0lYuF?f7sPf*15p@qKYCX%?+Lyg>((uozY4+bGE+k7B+4w5H}d<oBO3A}QL;q6wyv(mMmbVOfT|&y>htTL zLARGbEShjKjI)ZgQMv7J3Vwl8MZebeD{m6eEMfz-7ve=NtXas$-lrHOYOZ~zSC z_d7@leBo(D#WhwL?_#IuT5Y?guiqa2GC0jD`8YTCQoBXTDU9AdZaV#qfW9>OsQ!LU zK|w(eQLc=FiQVU;R;p=GR7f8ob~OyFXN#nfh(31RDy#L7V@D zzueTHj5sgW8lyr7^DkzipQ#+-c&N2D6_bvsF-^oR*T28})ui{K6!}%2`Ma{>GSKCc zk@DFDAxcAeLzBVge6zRAiVVJ9nTm1#9JfFRrz(~=w?7o{ zd;3vCXsQdcM;(XLA;e)Rjjs634M|DITT3qZQ+P&WmhTn zfS4v91KPmITPC$sha)d9FNs~i?BYuS`icsG!0-We%|ZO6CIj|P&WMzAuJwtHo_8E5 zR61TtOzkEq7JBgOPMe#sN7^j(Lx+1+Tv@3TXEa~_?D!d?hmvOzMtRT3@RHt3qENUYm*%{qmtrg3AG%d?&giXG&4TyGhAQY9a?1W~7Z#q5 zm<9!CMaj#_HRfWRhdzI%ge;<85#ZtRHgth4A20|M%{ezu>9?uoB5}4%w_E=Wo)OW&^>)wq4k zl+8>+sh**xHUpHfwzdYb_MDT_^PDsbD=R>)=EX(9nN@GY@C;hV3g5ki3vXVQy|=J? z;Rz{Il2tfQ#wi<9CfJSY)RNXWa;9yyE~)YjjPFKCTykQ%rGLdB&MKSYPNusqd*)C; zk{$15_E2PTY3coIL2z>d9Ac!#xk$UMh@{of4%+ za?#>S1Q^46s|j-0Xm0bqRN31f@4x0gk-;Zr30+1;4+;1~YB+rsk`@Hgt5>fERqx09 zu6CSr-TGt2D(yuL71492M+Y5i6nQK2T|z=j!c`lHsFt`$_vz*%g2KX;N1WddZVu7V9FkaR54Rs;R0X5WT6g*l+vigpF>dhju@z=rR8}} zAz$q3)n~S13;sPlJ?7Td$L`7R{jIg+<;qz4>dDq&QGzuGP$%3m%t6W!(qHq68mXGm zH=I0wh}0DX+a*@}Z(aF>!LTfeP?EqvanQj&8p|HIX%2OfMx^2IeZMD%?Mi=PJAhGG zV>VmB7>_Hy>Ps)06pR#^PPtI$qYvAm44upW-tbYSOict~!=sWOTOjB#`o)*=d1eY} zx2~OQIcx^eAqDcJlkZgwg=2U>#RO?z#)$eb`HO@a$zTU*9k1pe5*_1DxZY4cCers2 zxxyg7vxUyOr|lRiN8Tje4O05Q#3%jr_iw((L;5ALY*-^uu6s3Cl7{l)8pfxj|BQfP)hCNS1OVEqvE@_ehv~ud-bSnL|#1i8I z$@^VaC}e`TrL~2;BC=w1$;R?jQ)oY`?3}B^FuGkmi=I{!*ID|iv9S@VHxgOL@Zawb z4h}-k2#`mJ5H$boB7mKE6JNWlZRpOW(24wt;{yK@G+sRaGBuTN^aO|hG`6+1RlChm z0bo;4ks5NDn#Dw2NKl>GUdOBD<=)LpRU2@)o_b3?S@H;?+KXT?5s;OY zAA}F!%;oyE(~#mrLpTDff2;!B6uo+Nw%z?l>x(!)Gl}rE`Rue$fJ0M*_P5a3?5r$N zQPIagewgFF&(6+P`>yk2pZtCQ;7X`s`d5M|=~`@AXuqh(w$SuPuIw!bad2!lA4eeW z$*wb)1a8fddX)0I(Gzp`pK?l0={9=bFpf7doHx!=c4 zGzPFdxq*0c!|W!eU+k1qRozWZTF)u<0QI0hF=_1rMfGHem$xz{U8Zluld=fG7Pt2T zN&?sTr(4R(=1iZmSpEF{S>XopwaYpcV?e1eMY2f`yQK9bax4hVdoYJ(cu2nzitV0* z76952q^ph5ZY@2goc7;Ffpi3E*SQ<-bHa;qWu)HcW8hTz7RN1q@&#F3eEb{rZ2SHC zSm-pvIxM<%Df1)HPw2MchdpAushq3iL2-Bz*KSb67)Z^KeOq!(qkoQD^cW}S3aIuBv|51#-!C7`FRCak;XX$q> zM+NG((YJT3jYqn-wRGi1{LD`S7+sodz>;>|Hr^uYUnX+lpDq8!{Munr>IY@|x1-71 zL}7&<=-;}M;K8qXM4*L{`dAA8s6~n1@X2Zoz8efm(CMiSd>t97D%^x76*!lA6X$MR zWuCjSa6ElefGG+E)g}44)jZk97m7!qY=mWS(ok|jANJ-pCj(UrZf)q5NPM@#h$qe{ z!uKXHBIVyd62!2)CGhO^CW>Iq1m-?}eCN^-d;tZ@8YfE+Z77j6&fqi?BTdeviUkD&@`z1lf~gJ4r;PT*-Q|m`SY9`Ohljup7yE( zx*(bVz9vIA-FOC{PK73)n(vv@r=? zBbH2km%8?tdvps{v5W1ix5T6Z=R?jA9b<*A-HCOIxBAE4-oDqeEER`@jo6T>NXV*5 zA7)=?$6DinB_3DT`|lL64NXl=l}A^m8ib!%!d9IDn1Sfxw=lHQ-Kw2fD)l;V_)!xd zt}aj@xv}N%cu|n9 zj92CXsdo8N{F~&FgI5;=+bZD@sSR*;{|Vl{6Q1##`vReBY`yZpHY9@&6{?Ox{aE)+ zVLbQoA&NTQ$^NZag`Z5kK_8RE71M%Oc9}rm!B)We+1}Y^~7~OtGO0X||A)WvR_4Z}(W#|b?h4+qyn$~&3 zH@}MYs6^h0eh%yy3iYP*0T7($yRX1oxz!{O2%k^tkqZA7%YO34SYK>xB_S0{@VdZ6 z4HSwr4$`o?l?ykWf>eqZV;j8^?Yzf$P0#SOA$(z<=iFAd{Gk*3wbm)7mTgll zyFo0$NAyQtjOpZrOX=LWN~ROtIE*5Dq1fV6csu$ht4NCa1qQ0?mJYrv;% zEgonGX7h8LimdM;%g4wS9z)*A;9J?*8*K`bk7Sn(YYRD3rJbvci~tI}ZFvJe9!WD~ zIATPpUvk-Z!3u7W(!Tgaiu9wEKiwj;rU&b$B-LeiB}ASaK}}6PExYV*ZRf4m4RWSrE3ySOsDpjfS*#E#`x?RdUKVhemNOC}o-qJb9rnZAT6-NR20^jK?zB?SOBTdn%_VZ+T$jC^El?AhI=<$Yliiw$ezAuY(2k@($7g57^b zL1uIM+2-GD`BR9^-bankfIy!Pc%_nHi&<1quZA?W0*X_62dakjV z8-hSueqBrc#fXXDsj{-N!$mONiZxZ>iJAA(gV;Rj-9UOLA^9RS`m=SJVW0^_(Brd1 z$U*ZgyP1KseKF$V*fZ!M)0>)_uz)KZKewHce?@94LA&A;HmQFpzc(OH@VbrE2A1ar zf9%r{yeC?tY)tTJ3#T@U0>Kcj1YJ?-&S-32Vpcjx5j94qp-e-!2JLdNxfviDQY$EM z?68uXG2KEf&p@0QkNj|}NhDs=L7jzPh~@_6&Rd2ZPHAFEC3;(ZWq1!2#a^RW;!h_r)7S#pMZKHpG{6`eMx8V>p4Sp& zOp;?y(cxo&;2bfIy$7p73q3|g4VC_tBu$b3rYzhy*6(NY<9+y~*VtCrvlW zbaZv=*iO?9K?#;&kBR}BWK6|v`;emHZFv~pVFBD^SVps$8VCQlxl|h7vLb$ebSr<`dz#9fg_?^cE>KqRs+Va>_5rc@(%~ zL?rrl4(fcWN&W9uaceE2)WDoo_6;n#E0Q=s6`ME9H#i?7xsJ4nCiVi@Tk&n^?UPF@ z`e9K|kP(42=yejpG$(U^fBAr&V|V&Ebi|=fA&SUB&9uEm8z=}X+xQ|l_gv^qw{&?Z z)!Y2x8G3O!?5wOF{O^FxEW{%a(7w0lX4wg?pAas19mjp5!vYSTB<2zW6)>HsowzRC zn$>Es;(41N4ZbDfTFbjz{(;7OQTT|miR<=asRmJ*1ruxKYsnC8D2#iJ5r8qF9$o41 zrOLH>NMYkboAIw-N-cme(yT1^heUsZs&qzX1wkTWVOKJ-=``#0&{_o#eQ0PdeC=5` zp{`^PvO}D7)o8wdm>rWJp@}1nxPOa7&a437EhF#5>RoKW_c; zZ2;(@PG%6zot^U1E>TEUSiFu`0>GhD>tWZe8Ll^RYp{-6r4?xEvA&O?a=`v5X?87X zB|e})(|?9F9h9hcyWC`Ol28$|QizI}AyESisfMxkL zUsmk(KHpUOkM1a+N$a(XVO)yo8aZ^8b?F%jfy~{QL&ST z9siccx$jV&|M#l)yu3Fgy8nH(+Sm^y#YWs@;9pYW5E2`cR5a4VQybKQEIWWABxF)a z`=2QzClmU6umO-rW9YIRpUeKs1>|Hx-Oxr6AOex)?70l0634$+AKAqPk4H3zDB$AzCsj12S{J-=INNaPe-jL-$B|^SA=SoMrE~a*L zA9p}*ZBy{`@1rLBiyzKXY>FIEP#!CIpkvC>JT;G$er89uB~x5a{oqRT!M160+FpVu z_TKLE*y8<~w4;Ies>e^B2%RKJeWb?%ADllAsR;NuBt32-g@D<1lF%Zr3$r6DYB-jB z{b>E3xabwK-BuAq+D;dIssIBvrsDCb7Iy`AhJD*yepX7|1$X4GomtJ0GE$NGG{KxH66bMurxs^@pgx;p><0*$OsOOf2mY=BZu?Z1Q7k;hwN9v^HRh_Amrq^`zaEIz!X68#>%5Lr8@OY__*tP@P@&`1R#GB&yyKoHOu|t4#%ZttCc?f$FtYjV0zn20?{} zoSf`Q)(KH*SL@{gTT=xZAjX;5?~beoyM|_ry1Y?_(xLNMV(0O_5zlv7`Ws%6v+R+x zsXgo=XtbWbzH1lsXct@hTC2}@l=CorF#*! zPKO7`9NLPOK%t>rOCOokQ*3Qc;pMa}Y=>{*dM|rF?W-^`ljF#8fJifrj+b|siSqKzAo&H|yve#Ds zw3xjfI&+wdkVrxp=E+r?$1artyDo8@ zRr;9!oIrDDOj3|shESyt-4N6RcuROcFt?Z##TT5-!M)6&1bReUBPlD?UoHw1M8Ln~ z&lDikgq8obBq7Vy+Gm^JTxkA64TN$7LAS`@1U79ep&-;Uke!KLcuHJ`+Nj#>;uq28&@uyy4plsIjEil(V3lD7)Cc3DLY`;?OsVA5!r4XN({ zX6Q`5jv_N$O}xrpMK@Q$Dv6*zBsR z=*=YQ?c&}iFYAc%aE`Uch2JWm8t>>R2+uvIl&RCS^v&ls_fpS2uKtG6$}SywiK^Ru z#GJ~Vo$b9qo?JWSLre;Nb*q?~Tv4d4a*aFg^s(c|Q#vB9CQz#mw5Q7Yk#t$A7s)TI z;XA-Q)UjSBUBP;Nr;7cL_M0L3%gV|H#B<_)=R0yQ38c$P*j%gQu_At^ zbeWH?APl5cMkm|!8DRX^)a-X+1#~_VJ7aV>9O?>Mfh#|Ga(IKDen|F-+Q7ou-Cs#M z(!uzVWwz|W@5v|%zm@kDQ>{{w#MPq!?*;IpyLuMQ4= zTyYJrC*h=rF)<<+HYsQC{^kQZ$E3TN(`oPD=kb!+_Y5(`vj+Ka6%>?aKF@|dB9;e1|9ERq z>t01bkdo#Xk%0NTNi_e^dPW!Gtqyo%Iz2h;?d&?msM`cVuPOl^`wN_s0a5BT$atXS zUsD?pbDnB+e3)p>NcG}W{Z1h_Bm93|&Dt7} zpCIs!yU$14QMEP{xr~ZoKB<-sy9?1>?zw7%u1b?aH4vs1@RDU^8J9hcWUCEK6q+g$JZ&l9Q;Wr7%&JWtf?xhJ&RTi5?1O)C+Rwha0MNQn!+^Y8I z6q{Z3!$xsP^n`}~*{QnHh#x7~iDPCFkk=8^X}Bk260m5nMiXJM8rS>G&cOZZWpl@< zTWV!ZQ)1`N8Af5ns;mPOQ?lMZp!7WPaHJ~0O@54bf1kdQ8bTc5xl znt*crq)F94ll^$n*AK>){@=H2eTUFyDJd0bx9sdENfO-x!D)fxXteC3rOC=X-2(K` z9j~+awlh;$YYu!tResoa9U)R60`>)?2H&%Nqw$>t7pT^_ zzBCM2GZAKB(u;|Sk<{?*Gz*X9kdMTV6g`q^FC4FO=0M;h{OZ8zyVP_L_~HH~s1RUM zVhVl&S}F(Z67;@cYZO(Z2kXOOxuOC8Q>mb|iW67HE!6?!p??Jl1&zu8G=R1ToG#1G zfwBel;`Sb|bU>|a4UTGYE%$mgAr=WPp5L{nqcBI|Bdrg!!CbzUBI8rE-ZGOh)Me>k zU;m0yb%)rm!|1e@`#ANZb{ZzLzI%c^Z;3FIplTnAL5o!uhtt=7bj%BG@gc1mG|Mh|R6?)GiS&ub0L8P?0$fHUDp^ ziJ@WJ(K9m553bP;SvA&Ks{sR4hzIEecJ5?_c%76Q4LNcFrBiV`&gye%eY&L>y4R6{ zblhB{GWhry!-3`ig6FWyqyao}!hT#Iv_un*h5N@(>!H5U)6ZdVo)@6q{&rW#O^Ug~ z_wO(lCH|gjl^<(e?fT~GLf3rP{ue@Nl(BPi!9%e~1MJGyQn9q30Kkn5O%s~wGC;x79xVDLE z@G;b~-MTmP{i`p;XtJzd<-)T|17h||L4SUBR-Oy6kK2_2(GPU;H@{czw8LqVbo)sO z*X={HSfeaSKZLz_vbD7pnOYTZT>$W1i%`ofNGKh5`Um6$oR}Ikw%FYP6Ko#u%Pe>NTD488xzODC1pHPQeHkdr%9tJ z(mm$}<|3E62_{z7_UUO(Fn$6H%dH}NAeCx+b<1Dwx#D@;K`=DyGVG5EZMnuTJAKay z!j@Q8RNYh6>#XVM_|vtZo}2&D@rChu!?DP8dR!U(ApW{ncDWQlL4gxHttTt6Z$^iH zAYAtAQ9{m4!^h9W#OQRtzBS(P(C0$bU6E8wV4=f<({&Cbyl6jTxwK_3O4)GtoA{FI z>fhx%wkS!~C2v+sOUsvDn^A-Rx^`CP?*-K^$zdYd+Q9dwBXPND0NgYbz_jI#%ZZ6S z2Z23nqbl#GssCz6B4(_|X{zy56y_Opn529Gt}P|7O+d;4xCWBxWl2d&@Q|3iC$iwM zRnF4!OGkCm9Jn&>$fccutnzz#8F$tLdFpob^ZormXga_qjJs)>!Dep#%j8?ZeX)lX z2RR;#?_%p4Tw2iTgy*rbepB(4xwb=JU$1)-4AvdJSYEBCim+DFrGrCzs4A8xP(mwj zHYtT7l3l2&;cvj|T=#Haym0LDRXL}MV!ny0CXSq4$J^A$xoV0V@DwsoMxBNs|c{QrG#g8 zvLA@m#DmlSOa`AKgA(NXMfg0hi35;)y2fXH4NV56>^~(y&ceFBm|A`mc_GYVYzkbl zNt~3b8uS$kaaJVf4-@sDu%qMpy=g^Gr)Z-LPp%B*iKix)(|JbtiX~ZlW(*X57MhTg zdU%mu!Z%q!H=lx2fF2Vs60aK~Aw9M5aDA)Ls3dwj_C#N9?w<}G7CTSY_3|r?>F1{p z_NV?}DO$GgaOaCOKh)R6@43t?KE*`o@){G;1O!&q%4E{9PTz@_#r*=uW$!iM!t5%= zLu747h&fJ36bfz#OhGp|5x|O}`4IvNXuhzrX^TTX+KqTt2^h*|QEDg&Kwj=!63HUL zr5=_cNjUPa%y#IRAD~jc&6f|H(HIcp3!B+Ba-LjdWFvy=hyQLm;z_arbs(8L1{|C~v_2GR`B+R# z^hl=@c)6=n&^`gF<|Cu4s|yGHyb2wh*(p}S4ZQx1<(!Z!j>`|NVCN9oW;pe>c+a4!c!oR72Kmz*(B$yYr=| z=LgIdNP4eu0FMZV&ii^;eQJ7kkt!7)stHC%1#g zMRa}XWY>!q6j0?=)zm5mMSLGV>`F*WPd`tpNF-A(A}?bX{CFf++2EjdTTNNs&&+Th|ro-|a+S8Or`P}ncYdWnfU1#yQ zRag9XfRiZes0e+Wy!VQU>7rNERT&4NEQ#xOsIwt$I<0#(xUSi}M~xjy(_=QvDI$zV z7uVmOW-WH&;HYBcEf4oJ;Ct}UhxML}xzHzx%jOr`=}!oJf~?m+-nCh1TD27P>(yCH z8K<6}*4761=ZeEm-^B~-V-WdR5fi~EY-3u0U~?jVAiKcv>eb<)W^cL&@vWRa1dj zax*f~G~b2X%H<-yu&s|G0e19USff6qF_5!?k2j(0r zECivd0?ilF$OzV=6cRVC>4`3%iy!P*5GX z=Zo?OzxS_}XU9|0unEt=%9;q3MgD}rCSv# zlCG^=lYy*Yg+deS0{3b!Q7Y>D_ZU^Xv@ig@E?E`x;L6yyK>7XEs2+}kO-zU#GGMIgXR1?dVL93y5Z zv-`CB|9qo-=+D!<=Q9(^o4i5OZ(EN2p>ZK?>y_R9-+Paw!+NTU%@Q5!hj}v?W!GNW zfmog71@cjX+K4m_PJ1cYPYMouqE#lMXgMVvLUUHZV6;cPgT4 zg8s4;qpZo0U5f=9c5?Sn=$(j&2$DM#b&>%H07h8XYgiAXra-prdug9?wX#LU#0LLx z1yAUeI|IzjzAM0BCdBMYBP{Lz>|Oh z92^P?G|5yBNnobuq-lno`ilt6 zWFNOV4?m#*vjxvjD9V~)!7Rxsa$~Z&@!~o_!hkgc#Oc=5w`8fz_VrpO- z0=*g#kg|Bv3%kVLsfz#!n|=LZhzAM|fOSAi6BQ*S{-$5tb18Xf>1gpbLsgA1X#~Ui zCo>JXd0T8RagQL^W!PEBR2f4-REz|i)GJ3M(DFEFgRw z8a-UB%UINkSD&`pKyv#D&D@$t@(Ipw2L+93N>bH@y7an9F(WM<4((#LTg~9+rX)b* z%kuJ3aLl2zn0|521YveDov_JXm?Oo+!2vTM_wF6F4LD7%kW=SeK(Hsy&yE8s{43VqdrE&|5UD}4& zMFCy7e-Gmjb0(-Zkpo)pvK&S zmf3Xm1?^h*>fDd&bvoBUQtgXxSm7xh>-=&H)Ly#OzR{EHV*O6v7>nt;ez;Vl*=}9j zIhB^uPO*fNR2I-x74FZy{`*5{=!q|1zHq*|ZT9dXRh0a`_mEs>W+r&TP}oeEWda~L z^yzt`K*394HI31sZ^7no1DL>>oqXmfp;A0S^^?li(US~dEQ3V?AzDyK$kWOJIT!#S z31+~s=J@~utCt&hNX|~s4mJ3Ga=Q@HF1(=x{tyN^3h*p<(l81x{EG*8N~Md z*;s<@dOh$Gq!Ep%>^LJ~kcS9@wvGSjei%QQg|9W)*t=yFuFN&g1GShjm4(A5I?P^0`^(f5%!_Lf%mTrUzq%Xa_P7AF0Bb_n4aC6|JzmCXB@L*?Q$s3EC1Bm3k zSb`Ck{gm=~KR_gm3z%XAXM!ph>*+R_dmwnt0-FbH7C395V}k{J%4r6K3yi9Ou*0Cl z6nx}Rr^d?!LN^B;+irtu`Q5YO9fjpz@Zg1f*f?2;!L3yUtXmgs(0&AeUU^x?))->Ka(J0uB-`6%}P=dIGX`(jKg-4}>3y@CZp1j&+{m7U!^Zb)jA z<%8ID3ym(_jUIQrXpn0w6}an-`ZKz}^(lhIu|rNq<`sZ~nQtHOLf@;6l8%O~H$QI& z@IZTFgxz%RX%yI!y?pJft{(r`@Y0c(G@`EKE4%l1pxS%YVxp4Y3m^T>WEi>`3Fpc7 zu`-)(A{(I3wLbZ&l2Kn{AmpzkIP3(KJl0W zjfNm&3O8x=0z7D#S<=5?V&kNFj3pG-+_*%mDKg;MK**y`x|llBhF|ykNH7Bt4t@Lb z$Eg3~1wi9#yJ(9|s+>Rhm$&WLRnkNA0p5*6qxWE(F*efx3<2LP5xrdZOp4CIAVNb5 z;hYcH4FUPhk0isflNb~S>s)>HW$L47G>n$Mf2hy|y^HY(j2NX?7*ghH;$X;4u(gC4hS2t zawMOdt}T>~|8>O0WQf^&w26%Sp1j_4R z+F_>k#Yt!lyw`dpV7?OUQOOHGNUg`tX_z;M@P{(~bl{{9(0ry_UAoB>yU^Xhyh#ex zEDXs3IgPfA_5GD#Qw(k|641j0knC7s)`qdXV^H6`*N1eE3>I0?k+*EgOF&3KX_GnF zUF%hR>DBQU+IbS$I5aeb=AQ) zGLt?yHYkm7g|pD@kirqhGNJ6Gde5BjUvf`tYi|dY+Xk|o3tYsjh=_`c-#;OEpeC7C zzO?uV5orPM00a&&Th%^mJYaA~^B2>HB75!>!wqmUM@U8C-&|03`T6-xr6u8-NzusG zjr5^~Ifz~t$ya)U!MC}|fR}*#fU|^ie!nLH2OY2sNXhVRi;~~FfD}#gf$T$}zz{_F zbowthoT1(g$czY$%1Sa?%_2JT^dE|o6&?#{q@Nly!b+DH`lI1beNJN!nm#RYgF`|k z8U#}5Z$-6iiCHaTJ*Ofh{&hHmbzA9kk~(TAlJPjmkd72Bi~UU|u+`8@kUWBwdecq- zu)twuvz@{m`~F(|ZvSfLz=3sxL zDe8>>^ijm)>{MSWk)~ZY!;Oudz0F;md{kc`u`G#}oz^j0n}6tU&lU(_00pBvKg7_0 z&;;|`f-2LXl5gyg94U7`CjWd4$E-vT3{a0bDXnxx!TAk|5IB4QdMeS$9gIh&_ji_; zeLu1x{AcLX5D3!jH%J1uHes0AuVRkM0XJe*c_6GI+EZ&^KtIn3w$v&((n^|WV%53g z^_@MdWofv8wKC(^F+JAZjP_rw%K#VysByeFL|8latR?s)4G-N37&%0jjB}{Q3G@5| z{@1V!t;Og=&kST+PRd^I#ST7#Bxz!j%U^c30;@W<^ULiznAi^e>OU8;Iinv(3i9(o zWsNVmTbdxZ)p>6wR@dZ+nQ?>Hbn_FT>mmhh%X{oAO$QPy1F!iu`prBx689&Yp5F;<+oKWoJcUW;}yA+Z6gTv8>2s75rOg#UT;E z-9i?Ky+d-(0b>JY1xR`rU;q=YKGWS1PsqKzK90O;gi220$2Bih1!1_r5b^jpySEws zxH_^t6mW|mV;dN5^oN$ax~RYvGcbY=Hh&LjQXYF^w2RRP{A#nS+QyD!D#T?+U^|eW zhvW(W&dT}tZgcSH!T7r;qhxu^SFb;#jn3jp9nH;;%V3C30fn+@Qhzl9el*-#It*?a zU%LxUy`jy>M$TmJ;(kwTL-7+o5$gas({o(-MgRfYt9FT%j(OZ*eo35&oP|FF0#;yk zu2%Si83DPV$3Vh`%nZh2^fYNeb#PQDRb&vyr9 zPX+3%o}i9lDB*XXF!}Xg>FC@MlItOTAS#v)eTdFvKlu%d6Tehb-X7bxAQ}(Zi@gq5! zVv%Pe1vG+t3E=6EvHFKZbFYsVNZr{)Mr$y1=>P15 ziT0hl(c~!9`7n#2jO4(kAc2s($nyC`Mvn?AUI;zAM3Q}uf`>gSJAWOsu&|JY8K>HL zRJkYDw*UJ6Ksj28(NO>M_d<_K?6a2{zw=#5t{CaQr7zlEuenuvTSFRdF?6KPCrsRh z*j2_|WRHqBb{Y$VKZl{okiuQL7f|3B5qM18rotOYQDR0oqzK3)_;snhYyvsVE0Snu zql2`DN2i?dQhj@A4X(!($T;~z-P~yvE)rc6>BB!{)nqG^4;is$Ulys{ah~XY$2Bl8 zzGtSd9qknzV;Rnnof31`UhCCW&#V+ZhWQvt^#RK#a&}1{Vs3K~(ycm2yQaP78FfW#@ z&KnmO=WTs$huW%xam<@sVNq5*^YfHfu<-{0aho}HdZEhj6pp)-X06hGUxYpQFY)R> zADZaLuYVsfpdmMDPUWP0%K37F;=~Yni2|%HKO-8vhx+nTT?&^>@E%gB3L;@MiI_Vj zegfbV|B7EP))VB;p>IFU3&$=u_XGqGWB3aj6`b4k)Va9M2WC}R81Szadg)f@1;P}6 zY%8Qd4=FZz9!j!&9RUEAh@VzwN8RFx>U{aCH0__p?4^12ew8FP9M4SdYjTr~4UZ_( z9DSi|Wp2WwSG3_La(C(Lcu8W9b$Hk=ONxlV*V{Dh>=x!n-dntH*P){(!!{?F*WFOO zrr5HXsWF7H+cyQ`0?r~ zo#7%O`Esj>CiUbL6)6KQ>ch>>c;38u6ozuCj~!(_eH>QUtZWRLA+U&^rQ8C52kovHGa!Lq9Zn>tza@YW5>Ejc z4H|eD3lvG!S&H`}w!wrdX$FXf@~cLHK|I;k|R!B(bJaYt0HDoq6 zvOncqAxsKBW7a!s475v!#S``HXWS||d3mz|w=(;$DV2GZY5+ac@^$<4PY*MSnS%zP}#oct|#igD~(M{D|dGk;bl)_h~57aksnJ{hgOzy_1) z6?6T3k@&H(F3kK=9L7K|XSV`x-hfAS;s?idO2v8ak=gXVoeGS<`41_mElNfcMLOz^ zRQBBO9)7ML@q67jRj94>{68;HW3Z7M*&iKu$xF)2C{7=Jf`IcRvJ!jeJV9ygEg|}_>N$Oo*)QKP~f2^t*@`^85oe1 zNqg}iI9hjZXAkU>vD3@J?0esPo#DHenW$kIkYdbpQ&I0?>B@S+@Cylb_o=BM<4v9z z{egJ8q@G|^p0S!;01iSJF#L-e9^HKaAExfiqF~052`LSgQ6!S2h*I_n(N?mz5VA*B*^-bn zj3fzZSs^4VWzQ71y+avU+3PtkpWpNQKmX(K{T#>lI4bvjUGMj6oagyEU(K1q{E>V% zX=YL`d$?40mC$IV4Ft5!mW(~LeqKFLHTA?)p<%PaB1SqlHJFDn7al(Sn5!e-Z5J@M zV=N(R@B^c@ZrMH+a;u1+pC2-R9MDr~&5r4?%0YSf#YAv_`1xYPV-rTfw+i+l;B4Kx zb=h%098Anl%He(+r4uaevSUEt&n>d_^xFbNRH-x;TF-kfP{~?R-zw1mso^Fy7QAqh zS$<3i&@10at_2EvA%81jmn_YhTT*BrpABV^_kmuC#MFQYP5263dbia*Wbp*FHPrv^chQ!+-xO;w{t1 z%RD?XTH3n>=+aeGGTwG}9;HiXV@qlsJaHnUr<%Osp+ZaC{@mCkjpO}L2XU-haRf)A#d&Qq!CnYsCt&v(0%C^l-f3!fkg*;Mg5FHVbl_ukH>-P0w+XFcC zwDCL_@0rD`9EUQZYoX4iFKu-=Z6ZC?V+-JZlelxJMLm{gmDL=4TW}7y)L%6{w&Q7M z6&x{$A{z5Z8S@$PMn%=)bf4d@MBiym{SSuH8k1~yWq zuWX{C#N{_Pk~zBx7uhJ&UbM>c&2r}vT89X$-boA3=6?$&>9c(bFLOj>zJ1a*FJ+~z z`1<$BWlEQhboE#2f+r5l^*g7Ta-S$G4-W3tKK^b-ZR_Udn^wuoPJc&qj()1lcy}R= z?_o>xp|mr`3E7>SeWV_J)zlmf;W!d^Rf0~A-@RX8IYH06(!}@YpAsZL-V7zQX#n@X z0(3yt58Q)9f-3{sBhqQ*5-WcR=KDEwlBL_bU`wN^}uYweE?v zrY8hGnIGGYEN+;tiK;EGdBlzU@oJ6w-=2qDfuYe#Z<4P54(1O+-9~?#I*Vm1m8`kl zzqg~`l3z`%UGDAo@ySYyiU}`0o6;OPtWw$X^toGmYwqw?Jtf`JGJDZqR)%FY7d>?b zJO(d&l(S9s=ZYYCbd~A;?3({eAfrrYiX&1>h+S+zV2@AH?oY+ zPs@Hikb2_7GiAM}QTi?Fxx(jtybMoy7LZGQ$`ogY=62^vCy4J13>(NhryA)hx$WFz z6h+SYiSp3BG+A^`PPd%5DO#BoqLiurcrxlD&dW%hg{0@QC`Ma8dwEc2Bqh-iiYNk_ zf!6`_YyHHu8ViGt2V5&){dVtA5MxryYXIXtRpGp%8U9UPgx|sI*WCZo1+=c0U?c*7 z_JPd`X+(&cUhfs&e<;Ss5Q zTEAjqs81`;$``sS+c?f9^F4S!#^RJ~l1?6rD6K0lUjB6JmdWvtkL?#1f4K=>2+7V~ zmh(+cOXXh>KE9u>WLvq#?D5Rj-+vwr$w(J!U$nQnIBO$)>!y?5m~-nY9JQSG2FO1! zbJg_J+pq0$c*vm6eQ0p1ImzzQMw(w<7gA0Hrza|8k50I%8>?lHjZtr7)6NsVf8flo zT;5n?*McNwu~|_$o9I=G3*1j2$!0XuVVb3=h>DITL;&cva60E5A9D>X%)ifSJ&&di zZ3QOH&8yu7qfVpWZ?f>OHPxB^w3j&KIqeq~SvFWUTT7`XY(I*5o);6j`iP}yPrkRb ze7Z4S9WvEsnbu3zv8CoDbM{omu{ zNhY#Ra1C2qh+W%ss*As)rRCl!jt_(Gc=H6@`Mcx(n0z#_sZ(AUhJ|Kv)ggyT%_q~W z{_CHc77yMrGFQKruH3Ap`UuV&{iCg!pZxS1y6-j)yQ>8Q0z|D`+Yckqe&6&`Bj6Uk ztyYRCM>uE^;OMD*+Fcr(n)dGue2I1g+%2?{B*QH29U+PoBkS$b zz|aJROYWT68@Ef-x{u!`)Z*fg$4Yx%j&W!Id^p9ZIYbSaPLPWT* z5}^O?ef!FO{o;ZM0P{Q3`H!_`liSA#=Mc$#+hMIl3Dy_-k`5re=9ZQlNPuby_mLAt zU9&eQ`%3e-*k&CE(?CoS2Qv#$KFo|5f)xp_xsMM8x;y-FBJa5N_-wSp@Gk)=Lr!OI zYkS7PfW6LKRh1m%;q1($UnE5d1Y+3n)7?E)cU7J8?m;r|0W z&yFJgtG&|;Qx6~`pxm%wgQPTMwQwh>juaqNvfqNNb+q9@kwh0NIYs-oU{3#IR@Q!c z+T=hj%NUeX2>A;m{Lp3LtEXx)7j+kLlfj4*1SkfSaY5Wha$=50*Ao2^_}ls+d35LK zYVs~&o(ZT&(Wjb>H<6K%ZV_4fX=gYe^+-3NFG!$h~X)$%<4v?XOG! zQ(~Ea%}5a0|L1N?|NRG5T8-N_zRdpVY)T{Q>27wfQRho4H-O<*w1+>@?(|IV=WS7dlp^xxasg7U@-^OBoe#+?6} zr6}TgGRtpgm%d+IEPK<%g|L$us*CwH9pt;&tnPU+9J?SID2W{(9X);K%tpL2Oh#hL z-VS~@FZ3h@1$`?k&#lfkzEhD@F|fQ3ke`qg5lIiPjzmIt{`=3LVj%nbyq4`hW@q=c zq#NUj5y(EN)yOBX*#ZaNvdr^W#g3a!PN<4%lY9RD{VQZo;ZQb=zs4L`URHKYN-CtT zt}fn@kBgr6B~VjjidxHR9IS6ra~)5Hayy!v1Mo(mX*0I7qldRl$3Df84$2It`%{vK zjrp^cF1|8lmR|NO8vgw8C=WZ&?uYUk!{77_EsP`VY=WB#!Z~ zm8O{=+Q-2BJvvL}oEM|xPVz=b;C$r$Ux%Xfrk}iTv>Rjj`lpYFpGQ?>zh?2C82|%O z;90RaFTF1)VQS;wd7G32|CQz=@vZ~s7fScck@D2vDsk;}`+6`l6;TDHH_01gHi$eg z5=%22w00aCOpLBI%{?1cYl?=6kBJVakchik+TfG`n}6!OhsKCMvfp{nMIJH>?1Ko# z(n@&R9;REB_w7alfE;&e^SX+&!qI`Cu>HIp>YNsm4B)rLKaH0@+v-s&CQq6 znv=4x+e0T*DD`|3i-iY+j-|6cMw`*p8yojOb4=EyE6~RbP}bk9{qHYaxIhQTvE$Ox zNUhs+`T30E2ssCsS)tIw_M&^A!p}BNKEMuFkmSI0929CV%#mu<*(IDoqWnT0v< zo~sO6cA|UDuY2kjd5%smeEda^IyI7ZSLP)=AhE(1ttqY!UaG$k=As{e@ z=vmgtZEgoYlu#o-+U#hem7F;E*2Kst-h9~tVpIQaIIRfeYmRnMUXi-YH)u4{`17aV z?5r~|c~{AO&!s({=C{P-NZUx8)xU#AEz+Bx21}9z82B72Wl!>E-!GZzMAb^v0xJ7`p0#XgEV*%z>*`Rt zrN2eQr5e204obfTh2VJ18*N9lfzV{F9j65(Ad>3_CH(BO-erd)#z%kFBJtH#C7MdNQ<;??cVror$ z@h!a8JXfFpFi?HWRbrGbDa(Tl6&H7{_VbObtX3;GW1MwtT)AD zhQ+wE+2IaFSSQqf9UC1jL7l7b+DpyfVqrf}6)t&PIq+NWDP!XU^>+BA`7)R=bk1wm zybB-U;_&;JD28F*0F&DXWHEUlq|G7!P27o>R60};~{nqP^*or(|Y}ixE;F!C& z$hF3~0&D?Wp8EQABrfIY0jrt`d)9=Re)Tkirol_xyRN=d)i3+FGe!xhCIx_4^n19@ z(0e+$NpIj0r{SQ3+Awih^umnBwo8{TNnQ|(u1%G2Jo@M?LsqGw!bhl;>)pxEV%6JW zQ(!h^l+!LmClQe;JSw^?HOc-#VC{8JPw9FYH)u3{IbJ4w8G1Ldwg$ekp{Yqt_2no+ z5|#RoiP@a&?tva*d2hrz|abnU$hQNiz$= zP;S6V^s%pFVtSIYl5Uk4bF?vhoda&WouKqNrN36SR1^D*QTusxboGeANJqr3%r^0v z*;ykit1Zwj{T>~y$rNbNW+orXv{sI<5$yi^q4OY09=J~WH<*_oC!JRQ<;($0kicbt z)F9pgtOY6#Y!AYD@EY0hOM?_xvEX_vmXEX%B?!m{)__fYeH6lebL z$(PKUHk+!Z9Xj#hsp!v+jv9ZJ2!FjTDPM1gn+AkW{pvWIy{FpOS#&R&g6P5m?X>2| ze~%)#&Sf5L=hoj$K9gvv@(1U1ALv&U2j~noJfz#H4{bRBHKH|x{u~V~Z2mqOe#*%3 zh4qQ!$fl!&vzeF}4EKDHp#IIy#upW_BOC2zWhHc8Ia!z|LTul?=lmpR>;KgP>?wxL zoWM3wF|kUiH;1^n;h-(xEh-^_q}o6x-$kKfg!Bl?vUFnN!{BajKC1^9*no8y1R*%Q zPvLMGEKvA~TYdo^r3i4#S=vZ9VT`wrZ=d-32_;l;U2ewFnUr5!+8sIc4c3HkdYG!jQ;fqf&P|ggZ5&FLI-RBFqDw7!~f9 z_oL-^%Vq{5NBT5pC%JEkX%}i?xTe;haKdO8ZVH&Y585e`tc1fEe`GM-8@?osg{NBP zJh8mOcX@&=7h$oFr29;LZ}{w+Y{m1zA(+dIQQ8=zl*2vyb>Us<*SbhSCVW!A;+MB{ ztwWx!ebm;;8j2DM(q=Cu-*tPFF$crSt5W6X8($=aLD!O)c+f^RgUxL$tJw}ST$ChY zEQxTvXDld8P2C1_;obXg{f?`pwN-(3nUMau$>u>54ZX@sh2zWyL9!g1V$Ve-n;ePgn^XOm!}-8F)u8b! zZJYn*jY~^H9Ygx1cOB{deKDYf#KS^RXn~1oa4J91^1EMLg|Vo@XbVHl;G8= z|L|ep0D=VQHQk3-v~50QDW^uO>nJny-W0F?D{pCy=!n5QfsYl7{F3G8A6NeRoSzpM z1K(0BeRWIJ5}!YRCeQD()xcdKs!BUia?8t6C+Ef7&WkN|u|`?+n;ZVz1U~_CU|buH zyO0w?VJun-0Um?Xd#jys^>95F7!D8@T z#Fv@Q_w$hMeo%SQIj<9QsScH#LAM{pc-n|;h-lplckj$rL&2y|GfyI{8NdCxNhoGX zt`QN)Ux35$UyyjH_wXa|zNNA84)E7+M(GoD3CNzf-6$9cvPM_;*S_XN>Coz^Zs*Q) zIr`Jq%57WI`#RC;0rSNx0j7%|x4geqK4XnfxNg+WHJmr1qw&K7a*Op#l#X-}%zEB# zqpv~KFfEmMAS|T%x1GO3^^I%~oZAV`b|K-fgVGC0tr2?i*1(^ot(8O0Ck#1Luhv{= z(n<9E$Qugwv@k_8t$8~B5r`Z=p!%?H!v2o*{QMf1i4Q|DN{7HkA~*vig>3O2zR3ZW z5Sw{hVW5Aq=EMJoFzubN*zv7J3Lz;YLF5EU$Pbxnu?v3QS(Y*Qn z|MOA*j9SELGbn%nge(UU4Vhb+K`7HBEyJrn8;_;$d%uui98Knj8z@ik z-Mcgdl7z5;I2=qSQY=0U6EickSODp}<=7!vp(T*lIst~v8U=M$xHn$|y#mjevJ+gi zMmdkqavj-uXe*6;mnG&tP`IUe7y(v53lOuD!^`X<_md87t{A0h&cFWTePD{stdm+- zV7ZpRsSeumfiVAzGmwBZ)+eVuj^yTw&phX7ahj zt8P)hEk<4oiDYF1JqS!sPsg9W-(32LE3o`67mA-7W(X4HrdnhxEA=ODeh3+jz<5wV z7@@=UzJ=o}y=WqBq*rCHBvlmN1BbwJMvlJ8&m-{7`RPQl{{~cu{sHPTNQL{+9$@js zTPO4P&}ovz?;MSL?&f^+W>1va3#~c$5ikdAXD|Ex`}gOimW!L4PgxfZd~AKUSJcj% z`E5vffBx@lTstW^%+6)9_XVS7pDPqea_26*hN)v&+wS$2z@hbUHyP> zG>hNA^rpj&mWe}Ja*Pca|P-Q3eq+Q zN7Ub^2r6=y2nYzk8SuuUUu64(O>O6KUC`T>T9yo^>TY*Vemp~TUiS*BvRA9kg`*c{ zd3;;`AkCHZPi|#yZyf^^&<~0KCk&NOzpw>R03ahf#^XHNRaA-=Y-O)iDkVeNBwl}} zc6pPKMN_p9@zYeq?th?P@tAGC9MA!OMclnuf&4xp7bqMZqH_xqRHO_;`2Ln0mBH^9 zjy|7)oexz@b*}-{GXXGEKDrFi2O6?zL6;=z_Hd2E;bp30Vquv!Rcrx?ZGz9Dqo*^X zo7*3R=vB^D8(EetS4A1tW@PLMudz?~5L~i;d!BsvfYxzIH^uM!SHok_EFzOlAGM}R z-&Hx_02~ZY*iJmAeX$@P^==v_t4Q811tWU%zcAR`Fv5O&^!QC@=e|yu$bBv=n(MlK z954;wR-tn2!twOep&>x@+@TjxkbHrIF-|*zGc5o+tX@E$h}TUBH8E;Pz&O4B%oA0- zX+0MV7I*&5pH?De)SlMRU?waS;Zf$fOxQD`ra)avK&@~F#x52QV(x6Id(D$LpBONb zAdK@Q=Q<}k@D_hPdOyn~ibcJo5lx~_`E zmmzG`F#6x@#;2#J2j$KCq5CQ6Z7u#ILYRuE$6NY6Hl`-kjHZe(3dGF8_pUB|b=DLi z{<)QOtyfpy1ug503=d<+!nKnuxSwEj5MSzFJwSQfJ_h{+@hp(?1*7hu$ATsXujFV> zM@Ha@w!MXuA+{tE>cT=IhUPti7S2joXGV_9H==g<2vm%a=jPK{cw1fPqNQZs0Xi4k zX|Q_?<-A`p@FeO}v*JLR2qA|Pkr^6Uw$R{CrGr{7$6_^gJ3KMdn15V+tOaf!e;|`}Z#bW$GD<1O;fsEA=)wrQDP-eX2Fh;X7xF z=>{3dEwQRi>L2}crJ;!X7n1$PJ(*osoO)DZ|EK2V*Qe6=V4R+qPTgA;%$`Mr%1(o0*tMjen6q(J=V?fQav64pg|m0;mN^ z3umqZt4-A}*i7mu9Ow;TC!kwXQ&ae7hXTyR6`6Fr5(MEn`eZD1h%q}N0zL#2I;YIc z4xvvJs^6nyoR!{0wgd_wkU!x&oNIIAMlk@?Z$mmt(IJI0*>nhcPb$BdpCn3B@t6l@ zkI;z}|G7D3{j+AuFOb5QWAyB!XB_up2pS=i;hJZ$H=p_N%q@K?^|a=pKr2+I>m3kJ zJtds#R>j`@{DVRl3baplmD1Bsh3>9XDT7+6G=4tqN=PwX%)8QnM?qePI+6Kq7TQYP z52j93ng-g(4?a1E=0*SX!|RI{SsHcC(9<9a-Z$Yky72gp`N<%Hr*Sg2jC+ojBWt&U z@~=|YD3^~c+GCAnscC6LUxjsGdC04O;8d4F6qaEHaU!1sNuB#f*51Aj+nHn+3|j&M zyeSSWEjRR_+8J(V%JmA53VI)dn{fgOrPvcdI!|{KgLIN7)E3&%nIo|fqagzhlg8Tu zHl(DaxP?Ls`-0JL$`#KU9nB}#q|spIPYS9F^UDj+$>_UQW=<3=A@i$)3 z&o`IT{zL{wRcQ_l4G|WFO`dxE%+StiWX*gJ(zEO$&9`8bUdPeO$cWQ6`Ophj-|iw{ z=0zC)_l%3*OYEz_(w2P3mWGDn@knvA(lT`&ffUb=JY>@YXY#-tNuRylCNggsi_Oq1dp3^+H;6+K!MWa!A(E=g~xi zUX@k--9p2{YT)_Dx;!!qULw?po{}hgSVA0%wJoLA6*~`GXXS)A3}%E`LNJ`L{2J%v z*lsk_*YMwCyR)-mDAV(h>QFsA=9)|nhN>(lgxu8BP#P|Htu@Ueeh6s`JQJ0yX8(z& z)dRx+_FQ>4mqpe@406dLg=7_yQw#!VtkHJ_rp&MLgB z*u~!d2>WdeXFLe1{w&wLuoGrCkd8qs14@q1&CQMI-AR=ma7`;S`VZa3QERSq+WqIO zPqO6bg)pwST&bh9aV!thbm2Pt%_564>Y{`4!+cpd^XM0Jaj2A3bb zndG<6xw(7L$a7tVG(`nKWCUCE09}3)stubH#gAR?wV{8;{t-~C3;5Eh!!JhGizc1c z<8ngsXyaDmu$ifYJtT0G1?Lu7RaRO0DH{YF=3NKKpz#yFS?D052emaC+A3QS(MFIFuAhAHsva^K=Vhab1n6d{6vOums#qou@5jA!{ zNN4vB#CPnq3DOY)dALq{SX%Z=*J64UbCJYs67UZ2Zy?hM8j+HO2>}b=(?BA$b#~9@qk*s*skJlteg!+{OMc^Alg&86f8% zc5dh|r$)f6nD{2H^SuES6?@w7tnhh`tP&tMMERUG!l~`{Svz}T1Qh`CT}+DxloW^c+9r0mrJ{5f8OC=-c?eDrKE#SoY}tU z1VYDYafZ)axKO=bYHVbuDx8z*NsP2$+XT=P-dq%gGe>)xG(-}YV%CBmf!Oi0dZV`+ zPRnjxr395ZJgnU>d+BYaUR}Qu%-1L%T8oAGCmcD5^&J43EVG5W9jcF_EP*haL}n5^ z0G8ixO!dIMf-Os|1v`GP?UYr8;#lv=P2dJ(`68B0zAZoT5Qy>?oiM=c6em$)hfio= zr@M4_cExO09YMu|J;2fsKo(is%+6dn+B@G%QoEYX`)5M4R^|~}u2QDtMmoHyV`PSkHjVn5&z6c!~bl@LF zPM)0T3j&{ortgz|KMmY{uk@Sa`&~fR0b+Re@y9nMpU=}NFl8I)>nrN%b>4Muvl37$mFIs!2XnP@-Wrqc8Zq;bT>VC}i2#b?as`W1 zb+1h0i&3Qe!bqI7Y=AB_1*i?ksi(DrdK!}HyB~Ae=OxZ$L$V)GY4YCLT+Qr21QYj@ z8zFjX#~aBvc*#l(r9pLvWJlEsXS32Km*DudhNY<$!LB(V$ZfI07T@%wfft%lB1Xd7 z)C=n62UfT8sbm=f1o4hq)QHNEAR>?!q*wl29=aZXQdpSsR8#OyqSZ&^29KRjIn@V&E&HH?#|eYqeId>+I1wzNWu4) z5_fbh%nQSghFN5FZ{nO$kIz=p$#Py76j)u>v)X@e1~Y66E8xrW$Eph0T05chTdCgEVETx zYNyp#{!Sylk8|7qz?vgBsnQ}2d;MIZ^S2?2GPRldG@*yh4lqvPxJ`?9Nthtz3h zU1JS!s;CAbTDpd`zRtDJcWAj+nmjfeeEsu=CxtodHfm%a;}mQIl32m2B7< z&}-nvFMBPj^}iLkIhJL`})(eR9?Lo6&oASJx*99;n-qi z8{IAmG*Wu{aos}qD6_WDoi^z2(ZlqBgd!So%tk{p~fy2tBBo`fVg>*Gri83L{O#BpLVBR+QR+?}?k2*1yad4{w{MddBG&I%G< zBu=zI^!8(ZrQRw_I|Y3%FkbieoJy0gU@*}RUK5Nm6pn^m0_gHd7cZb%^DCajZb@Pl z@S|GOYr@gNv$c254*Km~Uph43Zzo!lS)|2B`c$6I6NC;Equ*}jTG8Nk=S0`V{J*Y0 zT3YeM`2vK8MY6Ej0W@!(EfQUuf6w4u7VmRn8bUCtv4)Qvl&EUpKeCE zi|O~6?^0Y>d374!b$FA)noZc-3X9?4OLK6P_Zac}Lp$3}erkmwMO zAc;#zz~amYRR`)qtihhH`i@E(rG)O;0`#UkXsJjQa@VoCSl_1%eec8)Q6oW5z#hQn zlB)}ijy(Dz@2o!IgvXjs4XYOaEvkB>!dvH&sXX4R|Z2(%7e zsmjfKqZKC?m;S!e;Q!lUlg#0{Ig;7pHu=9jyuc|jlsouz`{egq7&Ebcv&o5+Onqgy z^<&)uHR`%O79J>6cXBz=c2zeerg#E%OC;d}F* z3w!Hc?m24fcA+6gEP8AEnEYFLuT8|O0#v(K{N~wd*W0%xNUavW*AMfe9mPsNLe~f( z4a)1oU@x(8!Qboxv*7XL>95%j!nhG=*Q_8!BHueZL;hd!i*{zHgE11g@|eoe=(7s} zi_p<7!~XP`j7-{|3u67@!)Yy%cYyfE50wr$4AhqQ+J!MDIn-P=4iis3ZMl`eTc?15 z;i9SSdhgTcWmXk;MK#&9JDNH(owzLP48DSb#kt3-r9J0|-ejrs@qT`;d448qPng8z zETK+2zK?j2_<-c08HHYuO zsi>J`MX_|%ABUpNpas2rdAqibP6M6^%5SESghp4mX^*agly5FksdGEb1s|~C`k;UR zR|~*4UQ=_i^7xUExX06HiJFSPCP6!p>)gTM;v?5)IlyL`s4emn)XNeOZpDO0W_^OP zDq<1Pl0=%d7fZ%P-K!#2`Kq-uU#(pT4@%r!!>oNyjMF(iOZBS73yTp|i?OO=E8zp6 zS($=wFm>_Idc0u(C<%h8GYt!yT56N$GNW7Ei75r6=BpQv@klM zUO&!k%Eh}h4CM|!Zr3DQlJ;YvRtF)0Ba{x%{NegmPo3mH#FQe-)?sdF&E$-Lu@RBQk+_-Q8 z-UoA?!v(?*M#s>u5egh^7l1m1hXES;U(}mb-Z5Z5rancP9F!s$OoKca$cw;x&1Bo_ zdz0x8+~x-ufO_dM7w}8T1|bZ-M_rtnt?IjNni<7@nfnPcBuJU%a^YQ#QQ`iO=JN!( zdzxm7U4D4fD(${ljFPRnr$0k5!mHH^Tr><=*OxN~ZQiPFsU@nP?)E-KMGQ%I5kMzM zYLo-Ow4sU0pMO&M>#k&yR>OJUmN8=4oLeY_t)9S}$viAZZ(#H&&?rtNw;^K{g}=se zJYv`oz=aidkxanqG*$lDpoap0xGo-Wc0@ymZKW_FsS4h!q@*-eHR3%Q+X09twET(4 zzG>ILV`Kiv?7*yvKSMVxws#w`@7UFKH*(qk=uqnUXI&)$_`$Y<__K(+$mqd!nW}sM z0+D^*d(6(v^g>^S|w( zvJOzT_@TNa_3V3|czXDJs%2*U75^8pct3ZJqA z;cF`mq2BeLOrQFjp`5?cX`^h`S zNAwbb7%U_IZ&a#2%k4ALJfOo#@q1<}rGV|_o$bCYF>kH=A%|25K5H#T?84~ppYn(} zSMZT)d38rmP9mE z7`i@E808FSR=b$!{qFFLaaHp8MH<&X2bUjk^cZ8OM#nAQD+b&1mpZ@P?xw?3^x8lX zDPUV=Jk)~3=SctaT*74=ih-gKY$n~^jaj^j-wB}@1AcVnQu2PL;9hLOGD!Kxah@2O zr&k;DT1k`c__W_rXkhej(R5vHXdwIm;1h0nXBg#G)RmZOiVYha$Ty>Yha2Dh=G{!U z+`UHk>gSXr&4wQ54L}Mq>^$17r^d)SK4W1DO8k^S)z&B&c+`er{sS)}=qPh_6fO%?8PR-u%vhE4Oa;9}(0iE&n<+ zRdj3ReT(i5_NwM{J12&dzId%3ni$QTGA{Gk@MSD#!?mMc1PGLU&HS0#nA!zwnTj+aPCf<>2cAQEYH2WkSQ*)yGtmmKbP&q6T7mI^PaS*#GgRffNqbW_8{PpY5c}(wpYpEkj3co-$xR z#iR_hkXdLcG$>uu8{8`}9=GPG7Il{mtF@^yx$PB#$|fXdmoXNeKzYK~+$5e@~a*e*H3MsM$>J zSt?uCkjF41NlJ-kS7cWIOrvh=@R71X=aU?br5qb1{!v3WDhKIMFUNBhP_%QN&PcPmW1)7+_dvrvXfu!QcV zz&<)3mqHa!_umhbgJ~%zveK0Gjv;8uU^QMl*q>A z<)JSEo>Lv|J9gC^&&3mSFNWs8Ib|RH?Ab%rzrI}ATe%n!Qf)jJReC~KX+ODZdGa0l zad0B9Xvz4ZlIO9@j;>4X18h?U%bXKBMQVPAXxC3znJUiQU1Xwq`R-g{!BVG1%!WAn zi6n!Rf|aSrjF&4(29=B!;eC?TL3O4{u`zmQ)2+s=)S3D;)PHSpP!6;8{qRgoe>C2= z=?ER!Igig(L^w65&7#jaj-+pprq4jARyppm)na2n5HT5()vW&wpZuHN!Qs_WGa0{5 zn=^n}(B7SIV;tl5{FlJq`;C3|7?{E?!*e^Lp|`2IJ?fAfMBc_>v2p!=UKHFUIs4RI zg}c$?xBQoZ>LUNS{Gl~JrO4QGu4^k_taB(($TDrbKwpxocsXXEO{sBjF zP-;$hYNyiUU!x;($CuiK3~!t(?94xGYaCeGSl;mGmzRi22Y+~q-dR5GZkrBG52ZIc zS-TD&bPkT^a~3)IHn?+uwo9EiuyZ}}*Ag}PBq1@1?p_{D-TBT(E!G`kB!a=Jt!)yG zPw9uENI)>ECSv|Cv!@qI9oKFgn|CjiTncpvGE0fXb$~J1e97y7dcrgtCI&^SbFOkd zNz$sTu1*pe=ubSTwO3z1qIAsF-CE|necrRu{TJfYB(H{8G2J`;t3Asysh+p=@71sQ zN{5*1Rf9VDHSF#4;$)dV(b=;8dj;($2d&)Tn5~zDO~H)1`*d`735KMm-MeMr_1)8O zhMk(UJQZ0~65aKW8%JNJT&H`HtnII}qiQ@E<2XY1O)M8G&PabfDg$o;jVw=CCV}f# z(Rn#R82}11@j|2>mP)8wTg8hL))1$)?tDWr_N99zX8Gw2xuT`KFWsvtx(0L)(}Grk zu;^I(a?LUzq{AW}NI9&B$-VSKxHR|TKb0BtV+m`r!?hwfYhFXM&nge0>d!1FyPiv0r~ZWcCXIn^jjJ%v8?{Oy!z^{vbD5r{v^#RK((kt&)kXr ziWt*hS`z8VsUDC68A{9yPYq!{rJ3PX!B}>CMZ&FUIig@ZxbWA-XXCzyF3&RghF^1I zEtb|>^{K$i?v(4(j`cF37zS?UHZ*Dmr-)GpEGC0;7&KLc)t&>{hZGa+Ynf|RkEqR@ z?=o2KV+IuzfQ=k#S>4tFty`AMY%6jc0?VgM$HEyGHkI3^=A#LabD;UR zR^Js9AflXVO)5I{=W+I_>O%Qempc)jzLY`U96i3?qZ~&XH*5}Kr9E=Q_vJ=~)6@*1 zx2R6jhh6&R{W6(pGgFY2e+Dgs_U|sPOM>0(X-`a}UY*Oind{XYo)lAQGH88x?AHsk z7b3hDRK4q?S{B#8xkD2p zX+^iB9?Z|X!u*yQz_5OidhOk|dkW3iy^snrE zE>QCF**)E#BfQ3qJUy|S!cxYSV_hj-$EED&G85p4M$v(4eHGd`=!19Avt2g>Ba^KiJ;W5-y1T&wiB|%gUbe zqv=z=!u^CcMUT4UL9E2xt{XSp;#`y-ECsT%$s1kfzRhQmG3x1X{_>uXzDF-oSM!a( zZ2#ro`@*w;CFE_L2IXW=PyVTVhwF1qy|S`>Sw23T6WeGjmL!WptNiwh?NIj5MwP** zlf4B3etf!e%d`Sh5B@`kHbNEt4G;dfec$Pl($Z@%9V8F2ihn%c{@IDwdAv*Sr9GiM z!1y|U#>-n+{48qMCKyFI?cw zHWvE~mY8PCZf_8Pc{9wgxc^s3xF#SN8UOi_=)CJ?thiIvUo#r|?veTVc{%oX8d-*T@Bf3zd{xX-8@i-xthHW#|0zUc$x<%(7b0ur0Q(|>n$@+rgqP2aO zo}D}#wO_^m;iE^rC*>WTorV2|H`f>>GTSNF^%Yn)^KW4jXMlOVvm5JSMhY1jd+Luo z+~+bhPaBT$_oy#P3aLqkogcry<#@5NCu5z(wPQVb&WEyt`sSH}Y1bSbPP03nc^o!3 z(|&iYirV|@)buW?qLr1g4OWTIbT@qsSLglfYild#a5>v4Ip`4Q5#F|sJDA!-_8cn!q#6uT>D1oC(^p#*tC40sI08iFDQ#a zEEJ>8PEt?#iV5#@x9LGni3cgMo{O6x3ED{N!6x$4nAkI|dmgwjJ;Yo+xp(Hz&oeWc z3X>lAj{G>r0fb%#Ns+Q5Z}Y-ex-ZeTL47=z_rk3lCHrXy2f^1DqkOe8P183&+Kidq{%q~DlrK@S zS*4YocI94ABe*?;8!0Z4>KKs@$kPMXGUkU>w!a#4jo=K zRXgKcoSpT5TOPYNw1q~Qam@N<@||xFaz-QWdUr&IebHSge5-frO5quQ4_>ZwoM*Sw zR?z)eS(*N7bx<^CYeO(6pT>j!p~$)K7Gsf3`>KRTt(6q4V5q8@X}XovpzY&-B(bIO z-Iu?eeZHgqbZ#T#xo1=lhEI7(w4ZNX#u&MAYsPhF%niU=;cjd!J4WkGn)}6Nge)5I z#R~($OBiEpLO(?3(v>Up4yxSg#9m^?COkVjtdF67CTwk?2i+W$Ydt3^uG!noWHFXD zcYJoTBp#Tjr{`Pc1e&WVD$s$lim0cw@YjuJO4L3Rl9!W{3uMo!$X^zm=nqB0EX}yB zuDa_{(_rnFPxif}uqV6rq-dX;A7uSv`e0+|&EdvP#0dOGc6V=TIwnJW=-)pQ>Eh$# zlS8>LJv*k!6&i&tmz8%};F|MGD)8MXEiJ9x=J(iPZjqJ60+?*qAterO?y|*u!NKyb zuA+rYeO_;%DS=a5; z=2EFmbskw;z0y<^W*g3Y@!LLlbi8%LN$bu3e($FoF|BnM5#IRo^`&owl6uDuADq&{ z@BSNDLTEtTpK*2lq_N_wa`o!5>s1UGu7OOXAIFxjQFL#;9^*9ydzUCWn9w?Ze)tcJ z*0uSGUdvDWr*&bJldAcpjNnM?}F;gqEO+`M6Pnc_XW83ex z{iU=kf7srOnX3HxN*QZQq47pOl4sk;O*5>*d|k$$KYy2BP&x9xzt8*D zjJIWTW6ns!hL#U;svoJ&VG`%`X)36<#{YHT=!2C`Ns%FZli5AzDe7g`@+}my)RX)d zVzX7d)Ekeq8({lXZ*T7hhAH2-N&Q}MU?$uYOlzO1ylavn%QvQLL>Z zrn%n?LHaxizA+AwjO=7@Z@-Z3kbZs1*0MU%Ad^L1HLpC#B7XDVNCWT5ejiqmk_^QS zntaTp`-&zeyi_#Xj{G~0lybefc?QHrcxv$8m& zS9dn0$)X`nej`m2W6PhPZ-}qM484Y2z&18rnkJ-|EQ=;NJG*1PetyTVeWg0Bpn%og zl>7JZKPYySvs>kBc2&5C#I{VaH1Ss94(H|kPq8Ohrr+0wU-v8a)M@wDTgc~Gv~PFV z;;HBFkZqg6=4Vho6s)4PWiecWl>hGDTv$K#PM2N}*$o=y<2gyO)LGWSEgfF_NTW$N zgP&MOvzLcjAiMWlT+8h*JzBoz^};G))~mTm_`x*mTRq9lf^TvQ=C?Oq@Lc=*VC3=R z68{pWqa`uIsmrT*pPrca%Jsxbe=q!jSVM|W!6jI^8*x-eJN7nqgnYn8jFBk<@P~LR zuS4V7`|xnb669${%P(T^PCp4J#tOe-48a-W=De@p$|l}8V%Vbd_m+_>aX0WF|Z0$WD<_$Ozdx z$+2anG7oZW$;vKdRVbs#NJeGv&HsHr-~aFRdS2hb<8a^i=YFs2dS4gDRLW`S3>X`9 z0z;k><@>kbd8Oxq{!gd^J7uzxU<>CBTvI~$ZglijX*5yweJXKp;kDf<8}p>lgY7W4 z7QBBW%~2IC9$5on-KHtYeA-FW)YRZRU}-W10yL7i@-`5NDRVPA2Z(NSUlh(x%WzUH zlKzEl4kXDtiK8i7i>y|*l0QuAgs9&B2r@4Hz2mg_(`C`M*(G#wMY^_s++^WOt&RKk z%PKSN8~EE-ZSP!vZA zB`!Hz&+AIKJzZX%EzH8746*vT9xxxf`cX6gwPAtI8A{5h5O)CYy>X*1;ESE4dH93L z5#u+1A6>Dtv-@85oA;HP8lSFX?({FaS|g=cRykUzjhQnarvl8m&vX=$d5i_90N4_B14g z+$t<=Cih!ZRFKz|b%U(UU7sxKVRsLs@ojmZXtKY8H$%M^Lw|SOPACZQvF>BY(Mf$A zVim2DtrV1)o{oWH+O|89Yi+YHrV3hvdv(i?F1zR;Q`-iwMT_SpMn#VS2sJ7;5}c9% zO4&p?wt>@U30_*N%O`)|y?_M9h?7SbdAt4}7vSGyv%HMkWbD;&wToYn!z(02_L)qg z$6iN=j9J=gb_20QxK=UB*!RxU$w>&zF;_SC;dhPc`3v+(N->`usjx}_BM;fBoGYTD zl}M^T1k(6OappI5bG}z(yLD;If;QtDd7A37^s{Hq zs1)d=CMG9`gPwp*kwQ+@wUS}gyut6stU#~lh)3L{ZJy!LVCH>txi8(+O-fGTRT>M< zO5x?-YxFmMGU({|rNWfIyn10fopH;QAWJU5k*qRs9+Q5a zx+Z*2Fq6rMF4fat5hlx68|LoDbY=f)T&XDRil}w!%e}w3cX)U$i5CgHASKt~HiiAF zp2Q2{FpZP`(2@ePr+nin-0SExyEi$+p<}2=hr0wMRAVFq+S=GvYeU+Hi)p^eGu{0+ z2&=QUaDXs>!Y2pE(x8{`oi)D-(ZiHM3ETQDw(PHbq(aQl)i zhX3GJ91B5qFqy(ysN2Wc4>0<12g)46$@*{O5+L22V}uY238Pjtf#vd-ymt>#gEqh} z7;8}Q+pq(1+Hb#e4pv)FKLQ1}wC`4}^Lqd-et8_i@wEN@F)m#>L}h`3~B zndIb%9t@jT+)=FS*Hl;kRndAPG|)o-|N9<^fF0*1a6%s0X1VOz0ezCfSQjXNNjQGx zMPbGN&h{klx6C6xN?U`PnIji?d8a`*9~}fmd!pv=+@ww)7qz+XU=of)+hkFgGc35~ z=C<{wwzX3o`ae>ee7pQ$-pujy&u^q4h5y^PR7Y}Md@BX0ECaNs zKm5@eqRb#{W_=s{mK430zW*9z+F6})WAvSb22x8)s|}=9PyMzIj7v=J&U8eL%)uN4 z>d5xF9Xvcd#Qqb7^xhCSi8=Xa`#yjETz6$`aIWw9@>o{A$Kr@c#m<91n>W^<(j~xh zD2eyi_NY}|yeAZ;I2f{wkCG4*1K{}!sDGU>ZfU-<1CNr@yrA<7G?};cyP24n{tQdt z?A9(zq2=tP@ZDN7eJ(sVOceL6tXEl?U*$p<-5cL&A5Xqi%rvAg3rpj<{9mBB5*n>~ zyL`=IZj+p`3l$-%d_u;&d{vz!XGfqG86fOLKV) zt4B=#rS*j9XN!nytH_)iH5EkA){_Hr7)5*py83b!i;Q!6jmQ&_qJqPRSQHu$l* znkVsQtUpY84aanBq8T|{;7-~9yW;N2(Y`m=Lzq#wlwE-4Pqm93o~dORUPJ@@&46p}23Zvh$mS4GzYm6RQwj5g1gj}1GNFa~>==}% z5x2qi4Zd%jtsHb9<-heO_kcN5|NhzGqAhEPuwOblqiWgL*LRGEAc9fS@zSNr#UB?% zv1%thK_(-ULy+w+PitnG4iORXP{9UB+)qPksi@)(t*CK;4cU;XkgYQN<1l=W%Yj2BbW2@v8 zSRH;c$;Y#IW?j1fkgcuJDmdy&=9Q?+oYGE}!^HF@(0S%rwFZB036cksnn;+u^pr1m zCGlOiY^jAeteC#ZiS<@r#FHn}5P#SczO6UMT*%$NSkd%&D&%xR6bAzXP?cEZj)lnO zTYVc==_EX6wJMO(nueX-wa&FCi4Xa3=F6_JK!2TYOu*p;5Na@t9cyk)khtKd=Oa3xsj`(`)qhoz*%{A=C0$zUyh$V5`XI(Nq;3B7x}ze3!OtI-dP= z36_!+FHMx_W1Q_>{8TDP9Ik0@#KW`EB|98Yd0}v$dcQE-g@on@W9Lpgsam|3v}BF{ zNSDjmB5kQ}moNM;!L98=#&nH~(`e!1gZ7GYbo4LXIT5yj0dt2X|0;McF2I6|>CL%BSeA9pk~o@!P| z%O8b&bC3cRF|1~Vo~~{OP@wE?x4=Hil}CRPR~M@-L_lj}rTS#Oi=zutV;FK;@_q-% z@7rw7e};8|rkBoZAkf*4RgcLSX+7HLGpm2dHBxGxysG3hT3$A$UjTi!mX40cegpKs z36DcGCmOukVU+uHAuHg^;;7*|a@`u4@+7fr>(?^R-K{uQ$4CQwi=n zygouIisJJH+}Y53VY(M2FNIyYzeMnt?m`D?i(#&yHg}@8b32}FtbBVFAC{@an#gP~=%$AvAYr`x zipuI_^E#xNJa~AnR=Jr6()$7lY)8pd)cMlR~^wbqoSs?@4$9Cce zZjb^!d1raP!Hb~fgxO(i$j6pPNVH1$t+KQqpSbwI-yKk^3(d*lAt&6MgUo)0ZPz*QXpf>$8mtdf_EQoWWlB{r>dgl56-stB_-QcrKp%N5CCdRH`jmo4TF*71|*QyKd^j zZH+vMsol8AYPZ~^_s~*PXzLQPhp-yVKOJyT3uT6 zuq$O;mevZcI9b65j&+A#qj?JOSdei(%*K$w4vuT?jf|#UFC}b=laiCkn-Zc!A^8dJ z?oPEmA#ICivoX)3QD<;#<{Jw+H?zWrm28)BrZ{uPdO(XEWU9QCVYP?|7_()z7>q#3 zy|;gOg0^sHUQ=-}z?uf;Y6(5wTNhLrgI39QLitS+hbeZ4(JxAg<>+v_&(wZMG0k+@ zl@;2j!SdVk(5B;qgK)J{>!ZJhs5U6JB;Xzuj)D~{4-DK~41$jK+=sIu0{-gm?G+kO z3yzS6S(P<vbW!fU>D0Ug`#9lF+}u^qGe!6>8L9qFXL?g=xwN(G z<2rsE865h^Wxn{B_^R%sv_8pV!&Ix`(VD`4&tAgwd3zR3!N6J%+uVV zW_}V8@lF9)b0i4FShx+z?W(_j!+6dCWPT(MO*DMi>a8s>N^10k@o~k6+noqU0>*B? z;IDUWy$lNt$e5^UvbFB@jqG^n0j_R8Af==<3Hn@R-&bkZlZ4MErliE~*1VlI5di3z z&rEsa$_GHAZ?}lTlxlr_eJSYn8A#hYx%s@-Giuh~_}`TNRF{3gARZud;m_;nh~uK7 z97rukM@LJpby7?eN=5!$+*m_yK0dKT6AK?+UW|@I&AucZh4tD{VL5g2UXCCr@O{DvV3g#z#PCAI3X~g_`%G$8d1r zxi;uVA`wE*oo0X0IzQL|pV&$8UVv5x70MuD!6_j@11Cd&oPt@Z+vW5h7JRY7#_QbV z%PzmrgO3UE36Si_4VB4^>y zd0R|X*x|1-wfp`Ubofu6KD|;_akG#T4ACE(xbnvx0PF~{Jn`|_D;yV1O50f6 zn!@NWn$-WC2Z0TT@0EAMb~xDC;{iLHMzT4Q=^^sTxg=+0l^-+woz4m{ICD|@>tEY7cYt|_9R`#q|AgF01JU#ys1AUWh}7Rnz+i; z&3@mGQ;3g(*!tj+bsK7WXSoR*|My#1z3kH=BljOBvM@=wWX)TFt2wpyBA`Lb@%FWK z#$X$MzqqeP^`}xi$IVLOUEfHVAD1+zel6R$j{yB}bZ=@{z$#Hz2)o%^jjhrz-KgMG zHnVCiqvzF*?TIhDBTdRJ9T|sUGu(Ep+EIVpe28C)2qDSN0BGhOKw%mb3+P{XMax0& z@&g3rg?HfH#Os`wQjU*-fbn5jW~I1nla7%w5;9>P)PJzaUiuB3^zfjUxF5E=S_Vhz zO4+S<9(-3C{=^j5Hp4{vpj!~S87R4nTwCD~>So9eIvyjI@(^7X1BUNs2Qh$u=OgoF zz4ABMm$-Almu9+RRQ-WKEljh_qRnRtPtkwR+gYuJx3B7(TD01vfvD^EmiMsZQH&=8 zO#|1vcWv1r_=h`q0lWCE#~_!+mF2l4ST=IQB1x^Sv^uib!q`aL=Wo(zOP;%}zN?l| zui|8l2&OQxdixr=buOTRU;t^_%OZFI7-$!H9~)TJ`Urn zLX|E#=mWC+=Fbl=z;rJGLZmfBEAK^!r%O^TNG%P&>3gjU3oKQJ;l~wl+ZgE0UaO)A z+@@cv2#NA^oZB7Cfko}q(3lusHF^+2sXYwu&w1Izr%ek3=Vg8=@HWF47DQ8N0vL3s zF^EO>p-T1o-ty(aTNV|jZohtgZ@HG#;oU1E{UAE{>+J@N$`x*WoK<$N6#BfK6!Y>* znmp{vLi#A{gDPAVriI7~AK_-`zLe^54Kgud zK(;6X58VRV-vmuU6O9JEfP1{PuBxgkdhYNLX4Q>nr&mF{9`;Lrj2Qyl++{Bi45Ev` z4hCv4)PVq0y)PHxl7ngHERUn3%A;!BOX7}qo+_wH-#2Fcn|9o?nPzX4rRksO7rrGg z2E`XpjH+%jeucq3O0t)DpX*Yy_2SZuoN{ZEkb_F~+QaS| zp7(P?jlI>34gwGU7DCC{2C&N-sP5$406b=KyMDc&jRD30s*fH?!Qj;-=NKTxE(e&K zhusO--FS0UGiy7}iNR4G9$X zNcXTq`s0xGrS@HtP;q>bKZp{sKrN0$dHbvJekUGgj(hr^n;v8FiVAMr^t3fcEKC$L zm?&(p?Z=1erwh#iVYli!JmcS2FE5adyA+!;1{DPC5H|RbT=A}6mDf|7i?%iMhfG)K z0u#_MNapW;Mm82tcg8R_E}_q&u3o(=ntfeI=L5_c<~R1SU+dj%8&R+@#samq*Z9|t zTL}Ey5k*&absLyhkC&E~;9*~Yb}|NTka@{(V2Q*+Wm&0}0M_ar!~DZFG_~AwgJSB@I>w-rf zKz8%0qZBiQ!|}{Vk^ly8?qU+qHmZ|z}@shGr@ z>j~^CZ|^lpKf^4|`j{dkMj95D7!2l2g_ZonX_ZD9>RO0}QGz#L`(FNzkD#0|g|{o? zo`O-*r0?%IZbc2a$T#4mi)w>B?!MZ*o90V{hF0i}_p${dhVmVVM(lpG&$yL8!ny$l zpqcUC%RJoNMu$G~2XNw%8Fre(jnygyMk0OZPtPQ+laWj?6W<|Z914Inlfw7HYdk`! ztmDDrxYr-fP*6M~D`q=fqM<=c0JA+$Gt4R&FZjgVNdJ{?R?RwUqxPFa$8zNE#D(I5 zMjsNVQPCF_VVGXtn9dmwNwrRdVgQMI8q6rX7r`?Vu+pC`JD~h^4Jra;2wb?Jbi8#F z(R!Jr8oLfOJ!B#bazT*@)&X1(*OE4J9mmMQvRjwaheWv<-Xa_dsH73!-$8)vZO*qN z%nGDutqp=}Gbl3T8`_y(HGua8DTwn63mLsJb8vLAw3U9B05nT{#szRh{ieS4wo?w8 zXDU7pR}Dc;9b{O4=vi|2NrFIVNICRGeRF+K9JlQ(&pb=x7m^lEYdYUCtV%py{I5;L z{cGTAGk40$82v-f0BIUy1?aaGLBh((1^k4Vy-GADSs1u-EpF&0{0i$v8B)?7A7x&ES{SHZl*eja$WaJ4mTaTIPrYP#2FAx405(Cc z9^#%lh29v6ckrn5+@@O8TS9zfoWG+~0^=qceGuAE27i%JZBIWuqUCB)C?SCyCy6kb zpd$9K&IUv_;5Hi@fTb}d@{!%q^uubMvlXqOx!1yO79xa!p<<%I-AspUO|^2M#WX6< zl=>HZNa7`hfaGmF3~|-C*y!#d6*u;=_$zfc$AZkR_u>DR6+YcN1epY1GvS%py_3Vu zgX?upsitT>wb?KjT`lh4R#5>OLY@~ECSZ$s-pgYSlTGh54>xvqHI0l?yxsu^ioJEj zTKs!619ea)OpD{8UIYrrMBeeaG?S7}_^CH=4!9@W08WKKZ<2qwWpwWz|Gm>ogU?}b z4K26Gh>SL2c!o?m&EWqAA8&&;3lJ>hVT3!;#ly?(w&o#?rfCSe zWrV)*l8}jFCQy+RwYPQCx}EsxkXn|9a}S``(|OMf{66e(K-~c302vordM3SB_`iO& zbwtf{n7o@aFUyPsx{AtWR|hx+pY5Kiw)9Fse&U_3-Q4}r_iTyBN!NQ+`3gx=? zGzWM#u2yetyC^$8e&m*s8Cm>2(GtW0XN?~ofc3KkCv`(b@?d>);*m6^dj)$d#J=BkU2FXV&gFv-M7pR zf|aN?&@IUj`bdum33u8cviO;+_4E=F5(sba4WQbMr2T9)4@M~w)*&3m%&eOqH<#Y_ za|1EqBHGlOki({plfTzEc3W|G7j8>xkbO-5l7e|=O zIFyHK)R|WDRGe-snUsGfSeV37e@3YsMoMQt-cXy(g_@F+lM@ADd-IUq+ch`^KU}^+ zGgLUjB)dquXhQQY*&z`5JbsfJ*dxIU%g~@q_9v^P%I}Zon z7$YWk8AE+5Bxv-GD*pTVRaj3lL`rm#*T$@N#Wg1tUF`E$uVMf#gDt-=%eBx`16Og^ zfh8m)qzS6eGiT4L!!1)BJIRe?{{S^8$g^943?!-zAm+h*Z90G}-%YpzOu?iatN@ao z(_5BM+kpqdul0^yh~mVYLJ2HV4xw_M^SBlmE4C7G9y|>JT`2^#gD~h?7YAOspgnzY zoE~<$k=tKs-^T#7lR8EwvOGABFfNjwgk2Y#A0g^(FcqX0wIYU5dq!VhRlVYIUe*6` z0RrB5*h{?Izn_iw{(TEO7y3v0$&gXT(ed$*lW>f{WybICZa(SpTEw4dz>8ssVjl|i z@03bp)Hf}{r#O!vxX%ZJGni(#Jtk7AxPv-%r9%sjRy%&fZ}kQo5kVx7q7F!3Kj*x4 zF4Cgl#t@+(SJnRvKH6J{t|=W@+B-`>l2>IvCU7J`h^8fH5LS8gsM;&&Kc*=izwX1s z11N`bpxpBXA^eB%1fGurrI%uN!iQtNKRW^RZ?7mShn#?9Sr7|~nt>s0wZ6`EA{sc3 zIeM>Te8GTA{Qei#VbAr!JWX4Ka12QlQPW2-CZNMYzXilb!bHYk<*k8h#a$r$A_){7 zLhy-s@`Ml}pFkh!E&m0+X8k2YF8$Jd{T8d_vVj2unDBmVpxVgd?TbI#i2=)985FR1 z?ChgF{j~8Lyop9i@tCDIw*Qc=K(2BaE~ZCW!w_)qUr9xv0(Y?%L}o)nP=e3{x*{Y! zn?))i!}I6QdoL@)?MEnx2oVBDI6I4pq8_avk#Rkz_?iuL;tjK&^KwcWexjU&@LLcQ zq%Ljj3wlZ&FQp%#P_TiZ3Csle1s;z7jG!##6#X*F!-cK-GxuCQrt({1jQ#EsT5q-> zgB5H!q2BJO0x9eV6;Y9|ybaY-sKC{5e6euphF<6UH#fXoT}40L^K3a@$6$IhwjKdD zg+|})2mYV!onO@!T4f4Wc~8&0=I}-R`4;*1F-%g?Z*225W+Uh>AbIrd{mv>A@}W}F zz+JY1w}n6fF=DS=CP^iPQe$s_|Ht-gu+=?tua%!$h|2XRD)>PA)1PL~!ZVpQ7Q4r< zQy(_C-nQO*=>B26>{U8j1~f^yC*nB%jZk4A6$l9xeZD8LK*1TUYf^3(Mv6uQ0xc&e z=e@{ebkm)bj7${(6fg6N(MvdfY}MjdzQN}!hpU~um?~k_dvp25Wee4`cP=}iVp#=0 zz?!Oi2`Av1(@do^{)#P8x)IwqTqIE96xtk-Qgue@B?P*dl-e3_A9?yR)h@Wopa z2JXm^^lHt2o0;prA3eCavkw==X!I*?lOOFDo_TF=t`ORkIF?4M9~rq2@hww+^GO<9 zgANg360S=>cvgaS^%?pgVmH03Pp%3IKq}HE_tMuRe;+9^lNuA2kA*;#*neoGrnWEZ zLkTS2>2bHPCxnN^jy2ZI-Q+@UCpf}1l0Q}Fx`&cu`c>w?dKADVo4BV7gQi4Au;2_e_)4+W`-8*97Ul+q5r--!@LQ7S8Q;2WqgCk!POwoNe zv|)nNNihYqk-MHNP&KC7oE!tFBUIgbN=!^e9M4MAXCY!x!M^tGhDxD+3mXes{nz&$ zp!XzlaiubK?Qp=*9@65O=`txbqanNVvX8WM1FM|qq5aWUx~+%79f@ph(p@NpE#|Ei zkvrGaj0~=1)|+Xl8BqgYcvnjT4iWuGmg0LDrOo&yv>;y}c6BRg7q6(uk86AB2V^s-<8+ch(B@Ve zZxkL^s%%%*pLoU_7)(>z3qgLhrUiCR1y;zXG=>D_hx!EEiCHpwy2ZX*xODLdE@>M2 zg2olv)<{a$wQVg7u5@s*bKA-__J-ZL1*qg(U0D|F)=_ug&AQdAi>Wl48ug< zjHFaq9BKOyfz70*c~%HGIR)|bGtKB_>Oc|=`j4>4c8v;nI)Jy}SyWRW<8D>2A?Jh} znq?#Ove^$EBf}wBL@PGxiR9r17{-}_jwg7Jt1_T2=mAyD$+zCkGK;7YcH57rng`GS zBu3%zzd3~NZ>p~z&h>?9CkHA5C5AknjR1M^{}tJs9fS}VQR&Vj?q6NMmRF6>3Ij|s z3et7tmkQPFkOBIo#613fh$_mS_-kWc3&fV23FBFUOU24)Cgx6OXoH{i~>Q<-B%)x|z+ zR1PKBrx!Ce?%uU~rv-y3jzCU+Jv%MES(Ykco{JazAg)_;N->|9b59L8)p#Edf`rRm zlUK8`7y(gzBf8-dl27Ses!na&9hf9uf8z=ZqM!A6fjj4^={pl&VgfajLOWx^U^;DT zMFfj6Zi#*?*VJk$IfxIo@Q5i;V|668ZX~MLVzv`Yaj!it%AIFYVucRjP3ds-=?� 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�zzwETv(&|7VGL*Y?e-I@~!?fs}tv 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
P`er7roUH60 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 E0K-AKSO5S3 diff --git a/doc/build/html/_images/Fig_Tutor_BigPicture_Tomo.png b/doc/build/html/_images/Fig_Tutor_BigPicture_Tomo.png deleted file mode 100644 index d886f47571312be9c66a4dcfa245f6e2edb4bdd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160388 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 diff --git a/doc/build/html/_images/Fig_Tutor_Geom_Basic_01.png b/doc/build/html/_images/Fig_Tutor_Geom_Basic_01.png deleted file mode 100644 index 8eb45a703a39bf33193ac1d02b38e91e826c0b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20328 zcmeFZXH->77cIC6f+C0tf}muO3|Ay0K|rFUgMeg}BuP+mMiEhRMzR72Bumc01V|7$ zWDZG5l0kBQ>v+HKb@zLt`)~J;zT-L^o}Fq}ty(qLoU`_8O?5>w5?T@jLCBPque%J;4D*7Y5s%1E9VHfH9oST;&jDSs5nyKgC_DcV}<<)S&U<-K`oIk&Gp$v&T< zMAXy5dVwNUeENI*Wh^7M^Qd)>lm^@R#G+ zQ*@SjJU0+ z$gnYyr;~r}+wr?EEiEraCao`vI=)p1zdA3jFnQ`|@q<-Fxocs$WmlAG(;@TGe!lbC zTOV}}*4v7zGwpPHI+X=S`x_^Gx_5%xXP84qed*58MY}FX`<@t&)DQbw98dW9+8u1O zbc;=q&ev~b+4N`S=|p%Jpl)*+iMs6_G5?+*H~G0${JA}j`w|0#-|m($2Q<-Uu&8jg z>E!rLYXZM1pE5LX;QGmO=#B4@tY2GN@_di>f0DV=s>E^4%zNLu5L+y#@Uq;uAvT4F z*MQY$C$-!r?o#ocOWZ0YC8(ft+t;rt)3ztalG(h5cM z)qGJHMhHXrNrpQUZ&Y~gJYF8DP>o&=PZ6|^X3aHg4d*f_f4{%IoL^$rY6Ej3�!9 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 diff --git a/doc/build/html/_images/Fig_Tutor_Geom_Basic_02.png b/doc/build/html/_images/Fig_Tutor_Geom_Basic_02.png deleted file mode 100644 index 736a37a5427cd1ae841c0aa9bd0038b6893ebc4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72875 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%0A6|f7qoc;SC^I`TNduyU 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 ge^mPZqi@N&k diff --git a/doc/build/html/_images/Fig_Tutor_Geom_Basic_04.png b/doc/build/html/_images/Fig_Tutor_Geom_Basic_04.png deleted file mode 100644 index 0b664d6149ca8d189a799ad89c32ec7214cbb4c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68599 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

kz!VGDLutzZ<+rfF8N-} zpU?1pTC)>!e);8wkZeRy`Ly(w{F#b)sa3*hAvO#Gm!3lg2?Mg(0XRYTvr<2!#QaPZ zzo30_iQ`E-iOdm8S6R)XGA6s>DoVi6X8-aP;$bYGcrhk+EYUZh?M70XPOA=El-6R} zP8re;R1mey7FE4ZGbW-&RF2}sebkgw?Y$FTv{81PDy@%5fCr+yXgZlrF_QpdP9kr_ zQl5@QD*V#*bl=$9acyW|~Cs;xz@Lbt;zO|C+n8LC;$egNpDF>mrgC#Qq70w4UAsU_C ztmIRtthuC(_iONFeesOt_&o50MEELhy0j6<37X)UjydC~IBS)PbAf@MZlHhwl~7Ml zuYmim9lwsl!Tm^2vA(e^h7Nv)6&QZW2V2<6CS&|%;cEe1{#{f`HGOE7 z4zhEsz3&Eo!Zm*S>5S&^7o>W$3Y`K7mbL)VH1RjDQ&(5l8$CMtcJr#HT065D*4EZ> zZ&lH>K!ht`ACt?Zki?xlfi8j3qGpOrb(^sqUpQr$D#w!#ncl~MX8f!`2l@uNy+cD#&7(??6A*fvx!ywrY&np z{9Qkm;(X5G@t7KpdpOredX0#=lIW^`-l9b~NU6o70`tex_^7*=FCU+?2AIZTj-+8? z!J>omzQc-9N2S(SkTIx5|Ji;{YHTvTkmvBw83n6^D~GPo@7M3R#hQs8Z)^9_^VONI zWW_(U>(Z-iu%di%{c_Z`{Gn<}pW-#iAX)lUi?4#1NgAEW;PjAS-T1Ko3Ln7mv$}v5#0Tx$c=9i>*sKDxmMXniKSS zNX39NX_p{Z4rU!4kx%TyM`kM)Cmi<{OE~WI`|>nCe0{Nd(R<5*{5e-1(_cUM;V*9O x)Ywnoi+KDj^C_R@LyB{{gBV;WPjM diff --git a/doc/build/html/_images/Fig_Tutor_Geom_Basic_05.png b/doc/build/html/_images/Fig_Tutor_Geom_Basic_05.png deleted file mode 100644 index 43f686bb86e6dad9b86c101babfec8704fca73a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81877 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 diff --git a/doc/build/html/_images/cam1d_plot.png b/doc/build/html/_images/cam1d_plot.png deleted file mode 100644 index 6a32fad6ec126f7484989abc2a4264bb5f51846c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86376 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

;4^vMsaPJ-C6{oij!1Ps)nMmhC7O?v2R| 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⩔CSJy!v5NekO$GJkzi1l2WYsuA%nZ@(>Q}t5@IOYT2xwFPv65wy#H&1-@R> z?33BOwfHO$Uf4Ty4|?1R`=Yc2DV;pVgfH(x$QEhbdkRN#dFh)^LQ zo$<@iX&EzPMqcOVBl0^3Uw;e*&EbW~q#8#&dWsQKs$%Eq&Jg;B=OFWJ1+~NfWk?LK z7=B7!`Gb|Vs1K{+4%1k!xv!m(e9j71Uf>ILN+Z2}j~zQU9XAD*4WH|4eWC~H5ZOTA+wQHz$9^ryv#!%Z<4dV{-$dF3|iLBH;WV9E`*i}ju& zqPze}Bx08^VH94_luY`70*GC389=^(4FylqE+7P;O?>+vRFxm1?-lKsBubQY9iiV) z>$1D>c-8PzT_`Ht(l!pr4>HtFXqx1e3jf{x=GxHED<8}^3P!AVkHZT%d$S2?B1|(N zLGqS3qf5qqF`tt@)*t-bYEx=4DZCDWDu+5 zmF|lCTM_%jlmLQP&}_FJi`tSo@pa<4B5xAb91}&EowPiL^iI$h)>q@J>PRrayQ9XA zy?pyNp=YpwuO@i|xPP!Vto?c>yXknP>Qhd@WZulm_AXBed4qJ$ng_SPRbu(`KK5g< zG0%2d+p~3tpbbAbO6#fx(fTt65~a3r0w~MRPUD$T1F^S{?j4?RFE7s1QOo#WP&}I) z6n~p+UM*_L?rDQXfpAFP$FotLI&^^Im($s@DJWu#c#Dq)ZZYATmi(`8It@EihsOC1 zj!6<>OMYgZZkMecDoJkWSrI+p_`JZ;IycrXE-UBN839BMjM#lGQrE$xCJzF-~**Ca1BEl8z&}8Ss zAtMcZ9i&}I?~tImC;7m1a;A8BPqd5C5&dp$JZ$c+vacuuNKrtx%GoElP3CrG?W+GK z0C-)hzA}XDr5{V284tR!rO+Y9cx|wMp;kSE^;QlTa-5MmB~@Gi;kWq>SQN|urBGu(cCqD z^ytr{PKCs+i}l_VX_7mi5~4)(vBGkT*+VYWfx~E&Zi+H(-*(E$fmY?8sT~bJh^5wv zGiM&*5+ecQ>QikN5BhZs2P#T|Fe(jrF;win`{4C&80ye7eoK3dQ2i$-|LjoBHsl#G z_-bNWU0S3#?0V}oRpt<{vj$ZS4nr#-rm4(A%u~vtAw+Z6Dqr2TuiZYl$6{ldRTV2+ zL51N#Rzn0!MT|sdA^)H=ndI{|=}@a2qK#h^;>yjj)`lxT>*Dr_W@UYxZII@<9vFQy z{Q2g~qmQ-=zcEa6^gO<{@lSict?t>aTl)$6xlK(?d#i?-p2{`Rr+LnMU-OSSAxOM; zKkC1(hHcoc7uL0CenkPmxVx6z#n$BhdFPJShAXIQ36E@XAVJx+XKM?JTebPSqA<$T0#Z)0jBh{pQ?r%T(Ars2WZ=w-&;FvtVJ?;y1n zriR?A7(jw{d?`wuz539@DRA4r@saMDcHdBG2z~NPBPOJHpE%LWFTEP59QS*E%58$@Z%NuI0)8{fh4I<$^r?A9m=C_dbq4(FHQZoG|7gL1F zG@VDl7m7@9k8q#iO7K0SW=#$b(ii+xb&(J4Ti-j>2-yodQpIqu<- z21=Ha^^!#SV*{xnsiNyeVY}GGF75-2OLm7dk7I z@t8O(ch$RH8+ugZ*yEM;C5;g_l$0UFu)N|&~6(JE~c!g{}A3N&t0lbo}M^f;V3NKg?(>o%EVawlzo zh;hayb-HPOAY0TN^h}ELQWla!D7=hP@*qT(GLSY`;i|XPuO|h!ktf==?tXvMO)%yF zOc>{h`f3*=2j4YF_Z8F&MRx-C-s}rGK09&16C-v`Jz)U#0nJYK)!D|pCMYi8-wVA5m~ma)!j$(|<`i4r7ZJ0|t*5 z&(mNta$ZSA40)TNTvqhiHuaLWnOwyy?*2*HZP)Xv9GaoD2J=)38ZbE z^GHy2hYmfbTA`PXb)Ppyh=&v2sIqQZo7z`wUAgOvoBaj1!gLwAOIRl7*axkTUKE-m`le0NuAHaxm&2u zMu`8F4KvXK8GPDbRk(O_S^;dm{rmF<2wTz(eYVi>K_ZyS%(0#E*;F#-d@q5-7?h#& z;Iy{?g-$|`tj1POn*!9{1IN%MNosFDz?GDmb(G{>$jJNRll;ER=OI zh4an4IGds)M+DRhSzq$A*vF-r$E6KEzVU6M#W_ z)#(?G5Gvb&=Tr4b?G;eYFC#kC#n5>TT8p%)ea-6`Ho$@T}X@LY(U zQcaUZSVpMO7`|Y7RTG z6kXIHAdXrKEK~LT=r5Ryd{3NV>(&{6Yy5Nhxe5ERDdUi~Rl8R(=8r$_mpO<-gBW*C z#oV{{_eb|?72}9J< zE)bRII54J`g_u`3io#Q(`h&lTYHFB_cV#10gmWvvZ8g`$kwx%=K! z5EwaEM8f4mNd+?Inb~@T_2eEz_*9$Mua;w8`7urQ8 zQM?UMFQ#7AO<1bgq*rfk+p`z^``8&)2ct0a-Pi0;%A%bPKS6zoXTo!<&UjZz{-h{A zjR{7#I_`F%hr}1eS+J|C(7cP^`m3(TlD5O33mN6{5?0WAM8(R!Y*`xRj>4Ajm;|$# zqwk6k=go#LX$bYiGH1ky&&#bnPN2?$0%a0cyRD!{G2w81PcpZJ3PGtP^UH-?vHA4~Ju=2wUosYq>+>`LPXb}d!KUv}LK~r=z8PQ; z@oLcJ%3s+1z|w*%ipa5rKY%FVaIQ*(K%0($b+y?-dW>!-6$Ou5aGfNvp|F}fSowGi zkAS8#F>8rasP1y`-j{3F)k0!lU&KwSGXU?gN7><_&Juq}Q-N=21|Klwa5#)wtI|Y# zYXILNe8SoO_w0kF+;^br2`?}KcqUFa@z*1~g;qkiVa+u)Y-nlN*OI<|gesmobOhQI zeB5I5a;@0YX)~+C?Wa*G-HKEYA#`sSlu@0@)ts2QJ4>*2dfL9hNcZm zh?JrAuRta25jD{gH)%&_G?V5RS4D1ti4q3F;o;!}5<;Hrc*D-y!P66-P9irwaU!E6 znyRDdX_8NGX{z4Wcj(aS-9Cs={sN~-mqqG>6r}giaz8~VX~Y;B8eYgTp1;xi=l^v< zWM(B0bv*@2?c$N}?(8Np2Z<`vdj?J_(r+}aq5UVx;2xc@7&Sb0@D+8nI*y-{q{r;b zq@A9d-z#s@-J*A;@~hycva~d1(<^OfB2Tcn*>U%^poL=U4eX;7y5YYuJV&)!tu5;j zzM?Iru2>1PEX17%=4QU0s>Q|=S(9ijxmFnVld}Tv)4*Yea;yG2c(4ZjC56Ns{lv&e z+qW@!Mu<{{Dm|%v&kVp;UthcU=ih!}xOk6rbbsFQFE;f~=7wmti<_$K#D0>1?}SAd z;)mx(dM6{*SG)mLFJ$-EM^^G>xcYuPu*v+3H}R@ffe9E0+*1r*V_j>S zXO#Kl+JBTXRp^H1XF>|W1qrMr1Z$kkj;qVCfu3ZXJ+|}*w%?*tbo%t^$;Q}-AtGoW zq1qGk-$}Syz!RPm)`_fPPKkBiwSJ{*QqLzQaj z;a`Gd-{hY~_yN#1F~hjtm#G|3Z?h}wXri5thF!x!e*E<_I7K4&uM9hrUw#2&JDlfh z9mb)P6x2!QazrDIb$%_AV`Eu^Ug)Hwc13;R*!NC^u1~HLON!7E`Ksw%!KGi{9#u*mqU$i8|KzMn0F`GJn^<=R3YhEie9DaNx02XNwM>Glsrb ziPqQ8p3_`?#OX9EUOse(5tMFky}*hS6cq<2Ba&a9%{>RIf_6Y9H@cXM781Xzvd3Ep+TF z-#6W7xBlwVTV`Jd9eeb&=Ax(7qjTlmKRNxbUw1w#ezel4w>}=aQ+1n1&C+;7UzHdMiZ@p;t@}74Asl|A5uE2&2Xb>w7KFGx{~BvYH#;H3!OdsQ&(Hq1oML z+W~iLWcS^5n&aBg)A+1KkD9l~S{84s^^kNQ>NqMujgn|i&DmHd#@c&92I$Lf(Zd=q z4atkar{DL{gdnz&cSM7F11EPYKp=r^%~ATQswQSDXdIph5M?9~B`zYJ7~W!!@FdS< zSe=!Xbp6m|zbZ%X7>`23J@!+oPCn65`TD-Ew?jqtp0JbS6LqEMTCD6GmG1juN6xpt zhSyiui_@5cljcK-m^6U(&nrWZO*00hwssp#Ci{?Fd$#$q?>~lm-yfJa=a^KV`Af5| zd4&1okF$?1>+0|(X0cmYV#B+pg=!1^zI~0qQU%QsEIiAYZPt#O`RYF7F~YkaESqZ^M>ZJXYYG!3aXIU8$$5hk9TN5^QI zI7%c#{nQuETXXD~lo)ku9$zax;MkQ7!Q+Rx{vS9p(`81?vB|G*sH<2uec9wzwr`(N zkCx3Xk7Tz*O<$J(QH(tG+-xiBvZ})QD$j2aIuPRA+)C{OfC%TX$$y?c{)^`Ca$(-U z>7iR1KSk*{Uvxrgtjp}(8f43n%`b9Q&JV&e9F?|rpm({jg} zhJ-j@Z$MgTxwMR&T+E08n|Gc&e||d@tACi#F@{kVF))sPK94qs zs6tzL{s>13z5D#_k?{#%`Us+tLto4hdR0cbW#Q$7nl%40JdeTq_Q`t`)%Uwz=-h7Z zyw|I$d}kgzFx11hrr<2EUEBpN=NjuP&_qSk=Iu6NC~oesG*2Da8rs~%0#_H>p{&Kg z2EjnSRTs9Al#K<0B@Ez6F={|LelPbQWrv4PuI?Tyo}R9Y;)%pGhqGzwg_3`#pL{gC zXZqE*>n%@}h3_zQ+8emKqN>*ZI~i&UwbPC+srq_sd=zfci;_oIZs9BG>mfvWIN^hO zjPVzJNHVx%=dU-n$f{lzc~|9M;%hW_Et$5j75WWE0HvNhG(t3(tcXdln+GhIm(}Sn8}gt+`*KW7#&=;Ogz4z zx~grrT$HRTE-C8$c)VbIFNFbJl6uM(E0>u^p^|vFTgUixWRBgWD^)GuAFGlvDXf&Q zAQrF1jN#R#($n8U7F~DQ!Mi|y%i$hAIwKZ~D3<-cRbpx-9ed^Sr0RPHxAToW-5Twh2G08SY(c;N zEw66yHB;7BG=t+Tkc|&|Jp1Q|0Q7!|hC$nw&g5%^nKk~~LfXOshq!DkT$Sl5p^zur z-E&tUh_sH}jMV10-JAa8WN)eM(s;{RGPdQjqJH6&gqH+?n_DX8aN-0fHaqem60)0t znAsfz796$KM=0x8VRbOAd`0PBMkHfOU1~hw? zmX+BSqPvJ}PivZISTOHa{GRtsaUJnW@>BkrY4)S<>uvumKX0+wi+weon*!YQf-MxH zA<+arcEB>@p3AuFHrn8`s`yUlzK=JjKD1mH^=-m&pPwM5xf&s(KiKlHI`w~?0=*ALT`>fO=2^T^*_)%%TGd&JP~4z0MuFL)g} za!Nf&%h)}6Y1XT&wzqt;W*ixwJ-M{wjpM_61q|37Dx>{yNqGPE2abAm-p_ zxbQb6qyOYDBt33F{Gb0`$-hQ-?J`3macM99_1BLxOl2-S_*hG>qwTUrP}slb-(GTI zNb3*x{qsX`1a&YHhS3uytQ1|r4@@aC>Yr}+#!2FQSaoR{al>Y86xiGN5cm^Y``NwI)BqHDF-)ru;E-vP; zuW=V89lFFCIN?9O!z~kZ8i-r078)r{*L>}D>u$!z<~0}ShZSbdS?00VX|dmex{I16 zGOZ8Id+QOW7jlf8#%f?sNvLKED?jmWepe#1#ouAR;EIe8ft#gHl6lpU}~bUp3mbrUsioU*kfdW={v5^rkm zs~0W$EABy!ESx)*cdy13qbBtxl8sP@X=)!-~abQ3cnQ<6>Bza`q;Wr+*+6N5wTG&9ql36 zrQN!QHLy%l>%&U)cWC=c%ZLMMXV?j;Vyj4!x}1$}FVWfmfBoM_pdFW-6z<+)LDS@w z+FMEz-@9#Jz$aXwDfG{BxS4gkc3p#ARp*FlGU{K}vRwqGFikDT-4ZC~cotD#nV z2_(6K2~S69=?a+3HHZKvbA~a_sT>SCn&~QcdPt%b+X4er$QWg1EkqJ8uwzHyDD(Vf?X2 zm&9m?E7cN-dh63!apU4s;kKU@X}YQ5ObMP>5j0v*xmVY|xfa*r3;=!fwZW3_6VgOf z*tPw5+J=45P-o7by~+!~XW}~VV^Z?9=;-xmB9^MFui}oU!1bv=N5niA!L>WGRJ%I-Rc_DAyZRVaap4LcGyZ!$FvVm|u<-u@n!M}zcq612Qh zuTl%A7j`tN@|SU3N6jGE0pitKp8ePX$J{2$P27GE-DnUDwG^SW;={gKMbb;r*pHr)449hlcSDPjE^j?awyQ`T(o zV-a!~1-5`onIU&x!+Y9AT8uEsSZZTqbMi74;@9rp)rE}d!5ZH+uXQbkPmo!g)4qNC zuZTL3q%S37c?mz4MXi!Iej_sSTjZFJcPALs{WZ0n#dvWNOLU)QI((#-n|FJgEBxXW zeq6kPh=_&JesuU|*iHXPy9Xdc-9wnI~5wnbPhzBJc!~vej=dq`%t4>HIjcEH3DSia@OQp~l zEaKR@*7uwaa0()7d$e9^&$zX$>k@_5f8sMGt(&lBq^J@1=N3?SW0I}GusuVIe6|M0 zpDUO#c+}nfB_ar&L8By-$B9Egk`%z8ij{~8{{rb#lDkSHjxp1>D+=T4SL8QSR9kIj zb%*-x8BfnZ_y(~*8O&j|;H|{MuJu(X1<*!6`p-WXp6sWf5X`63(DmtTelUv-6Ru12 z|BX_IW?V<%HD!B8m#Ygq3cRE65yoyUhbok*iEANA|kDpBQ>PZf1#XKL?8j2CjOx!1`&W(8im{d)ECCw%AK`~U|^cDt*_ z$sqN@72H_!{m6n&T1ymM#eo4k-$98DKb2Bf@z=I@sq&k5I zR1kN4hFR$PHJdjFA&5yCq)4;{YvnAG5x?Z(8B;aYm;xaw*H0;S#Vbr~m(?KA_pzHrnTjw4Xb(zL-+;%h1 zW}a;G#--K}(*zf}Cl`}&obU>fAqd)dfe;W85pl$_RXc#|EZD)RYr6FO|R*0O4w1P;>Qj$!0`MXrkT6qNi zTTjp|l#()F&Mg)Ym;S${{(=bE!NHL!NHbh~1I1M>BC1OKo4Li~PzWP9>rhcZg9@my zqM~Mnf`DC)o zc=oBE=UR@a)b?1d>+PN#XTDN?q#1m%OGcP8iwF>ID{L>lT#`2!gL1GenU^_#+g_Dp z=@5Kt)N9@h3VE>!|sQlTSOW_d8e!X>_ z3bRBPjE(;C=gKukuh2ce-eZ2Le5AZ*cJ~8iQb$vrQs*1undPSX%A?~(W@?>z*>^lB z1J8@UF=njJejaIlstKUaY+3LJ58rj`u{qxn6H!Kl zF<)>7l?`gG(`DfkZ;m#tFEN7Gg$e9uU{G;SHcT@5nX_J~-~XmI`!t6fv@tQOc0bv1 zHzF(vdDQea_&CCjiyLK5aq=@q*{(Ny6N<{B#ceX3ci7u|i3$DH;oL)q*04Y^x?@Mv zl$!FR9-4HCEoNxBvnWX2V1sC~AK5(vLUx3Xy*Yk$#0#{{k3qs?$*8>7eSX4Lf<~Rndr0L#wM(dH6{5gxzRwk1iP%5L+966Zg z9AwPvKs~1t^>?aIl}F+prpok71CYlIU8#X`HFy_j<}$|f@s8rT)zOBG{LXG&(rwk1 z6Cvvao=U-9ECMg!AHMxACfqkVQab913b}4VLuX;8YfM^XrG2AgjOPuzO}|BUllR7P zseZ&(bQ?jKYw4}5b9DGv7}>e^|1Zfu`ZdX4PH*`k#ylLv-{mFRTK_o>Gu`bO_B0QpS^ zu7GPN`E0LYsqIlojF((>U+iT(h=66t6>CS(b0-RSs*Nu zfQRSQ@pBrS@EH;%Ejx;SL$+qGbupb56CLQyi4mjEY!18D>hYmJ^{PM|3BCGYQI;;= z-uIG;bf!gb=I{3QeLeVcij)z|Ss~h6`9a56_bC7PG|PRJ^Fv99rkTqXtJ9VuS)t3L zx0;yKD#~FBbNSOB&wto)`h+M^(97g{Cbgbj2jwM=3@M2zJq~#e1JGTXc zlJ2OPFTMEU->G`N@E%bVfRmWahrNlE`F#A$Q?Z@ix$bduVV7rd9OM*491FyFAvAfK zq<_|(^;)cVnkh$mnnL;};AZk38QfO9NZ2A8>FQT`6z#h1URu*~;>jId`zv{M!6B5i z?L3Xr0O()Fi%v~jHg$%&M7G-Y=&J&Gj?}%zO!t^cADX}M{6EUvKi>+N7OTQ?P);R^ zHMNpGwlc*8rKOEY(G)2UK z5h~H!w{Fc>&_@ai4Lv^6X3LJ7RasRz863N|L_tg_0DygsEo55M%-a!Rn!`O?sg1E@ zy@EN;nzR-!Daxhl*~e!?sx0A2mZCsB#OUWs*0S28C?rb6AXIog*Q=LtN|C}=4Ryoj znp=8g14y-JnFpFHj+x1n3^t-PNx%aAmwx<;il~Elpl&9Z1N2o9pd(wIbdLm`egWtn zwV*3yu%K}EzA$Q`aATN13!n(C%s}*0{?c3BM2O}t#ZgMo(B#5)Fy_J1Vt7`nG zM@rRA7%d6Y0Zytuj$p@0xRPl$c>Xj`SSUU;Sy@^}2^yp9`I|aRRC@LJQ~evJtrEDU z#8SXgX0`9Ppe)pEr!Y(WWi#vh4{;yUr++Wp+H8`h?$ng8A!)3|l)=uyK{#rh6Nldp z7N;hUmGplPbtGGevIe8wqIIi<3PH%?Y~%w=hWhHE+7LKS}So1^JU&1n&{Nlv{E_0%2wB{sZfE}8&G4**tO&w}A0 zPMqm!GIdLQTIn@u2SxxG&Q0B7So8ddbB&eqzwtKxN0bhFrc&KlzbgtLUN+{=UPej_ z!g^`|M$pxY*_*mEdKs0DrWgazl6Ftk;z4y3f_4~0!_P@1&M>cK522QzU+Vg%pM)HZ8p>XIM?rR+>QrT|39g0t*Cr+quZyuLgKSYrazn!*md_y$jqhe+} z60*)h%Ne|D`3!!TbJhfoD~Lx`m~BY|R;~KNd-!QQlIrvOv{3YVE^MRTq+M$(6>L_z zEFet2mdRiA;^h>>7F}`TXMF)9k>%{YC2VCOeH;CXw|>a*%FyGHXgj7+x-p@o+z7&j z6CCHlj9+9VqP1w+yU;(h_TF|i-JW&YG4&gYx9XjIG>fJ+7xw}(W{7^>@8G$)ez&mL mVqxxdQ)gQI54?5_TR3R8y&Be)D!L>VQoluSm&{%H@qYo|NzUH@ diff --git a/doc/build/html/_images/cam2d_plot_touch.png b/doc/build/html/_images/cam2d_plot_touch.png deleted file mode 100644 index 4ac8635bb2bc4e162db11b1f0d6b57a2030468d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62712 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 {a%U&~+q!20b^V}qv%+$D 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

TTm5+O6#H1I)0l8Si~K=l?Ji+osP3_aJk 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 diff --git a/doc/build/html/_images/config_plot.png b/doc/build/html/_images/config_plot.png deleted file mode 100644 index 9480f8698c0c0e9e11cdc697ef39a3092f3d358e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62602 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 nIkB)g-2C_dLBdZSpJ=oJrzFI_jcO - - - - - Overview: module code — tofu v1.1 - - - - - - - - - - - - -

- -
-
-
-
- -

All modules for which code is available

- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/geom.html b/doc/build/html/_modules/tofu/geom.html deleted file mode 100644 index 2784a7947..000000000 --- a/doc/build/html/_modules/tofu/geom.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - tofu.geom — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.geom

-# -*- coding: utf-8 -*-
-#! /usr/bin/python
-
-
-"""
-Load all core packages and modules which are all machine-independent, diagnostic-independent and code-independent
-
-
-Created on Wed May 18 2016
-
-@version: 0.9
-@author: didiervezinet
-@author_email: didier.vezinet@gmail.com
-"""
-
-
-from ._core import *
-from . import General_Geom_cy as _GG
-
-del _core, General_Geom_cy
-
-#__name__ = ""
-__version__ = "1.1"
-__author__ = "Didier Vezinet"
-__author_email__="didier.vezinet@gmail.com"
-__date__ = "$Tuesday 07 June 2016$"
-#__copyright__ = ""
-#__license__ = ""
-#__url__ = ""
-#__path__ =
-
-
-__all__ = ['Ves','LOS','GLOS','Lens','Apert','Detect','GDetect',
-           'Calc_Resolution','Plot_Resolution']
-
- -
-
-
-
-
- - -
-
-
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/geom/_core.html b/doc/build/html/_modules/tofu/geom/_core.html deleted file mode 100644 index f31deeeaf..000000000 --- a/doc/build/html/_modules/tofu/geom/_core.html +++ /dev/null @@ -1,4518 +0,0 @@ - - - - - - - - tofu.geom._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.geom._core

-"""
-This module is the geometrical part of the ToFu general package
-It includes all functions and object classes necessary for tomography on Tokamaks
-"""
-
-import warnings
-import numpy as np
-import datetime as dtm
-
-# ToFu-specific
-import tofu.defaults as tfd
-import tofu.pathfile as tfpf
-from . import General_Geom_cy as _tfg_gg
-from . import _compute as _tfg_c
-from . import _plot as _tfg_p
-
-__author__ =    "D. Vezinet"
-__all__ = ['Ves','Struct','LOS','GLOS','Lens','Apert','Detect','GDetect']
-
-
-
-
-"""
-###############################################################################
-###############################################################################
-                        Ves class and functions
-###############################################################################
-"""
-
-
[docs]class Ves(object): - """ A class defining a Linear or Toroidal vaccum vessel (i.e. a 2D polygon representing a cross-section and assumed to be linearly or toroidally invariant) - - A Ves object is mostly defined by a close 2D polygon, which can be understood as a poloidal cross-section in (R,Z) cylindrical coordinates if Type='Tor' (toroidal shape) or as a straight cross-section through a cylinder in (Y,Z) cartesian coordinates if Type='Lin' (linear shape). - Attributes such as the surface, the angular volume (if Type='Tor') or the center of mass are automatically computed. - The instance is identified thanks to an attribute Id (which is itself a tofu.ID class object) which contains informations on the specific instance (name, Type...). - - Parameters - ---------- - Id : str / tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID() - Poly : np.ndarray - An array (2,N) or (N,2) defining the contour of the vacuum vessel in a cross-section, if not closed, will be closed automatically - Type : str - Flag indicating whether the vessel will be a torus ('Tor') or a linear device ('Lin') - DLong : list / np.ndarray - Array or list of len=2 indicating the limits of the linear device volume on the x axis - Sino_RefPt : None / np.ndarray - Array specifying a reference point for computing the sinogram (i.e. impact parameter), if None automatically set to the (surfacic) center of mass of the cross-section - Sino_NP : int - Number of points in [0,2*pi] to be used to plot the vessel sinogram envelop - Clock : bool - Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False) - arrayorder: str - Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous ('C') or Fortran-contiguous ('F') - Exp : None / str - Flag indicating which experiment the object corresponds to, allowed values are in [None,'AUG','MISTRAL','JET','ITER','TCV','TS','Misc'] - shot : None / int - Shot number from which this Ves is usable (in case of change of geometry) - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - dtime : None / dtm.datetime - A time reference to be used to identify this particular instance (used for debugging mostly) - dtimeIn : bool - Flag indicating whether dtime should be included in the SaveName (used for debugging mostly) - - Returns - ------- - Ves : Ves object - The created Ves object, with all necessary computed attributes and methods - - """ - - def __init__(self, Id, Poly, Type='Tor', DLong=None, Sino_RefPt=None, Sino_NP=tfd.TorNP, Clock=False, arrayorder='C', Exp=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - - self._Done = False - tfpf._check_NotNone({'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - self._set_Id(Id, Type=Type, Exp=Exp, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._set_Poly(Poly, DLong=DLong, Clock=Clock, Sino_RefPt=Sino_RefPt, Sino_NP=Sino_NP) - self._set_arrayorder(arrayorder) - self._Done = True - - @property - def Id(self): - """Return the tfpf.ID object of the vessel""" - return self._Id - @property - def Type(self): - """Return the type of vessel""" - return self.Id.Type - @property - def Poly(self): - """Return the polygon defining the vessel cross-section""" - return self._Poly - @property - def Vect(self): - """Return the polygon elementary vectors""" - return self._Vect - @property - def Vin(self): - """Return the normalized vectors pointing inwards for each segment of the polygon""" - return self._Vin - @property - def DLong(self): - return self._DLong - @property - def Surf(self): - """Return the area of the polygon defining the vessel cross-section""" - return self._Surf - @property - def VolLin(self): - """Return the angular volume of the polygon defining the vessel cross-section of Tor type""" - return self._VolLin - @property - def BaryS(self): - """Return the (surfacic) center of mass of the polygon defining the vessel cross-section""" - return self._BaryS - @property - def BaryV(self): - """Return the (volumic) center of mass of the polygon defining the vessel cross-section""" - return self._BaryV - @property - def Sino_RefPt(self): - """Return the 2D coordinates of the points used as a reference for computing the Ves polygon in projection space (where sinograms are plotted)""" - return self._Sino_RefPt - @property - def Sino_NP(self): - """Return the number of points used used for plotting the Ves polygon in projection space""" - return self._Sino_NP - @property - def arrayorder(self): - """Return the flag indicating which order is used for multi-dimensional array attributes""" - return self._arrayorder - - - def _check_inputs(self, Id=None, Poly=None, Type=None, DLong=None, Sino_RefPt=None, Sino_NP=None, Clock=None, arrayorder=None, Exp=None, shot=None, dtime=None, dtimeIn=None, SavePath=None): - _Ves_check_inputs(Id=Id, Poly=Poly, Type=Type, DLong=DLong, Sino_RefPt=Sino_RefPt, Sino_NP=Sino_NP, Clock=Clock, arrayorder=arrayorder, Exp=Exp, shot=shot, dtime=dtime, dtimeIn=dtimeIn, SavePath=SavePath) - - def _set_Id(self, Val, Type=None, Exp=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - if self._Done: - Out = tfpf._get_FromItself(self.Id,{'Type':Type, 'Exp':Exp, 'shot':shot, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Type':Type, 'Exp':Exp, 'shot':shot,'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('Ves', Val, Type=Type, Exp=Exp, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_arrayorder(self, arrayorder): - tfpf._set_arrayorder(self, arrayorder) - - def _set_Poly(self, Poly, DLong=None, Clock=False, Sino_RefPt=None, Sino_NP=tfd.TorNP): - if self._Done: - Out = tfpf._get_FromItself(self, {'DLong':DLong, '_Clock':Clock}) - DLong, Clock = Out['DLong'], Out['Clock'] - tfpf._check_NotNone({'Poly':Poly, 'Clock':Clock}) - self._Poly, self._NP, self._P1Max, self._P1Min, self._P2Max, self._P2Min, self._BaryP, self._BaryL, self._Surf, self._BaryS, self._DLong, self._VolLin, self._BaryV, self._Vect, self._Vin = _tfg_c._Ves_set_Poly(Poly, self.arrayorder, self.Type, DLong=DLong, Clock=Clock) - self._set_Sino(Sino_RefPt, NP=Sino_NP) - - def _set_Sino(self, RefPt=None, NP=tfd.TorNP): - if self._Done: - Out = tfpf._get_FromItself(self, {'Sino_RefPt':RefPt, 'Sino_NP':NP}) - RefPt, NP = Out['Sino_RefPt'], Out['Sino_NP'] - tfpf._check_NotNone({'Sino_NP':NP}) - if RefPt is None: - RefPt = self.BaryS - RefPt = np.asarray(RefPt).flatten() - self._Sino_EnvTheta, self._Sino_EnvMinMax = _tfg_gg.Calc_ImpactEnv(RefPt, self.Poly, NP=NP, Test=False) - self._Sino_RefPt, self._Sino_NP = RefPt, NP - -
[docs] def isInside(self, Pts, In='(X,Y,Z)'): - """ Return an array of booleans indicating whether each point lies inside the Ves volume - - Tests for each point whether it lies inside the Ves object. - The points coordinates can be provided in 2D or 3D, just specify which coordinate system is provided using the 'In' parameter. - An array of boolean flags is returned. - - Parameters - ---------- - Pts : np.ndarray - (2,N) or (3,N) array with the coordinates of the points to be tested - In : str - Flag indicating the coordinate system in which the points are provided, in ['(X,Y,Z)','(R,Z)',''] - - Returns - ------- - ind : np.ndarray - Array of booleans of shape (N,), True if a point is inside the Ves volume - - """ - return _tfg_c._Ves_isInside(self.Poly, self.Type, self.DLong, Pts, In=In)
- -
[docs] def get_InsideConvexPoly(self, RelOff=tfd.TorRelOff, ZLim='Def', Spline=True, Splprms=tfd.TorSplprms, NP=tfd.TorInsideNP, Plot=False, Test=True): - """ Return a polygon that is a smaller and smoothed approximation of Ves.Poly, useful for excluding the divertor region in a Tokamak - - For some uses, it can be practical to approximate the polygon defining the Ves object (which can be non-convex, like with a divertor), by a simpler, sligthly smaller and convex polygon. - This method provides a fast solution for computing such a proxy. - - Parameters - ---------- - RelOff : float - Fraction by which an homothetic polygon should be reduced (1.-RelOff)*(Poly-BaryS) - ZLim : None / str / tuple - Flag indicating what limits shall be put to the height of the polygon (used for excluding divertor) - Spline : bool - Flag indiating whether the reduced and truncated polygon shall be smoothed by 2D b-spline curves - Splprms : list - List of 3 parameters to be used for the smoothing [weights,smoothness,b-spline order], fed to scipy.interpolate.splprep() - NP : int - Number of points to be used to define the smoothed polygon - Plot : bool - Flag indicating whether the result shall be plotted for visual inspection - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Poly : np.ndarray - (2,N) polygon resulting from homothetic transform, truncating and optional smoothing - - """ - return _tfg_c._Ves_get_InsideConvexPoly(self.Poly, self._P2Min, self._P2Max, self.BaryS, RelOff=RelOff, ZLim=ZLim, Spline=Spline, Splprms=Splprms, NP=NP, Plot=Plot, Test=Test)
- -
[docs] def get_MeshCrossSection(self, CrossMesh=[0.01,0.01], CrossMeshMode='abs', Test=True): - """ Return a (2,N) array of 2D points coordinates meshing the Ves cross-section using the spacing specified by CrossMesh for each direction (taken as absolute distance or relative to the total size) - - Method used for fast automatic meshing of the cross-section using a rectangular mesh uniform in each direction. - Returns the flattened points coordinates array, as well as the two increasing vectors and number of points. - - Parameters - ---------- - CrossMesh : iterable - Iterable of len()==2 specifying the distance to be used between points in each direction (R or Y and Z), in absolute value or relative to the total size of the Ves in each direction - CrossMeshMode : str - Flag specifying whether the distances provided in CrossMesh are absolute ('abs') or relative ('rel') - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Pts : np.ndarray - Array of shape (2,N), comtaining the 2D coordinates of the N points consituting the mesh, only points lying inside the cross-section are returned - X1 : np.ndarray - Flat array of the unique first coordinates of the mesh points (R or Y) - X2 : np.ndarray - Flat array of the unique second coordinates of the mesh points (Z) - NumX1 : int - Number of unique values in X1 (=X1.size) - NumX2 : int - Number of unique values in X2 (=X2.size) - - """ - Pts, X1, X2, NumX1, NumX2 = _tfg_c._Ves_get_MeshCrossSection(self._P1Min, self._P1Max, self._P2Min, self._P2Max, self.Poly, self.Type, DLong=self.DLong, CrossMesh=CrossMesh, CrossMeshMode=CrossMeshMode, Test=Test) - return Pts, X1, X2, NumX1, NumX2
- - - -
[docs] def plot(self, Lax=None, Proj='All', Elt='PIBsBvV', Pdict=None, Idict=tfd.TorId, Bsdict=tfd.TorBsd, Bvdict=tfd.TorBvd, Vdict=tfd.TorVind, - IdictHor=tfd.TorITord, BsdictHor=tfd.TorBsTord, BvdictHor=tfd.TorBvTord, Lim=tfd.Tor3DThetalim, Nstep=tfd.TorNTheta, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True): - """ Plot the polygon defining the vessel, with a cross-section view, a longitudinal view or both, and optionally its reference point for plotting it in projection space - - Generic method for plotting the Ves object, the projections to be plotted, the elements to plot, and the dictionaries or properties to be used for plotting each elements can all be specified using keyword arguments. - If an ax is not provided a default one is created. - - Parameters - ---------- - Lax : list or plt.Axes - The axes to be used for plotting (provide a list of 2 axes if Proj='All'), if None a new figure with axes is created - Proj : str - Flag specifying the kind of projection used for the plot ('Cross' for a cross-section, 'Hor' for a horizontal plane, or 'All' for the two plots) - Elt : str - Flag specifying which elements to plot, each capital letter corresponds to an element - * 'P': polygon - * 'I': point used as a reference for computing impact parameters - * 'Bs': (surfacic) center of mass - * 'Bv': (volumic) center of mass for Tor type - * 'V': vector pointing inward perpendicular to each segment defining the polygon - Pdict : dict or None - Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj='3d', set to ToFu_Defauts.py if None - Idict : dict - Dictionary of properties used for plotting point 'I' in Cross-section projection, fed to plt.Axes.plot() - IdictHor : dict - Dictionary of properties used for plotting point 'I' in horizontal projection, fed to plt.Axes.plot() - Bsdict : dict - Dictionary of properties used for plotting point 'Bs' in Cross-section projection, fed to plt.Axes.plot() - BsdictHor : dict - Dictionry of properties used for plotting point 'Bs' in horizontal projection, fed to plt.Axes.plot() - Bvdict : dict - Dictionary of properties used for plotting point 'Bv' in Cross-section projection, fed to plt.Axes.plot() - BvdictHor : dict - Dictionary of properties used for plotting point 'Bv' in horizontal projection, fed to plt.Axes.plot() - Vdict : dict - Dictionary of properties used for plotting point 'V' in cross-section projection, fed to plt.Axes.quiver() - LegDict : dict or None - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - Lim : list or tuple - Array of a lower and upper limit of angle (rad.) or length for plotting the '3d' Proj - Nstep : int - Number of points for sampling in ignorable coordinate (toroidal angle or length) - draw : bool - Flag indicating whether the fig.canvas.draw() shall be called automatically - a4 : bool - Flag indicating whether the figure should be plotted in a4 dimensions for printing - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - La list or plt.Axes Handles of the axes used for plotting (list if several axes where used) - - """ - return _tfg_p.Ves_plot(self, Lax=Lax, Proj=Proj, Elt=Elt, Pdict=Pdict, Idict=Idict, Bsdict=Bsdict, Bvdict=Bvdict, Vdict=Vdict, - IdictHor=IdictHor, BsdictHor=BsdictHor, BvdictHor=BvdictHor, Lim=Lim, Nstep=Nstep, LegDict=LegDict, draw=draw, a4=a4, Test=Test)
- - """ - def plot_3D_mlab(self,f=None,Tdict=Dict_3D_mlab_Tor_Def,LegDict=LegDict_Def,Test=True): - f = Plot_3D_mlab_Tor(self,fig=f,Tdict=Tdict,LegDict=LegDict,Test=Test) - return f - """ - -
[docs] def plot_Sinogram(self, Proj='Cross', ax=None, Ang=tfd.LOSImpAng, AngUnit=tfd.LOSImpAngUnit, Sketch=True, Pdict=None, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True): - """ Plot the sinogram of the vessel polygon, by computing its envelopp in a cross-section, can also plot a 3D version of it - - The envelop of the polygon is computed using self.Sino_RefPt as a reference point in projection space, and plotted using the provided dictionary of properties. - Optionaly a smal sketch can be included illustrating how the angle and the impact parameters are defined (if the axes is not provided). - - Parameters - ---------- - Proj : str - Flag indicating whether to plot a classic sinogram ('Cross') from the vessel cross-section (assuming 2D), or an extended 3D version '3d' of it with additional angle - ax : None or plt.Axes - The axes on which the plot should be done, if None a new figure and axes is created - Ang : str - Flag indicating which angle to use for the impact parameter, the angle of the line itself (xi) or of its impact parameter (theta) - AngUnit : str - Flag for the angle units to be displayed, 'rad' for radians or 'deg' for degrees - Sketch : bool - Flag indicating whether a small skecth showing the definitions of angles 'theta' and 'xi' should be included or not - Pdict : dict - Dictionary of properties used for plotting the polygon envelopp, fed to plt.plot() if Proj='Cross' and to plt.plot_surface() if Proj='3d' - LegDict : None or dict - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - draw : bool - Flag indicating whether the fig.canvas.draw() shall be called automatically - a4 : bool - Flag indicating whether the figure should be plotted in a4 dimensions for printing - Test : bool - Flag indicating whether the inputs shall be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used to plot - - """ - if Test: - assert not self.Sino_RefPt is None, 'The impact parameters must be computed first !' - assert Proj in ['Cross','3d'], "Arg Proj must be in ['Cross','3d'] !" - if Proj=='Cross': - Pdict = tfd.TorPFilld if Pdict is None else Pdict - ax = _tfg_p.Plot_Impact_PolProjPoly(self, ax=ax, Ang=Ang, AngUnit=AngUnit, Sketch=Sketch, Leg=self.Id.NameLTX, Pdict=Pdict, LegDict=LegDict, draw=False, a4=a4, Test=Test) - else: - Pdict = tfd.TorP3DFilld if Pdict is None else Pdict - ax = _tfg_p.Plot_Impact_3DPoly(self, ax=ax, Ang=Ang, AngUnit=AngUnit, Pdict=Pdict, LegDict=LegDict, draw=False, a4=a4, Test=Test) - if draw: - ax.figure.canvas.draw() - return ax
- -
[docs] def save(self, SaveName=None, Path=None, Mode='npz', compressed=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - - """ - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - - -def _Ves_check_inputs(Id=None, Poly=None, Type=None, DLong=None, Sino_RefPt=None, Sino_NP=None, Clock=None, arrayorder=None, Exp=None, shot=None, dtime=None, dtimeIn=None, SavePath=None): - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - if not Poly is None: - assert hasattr(Poly,'__iter__') and np.asarray(Poly).ndim==2 and 2 in np.asarray(Poly).shape, "Arg Poly must be a dict or an iterable with 2D coordinates of cross section poly !" - bools = [Clock,dtimeIn] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [Clock,dtimeIn] must all be bool !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - if not Type is None: - assert Type in ['Tor','Lin'], "Arg Type must be in ['Tor','Lin'] !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Ar Exp must be in "+str(tfd.AllowedExp)+" !" - strs = [SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [Type,Exp,SavePath] must all be str !" - Iter2 = [DLong,Sino_RefPt] - if any([not aa is None for aa in Iter2]): - assert all([aa is None or (hasattr(aa,'__iter__') and np.asarray(aa).ndim==1 and np.asarray(aa).size==2) for aa in Iter2]), "Args [DLong,Sino_RefPt] must be an iterable with len()=2 !" - Ints = [Sino_NP,shot] - if any([not aa is None for aa in Ints]): - assert all([aa is None or type(aa) is int for aa in Ints]), "Args [Sino_NP,shot] must be int !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - - - - - - - -""" -############################################################################### -############################################################################### - Sruct class and functions -############################################################################### -""" - -# A class defining a Linear or Toroidal structural element (i.e. a 2D polygon representing a cross-section and assumed to be linearly or toroidally invariant), has no physical role, just used for illustrative purposes in plots - - -
[docs]class Struct(object): - """ A class defining a Linear or Toroidal structural element (i.e. a 2D polygon representing a cross-section and assumed to be linearly or toroidally invariant), like a :class:`~tofu.geom.Ves` but with less properties. - - A Struct object is mostly defined by a close 2D polygon, which can be understood as a poloidal cross-section in (R,Z) cylindrical coordinates if Type='Tor' (toroidal shape) or as a straight cross-section through a cylinder in (Y,Z) cartesian coordinates if Type='Lin' (linear shape). - Attributes such as the surface, the angular volume (if Type='Tor') or the center of mass are automatically computed. - The instance is identified thanks to an attribute Id (which is itself a tofu.ID class object) which contains informations on the specific instance (name, Type...). - - Parameters - ---------- - Id : str / tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID() - Poly : np.ndarray - An array (2,N) or (N,2) defining the contour of the vacuum vessel in a cross-section, if not closed, will be closed automatically - Type : str - Flag indicating whether the vessel will be a torus ('Tor') or a linear device ('Lin') - DLong : list / np.ndarray - Array or list of len=2 indicating the limits of the linear device volume on the x axis - Ves : None or :class:`~tofu.geom.Ves` - An optional associated vessel - Clock : bool - Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False) - arrayorder: str - Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous ('C') or Fortran-contiguous ('F') - Exp : None / str - Flag indicating which experiment the object corresponds to, allowed values are in [None,'AUG','MISTRAL','JET','ITER','TCV','TS','Misc'] - shot : None / int - Shot number from which this Ves is usable (in case of change of geometry) - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - dtime : None / dtm.datetime - A time reference to be used to identify this particular instance (used for debugging mostly) - dtimeIn : bool - Flag indicating whether dtime should be included in the SaveName (used for debugging mostly) - - Returns - ------- - struct : Struct object - The created Struct object, with all necessary computed attributes and methods - - """ - - def __init__(self, Id, Poly, Type='Tor', DLong=None, Ves=None, Clock=False, arrayorder='C', Exp=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - - self._Done = False - tfpf._check_NotNone({'Id':Id, 'Poly':Poly, 'Type':Type, 'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - Type = Type if Ves is None else Ves.Id.Type - self._set_Id(Id, Type=Type, Exp=Exp, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._set_Ves(Ves) - self._set_Poly(Poly, DLong=DLong, Clock=Clock) - self._set_arrayorder(arrayorder) - self._Done = True - - @property - def Id(self): - """Return the tfpf.ID object of the structure """ - return self._Id - @property - def Type(self): - """Return the type of structure """ - return self.Id.Type - @property - def Poly(self): - """Return the polygon defining the vessel cross-section""" - return self._Poly - @property - def Vect(self): - """Return the polygon elementary vectors""" - return self._Vect - @property - def Vin(self): - """Return the normalized vectors pointing inwards for each segment of the polygon""" - return self._Vin - @property - def DLong(self): - """ Return the length spanned by the object in the ignorable coordinate """ - return self._DLong - @property - def Surf(self): - """Return the area of the polygon defining the vessel cross-section""" - return self._Surf - @property - def VolLin(self): - """Return the angular volume of the polygon defining the vessel cross-section of Tor type""" - return self._VolLin - @property - def BaryS(self): - """Return the (surfacic) center of mass of the polygon defining the vessel cross-section""" - return self._BaryS - @property - def BaryV(self): - """Return the (volumic) center of mass of the polygon defining the vessel cross-section""" - return self._BaryV - @property - def Ves(self): - """ Return the associated :class:`~tofu.goem.Ves` object, if any """ - return self._Ves - @property - def arrayorder(self): - """Return the flag indicating which order is used for multi-dimensional array attributes""" - return self._arrayorder - - - def _check_inputs(self, Id=None, Poly=None, Type=None, DLong=None, Ves=None, Clock=None, arrayorder=None, Exp=None, shot=None, dtime=None, dtimeIn=None, SavePath=None): - _Struct_check_inputs(Id=Id, Poly=Poly, Type=Type, DLong=DLong, Vess=Ves, Clock=Clock, arrayorder=arrayorder, Exp=Exp, shot=shot, dtime=dtime, dtimeIn=dtimeIn, SavePath=SavePath) - - def _set_Id(self, Val, Type=None, Exp=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - if self._Done: - Out = tfpf._get_FromItself(self.Id,{'Type':Type, 'Exp':Exp, 'shot':shot, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Type':Type, 'Exp':Exp, 'shot':shot, 'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('Struct', Val, Type=Type, Exp=Exp, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_arrayorder(self, arrayorder): - tfpf._set_arrayorder(self, arrayorder) - - def _set_Ves(self, Ves): - self._check_inputs(Ves=Ves, Type=self.Id.Type) - if not Ves is None: - self.Id.set_LObj([Ves.Id]) - self._Ves = Ves - - def _set_Poly(self, Poly, DLong=None, Clock=False, Sino_RefPt=None, Sino_NP=tfd.TorNP): - if self._Done: - Out = tfpf._get_FromItself(self, {'DLong':DLong, '_Clock':Clock}) - DLong, Clock = Out['DLong'], Out['Clock'] - tfpf._check_NotNone({'Poly':Poly, 'Clock':Clock}) - if self.Ves is not None and self.Ves.Type=='Lin' and DLong is None: - DLong = self.Ves.DLong - Out = _tfg_c._Ves_set_Poly(Poly, self.arrayorder, self.Type, DLong=DLong, Clock=Clock) - self._Poly, self._NP, self._P1Max, self._P1Min, self._P2Max, self._P2Min, self._BaryP, self._BaryL, self._Surf, self._BaryS, self._DLong, self._VolLin, self._BaryV, self._Vect, self._Vin = Out - -
[docs] def isInside(self, Pts, In='(X,Y,Z)'): - """ Return an array of booleans indicating whether each point lies inside the Ves volume - - Tests for each point whether it lies inside the Ves object. - The points coordinates can be provided in 2D or 3D, just specify which coordinate system is provided using the 'In' parameter. - An array of boolean flags is returned. - - Parameters - ---------- - Pts : np.ndarray - (2,N) or (3,N) array with the coordinates of the points to be tested - In : str - Flag indicating the coordinate system in which the points are provided, in ['(X,Y,Z)','(R,Z)',''] - - Returns - ------- - ind : np.ndarray - Array of booleans of shape (N,), True if a point is inside the Ves volume - - """ - return _tfg_c._Ves_isInside(self.Poly, self.Type, self.DLong, Pts, In=In)
- -
[docs] def plot(self, Lax=None, Proj='All', Elt='P', Pdict=None, Bsdict=tfd.TorBsd, Bvdict=tfd.TorBvd, Vdict=tfd.TorVind, - BsdictHor=tfd.TorBsTord, BvdictHor=tfd.TorBvTord, Lim=tfd.Tor3DThetalim, Nstep=tfd.TorNTheta, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True): - """ Plot the polygon defining the vessel, with a cross-section view, a longitudinal view or both, and optionally its reference point for plotting it in projection space - - Generic method for plotting the Ves object, the projections to be plotted, the elements to plot, and the dictionaries or properties to be used for plotting each elements can all be specified using keyword arguments. - If an ax is not provided a default one is created. - - Parameters - ---------- - Lax : list or plt.Axes - The axes to be used for plotting (provide a list of 2 axes if Proj='All'), if None a new figure with axes is created - Proj : str - Flag specifying the kind of projection used for the plot ('Cross' for a cross-section, 'Hor' for a horizontal plane, or 'All' for the two plots) - Elt : str - Flag specifying which elements to plot, each capital letter corresponds to an element - * 'P': polygon - * 'Bs': (surfacic) center of mass - * 'Bv': (volumic) center of mass for Tor type - * 'V': vector pointing inward perpendicular to each segment defining the polygon - Pdict : dict or None - Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj='3d', set to ToFu_Defauts.py if None - Bsdict : dict - Dictionary of properties used for plotting point 'Bs' in Cross-section projection, fed to plt.Axes.plot() - BsdictHor : dict - Dictionry of properties used for plotting point 'Bs' in horizontal projection, fed to plt.Axes.plot() - Bvdict : dict - Dictionary of properties used for plotting point 'Bv' in Cross-section projection, fed to plt.Axes.plot() - BvdictHor : dict - Dictionary of properties used for plotting point 'Bv' in horizontal projection, fed to plt.Axes.plot() - Vdict : dict - Dictionary of properties used for plotting point 'V' in cross-section projection, fed to plt.Axes.quiver() - LegDict : dict or None - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - Lim : list or tuple - Array of a lower and upper limit of angle (rad.) or length for plotting the '3d' Proj - Nstep : int - Number of points for sampling in ignorable coordinate (toroidal angle or length) - draw : bool - Flag indicating whether the fig.canvas.draw() shall be called automatically - a4 : bool - Flag indicating whether the figure should be plotted in a4 dimensions for printing - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - La list or plt.Axes Handles of the axes used for plotting (list if several axes where used) - - """ - return _tfg_p.Struct_plot(self, Lax=Lax, Proj=Proj, Elt=Elt, Pdict=Pdict, Bsdict=Bsdict, Bvdict=Bvdict, Vdict=Vdict, - BsdictHor=BsdictHor, BvdictHor=BvdictHor, Lim=Lim, Nstep=Nstep, LegDict=LegDict, draw=draw, a4=a4, Test=Test)
- -
[docs] def save(self, SaveName=None, Path=None, Mode='npz', compressed=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - - """ - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - - -def _Struct_check_inputs(Id=None, Poly=None, Type=None, DLong=None, Vess=None, Clock=None, arrayorder=None, Exp=None, shot=None, dtime=None, dtimeIn=None, SavePath=None): - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - if not Poly is None: - assert hasattr(Poly,'__iter__') and np.asarray(Poly).ndim==2 and 2 in np.asarray(Poly).shape, "Arg Poly must be a dict or an iterable with 2D coordinates of cross section poly !" - bools = [Clock,dtimeIn] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [Clock,dtimeIn] must all be bool !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - if not Type is None: - assert Type in ['Tor','Lin'], "Arg Type must be in ['Tor','Lin'] !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Ar Exp must be in "+str(tfd.AllowedExp)+" !" - strs = [SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [Type,Exp,SavePath] must all be str !" - Iter2 = [DLong] - if any([not aa is None for aa in Iter2]): - assert all([aa is None or (hasattr(aa,'__iter__') and np.asarray(aa).ndim==1 and np.asarray(aa).size==2) for aa in Iter2]), "Args [DLong,Sino_RefPt] must be an iterable with len()=2 !" - if not Vess is None: - assert type(Vess) is Ves, "Arg Ves must be a tofu.geom.Ves instance !" - if not Type is None: - assert Type==Vess.Type, "Arg Ves must have same Type as the Struct instance !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - - - - - - - - - - - - - - - - - - - - - - -""" -############################################################################### -############################################################################### - LOS class and functions -############################################################################### -""" - - -
[docs]class LOS(object): - """ A Line-Of-Sight object (semi-line with signed direction) with all useful geometrical parameters, associated :class:`~tofu.geom.Ves` object and built-in methods for plotting, defined in (X,Y,Z) cartesian coordinates - - A Line of Sight (LOS) is a semi-line. It is a useful approximate representation of a (more accurate) Volume of Sight (VOS) when the latter is narrow and elongated. - It is usually associated to a detector placed behind apertures. - When associated to a :class:`~tofu.geom.Ves` object, special points are automatically computed (entry point, exit point, closest point to the center of the :class:`~tofu.geom.Ves` object...) as well as a projection in a cross-section. - While tofu provides the possibility of creating LOS objects for academic and simplification pueposes, it is generally not recommended to use them for doing physics, consider using a Detect object instead (which will provide you with a proper and automatically-computed VOS as well as with a LOS if you want). - - Parameters - ---------- - Id : str / tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID() - Du : list / tuple - List of 2 arrays of len=3, the (X,Y,Z) coordinates of respectively the starting point D of the LOS and its directing vector u (will be automatically normalized) - Ves : :class:`~tofu.geom.Ves` - A :class:`~tofu.geom.Ves` instance to be associated to the created LOS - Sino_RefPt : None or np.ndarray - If provided, array of size=2 containing the (R,Z) (for 'Tor' Type) or (Y,Z) (for 'Lin' Type) coordinates of the reference point for the sinogram - arrayorder : str - Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous ('C') or Fortran-contiguous ('F') - Type : None - (not used in the current version) - Exp : None / str - Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used - Diag : None / str - Diagnostic to which the Lens belongs - shot : None / int - Shot number from which this Lens is usable (in case its position was changed from a previous configuration) - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - dtime : None / dtm.datetime - A time reference to be used to identify this particular instance (used for debugging mostly) - dtimeIn : bool - Flag indicating whether dtime should be included in the SaveName (used for debugging mostly) - - """ - - def __init__(self, Id, Du, Ves=None, Sino_RefPt=None, arrayorder='C', Clock=False, Type=None, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - self._Done = False - tfpf._check_NotNone({'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - if not Ves is None: - Exp = Exp if not Exp is None else Ves.Id.Exp - assert Exp==Ves.Id.Exp, "Arg Exp must be identical to the Ves.Exp !" - self._set_Id(Id, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._set_Du(Du, Calc=False) - self._set_Ves(Ves) - self._set_Sino(RefPt=Sino_RefPt) - self._Done = True - - @property - def Id(self): - return self._Id - @property - def D(self): - return self._Du[0] - @property - def u(self): - return self._Du[1] - @property - def Du(self): - return self._Du - @property - def Ves(self): - return self._Ves - @property - def PIn(self): - return self._PIn - @property - def POut(self): - return self._POut - @property - def kPIn(self): - return self._kPIn - @property - def kPOut(self): - return self._kPOut - @property - def PRMin(self): - return self._PRMin - @property - def Sino_RefPt(self): - return self._Sino_RefPt - @property - def Sino_P(self): - return self._Sino_P - @property - def Sino_Pk(self): - return self._Sino_Pk - @property - def Sino_p(self): - return self._Sino_p - @property - def Sino_theta(self): - return self._Sino_theta - - def _check_inputs(self, Id=None, Du=None, Ves=None, Type=None, Sino_RefPt=None, Clock=None, arrayorder=None, Exp=None, shot=None, Diag=None, dtime=None, dtimeIn=None, SavePath=None, Calc=None): - _LOS_check_inputs(Id=Id, Du=Du, Vess=Ves, Type=Type, Sino_RefPt=Sino_RefPt, Clock=Clock, arrayorder=arrayorder, Exp=Exp, shot=shot, Diag=Diag, dtime=dtime, dtimeIn=dtimeIn, SavePath=SavePath, Calc=Calc) - - - def _set_Id(self, Val, Type=None, Exp=None, Diag=None, shot=None, SavePath=None, dtime=None, dtimeIn=False): - if self._Done: - Out = tfpf._get_FromItself(self.Id, {'Type':Type, 'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, Diag, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['Diag'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, Diag=Diag, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('LOS', Val, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_Du(self, Du, Calc=True): - tfpf._check_NotNone({'Du':Du,'Calc':Calc}) - self._check_inputs(Du=Du, Calc=Calc) - DD, uu = np.asarray(Du[0]).flatten(), np.asarray(Du[1]).flatten() - uu = uu/np.linalg.norm(uu,2) - self._Du = (DD,uu) - if Calc: - self._calc_InOutPolProj() - - def _set_Ves(self, Ves=None): - tfpf._check_NotNone({'Ves':Ves, 'Exp':self.Id.Exp}) - self._check_inputs(Ves=Ves, Exp=self.Id.Exp) - if not Ves is None: - self.Id.set_LObj([Ves.Id]) - self._Ves = Ves - self._calc_InOutPolProj() - - def _calc_InOutPolProj(self): - PIn, POut, kPOut, kPIn = np.NaN*np.ones((3,)), np.NaN*np.ones((3,)), np.nan, np.nan - if not self.Ves is None: - PIn, POut, kPIn, kPOut, Err = _tfg_c._LOS_calc_InOutPolProj(self.Ves.Type, self.Ves.Poly, self.Ves.Vin, self.Ves.DLong, self.D, self.u, self.Id.Name) - if Err: - La = _tfg_p._LOS_calc_InOutPolProj_Debug(self,PIn, POut) - self._PIn, self._POut, self._kPIn, self._kPOut = PIn, POut, kPIn, kPOut - self._set_CrossProj() - - def _set_CrossProj(self): - if np.isnan(self.kPIn) or np.isnan(self.kPOut): - print('LOS '+self.Id.Name+' has no PIn or POut for computing the PolProj !') - return - self._PRMin, self._RMin, self._kRMin, self._PolProjAng, self._PplotOut, self._PplotIn = _tfg_c._LOS_set_CrossProj(self.Ves.Type, self.D, self.u, self.kPIn, self.kPOut) - - def _set_Sino(self, RefPt=None): - self._check_inputs(Sino_RefPt=RefPt) - RefPt = self.Ves.Sino_RefPt if RefPt is None else np.asarray(RefPt).flatten() - self._Sino_RefPt = RefPt - self._Ves._set_Sino(RefPt) - kMax = self.kPOut - if np.isnan(kMax): - kMax = np.inf - if self.Ves.Type=='Tor': - self._Sino_P, self._Sino_Pk, self._Sino_Pr, self._Sino_PTheta, self._Sino_p, self._Sino_theta, self._Sino_Phi = _tfg_gg.Calc_Impact_Line(self.D, self.u, RefPt, kOut=kMax) - elif self.Ves.Type=='Lin': - self._Sino_P, self._Sino_Pk, self._Sino_Pr, self._Sino_PTheta, self._Sino_p, self._Sino_theta, self._Sino_Phi = _tfg_gg.Calc_Impact_Line_Lin(self.D, self.u, RefPt, kOut=kMax) - -
[docs] def plot(self, Lax=None, Proj='All', Lplot=tfd.LOSLplot, Elt='LDIORP', EltVes='', Leg='', - Ldict=tfd.LOSLd, MdictD=tfd.LOSMd, MdictI=tfd.LOSMd, MdictO=tfd.LOSMd, MdictR=tfd.LOSMd, MdictP=tfd.LOSMd, LegDict=tfd.TorLegd, - Vesdict=tfd.Vesdict, draw=True, a4=False, Test=True): - """ Plot the LOS, in a cross-section projection, a horizontal projection or both, and optionally the :class:`~tofu.geom.Ves` object associated to it. - - Plot the desired projections of the LOS object. - The plot can include the special points, the directing vector, and the properties of the plotted objects are specified by dictionaries. - - Parameters - ---------- - Lax : list / plt.Axes - The axes to be used for plotting (provide a list of 2 axes if Proj='All'), if None a new figure with axes is created - Proj : str - Flag specifying the kind of projection used for the plot ('Cross' for a cross-section, 'Hor' for a horizontal plane, 'All' both and '3d' for 3d) - Elt : str - Flag specifying which elements to plot, each capital letter corresponds to an element - * 'L': LOS - * 'D': Starting point of the LOS - * 'I': Input point (i.e.: where the LOS enters the Vessel) - * 'O': Output point (i.e.: where the LOS exits the Vessel) - * 'R': Point of minimal major radius R (only for Vessel of Type='Tor') - * 'P': Point of used for impact parameter (i.e.: minimal distance to reference point Sino_RefPt) - Lplot : str - Flag specifying whether to plot the full LOS ('Tot': from starting point output point) or only the fraction inside the vessel ('In': from input to output point) - EltVes : str - Flag specifying the elements of the Vessel to be plotted, fed to :meth:`~tofu.geom.Ves.plot` - Leg : str - Legend to be used to identify this LOS, if Leg='' the LOS name is used - Ldict : dict / None - Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj='3d', set to ToFu_Defauts.py if None - MdictD : dict - Dictionary of properties used for plotting point 'D', fed to plt.Axes.plot() - MdictI : dict - Dictionary of properties used for plotting point 'I', fed to plt.Axes.plot() - MdictO : dict - Dictionary of properties used for plotting point 'O', fed to plt.Axes.plot() - MdictR : dict - Dictionary of properties used for plotting point 'R', fed to plt.Axes.plot() - MdictP : dict - Dictionary of properties used for plotting point 'P', fed to plt.Axes.plot() - LegDict : dict or None - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - Vesdict : dict - Dictionary of kwdargs to fed to :meth:`~tofu.geom.Ves.plot`, and 'EltVes' is used instead of 'Elt' - draw : bool - Flag indicating whether the fig.canvas.draw() shall be called automatically - a4 : bool - Flag indicating whether the figure should be plotted in a4 dimensions for printing - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - La : list / plt.Axes - Handles of the axes used for plotting (list if several axes where used) - - """ - return _tfg_p.GLLOS_plot(self, Lax=Lax, Proj=Proj, Lplot=Lplot, Elt=Elt, EltVes=EltVes, Leg=Leg, - Ldict=Ldict, MdictD=MdictD, MdictI=MdictI, MdictO=MdictO, MdictR=MdictR, MdictP=MdictP, LegDict=LegDict, - Vesdict=Vesdict, draw=draw, a4=a4, Test=Test)
- - -# def plot_3D_mlab(self,Lplot='Tot',PDIOR='DIOR',axP='None',axT='None', Ldict=Ldict_Def,Mdict=Mdict_Def,LegDict=LegDict_Def): -# fig = Plot_3D_mlab_GLOS() -# return fig - -
[docs] def plot_Sinogram(self, Proj='Cross', ax=None, Elt=tfd.LOSImpElt, Sketch=True, Ang=tfd.LOSImpAng, AngUnit=tfd.LOSImpAngUnit, - Ldict=tfd.LOSMImpd, Vdict=tfd.TorPFilld, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True): - """ Plot the sinogram of the vessel polygon, by computing its envelopp in a cross-section, can also plot a 3D version of it - - Plot the LOS in projection space (where sinograms are plotted) as a point. - You can plot the conventional projection-space (in 2D in a cross-section), or a 3D extrapolation of it, where the third coordinate is provided by the angle that the LOS makes with the cross-section plane (useful in case of multiple LOS with a partially tangential view). - - Parameters - ---------- - Proj : str - Flag indicating whether to plot a classic sinogram ('Cross') from the vessel cross-section (assuming 2D), or an extended 3D version ('3d') of it with additional angle - ax : None or plt.Axes - The axes on which the plot should be done, if None a new figure and axes is created - Elt : str - Flag indicating which elements to plot, each capital letter stands for one element - * 'L': LOS - * 'V': Vessel - Ang : str - Flag indicating which angle to use for the impact parameter, the angle of the line itself (xi) or of its impact parameter (theta) - AngUnit : str - Flag for the angle units to be displayed, 'rad' for radians or 'deg' for degrees - Sketch : bool - Flag indicating whether a small skecth showing the definitions of angles 'theta' and 'xi' should be included or not - Ldict : dict - Dictionary of properties used for plotting the LOS point, fed to plt.plot() if Proj='Cross' and to plt.plot_surface() if Proj='3d' - Vdict : dict - Dictionary of properties used for plotting the polygon envelopp, fed to plt.plot() if Proj='Cross' and to plt.plot_surface() if Proj='3d' - LegDict : None or dict - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the figure should be plotted in a4 dimensions for printing - Test : bool - Flag indicating whether the inputs shall be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used to plot - - """ - return _tfg_p.GLOS_plot_Sinogram(self, Proj=Proj, ax=ax, Elt=Elt, Sketch=Sketch, Ang=Ang, AngUnit=AngUnit, - Ldict=Ldict, Vdict=Vdict, LegDict=LegDict, draw=draw, a4=a4, Test=Test)
- - -
[docs] def save(self, SaveName=None, Path=None, Mode='npz', compressed=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - - """ - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - - - - -def _LOS_check_inputs(Id=None, Du=None, Vess=None, Type=None, Sino_RefPt=None, Clock=None, arrayorder=None, Exp=None, shot=None, Diag=None, dtime=None, dtimeIn=None, SavePath=None, Calc=None): - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - if not Du is None: - assert hasattr(Du,'__iter__') and len(Du)==2 and all([hasattr(du,'__iter__') and len(du)==3 for du in Du]), "Arg Du must be an iterable containing of two iterables of len()=3 (cartesian coordinates) !" - if not Vess is None: - assert type(Vess) is Ves, "Arg Ves must be a Ves instance !" - if not Exp is None: - assert Exp==Vess.Id.Exp, "Arg Exp must be the same as Ves.Id.Exp !" - bools = [Clock,dtimeIn,Calc] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [Clock,dtimeIn,Calc] must all be bool !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - assert Type is None, "Arg Type must be None for a LOS object !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Arg Exp must be in "+str(tfd.AllowedExp)+" !" - strs = [Diag,SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [Diag,SavePath] must all be str !" - Iter2 = [Sino_RefPt] - if any([not aa is None for aa in Iter2]): - assert all([aa is None or (hasattr(aa,'__iter__') and np.asarray(aa).ndim==1 and np.asarray(aa).size==2) for aa in Iter2]), "Args [DLong,Sino_RefPt] must be an iterable with len()=2 !" - Ints = [shot] - if any([not aa is None for aa in Ints]): - assert all([aa is None or type(aa) is int for aa in Ints]), "Args [Sino_NP,shot] must be int !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - - -
[docs]class GLOS(object): - """ An object regrouping a group of LOS objects with some common features (e.g.: all belong to the same camera) and the same :class:`~tofu.geom.Ves` object, provides methods for common computing and plotting - - Usually :class:`LOS` correspond to detectors which are naturally grouped in 'cameras' (sets of detectors located in the same place or sharing an aperture or a data acquisition system). - The GLOS object provided by tofu provides the object-oriented equivalent. - The GLOS objects provides the same methods as the :class:`LOS` objects, plus extra methods for fast handling or selecting of the whole set. - Note that you must first create each :class:`LOS` independently and then provide them as a list argument to a GLOS object. - - Parameters - ---------- - Id : str / tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID() - LLOS : list / :class:'LOS' - List of LOS instances with the same :class:`~tofu.geom.Ves` instance - Type : None - (not used in the current version) - Exp : None / str - Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used - Diag : None / str - Diagnostic to which the Lens belongs - shot : None / int - Shot number from which this Lens is usable (in case its position was changed from a previous configuration) - Sino_RefPt : None / iterable - If provided, array of size=2 containing the (R,Z) (for 'Tor' Type) or (Y,Z) (for 'Lin' Type) coordinates of the reference point for the sinogram - arrayorder : str - Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous ('C') or Fortran-contiguous ('F') - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - dtime None / dtm.datetime - A time reference to be used to identify this particular instance (used for debugging mostly) - dtimeIn bool - Flag indicating whether dtime should be included in the SaveName (used for debugging mostly) - - """ - def __init__(self, Id, LLOS, Ves=None, Sino_RefPt=None, Type=None, Exp=None, Diag=None, shot=None, arrayorder='C', Clock=False, dtime=None, dtimeIn=False, SavePath=None): - self._Done = False - tfpf._check_NotNone({'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - - self._check_inputs(Exp=Exp, Diag=Diag, shot=shot, Ves=Ves, LLOS=LLOS) - Exp = Exp if not Exp is None else LLOS[0].Id.Exp - assert Exp==LLOS[0].Id.Exp, "Arg Exp must be identical to the LLOS !" - Diag = Diag if not Diag is None else LLOS[0].Id.Diag - assert Diag==LLOS[0].Id.Diag, "Arg Diag must be identical to the LLOS !" - shot = shot if not shot is None else LLOS[0].Id.shot - assert shot==LLOS[0].Id.shot, "Arg shot must be identical to the LLOS !" - - self._set_Id(Id, Exp=Exp, Diag=Diag, shot=shot, Type=Type, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._set_LLOS(LLOS) - if not Ves is None and not tfpf.CheckSameObj(LLOS[0].Ves, Ves, ['Poly','Type','Name','Exp']): - self._set_Ves(Ves) - - self._set_Sino(RefPt=Sino_RefPt) - self._Done = True - - - @property - def Id(self): - return self._Id - @property - def LLOS(self): - return self._LLOS - @property - def Ves(self): - return self._LLOS[0].Ves - @property - def nLOS(self): - return self._nLOS - @property - def Sino_RefPt(self): - return self._LLOS[0].Sino_RefPt - - def _check_inputs(self, Id=None, LLOS=None, Ves=None, Sino_RefPt=None, Type=None, Exp=None, Diag=None, shot=None, arrayorder=None, Clock=None, dtime=None, dtimeIn=False, SavePath=None): - _GLOS_check_inputs(Id=Id, LLOS=LLOS, Vess=Ves, Sino_RefPt=Sino_RefPt, Type=Type, Exp=Exp, Diag=Diag, shot=shot, arrayorder=arrayorder, Clock=Clock, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - - def _set_Id(self, Val, Type=None, Exp=None, Diag=None, shot=None, SavePath=None, dtime=None, dtimeIn=False): - if self._Done: - Out = tfpf._get_FromItself(self.Id, {'Type':Type, 'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, Diag, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['Diag'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, Diag=Diag, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('GLOS', Val, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - - def _set_LLOS(self, LLOS): - self._check_inputs(LLOS=LLOS) - if isinstance(LLOS,LOS): - LLOS = [LLOS] - self._nLOS = len(LLOS) - self._LLOS = LLOS - LObj = [ll.Id for ll in LLOS] - if not LLOS[0].Ves is None: - LObj.append(LLOS[0].Ves.Id) - self.Id.set_LObj(LObj) - - def _set_Ves(self, Ves=None): - self._check_inputs(Ves=V) - for ii in range(0,self.nLOS): - self._LLOS[ii]._set_Ves(Ves) - if not Ves is None: - self.Id.set_LObj([Ves.Id]) - - def _set_Sino(self, RefPt=None): - self._check_inputs(Sino_RefPt=RefPt) - for ii in range(self.nLOS): - self._LLOS[ii]._set_Sino(RefPt=RefPt) - -
[docs] def select(self, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Out=bool): - """ Return the indices or instances of all instances matching the specified criterion. - - The selection can be done according to 2 different mechanism (1) and (2). - - For mechanism (1): the user provides the value (Val) that the specified criterion (Crit) should take for a :class:`LOS` to be selected. - The criteria are typically attributes of the self.Id attribute (i.e.: name of the instance, or user-defined attributes like the camera head...) - - For mechanism (2), used if Val=None: the user provides a str expression (or a list of such) to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: 'not ' or '<='). - Another str or list of str expressions can be provided that will be placed after the criterion value. - - Other parameters are used to specify logical operators for the selection (match any or all the criterion...) and the type of output. - - Parameters - ---------- - Crit : str - Flag indicating which criterion to use for discrimination - Can be set to any attribute of the tofu.pathfile.ID class (e.g.: 'Name','SaveName','SavePath'...) or any key of ID.USRdict (e.g.: 'Exp'...) - Val : list, str or None - The value to match for the chosen criterion, can be a list of different values - Used for selection mechanism (1) - PreExp : list, str or None - A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: 'not ') - Used for selection mechanism (2) - PostExp : list, str or None - A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed after the criterion value (e.g.: '>=5.') - Used for selection mechanism (2) - Log : str - Flag indicating whether the criterion shall match all provided values or one of them ('any' or 'all') - InOut : str - Flag indicating whether the returned indices are the ones matching the criterion ('In') or the ones not matching it ('Out') - Out : type / str - Flag indicating in which form shall the result be returned, as an array of integer indices (int), an array of booleans (bool), a list of names ('Names') or a list of instances ('LOS') - - Returns - ------- - ind : list / np.ndarray - The computed output (array of index, list of names or instances depending on parameter 'Out') - - Examples - -------- - - >>> import tofu.geom as tfg - >>> ves = tfg.Ves('ves', [[0.,1.,1.,0.],[0.,0.,1.,1.]], DLong=[-1.,1.], Type='Lin', Exp='Misc', shot=0) - >>> los1 = tfg.LOS('los1', ([0.,-0.1,-0.1],[0.,1.,1.]), Ves=ves, Exp='Misc', Diag='D', shot=0) - >>> los2 = tfg.LOS('los2', ([0.,-0.1,-0.1],[0.,0.5,1.]), Ves=ves, Exp='Misc', Diag='D', shot=1) - >>> los3 = tfg.LOS('los3', ([0.,-0.1,-0.1],[0.,1.,0.5]), Ves=ves, Exp='Misc', Diag='D', shot=1) - >>> glos = tfg.GLOS('glos', [los1,los2,los3]) - >>> ind = glos.select(Val=['los1','los3'], Log='any', Out='LOS') - >>> print [ii.Id.Name for ii in ind] - ['los1', 'los3'] - >>> ind = glos.select(Val=['los1','los3'], Log='any', InOut='Out', Out=int) - array([1]) - - """ - if not Out=='LOS': - ind = tfpf.SelectFromListId([ll.Id for ll in self.LLOS], Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Out=Out) - else: - ind = tfpf.SelectFromListId([ll.Id for ll in self.LLOS], Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Out=int) - ind = [self.LLOS[ii] for ii in ind] - return ind
- - -
[docs] def plot(self, Lax=None, Proj='All', Lplot=tfd.LOSLplot, Elt='LDIORP', EltVes='', Leg='', - Ldict=tfd.LOSLd, MdictD=tfd.LOSMd, MdictI=tfd.LOSMd, MdictO=tfd.LOSMd, MdictR=tfd.LOSMd, MdictP=tfd.LOSMd, LegDict=tfd.TorLegd, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', - Vesdict=tfd.Vesdict, draw=True, a4=False, Test=True): - """ Plot the GLOS, with a cross-section view, a horizontal view or both, and optionally the :class:`~tofu.geom.Ves` object associated to it. - - Plot all the :class:`LOS` of the GLOS, or only a selection of them (using the same parameters as self.select()). - - Parameters - ---------- - Lax : list or plt.Axes - The axes to be used for plotting (provide a list of 2 axes if Proj='All'), if None a new figure with axes is created - Proj : str - Flag specifying the kind of projection used for the plot ('Cross' for a cross-section, 'Hor' for a horizontal plane, 'All' both and '3d' for 3d) - Elt : str - Flag specifying which elements to plot, each capital letter corresponds to an element - * 'L': LOS - * 'D': Starting point of the LOS - * 'I': Input point (i.e.: where the LOS enters the Vessel) - * 'O': Output point (i.e.: where the LOS exits the Vessel) - * 'R': Point of minimal major radius R (only for Vessel of Type='Tor') - * 'P': Point of used for impact parameter (i.e.: minimal distance to reference point ImpRZ) - Lplot : str - Flag specifying whether to plot the full LOS ('Tot': from starting point output point) or only the fraction inside the vessel ('In': from input to output point) - EltVes : str - Flag specifying the elements of the Vessel to be plotted, fed to :meth:`~tofu.geom.Ves.plot` - Leg : str - Legend to be used to identify this LOS, if Leg='' the LOS name is used - Ldict : dict or None - Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj='3d', set to ToFu_Defauts.py if None - MdictD : dict - Dictionary of properties used for plotting point 'D', fed to plt.Axes.plot() - MdictI : dict - Dictionary of properties used for plotting point 'I', fed to plt.Axes.plot() - MdictO : dict - Dictionary of properties used for plotting point 'O', fed to plt.Axes.plot() - MdictR : dict - Dictionary of properties used for plotting point 'R', fed to plt.Axes.plot() - MdictP : dict - Dictionary of properties used for plotting point 'P', fed to plt.Axes.plot() - LegDict : dict or None - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - Vesdict : dict - Dictionary of kwdargs to fed to :meth:`~tofu.geom.Ves.plot`, and 'EltVes' is used instead of 'Elt' - Lim : list or tuple - Array of a lower and upper limit of angle (rad.) or length for plotting the '3d' Proj - draw : bool - Flag indicating whether the fig.canvas.draw() shall be called automatically - Test : bool - Flag indicating whether the inputs should be tested for conformity - - ind None or np.ndarray - Array of indices (int or bool) of the LOS to be plotted if only some of them are to be plotted - kwdargs - kwdargs to be fed to GLOS.select() if ind=None and only a fraction of the LOS are to be plotted - - Returns - ------- - La : list or plt.Axes - Handles of the axes used for plotting (list if several axes where used) - - """ - return _tfg_p.GLLOS_plot(self, Lax=Lax, Proj=Proj, Lplot=Lplot, Elt=Elt, EltVes=EltVes, Leg=Leg, - Ldict=Ldict, MdictD=MdictD, MdictI=MdictI, MdictO=MdictO, MdictR=MdictR, MdictP=MdictP, LegDict=LegDict, - Vesdict=Vesdict, draw=draw, a4=a4, Test=Test, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut)
- -# def plot_3D_mlab(self,Lplot='Tot',PDIOR='DIOR',ax='None', Ldict=Ldict_Def,Mdict=Mdict_Def,LegDict=LegDict_Def): -# fig = Plot_3D_mlab_GLOS() -# return fig - -
[docs] def plot_Sinogram(self, Proj='Cross', ax=None, Elt=tfd.LOSImpElt, Sketch=True, Ang=tfd.LOSImpAng, AngUnit=tfd.LOSImpAngUnit, - Ldict=tfd.LOSMImpd, Vdict=tfd.TorPFilld, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Plot the sinogram of the vessel polygon, by computing its envelopp in a cross-section, can also plot a 3D version of it - - Plot all the :class:`LOS` of the GLOS, or only a selection of them in projection space - - Parameters - ---------- - Proj : str - Flag indicating whether to plot a classic sinogram ('Cross') from the vessel cross-section (assuming 2D), or an extended 3D version '3d' of it with additional angle, default: 'Cross' - ax : None or plt.Axes - The axes on which the plot should be done, if None a new figure and axes is created, default: None - Elt : str - Flag indicating which elements to plot, each capital letter stands for one element, default: 'LV' - * 'L': LOS - * 'V': Vessel - Ang : str - Flag indicating which angle to use for the impact parameter, the angle of the line itself (xi) or of its impact parameter (theta), default: 'theta' - AngUnit : str - Flag for the angle units to be displayed, 'rad' for radians or 'deg' for degrees, default: 'rad' - Sketch : bool - Flag indicating whether a small skecth showing the definitions of angles 'theta' and 'xi' should be included or not - Ldict : dict - Dictionary of properties used for plotting the LOS point, fed to plt.plot() if Proj='Cross' and to plt.plot_surface() if Proj='3d', default: see ToFu_Defaults.py - Vdict : dict - Dictionary of properties used for plotting the polygon envelopp, fed to plt.plot() if Proj='Cross' and to plt.plot_surface() if Proj='3d', default: see ToFu_Defaults.py - LegDict : None or dict - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None, default: see ToFu_Defaults.py - draw : bool - Flag indicating whether to draw the figure, default: True - Test : bool - Flag indicating whether the inputs shall be tested for conformity, default: True - - Returns - ------- - ax : plt.Axes - The axes used to plot - - """ - return _tfg_p.GLOS_plot_Sinogram(self, Proj=Proj, ax=ax, Elt=Elt, Sketch=Sketch, Ang=Ang, AngUnit=AngUnit, - Ldict=Ldict, Vdict=Vdict, LegDict=LegDict, draw=draw, a4=a4, Test=Test, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut)
- - - -
[docs] def save(self,SaveName=None,Path=None,Mode='npz', compressed=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - - """ - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - - -def _GLOS_check_inputs(Id=None, LLOS=None, Vess=None, Type=None, Sino_RefPt=None, Clock=None, arrayorder=None, Exp=None, shot=None, Diag=None, dtime=None, dtimeIn=None, SavePath=None): - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - if not Vess is None: - assert type(Vess) is Ves, "Arg Ves must be a Ves instance !" - if not Exp is None: - assert Exp==Vess.Id.Exp, "Arg Exp must be identical to Ves.Id.Exp !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - if not LLOS is None: - assert all([type(ll) is LOS for ll in LLOS]), "Arg LLOS must be a list of LOS objects !" - assert all([ll.Id.Exp==LLOS[0].Id.Exp for ll in LLOS]), "All LOS must have the same Exp !" - assert all([ll.Id.Type==LLOS[0].Id.Type for ll in LLOS]), "All LOS must have the same Type !" - assert all([tfpf.CheckSameObj(LLOS[0].Ves,ll.Ves, ['Poly','Type','Name','Exp','SaveName','shot']) for ll in LLOS]), "All LOS in LLOS must have the same Ves instance !" - assert all([ll._arrayorder==LLOS[0].Ves._arrayorder for ll in LLOS]), "All LOS should have the same arrayorder !" - assert all([ll.Id.Diag==LLOS[0].Id.Diag for ll in LLOS]), "All LOS should have the same Diag !" - if not arrayorder is None: - assert LLOS[0]._arrayorder==arrayorder, "All LOS should have the same arrayorder as provided !" - assert Type is None, "Arg Type must be None for a GLOS object !" - bools = [Clock,dtimeIn] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [Clock,dtimeIn] must all be bool !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Arg Exp must be in "+str(tfd.AllowedExp)+" !" - strs = [Diag,SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [Diag,SavePath] must all be str !" - Ints = [shot] - if any([not aa is None for aa in Ints]): - assert all([aa is None or type(aa) is int for aa in Ints]), "Args [Sino_NP,shot] must be int !" - Iter2 = [Sino_RefPt] - if any([not aa is None for aa in Iter2]): - assert all([aa is None or (hasattr(aa,'__iter__') and np.asarray(aa).ndim==1 and np.asarray(aa).size==2) for aa in Iter2]), "Args [DLong,Sino_RefPt] must be an iterable with len()=2 !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - - - - -""" -############################################################################### -############################################################################### - Lens class and functions -############################################################################### -""" - - - -
[docs]class Lens(object): - """ A Lens class with all geometrical data and built-in methods, defined as a planar polygon in 3D cartesian coordinates, with optional :class:`~tofu.geom.Ves` object - - A Lens object is useful for implementing one of the two possible optical arrangements available in tofu. - A Lens (implicitly convergent) is used for focusing incoming light on a detector of reduced size (i.e.g: like the end of an optic fiber cable). - In this case, anmd in its current version, tofu only handles spherical lenses and assumes that the detector has a circular active surface, centered on the same axis as the lens and located in its focal plane. - - Parameters - ---------- - Id : str or tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID() - O : iterable - Array of 3D cartesian coordinates of the center of the Lens - nIn : iterable - Array of 3D cartesian coordiantes of the vector defining the axis of the Lens - Rad : float - Radius of the Lens - F1 : float - Focal length of the Lens, on the detector side - F2 : float - Focal length of the Lens, on the plasma side (only np.inf supported so far) - Type : str - Flag indicating the type of Lens (only 'Sph' - for spherical lens - supported so far) - R1 : None or float - Radius of the first face of the Lens, for full description only - R2 : None or float - Radius of the second face of the Lens, for full description only - dd : None or float - Width of the Lens along its axis, for full description only - Ves : :class:`~tofu.geom.Ves` - :class:`~tofu.geom.Ves` object to which the aperture is assigned - Exp : None or str - Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used - Diag : None or str - Diagnostic to which the Lens belongs - shot : None or int - Shot number from which this Lens is usable (in case its position was changed from a previous configuration) - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - Clock : bool - Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False), default: False - arrayorder : str - Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous ('C') or Fortran-contiguous ('F'), default: 'C' - dtime : None or dtm.datetime - A time reference to be used to identify this particular instance (used for debugging mostly), default: None - dtimeIn : bool - Flag indicating whether dtime should be included in the SaveName (used for debugging mostly), default: False - - """ - - def __init__(self, Id, O, nIn, Rad, F1, F2=np.inf, R1=None, R2=None, dd=None, Ves=None, Type='Sph', Exp=None, Diag=None, shot=None, arrayorder='C', Clock=False, SavePath=None, dtime=None, dtimeIn=False): - - self._Done = False - tfpf._check_NotNone({'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - - if not Ves is None: - Exp = Exp if not Exp is None else Ves.Id.Exp - assert Exp==Ves.Id.Exp, "Arg Exp must be identical to the Ves.Id.Exp !" - - self._set_Id(Id, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._set_geom(O, nIn, Rad, F1, F2=F2, R1=R1, R2=R2, dd=dd) - self._set_Ves(Ves) - self._Done = True - - @property - def Type(self): - return self.Id.Type - @property - def Id(self): - return self._Id - @property - def O(self): - return self._O - @property - def BaryS(self): - return self._O - @property - def Rad(self): - return self._Rad - @property - def F1(self): - return self._F1 - @property - def F2(self): - return self._F2 - @property - def nIn(self): - return self._nIn - @property - def Poly(self,NP=100): - """ Return a simple representation of the Lens as a 3D circle (if Lens.Type='Sph') """ - assert self.Type=='Sph', "Coded only for Lens.Type='Sph' !" - thet = np.linspace(0.,2.*np.pi,NP) - e1 = np.array([-self.nIn[1],self.nIn[0],0.]) - e1 = e1/np.linalg.norm(e1) - e2 = np.cross(self.nIn,e1) - Poly = np.tile(self.O,(NP,1)).T + self.Rad*np.array([np.cos(thet)*e1[0]+np.sin(thet)*e2[0], np.cos(thet)*e1[1]+np.sin(thet)*e2[1], np.cos(thet)*e1[2]+np.sin(thet)*e2[2]]) - Poly = np.ascontiguousarray(Poly) if self._arrayorder=='C' else np.asfortranarray(Poly) - return Poly - @property - def Surf(self): - assert self.Type=='Sph', "Coded only for Lens.Type='Sph' !" - return np.pi*self.Rad**2 - - @property - def Full(self): - return self._Full - @property - def R1(self): - return self._R1 - @property - def R2(self): - return self._R2 - @property - def dd(self): - return self._dd - - @property - def Ves(self): - return self._Ves - - def _check_inputs(self, Id=None, O=None, nIn=None, Rad=None, F1=None, F2=None, R1=None, R2=None, dd=None, Ves=None, Type=None, Exp=None, Diag=None, shot=None, arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - _Lens_check_inputs(Id=Id, O=O, nIn=nIn, Rad=Rad, F1=F1, F2=F2, R1=R1, R2=R2, dd=dd, Vess=Ves, Type=Type, Exp=Exp, Diag=Diag, shot=shot, arrayorder=arrayorder, Clock=Clock, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - - - def _set_Id(self, Val, Type=None, Exp=None, Diag=None, shot=None, SavePath=None, dtime=None, dtimeIn=False): - if self._Done: - Out = tfpf._get_FromItself(self.Id, {'Type':Type, 'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, Diag, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['Diag'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Type':Type, 'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, Diag=Diag, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('Lens', Val, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_geom(self, O, nIn, Rad, F1, F2=np.inf, R1=None, R2=None, dd=None): - tfpf._check_NotNone({'O':O,'nIn':nIn,'Rad':Rad,'F1':F1,'F2':F2}) - self._check_inputs(O=O, nIn=nIn, Rad=Rad, F1=F1, F2=F2, R1=R1, R2=R2, dd=dd) - self._O, self._nIn, self._Rad, self._F1, self._F2 = _tfg_c._Lens_set_geom_reduced(O, nIn, Rad, F1, F2=F2, Type=self.Id.Type) - self._Full, self._R1, self._R2, self._dd, self._C1, self._C2, self._Angmax1, self._Angmax2 = _tfg_c._Lens_set_geom_full(R1=R1, R2=R2, dd=dd, O=self.O, Rad=self.Rad, nIn=self.nIn, Type=self.Id.Type) - - def _set_Ves(self,Ves): - tfpf._check_NotNone({'Ves':Ves, 'Exp':self.Id.Exp}) - self._check_inputs(Ves=Ves, Exp=self.Id.Exp) - if not Ves is None: - self.Id.set_LObj([Ves.Id]) - if Ves.Type=='Tor': - self._nIn = _tfg_c.Calc_nInFromTor_Poly(self.BaryS, self.nIn, Ves.BaryS) - elif Ves.Type=='Lin': - self._nIn = _tfg_c.Calc_nInFromLin_Poly(self.BaryS, self.nIn, Ves.BaryS) - self._set_geom(self.O, self.nIn, self.Rad, self.F1, F2=self.F2, R1=self.R1, R2=self.R2, dd=self.dd) - self._Ves = Ves - - - def _get_CircleInFocPlaneFromPts(self, Pts, Test=True): - """ Compute the image of the lens projected on its focal plane as seen from arbitrary points in the plasma, treated with 3D coordinates and reduced lens model as input - - Parameters - ---------- - Pts : np.ndarray - (3,N) or (3,) array of points 3D cartesian coordinates - Test : bool - Flag indicating whether the inputs should be tested for conformity, default: True - - Returns - ------- - Cents : np.ndarray - (3,N) array of the 3D cartesian coordinates of the centers of the image circles of the lens on the focal plane from points Pts - Rads : np.ndarray - (N,) array of the radius of the image circles of the lens on the focal plane from points Pts - d : np.ndarray - (N,) array of the algebraic distance along the lens axis between the Lens O-point and Pts - r : np.ndarray - (N,) array of the absolute distance between Pts and the Lens axis - rIm : np.ndarray - (N,) array of the absolute distance between Pts images (center of the image circles on the focal plane) and the Lens axis - - """ - Pts = np.asarray(Pts) - if Test: - assert self.Type=='Sph', "Can only be computed for spherical lenses, cylindrical lenses not coded yet !" - assert type(Pts) is np.ndarray and Pts.ndim in [1,2] and 3 in Pts.shape, "Arg Pts must be a (3,N), (N,3) or (3,) np.ndarray !" - assert out.lower() in ['2d','3d'], "Arg out must be '2D' or '3D' !" - assert self.Id.Type=='Sph', "Only coded for spherical lens !" - if Pts.ndim==1: - Pts = Pts.reshape((3,1)) - if not Pts.shape[0]==3 and Pts.shape[1]==3: - Pts = Pts.T - Cs0,Cs1,Cs2, RadIm, din, r, rIm, nperp0,nperp1,nperp2 = _tfg_gg._Lens_get_CircleInFocPlaneFromPts(self.O[0],self.O[1],self.O[2], self.nIn[0],self.nIn[1],self.nIn[2], self.Rad, self.F1, Pts[0,:],Pts[1,:],Pts[2,:], F2=self.F2) - return np.array([Cs0,Cs1,Cs2]), RadIm, din, r, rIm, np.array([nperp0,nperp1,nperp2]) - - -
[docs] def plot_alone(self, ax=None, V='red', nin=1.5, nout=1., Lmax='F', V_NP=50, src=None, draw=True, a4=False, Test=True): - """ Plot a 2D representation of the Lens object, optionally with 2D viewing cone and rays of several sources in the plane, either with reduced of full representation - - Plot a sketch of the Lens, optionally with ray-traced incoming light beams. - This plotting routine does not consider any syurrounding and plots everything assuming the origine of the coordinate system is on the Lens - - Parameters - ---------- - ax : None or plt.Axes - Axes to be used for plotting, if None a new figure with axes is created (default: None) - V : str - Flag indicating whether the Lens should be considered in its reduced geometry model ('red') or its full version ('full'), default: 'red' - nin : float - Value of the optical index to be used inside the Lens (useful when V='full' only) - nout : float - Value of the optical index to be used outside the Lens (useful when V='full' only) - Lmax : float - Maximum length on which the source beams should be plotted after going through the Lens, if 'F' all beams are plotted up to the focal plane - V_NP : int - Number of points to be used to plot each circle fraction of the full version of the Lens geometry (useful when V='full' only) - src : None or dict - Dictionary of parameters for the source of ray beams: - * 'Pt': iterable of len()=2 with the 2D cartesian coordinates of the point where the source should be located with reference to the Lens center (0,0) and axis (1,0) - * 'Type': Flag indicating whether the source should a point ('Pt') or an array of parallel beams perpendicular to a plane passing through Pt - * 'nn': iterable of len()=2 with the 2D cartesian coordinates of a vector directing the array of parallel beams - * 'NP': int, number of beams to be plotted from the source - draw : bool - Flag indicating whether the fig.canvas.draw() shall be called automatically, default: True - a4 : bool - Flag indicating whether the figure should be a4 size (for printing or saving as pdf for example) - Test : bool - Flag indicating whether the inputs should be tested for conformity, default: True - - Returns - -------- - ax : plt.Axes - Handle of the axes used for plotting - - """ - return _tfg_p.Lens_plot_alone(self, ax=ax, V=V, nin=nin, nout=nout, Lmax=Lmax, V_NP=V_NP, src=src, draw=draw, a4=a4, Test=Test)
- - -
[docs] def plot(self, Lax=None, Proj='All', Elt='PV', EltVes='', Leg=None, LVIn=tfd.ApLVin, Pdict=tfd.ApPd, Vdict=tfd.ApVd, Vesdict=tfd.Vesdict, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True): - """ Plot the Lens object, optionally with the associated :class:`~tofu.geom.Ves` object - - Plot the chosen projections of the Lens polygon. - - Parameters - ---------- - Lax : list or plt.Axes - The axes to be used for plotting (provide a list of 2 axes if Proj='All'), if None a new figure with axes is created - Proj : str - Flag specifying the kind of projection used for the plot ('Cross' for a cross-section, 'Hor' for a horizontal plane, 'All' both and '3d' for 3d) - Elt : str - Flag specifying which elements to plot, each capital letter corresponds to an element - * 'P': polygon - * 'V': vector perpendicular to the polygon, oriented towards the interior of the Vessel - EltVes : str - Flag specifying the elements of the Vessel to be plotted, fed to :meth:`~tofu.geom.Ves.plot` - Leg : str - Legend to be used to identify this LOS, if Leg='' the LOS name is used - LVIn : float - Length (in data coordinates, meters) of the vector 'V' - Pdict : dict - Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj='3d', set to ToFu_Defauts.py if None (default: None) - Vdict : dict - Dictionary of properties used for plotting vector 'V', fed to plt.Axes.plot() - Vesdict : dict - Dictionary of kwdargs to fed to :meth:`~tofu.geom.Ves.plot`, and 'EltVes' is used instead of 'Elt' - LegDict : dict or None - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - draw : bool - Flag indicating whether the fig.canvas.draw() shall be called automatically - a4 : bool - Flag indicating whether the figure should be a4 size (for printing or saving as pdf for example) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Lax : list or plt.Axes - Handles of the axes used for plotting (list if several axes where used) - - """ - return _tfg_p.LLens_plot(self, Lax=Lax, Proj=Proj, Elt=Elt, EltVes=EltVes, Leg=Leg, LVIn=LVIn, Pdict=Pdict, Vdict=Vdict, Vesdict=Vesdict, LegDict=LegDict, draw=draw, a4=a4, Test=Test)
- - -
[docs] def save(self,SaveName=None,Path=None,Mode='npz', compressed=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - - """ - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - -def _Lens_check_inputs(Id=None, O=None, nIn=None, Rad=None, F1=None, F2=None, R1=None, R2=None, dd=None, Vess=None, Type=None, Exp=None, Diag=None, shot=None, arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - floats = [Rad,F1,F2,R1,R2,dd] - if any([not oo is None for oo in floats]): - assert all([oo is None or type(oo) in [float,np.float64] for oo in floats]), "Args Rad, F1 and F2 must be floats !" - if not Vess is None: - assert type(Vess) is Ves, "Arg Ves must be a Ves instance !" - if not Exp is None: - assert Exp==Vess.Id.Exp, "Arg Exp must be identical to Ves.Id.Exp !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - if not Type is None: - assert Type in ['Sph'], "Arg Type must be in ['Sph'] !" - bools = [Clock,dtimeIn] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [Clock,dtimeIn] must all be bool !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Arg Exp must be in "+str(tfd.AllowedExp)+" !" - strs = [Diag,SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [Diag,SavePath] must all be str !" - Ints = [shot] - if any([not aa is None for aa in Ints]): - assert all([aa is None or type(aa) is int for aa in Ints]), "Args [Sino_NP,shot] must be int !" - Iter3 = [O,nIn] - if any([not aa is None for aa in Iter3]): - assert all([aa is None or (hasattr(aa,'__iter__') and np.asarray(aa).shape==(3,)) for aa in Iter3]), "Args [O,nIn] must be an iterable with len()=3 (3D cartesian coordinates) !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - - - - - - -""" -############################################################################### -############################################################################### - Aperture class and functions -############################################################################### -""" - - -
[docs]class Apert(object): - """ An Aperture class with all geometrical data and built-in methods, defined as a planar polygon in 3D cartesian coordinates, with optional :class:`~tofu.geom.Ves` object - - An Apert object is useful for implementing one of the two possible optical arrangements available in tofu. - An aperture is modelled as a planar polygon (of any non self-intersecting shape) through which light can pass (fully transparent) and around which light cannot pass (fully non-transparent). - One of the added-values of tofu is that it allows to create several non-coplanar aperture and assign them to a single detector. It then computes automatically the volume of sight by assuming that a detectable photon should go through all apertures. - - Parameters - ---------- - Id : str or tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID() - Poly : np.ndarray - An array (2,N) or (N,2) defining the contour of the aperture in 3D (X,Y,Z) cartesian coordinates, if not closed, will be closed automatically - Ves : :class:`~tofu.geom.Ves` - :class:`~tofu.geom.Ves` object to which the aperture is assigned - Type : None or str - Flag specifying the type of Apert - Exp : None or str - Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used - Diag : None or str - Diagnostic to which the Lens belongs - shot : None or int - Shot number from which this Lens is usable (in case its position was changed from a previous configuration) - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - Clock : bool - Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False) - dtime : None or dtm.datetime - A time reference to be used to identify this particular instance (mostly used for debugging) - dtimeIn : bool - Flag indicating whether dtime should be included in the SaveName (mostly used for debugging) - - """ - - def __init__(self, Id, Poly, Type=None, Ves=None, Exp=None, Diag=None, shot=None, arrayorder='C', Clock=False, SavePath=None, dtime=None, dtimeIn=False): - - self._Done = False - tfpf._check_NotNone({'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - - if not Ves is None: - Exp = Exp if not Exp is None else Ves.Id.Exp - assert Exp==Ves.Id.Exp, "Arg Exp must be identical to the Ves.Id.Exp !" - - self._set_Id(Id, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._set_Poly(Poly) - self._set_Ves(Ves) - self._set_arrayorder(arrayorder) - self._Done = True - - @property - def Id(self): - """ Return the associated tfpf.ID object """ - return self._Id - @property - def Poly(self): - """ Return the planar polygon defining the aperture (in 3D cartesian coordinates) """ - return self._Poly - @property - def NP(self): - """ Return the number of points defining the polygon """ - return self._NP - @property - def nIn(self): - """ Return the normalized vector perpendicular to the polygon surface and oriented towards the interior of the associated vessel (in 3D cartesian coordinates) """ - return self._nIn - @property - def BaryS(self): - """ Return the (surfacic) center of mass of the polygon (in 3D cartesian coordinates) """ - return self._BaryS - @property - def Surf(self): - """ Return the area of the polygon """ - return self._Surf - @property - def Rad(self): - return self._Rad - @property - def F1(self): - return None - @property - def Ves(self): - """ Return the associated :class:`~tofu.geom.Ves` object """ - return self._Ves - - def _check_inputs(self, Id=None, Poly=None, Type=None, Ves=None, Exp=None, Diag=None, shot=None, arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - _Apert_check_inputs(Id=Id, Poly=Poly, Type=Type, Vess=Ves, Exp=Exp, Diag=Diag, shot=shot, arrayorder=arrayorder, Clock=Clock, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - - - def _set_Id(self, Val, Type=None, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - if self._Done: - Out = tfpf._get_FromItself(self.Id, {'Type':Type, 'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, Diag, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['Diag'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, Diag=Diag, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('Apert', Val, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_arrayorder(self, arrayorder): - tfpf._set_arrayorder(self, arrayorder) - - def _set_Poly(self, Poly): - tfpf._check_NotNone({'Poly':Poly}) - self._check_inputs(Poly=Poly) - self._Poly, self._NP, self._nIn, self._BaryP, self._Surf, self._BaryS, self._Rad = _tfg_c._ApDetect_set_Poly(Poly, self._arrayorder, Clock=self._Clock) - assert self._Surf>0., "Input Poly has 0 area !" - - def _set_Ves(self, Ves=None): - tfpf._check_NotNone({'Ves':Ves, 'Exp':self.Id.Exp}) - self._check_inputs(Ves=Ves, Exp=self.Id.Exp) - if not Ves is None: - self.Id.set_LObj([Ves.Id]) - if Ves.Type=='Tor': - self._nIn = _tfg_c.Calc_nInFromTor_Poly(self.BaryS, self.nIn, Ves.BaryS) - elif Ves.Type=='Lin': - self._nIn = _tfg_c.Calc_nInFromLin_Poly(self.BaryS, self.nIn, Ves.BaryS) - self._Ves = Ves - - -
[docs] def plot(self, Lax=None, Proj='All', Elt='PV', EltVes='', Leg=None, LVIn=tfd.ApLVin, Pdict=tfd.ApPd, Vdict=tfd.ApVd, - Vesdict=tfd.Vesdict, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True): - """ Plot the Apert, with a cross-section view, a horizontal view or both, or a 3d view, and optionally the :class:`~tofu.geom.Ves` object associated to it. - - Plot the desired projections of the polygon defining the aperture. - - Parameters - ---------- - Lax list or plt.Axes - The axes to be used for plotting (provide a list of 2 axes if Proj='All'), if None a new figure with axes is created - Proj str - Flag specifying the kind of projection used for the plot ('Cross' for a cross-section, 'Hor' for a horizontal plane, 'All' both and '3d' for 3d) - Elt str - Flag specifying which elements to plot, each capital letter corresponds to an element - * 'P': polygon - * 'V': vector perpendicular to the polygon, oriented towards the interior of the Vessel - EltVes str - Flag specifying the elements of the Vessel to be plotted, fed to :meth:`~tofu.geom.Ves.plot` - Leg str - Legend to be used to identify this LOS, if Leg='' the LOS name is used - LVIn float - Length (in data coordinates, meters) of the vector 'V' - Pdict dict - Dictionary of properties used for plotting the polygon, fed to plt.Axes.plot() or plt.plot_surface() if Proj='3d', set to ToFu_Defauts.py if None - Vdict dict - Dictionary of properties used for plotting vector 'V', fed to plt.Axes.plot() - Vesdict dict - Dictionary of kwdargs to fed to :meth:`~tofu.geom.Ves.plot`, and 'EltVes' is used instead of 'Elt' - LegDict dict or None - Dictionary of properties used for plotting the legend, fed to plt.legend(), the legend is not plotted if None - draw bool - Flag indicating whether the fig.canvas.draw() shall be called automatically - a4 bool - Flag indicating whether the figure should be a4 size (for printing or saving as pdf for example) - Test bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - La list or plt.Axes - Handles of the axes used for plotting (list if several axes where used) - - """ - return _tfg_p.LApert_plot(self, Lax=Lax, Proj=Proj, Elt=Elt, EltVes=EltVes, Leg=Leg, LVIn=LVIn, Pdict=Pdict, Vdict=Vdict, Vesdict=Vesdict, LegDict=LegDict, draw=draw, a4=a4, Test=Test)
- - -
[docs] def save(self,SaveName=None,Path=None,Mode='npz', compressed=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - - """ - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - -def _Apert_check_inputs(Id=None, Poly=None, Type=None, Vess=None, Exp=None, Diag=None, shot=None, arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - if not Poly is None: - assert hasattr(Poly,'__getitem__') and np.asarray(Poly).ndim==2 and 3 in np.asarray(Poly).shape, "Arg Poly must be a dict or an iterable with 3D cartesian coordinates of points !" - if not Vess is None: - assert type(Vess) is Ves, "Arg Ves must be a Ves instance !" - if not Exp is None: - assert Exp==Vess.Id.Exp, "Arg Exp must be the same as the Ves.Id.Exp !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - bools = [Clock,dtimeIn] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [CalcEtend,CalcSpanImp,CalcCone,CalcPreComp,Calc,Verb,Clock,dtimeIn] must all be bool !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Arg Exp must be in "+str(tfd.AllowedExp)+" !" - assert Type is None, "Arg Type must be None for Apert objects !" - strs = [Diag,SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [Type,Exp,Diag,SavePath] must all be str !" - if not shot is None: - assert type(shot) is int, "Arg shot must be a int !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - -""" -############################################################################### -############################################################################### - Detector and GDetect classes and functions -############################################################################### -""" - - - - -
[docs]class Detect(object): - """ A Detector class with all geometrical data and built-in methods, defined as a planar polygon in 3D cartesian coordinates, with optional aperture objects - - A Detect object is at the core of tofu's added value and is mostly defined by a 3D planar polygon of any non self-intersecting shape representing the active surface of a detector. - It can then be associated to optics (a :class:`Lens` or a list of :class:`Apert` objects) and to a :class:`~tofu.geom.Ves` to automatically compute a natural :class:'LOS' (with its etendue) and, most importantly, a proper VOS (that can be discretized for 3D numerical integration). - It can be 2 different types: either 'Circ' if it is associated to a :class:`Lens` (in which case it is simply defined by radius and is assumed to be circular and placed at the focal plane of the :class:`Lens` object), or None in the more general case in which it is associated to a set of apertures. - Most of the commonly used quantities are automatically calculated (etendue of the LOS, VOS...) and it comes with built-in methods for plotting and computing synthetic data. - - To compute the VOS, tofu tests all points inside a 3D grid to see if each point is visible from the detector through the apertures or not. - The meshed space is determined by the volume spanned by a LOS sampling of the VOS. - Then, a contour function is used to find the polygons limiting the cross-section and horizontal projections of the VOS. - Once computed, the viewing cones are assigned to attributes of the Detect instance. - - In the particular case (1) when the LOS of the detector lies entirely inside one cross-section (e.g.: tomography diagnostics), tofu also computes the integral in the direction of the ignorable coordinate of the solid angle on a regular mesh (for faster computation of the geometry assuming toroidaly invariant basis functions). - This regular mesh is defined in 2D, by the distance between a mesh point and the detector (k) and by the poloidal angle between the LOS and the line going from the detector to the mesh point (psi) - - - Parameters - ---------- - Id : str or tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to tfpf.ID() - Poly : dict or np.ndarray - Contains the information regarding the geometry of the Detect object - * np.ndarray: (2,N) or (N,2) defining the contour of the detector active surface in 3D (X,Y,Z) cartesian coordinates, if not closed, will be closed automatically, if Type=None - * dict: dictionary of properties for a circular detector placed in the focal plane of a Lens on its axis, contains field 'Rad'=float (radius), if Optics is Lens and Type='Circ' - Optics : list or Lens - The optics to be associated to the detector, either a spherical :class:`~tofu.geom.Lens` or a list of apertures :class:`~tofu.geom.Apert` - Ves : :class:`~tofu.geom.Ves` or None - :class:`~tofu.geom.Ves` object to which the detector is assigned - Sino_RefPt : np.ndarray or None - Array of size=2 containing the (R,Z) (for 'Tor' Type) or (Y,Z) (for 'Lin' Type) coordinates of the reference point for the sinogram - CalcEtend : bool - Flag indicating whether to compute the etendue - CalcSpanImp : bool - Flag indicating whether to compute the maximal span of the viewing volume - CalcCone : bool - Flag indicating whether to compute the viewing volume or viewing cone and its two projections - CalcPreComp : bool - Flag indicating whether to pre-compute a set of pre-defined points inside the viewing volume for faster computation of signal from 3D emissivity - Calc : bool - Flag indicating whether to compute all the above - Verb : bool - Flag indicating whether the creation of the object should be verbose (comments for each step) - - Etend_Method : str - Flag indicating which numerical integration to use for the computation of the etendue (picked from scipy.integrate : 'quad', 'simps', 'trapz') - Etend_RelErr : float - If Etend_Method='quad', specifies the maximum relative error to be tolerated on the value of the integral (i.e.: etendue) - Etend_dX12 : list - If Etend_Method in ['simps','trapz'], which implies a discretization of the plane perpendicular to the LOS, specifies the resolution of the discretization - Etend_dX12Mode : str - If Etend_Method in ['simps','trapz'], specifies whether Etend_dX12 should be iunderstood as an absolute distance ('abs') or a fraction of the maximum width ('rel') - Etend_Ratio : float - The numerical integration is performed on an automatically-deterimned interval, this ratio (fraction of unity) is a safety margin to increase a bit the interval and make sure all non-zero values are included - Colis : bool - Flag indicating whether the collision detection mechanism should be considered when computing the VOS - LOSRef : str - Key indicating which of the :class:`~tofu.geom.LOS` in the LOS dictionary should be considered as the reference LOS - Cone_DRY : float - Resolution of the grid in the R (for 'Tor' vessel types) or Y (for 'Lin' vessel types) direction, in meters - Cone_DXTheta : float - Resolution of the grid in the toroidal (for 'Tor' vessel types, in radians) or X (for 'Lin' vessel types, in meters) direction - Cone_DZ : float - Resolution of the grid in the Z direction, in meters - Cone_NPsi : int - Number of points of the regular mesh in psi direction (angle), in case (1) - Cone_Nk : bool - Flag indicating whether the inputs should be tested for conformity - - Type : None / str - If the detector is associated to a :class:`~tofu.geom.Lens`, it should be of type 'Circ' (only circular shaped detectors are handled by tofu behind spherical lenses) - Exp : None or str - Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used - Diag : None or str - Diagnostic to which the Lens belongs - shot : None or int - Shot number from which this Lens is usable (in case its position was changed from a previous configuration) - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - Clock : bool - Flag indicating whether the input polygon should be made clockwise (True) or counter-clockwise (False), default: False - arrayorder : str - Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous ('C') or Fortran-contiguous ('F'), default: 'C' - dtime : None or dtm.datetime - A time reference to be used to identify this particular instance (used for debugging mostly) - dtimeIn : bool - Flag indicating whether dtime should be included in the SaveName (used for debugging mostly) - - """ - - def __init__(self, Id, Poly, Optics=None, Ves=None, Sino_RefPt=None, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, Calc=True, Verb=True, - Etend_Method=tfd.DetEtendMethod, Etend_RelErr=tfd.DetEtendepsrel, Etend_dX12=tfd.DetEtenddX12, Etend_dX12Mode=tfd.DetEtenddX12Mode, Etend_Ratio=tfd.DetEtendRatio, Colis=True, LOSRef='Cart', - Cone_DRY=tfd.DetConeDRY, Cone_DXTheta=None, Cone_DZ=tfd.DetConeDZ, Cone_NPsi=20, Cone_Nk=60, - arrayorder='C', Clock=False, Type=None, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - - self._Done = False - tfpf._check_NotNone({'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - - # Check consistency of Type, Exp, Diag, shot - self._check_inputs(Poly=Poly, Type=Type, Exp=Exp, Diag=Diag, shot=shot, Ves=Ves, Optics=Optics) - Poly, Type, Exp, Diag, shot, Ves = _Detect_set_Defaults(Poly, Type=Type, Exp=Exp, Diag=Diag, shot=shot, Ves=Ves, Optics=Optics) - - # Run all computation routines - self._set_Id(Id, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - if Verb: - print "TFG.Detect object "+self.Id.Name+" : Creating..." - self._set_Poly(Poly, Calc=False) - self._initAll() - self._set_Optics(Optics, Calc=False) - self._set_Ves(Ves, Calc=False) - self._set_arrayorder(arrayorder) - if Calc: - self._calc_All(Sino_RefPt=Sino_RefPt, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp, Verb=Verb, - Etend_Method=Etend_Method, Etend_RelErr=Etend_RelErr, Etend_dX12=Etend_dX12, Etend_dX12Mode=Etend_dX12Mode, Etend_Ratio=Etend_Ratio, LOSRef=LOSRef, - Cone_DRY=Cone_DRY, Cone_DXTheta=Cone_DXTheta, Cone_DZ=Cone_DZ, - Cone_NPsi=Cone_NPsi, Cone_Nk=Cone_Nk, Colis=Colis) - - if Verb: - print "TFG.Detect object "+self.Id.Name+" : Created !" - self._Done = True - - - - @property - def Id(self): - """ Return the associated tfpf.ID object """ - return self._Id - @property - def Poly(self): - """ Return the planar polygon defining the aperture (in 3D cartesian coordinates) """ - if self.Id.Type=='Circ': - NP = self.NP - thet = np.linspace(0.,2.*np.pi,NP) - e1 = np.array([-self.nIn[1],self.nIn[0],0.]) - e1 = e1/np.linalg.norm(e1) - e2 = np.cross(self.nIn,e1) - Poly = np.tile(self.BaryS,(NP,1)).T + self.Rad*np.array([np.cos(thet)*e1[0]+np.sin(thet)*e2[0], np.cos(thet)*e1[1]+np.sin(thet)*e2[1], np.cos(thet)*e1[2]+np.sin(thet)*e2[2]]) - Poly = np.ascontiguousarray(Poly) if self._arrayorder=='C' else np.asfortranarray(Poly) - return Poly - else: - return self._Poly - @property - def Rad(self): - """ Return the radius of the polygon (if Type='Circ', else None) """ - return self._Rad - @property - def NP(self): - """ Return the number of points defining the polygon """ - return self._NP - @property - def nIn(self): - """ Return the normalized vector perpendicular to the polygon surface and oriented towards the interior of the associated vessel (in 3D cartesian coordinates) """ - return self._nIn - @property - def BaryS(self): - """ Return the (surfacic) center of mass of the polygon (in 3D cartesian coordinates) """ - return self._BaryS - @property - def Surf(self): - """ Return the area of the polygon """ - return self._Surf - @property - def Ves(self): - """ Return the associated :class:`~tofu.geom.Ves` object """ - return self._Ves - @property - def Optics(self): - """ Return the list of associated Optics objects (:class:`Lens` or list of :class:`Apert`) """ - return self._Optics - @property - def OpticsNb(self): - """ Return the number of associated Optics """ - return self._OpticsNb - @property - def OpticsType(self): - """ Return the type of associated Optics objects """ - return self._OpticsType - @property - def LOS(self): - """ Return the dictionary of associated :class:`LOS` objects """ - return self._LOS - @property - def Sino_RefPt(self): - """ Return the coordinates (R,Z) or (Y,Z) for Ves of Type 'Tor' or (Y,Z) for Ves of Type 'Lin' of the reference point used to compute the sinogram """ - return self._Sino_RefPt - @property - def Cone_PolyCross(self): - """ Return the polygon that is the projection in a cross-section of the viewing cone """ - return self._Cone_PolyCrossbis - @property - def Cone_PolyHor(self): - """ Return the polygon that is the projection in a horizontal plane of the viewing cone """ - return self._Cone_PolyHorbis - @property - def SAngCross_Points(self): - """ Return the pre-computed points of the VOS in a cross-section projection """ - return self._SAngCross_Points - @property - def SAngCross_Int(self): - """ Return the integral of the solid angle at pre-computed points of the VOS in a cross-section projection """ - return self._SAngCross_Int - @property - def SAngHor_Points(self): - """ Return the pre-computed points of the VOS in a horizontal projection """ - return self._SAngHor_Points - @property - def SAngHor_Int(self): - """ Return the integral of the solid angle at pre-computed points of the VOS in a horizontal projection """ - return self._SAngHor_Int - - - def _check_inputs(self, Id=None, Poly=None, Type=None, Optics=None, Ves=None, Sino_RefPt=None, Exp=None, Diag=None, shot=None, CalcEtend=None, CalcSpanImp=None, CalcCone=None, CalcPreComp=None, Calc=None, Verb=None, - Etend_RelErr=None, Etend_dX12=None, Etend_dX12Mode=None, Etend_Ratio=None, Colis=None, LOSRef=None, Etend_Method=None, - MarginRMin=None, NEdge=None, NRad=None, Nk=None, - Cone_DRY=None, Cone_DXTheta=None, Cone_DZ=None, Cone_NPsi=None, Cone_Nk=None, - arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - _Detect_check_inputs(Id=Id, Poly=Poly, Type=Type, Optics=Optics, Vess=Ves, Sino_RefPt=Sino_RefPt, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp, Calc=Calc, Verb=Verb, - Etend_RelErr=Etend_RelErr, Etend_dX12=Etend_dX12, Etend_dX12Mode=Etend_dX12Mode, Etend_Ratio=Etend_Ratio, Colis=Colis, LOSRef=LOSRef, Etend_Method=Etend_Method, - MarginRMin=MarginRMin, NEdge=NEdge, NRad=NRad, Nk=Nk, - Cone_DRY=Cone_DRY, Cone_DXTheta=Cone_DXTheta, Cone_DZ=Cone_DZ, Cone_NPsi=Cone_NPsi, Cone_Nk=Cone_Nk, - arrayorder=arrayorder, Clock=Clock, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - - def _set_Id(self, Val, Type=None, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - if self._Done: - Out = tfpf._get_FromItself(self.Id, {'Type':Type, 'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, Diag, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['Diag'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, Diag=Diag, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('Detect', Val, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_Poly(self, Poly, Calc=True, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, NPDef=100): - tfpf._check_NotNone({'Poly':Poly}) - if self._Done and self.OpticsType=='Lens': - self._check_inputs(Poly=Poly, Optics=self.Optics[0], Calc=Calc, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp) - else: - self._check_inputs(Poly=Poly, Calc=Calc, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp) - self._Poly, self._NP, self._nIn, self._BaryP, self._Surf, self._BaryS, self._Rad = _tfg_c._ApDetect_set_Poly(Poly, Type=self.Id.Type, arrayorder=self._arrayorder, Clock=self._Clock, NP=NPDef) - assert self._Surf>0., "Input Poly has 0 area !" - if Calc: - self._calc_All(CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp) - - def _initAll(self): - self._Ves = None - self._Optics, self._nOptics = None, 0 - self._SAngPlane = None - self._LOS_ApertPolyInt, self._LOS_ApertPolyInt_S, self._LOS_ApertPolyInt_BaryS, self._LOS, self._TorAngRef, self._LOS_NP = None, None, None, None, None, None - self._Sino_RefPt, self._Sino_CrossProj, self._LOSRef = None, None, None - self._Span_R, self._Span_Theta, self._Span_X, self._Span_Y, self._Span_Z, self._Span_k, self._Span_NEdge, self._Span_NRad = None, None, None, None, None, None, None, None - self._Cone_PolyCross, self._Cone_PolyHor, self._Cone_PolyCrossbis, self._Cone_PolyHorbis = None, None, None, None - self._Cone_Poly_DR, self._Cone_Poly_DZ, self._Cone_Poly_DTheta, self._Cone_Poly_NEdge, self._Cone_Poly_NRad = None, None, None, None, None - self._Cone_PolyCross_RefLCorners, self._Cone_PolyCross_RefLBary, self._Cone_PolyCross_RefdMax = None, None, None - self._Cone_PolyHor_RefLCorners, self._Cone_PolyHor_RefLBary, self._Cone_PolyHor_RefdMax = None, None, None - self._SAngCross_Points, self._SAngHor_Points, self._SAngCross_Max, self._SAngHor_Max, self._SAngCross_Int, self._SAngHor_Int = None, None, None, None, None, None - self._SAngCross_Reg, self._SAngCross_Reg_K, self._SAngCross_Reg_Psi, self._SAngCross_Reg_Int = False, None, None, None - # Parameters of Synthetic diagnostics - self._SynthDiag_Done = False - self._SynthDiag_ds, self._SynthDiag_dsMode, self._SynthDiag_MarginS, self._SynthDiag_dX12, self._SynthDiag_dX12Mode, self._SynthDiag_Colis = None, None, None, None, None, None - self._reset_SynthDiag() - # Parameters of Resolution computing - self._reset_Res() - - def _set_Optics(self, Optics=None, Calc=True, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True): - Polytemp = {'Rad':self.Rad} if self.Id.Type=='Circ' else self.Poly - self._check_inputs(Poly=Polytemp, Optics=Optics, Calc=Calc, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp) - if not Optics is None: - Optics = Optics if type(Optics) is list else [Optics] - self._Optics = Optics - self._OpticsNb = len(Optics) - self._OpticsType = "Lens" if type(Optics[0]) is Lens else "Apert" - self.Id.set_LObj([aa.Id for aa in Optics]) - self._set_Optics_Lens_Cone() - if Calc: - self._calc_All(CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp) - - def _set_Optics_Lens_Cone(self): - if self.OpticsType == "Lens": - self._Optics_Lens_ConeHalfAng = np.arctan2(self.Rad,self.Optics[0].F1) - self._Optics_Lens_ConeTip = self.Optics[0].O - self.Optics[0].nIn * self.Optics[0].Rad * self.Optics[0].F1 / self.Rad - else: - self._Optics_Lens_ConeTip = None - self._Optics_Lens_ConeHalfAng = None - - - def _set_Ves(self, Ves, Calc=True, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True): - self._check_inputs(Ves=Ves, Calc=Calc, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp) - if not Ves is None: - self._Ves = Ves - self.Id.set_LObj([Ves.Id]) - if Ves.Type=='Tor': - self._nIn = _tfg_c.Calc_nInFromTor_Poly(self.BaryS, self.nIn, Ves.BaryS) - elif Ves.Type=='Lin': - self._nIn = _tfg_c.Calc_nInFromLin_Poly(self.BaryS, self.nIn, Ves.BaryS) - if Calc: - self._calc_All(CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp) - - def _set_arrayorder(self, arrayorder): - tfpf._set_arrayorder(self, arrayorder) - - def _calc_All(self, Sino_RefPt=None, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, - Etend_Method=tfd.DetEtendMethod, Etend_RelErr=tfd.DetEtendepsrel, Etend_dX12=tfd.DetEtenddX12, Etend_dX12Mode=tfd.DetEtenddX12Mode, Etend_Ratio=tfd.DetEtendRatio, Colis=tfd.DetCalcEtendColis, LOSRef='Cart', - Cone_DRY=tfd.DetConeDRY, Cone_DXTheta=None, Cone_DZ=tfd.DetConeDZ, Cone_NPsi=20, Cone_Nk=60, Verb=True): - - self._check_inputs(Sino_RefPt=Sino_RefPt, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp, - Etend_Method=Etend_Method, Etend_RelErr=Etend_RelErr, Etend_dX12=Etend_dX12, Etend_dX12Mode=Etend_dX12Mode, Etend_Ratio=Etend_Ratio, LOSRef=LOSRef, - Cone_DRY=Cone_DRY, Cone_DXTheta=Cone_DXTheta, Cone_DZ=Cone_DZ, Cone_NPsi=Cone_NPsi, Cone_Nk=Cone_Nk, Colis=Colis) - - assert self.OpticsNb>0 and not self.Ves is None, "Calculation of [LOS, Etendue, Span and Cone] not possible without Optics and Ves !" - self._set_SAngPnPe1e2() - self._set_LOS(CalcEtend=CalcEtend, Method=Etend_Method, RelErr=Etend_RelErr, dX12=Etend_dX12, dX12Mode=Etend_dX12Mode, Ratio=Etend_Ratio, Colis=Colis, LOSRef=LOSRef, Verb=Verb) - self._set_SinoSpan(CalcSpanImp=CalcSpanImp, Sino_RefPt=Sino_RefPt) - self._set_ConeWidthAlongLOS() - self._set_ConePoly(CalcCone=CalcCone, DRY=Cone_DRY, DXTheta=Cone_DXTheta, DZ=Cone_DZ, NPsi=Cone_NPsi, Nk=Cone_Nk) - self.set_SigPrecomp(CalcPreComp=CalcPreComp) - - def _set_SAngPnPe1e2(self): - if not self.Optics is None: - #sca = np.array([np.sum((aa.BaryS-self.BaryS)*self.nIn) for aa in self.LApert]) - sca = np.array([aa.Surf for aa in self.Optics]) - ind = np.argmax(sca) - e1, e2 = _tfg_gg.Calc_DefaultCheck_e1e2_PLane_1D(self.Optics[ind].BaryS, self.Optics[ind].nIn) - self._SAngPlane = (self.Optics[ind].BaryS, self.Optics[ind].nIn, e1, e2) - - def _set_LOS(self, CalcEtend=True, Method=tfd.DetEtendMethod, RelErr=tfd.DetEtendepsrel, dX12=tfd.DetEtenddX12, dX12Mode=tfd.DetEtenddX12Mode, Ratio=tfd.DetEtendRatio, Colis=tfd.DetCalcEtendColis, LOSRef='Cart', Verb=True): - self._check_inputs(CalcEtend=CalcEtend, Etend_Method=Method, Etend_RelErr=RelErr, Etend_dX12=dX12, Etend_dX12Mode=dX12Mode, Etend_Ratio=Ratio, Colis=Colis, LOSRef=LOSRef, Verb=Verb) - if not (self.Ves is None or self.Optics is None): - #try: - self._LOS_ApertPolyInt, self._LOS_ApertPolyInt_S, self._LOS_ApertPolyInt_BaryS, du = _tfg_c._Detect_set_LOS(self.Id.Name, [oo.Surf for oo in self.Optics], [oo.BaryS for oo in self.Optics], - [oo.nIn for oo in self.Optics], [oo.Poly for oo in self.Optics], self.BaryS, self.Poly, OpType=self.OpticsType, Verb=Verb, Test=True) - LOSCart = LOS(self.Id.Name+"_Cart", (self.BaryS,du), Ves=self.Ves, Exp=self.Id.Exp, Diag=self.Id.Diag, shot=self.Id.shot, - dtime=self.Id.dtime, dtimeIn=self.Id._dtimeIn, SavePath=self.Id.SavePath) - PRef = (LOSCart.POut+LOSCart.PIn)/2. - self._LOS = {'Cart':{'LOS':LOSCart,'PRef':PRef}} - self._LOSRef = LOSRef - if CalcEtend: - self._set_Etendue(Method=Method, RelErr=RelErr, dX12=dX12, dX12Mode=dX12Mode, Ratio=Ratio, Colis=Colis) - #except: - # self._LOS = "Impossible !" - else: - self._LOS = "Impossible !" - - def _set_Etendue(self, Method=tfd.DetEtendMethod, RelErr=tfd.DetEtendepsrel, dX12=tfd.DetEtenddX12, dX12Mode=tfd.DetEtenddX12Mode, Ratio=tfd.DetEtendRatio, Colis=tfd.DetCalcEtendColis): # Pb with Lens quad vs trapz ! - self._check_inputs(Etend_Method=Method, Etend_RelErr=RelErr, Etend_dX12=dX12, Etend_dX12Mode=dX12Mode, Etend_Ratio=Ratio, Colis=Colis) - if not self.LOS in ["Impossible !",None]: - print " "+self.Id.Name+" : Computing Entendue..." - LOPolys = [oo.Poly for oo in self.Optics] - LOnIns = [oo.nIn for oo in self.Optics] - LSurfs = [oo.Surf for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - - for kk in self.LOS.keys(): - self.LOS[kk]['Etend_0Dir'] = self.Surf * _tfg_gg.Calc_SAngVect_LPolys1Point_Flex([self._LOS_ApertPolyInt], self.BaryS, self._SAngPlane[0], self._SAngPlane[1], self._SAngPlane[2], self._SAngPlane[3])[0] - self.LOS[kk]['Etend_0Inv'] = self._LOS_ApertPolyInt_S * _tfg_gg.Calc_SAngVect_LPolys1Point_Flex([self.Poly], self._LOS_ApertPolyInt_BaryS, self.BaryS, self._SAngPlane[1], self._SAngPlane[2], self._SAngPlane[3])[0] - PRef, LOSu = self.LOS[kk]['PRef'], self.LOS[kk]['LOS'].u - e1, e2 = _tfg_gg.Calc_DefaultCheck_e1e2_PLane_1D(PRef, LOSu) - - self.LOS[kk]['Etend'] = _tfg_c.Calc_Etendue_PlaneLOS(PRef.reshape((3,1)), LOSu.reshape((3,1)), - self.Poly, self.BaryS, self.nIn, LOPolys, LOnIns, LSurfs, LOBaryS, self._SAngPlane, - self.Ves.Poly, self.Ves._Vin, DLong=self.Ves.DLong, - Lens_ConeTip = self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, RadL=self.Optics[0].Rad, RadD=self.Rad, F1=self.Optics[0].F1, - OpType=self.OpticsType, VType=self.Ves.Type, Mode=Method, e1=e1.reshape((3,1)), e2=e2.reshape((3,1)), epsrel=RelErr, Ratio=Ratio, dX12=dX12, dX12Mode=dX12Mode, Colis=Colis, Test=True)[0][0] - - self.LOS[kk]['Etend_Method'], self.LOS[kk]['Etend_Ratio'], self.LOS[kk]['Etend_Colis'] = Method, Ratio, Colis - self.LOS[kk]['Etend_RelErr'] = RelErr if Method=='quad' else None - self.LOS[kk]['Etend_dX12'] = None if Method=='quad' else dX12 - self.LOS[kk]['Etend_dX12Mode'] = None if Method=='quad' else dX12Mode - else: - warnings.warn("Detect "+ self.Id.Name +" : calculation of Etendue not possible because LOS impossible !") - - - def _set_SinoSpan(self, Sino_RefPt=None, CalcSpanImp=True, MarginRMin=tfd.DetSpanRMinMargin, NEdge=tfd.DetSpanNEdge, NRad=tfd.DetSpanNRad): - self._check_inputs(Sino_RefPt=Sino_RefPt, CalcSpanImp=CalcSpanImp, MarginRMin=MarginRMin, NEdge=NEdge, NRad=NRad) - if CalcSpanImp and not (self.LOS=='Impossible !' or self.LOS is None): - print " "+self.Id.Name+" : Computing Span and Sinogram..." - if Sino_RefPt is None: - Sino_RefPt = self.Ves.BaryS - Sino_RefPt = np.asarray(Sino_RefPt).flatten() - for kk in self.LOS.keys(): - self.LOS[kk]['LOS']._set_Sino(RefPt=Sino_RefPt) - P, nP, e1, e2 = self._SAngPlane - LOPolys = [oo.Poly for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - LOSD, LOSu = self.LOS[self._LOSRef]['LOS'].D, self.LOS[self._LOSRef]['LOS'].u - if self.Ves.Type=='Tor': - RMinMax, ThetaMinMax, ZMinMax, kMinMax, Sino_CrossProj, Span_NEdge, Span_NRad = _tfg_c.Calc_SpanImpBoth_2Steps(self.Poly, self.NP, self.BaryS, LOPolys, LOBaryS, LOSD, LOSu, Sino_RefPt, P, nP, - self.Ves.Poly, self.Ves.Vin, DLong=self.Ves.DLong, VType=self.Ves.Type, e1=e1, e2=e2, OpType=self.OpticsType, Lens_ConeTip=self._Optics_Lens_ConeTip, NEdge=NEdge, NRad=NRad, Test=True) - RMinMax[0] = np.max(np.array([MarginRMin*RMinMax[0],self.Ves._P1Min[0]])) - self._Sino_RefPt, self._Span_R, self._Span_Theta, self._Span_Z, self._Span_k = Sino_RefPt, RMinMax, ThetaMinMax, ZMinMax, kMinMax - self._Span_X, self._Span_Y = None, None - elif self.Ves.Type=='Lin': - XMinMax, YMinMax, ZMinMax, kMinMax, Sino_CrossProj, Span_NEdge, Span_NRad = _tfg_c.Calc_SpanImpBoth_2Steps(self.Poly, self.NP, self.BaryS, LOPolys, LOBaryS, LOSD, LOSu, Sino_RefPt, P, nP, - self.Ves.Poly, self.Ves.Vin, DLong=self.Ves.DLong, VType=self.Ves.Type, e1=e1, e2=e2, OpType=self.OpticsType, Lens_ConeTip=self._Optics_Lens_ConeTip, NEdge=NEdge, NRad=NRad, Test=True) - self._Sino_RefPt, self._Span_X, self._Span_Y, self._Span_Z, self._Span_k = Sino_RefPt, XMinMax, YMinMax, ZMinMax, kMinMax - self._Span_R, self._Span_Theta = None, None - self._Sino_CrossProj, self._Span_NEdge, self._Span_NRad = Sino_CrossProj, Span_NEdge, Span_NRad - # Sino_CrossProj = Imp_PolProj - - def _set_ConeWidthAlongLOS(self,Nk=10): - self._check_inputs(Nk=Nk) - if not (self.LOS=='Impossible !' or self.LOS is None or self._Span_k is None): - k = np.linspace(self._Span_k[0],self._Span_k[1],Nk) - P, u = self.LOS[self._LOSRef]['LOS'].D, self.LOS[self._LOSRef]['LOS'].u - e1, e2 = _tfg_gg.Calc_DefaultCheck_e1e2_PLane_1D(P, u) - Ps = np.array([P[0]+k*u[0], P[1]+k*u[1], P[2]+k*u[2]]) - nPs = np.tile(u,(Nk,1)).T - e1s, e2s = np.tile(e1,(Nk,1)).T, np.tile(e2,(Nk,1)).T - LOPolys = [oo.Poly for oo in self.Optics] - if self.OpticsType=='Apert': - LOSurfs = [oo.Surf for oo in self.Optics] - LOnIns = [oo.nIn for oo in self.Optics] - LnPtemp = np.asarray(LOnIns)*np.tile(LOSurfs,(3,1)).T - MinX1, MinX2, MaxX1, MaxX2, e1, e2 = _tfg_c.Calc_ViewConePointsMinMax_PlanesDetectApert_2Steps(self.Poly, LOPolys, LnPtemp, LOSurfs, self.Optics[0].BaryS, Ps, nPs, e1=e1s, e2=e2s, Test=True) - elif self.OpticsType=='Lens': - MinX1, MinX2, MaxX1, MaxX2, e1, e2 = _tfg_c.Calc_ViewConePointsMinMax_PlanesDetectLens(LOPolys[0], self._Optics_Lens_ConeTip, Ps, nPs, e1=e1s, e2=e2s, Test=True) - self._ConeWidth_k = k - self._ConeWidth_X1 = np.array([MinX1,MaxX1]) - self._ConeWidth_X2 = np.array([MinX2,MaxX2]) - self._ConeWidth = np.min(np.array([np.diff(self._ConeWidth_X1,axis=0),np.diff(self._ConeWidth_X2,axis=0)]),axis=0).flatten() - - def _set_Sino(self,RefPt=None): - self._check_inputs(Sino_RefPt=Sino_RefPt) - self._Ves._set_Sino(RefPt) - self._set_SinoSpan(RefPt) - - def _isOnGoodSide(self, Pts, NbPoly=None, Log='all'): - """ Check whether each point is on the inside or the outside of each Detect and Apert (with respect to nIn) """ - return _tfg_c._Detect_isOnGoodSide(Pts, self.BaryS, self.nIn, [oo.BaryS for oo in self.Optics], [oo.nIn for oo in self.Optics], NbPoly=NbPoly, Log=Log) - - def _isInsideConeWidthLim(self, Pts): - """ Check whether each point lies inside the enveloppe of the viewing cone """ - return _tfg_c._Detect_isInsideConeWidthLim(Pts, self.LOS[self._LOSRef]['LOS'].D, self.LOS[self._LOSRef]['LOS'].u, self._ConeWidth_k, self._ConeWidth_X1, self._ConeWidth_X2) - - def _set_ConePoly(self, CalcCone=True, DRY=tfd.DetConeDRY, DXTheta=None, DZ=tfd.DetConeDZ, NPsi=20, Nk=60, Test=True): - """ If CalcCone is True, compute the projections of the VOS, also called viewing cones elsewhere in the documentation - - To compute the VOS, tofu tests all points inside a 3D grid to see if each point is visible from the detector through the apertures or not. - The meshed space is determined by the volume spanned by a LOS sampling of the VOS. - Then, a contour function is used to find the polygons limiting the cross-section and horizontal projections of the VOS. - Once computed, the viewing cones are assigned to attributes of the Detect instance. - - In the particular case (1) when the LOS of the detector lies entirely inside one cross-section (e.g.: tomography diagnostics), tofu also computes the integral in the direction of the ignorable coordinate of the solid angle on a regular mesh (for faster computation of the geometry assuming toroidaly invariant basis functions). - This regular mesh is defined in 2D, by the distance between a mesh point and the detector (k) and by the poloidal angle between the LOS and the line going from the detector to the mesh point (psi) - - Parameters - ---------- - DRY : float - Resolution of the grid in the R (for 'Tor' vessel types) or Y (for 'Lin' vessel types) direction, in meters - DXTheta : float - Resolution of the grid in the toroidal (for 'Tor' vessel types, in radians) or X (for 'Lin' vessel types, in meters) direction - DZ : float - Resolution of the grid in the Z direction, in meters - NPsi : int - Number of points of the regular mesh in psi direction (angle), in case (1) - Nk : int - Number of points of the regular mesh in k direction (distance), in case (1) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - """ - - if CalcCone and not (self.LOS=='Impossible' or self.LOS is None): - print " "+self.Id.Name+" : Computing ConePoly..." - DPoly, DBaryS, DnIn = self.Poly, self.BaryS, self.nIn - LOPolys = [oo.Poly for oo in self.Optics] - LOnIns = [oo.nIn for oo in self.Optics] - LSurfs = [oo.Surf for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - LOSD, LOSu = self.LOS[self._LOSRef]['LOS'].D, self.LOS[self._LOSRef]['LOS'].u - LOSPIn, LOSPOut = self.LOS[self._LOSRef]['LOS'].PIn, self.LOS[self._LOSRef]['LOS'].POut - - self._SAngCross_Reg, self._SAngCross_Reg_Int, self._SAngCross_Reg_K, self._SAngCross_Reg_Psi, self._SAngCross_Points, self._SAngCross_Max, self._SAngCross_Int, self._SAngHor_Points, self._SAngHor_Max, self._SAngHor_Int, self._Cone_PolyCross, self._Cone_PolyHor, self._Cone_PolyCrossbis, self._Cone_PolyHorbis, self._Cone_Poly_DX, self._Cone_Poly_DY, self._Cone_Poly_DR, self._Cone_Poly_DTheta, self._Cone_Poly_DZ \ - = _tfg_c._Detect_set_ConePoly(DPoly, DBaryS, DnIn, LOPolys, LOnIns, LSurfs, LOBaryS, self._SAngPlane, LOSD, LOSu, LOSPIn, LOSPOut, self._Span_k, - Span_R=self._Span_R, Span_Theta=self._Span_Theta, Span_X=self._Span_X, Span_Y=self._Span_Y, Span_Z=self._Span_Z, - ConeWidth_k=self._ConeWidth_k, ConeWidth_X1=self._ConeWidth_X1, ConeWidth_X2=self._ConeWidth_X2, Lens_ConeTip=self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, - RadD=self.Rad, RadL=self.Optics[0].Rad, F1=self.Optics[0].F1, VPoly=self.Ves.Poly, VVin=self.Ves.Vin, DLong=self.Ves.DLong, - VType=self.Ves.Type, OpType=self.OpticsType, NPsi=NPsi, Nk=Nk, thet=np.linspace(0.,2.*np.pi,DPoly.shape[1]), - DXTheta=DXTheta, DRY=DRY, DZ=DZ, Test=True) - - - def _get_KPsiCrossInt(self,PtsRZ): - """ Computes k and psi for a set of points in cross-section (R,Z) or (Y,Z) coordinates """ - return _tfg_c._Detect_get_KPsiCrossInt(PtsRZ, SAngCross_Reg=self._SAngCross_Reg, LOSPOut=self.LOS['Cart']['LOS'].POut, DBaryS=self.BaryS, VType=self.Ves.Type) - - - -
[docs] def refine_ConePoly(self, dMax=tfd.DetConeRefdMax, Proj='Cross', indPoly=0, Verb=True, Test=True): - """ Reduce the number of points of the selected Cone_Poly projection using the provided maximum distance and checking for convexity - - Provide a built-in method to simplify the 2 projections of the viewing cone (VOS). - In its raw form, the projection of the VOS is a polygon with potentially a high number of points (computed using matplotlib._cntr() function). - A re-sampled version of this polygon is computed by taking its convex hull and checking, for each edge, how far it is from the original edge. - Each edge (2 points) of the convex hull is then compared to the set of original edges it encloses. - If the maximum distance between this convex hull-derived edge and the original set of edges is smaller than dMax, then the convex hull-derived egde is used, otherwise the original edges are preserved. - The method does not return a value, instead it assigns the new polygon to a dedicated attribute of the object, thus ensuring that both the original and the re-sampled projections of the VOS are available. - - Parameters - ---------- - dMax : float - Threshold absolute distance that limits the acceptable discrepancy between the original polygon and its convex hull (checked for each edge of the convex hull) - Proj : str - Flag indicating to which projection of the VOS the method should be applied - indPoly : int - Index of the polygon to be treated (i.e.: in case one projection of the VOS results in a list of several polygons instead of just one polygon as is usually the case) - Verb : bool - Flag indicating whether a one-line comment should be printed at the end of the calculation giving the number of points of the new polygon vs the number of points of the original polygon - Test : bool - Flag indicating whether the inputs should be tested for conformity - - """ - assert Proj in ['Cross','Hor'], "Arg Proj must be in ['Cross','Hor'] !" - assert type(indPoly) is int and indPoly<=max(len(self._Cone_PolyCrossbis),len(self._Cone_PolyHorbis)), "Arg indPoly must be a valid int index !" - Poly = np.copy(self._Cone_PolyCross[indPoly]) if Proj=='Cross' else np.copy(self._Cone_PolyHor[indPoly]) - PP = _tfg_c.Refine_ConePoly_All(Poly, dMax=dMax) - if Proj=='Cross': - self._Cone_PolyCrossbis[indPoly], self._Cone_PolyCross_dMax = PP, dMax - else: - self._Cone_PolyHorbis[indPoly], self._Cone_PolyHor_dMax = PP, dMax - if Verb: - print " "+self.Id.Name+".refine_ConePoly('"+Proj+"') : from ", Poly.shape[1], "to", PP.shape[1], "points"
- -
[docs] def isInside(self, Points, In='(X,Y,Z)', Test=True): - """ Return an array of indices indicating whether each point lies both in the cross-section and horizontal porojections of the viewing cone - - Like for the :class:`~tofu.geom.Ves` object, points can be provided in 2D or 3D coordinates (specified by 'In'), and an array of booleans is returned. - - Parameters - ---------- - Points : np.ndarray - (2,N) or (3,N) array of coordinates of the N points to be tested - In : str - Flag indicating in which coordinate system the Points are provided, must be in ['(R,Z)','(Y,Z)','(X,Y)','(X,Y,Z)','(R,phi,Z)'] - * '(R,Z)': All points are assumed to lie in the horizontal projection, for 'Tor' vessel type only - * '(Y,Z)': All points are assumed to lie in the horizontal projection, for 'Lin' vessel type only - * '(X,Y)': All points are assumed to lie in the cross-section projection - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ind : np.ndarray - (N,) array of booleans with True if a point lies inside both projections of the viewing cone - - """ - assert not self.LOS=='Impossible !', "The detected volume is zero !" - TorAngRef = np.arctan2(self.LOS[self._LOSRef]['PRef'][1],self.LOS[self._LOSRef]['PRef'][0]) if self.Ves.Type=='Tor' else None - return _tfg_c._Detect_isInside(self._Cone_PolyCrossbis, self._Cone_PolyHorbis, Points, In=In, VType=self.Ves.Type, TorAngRef=TorAngRef, Test=Test)
- - -
[docs] def calc_SAngVect(self, Pts, In='(X,Y,Z)', Colis=tfd.DetCalcSAngVectColis, Test=True): - """ Return the Solid Angle of the Detect-Apert system as seen from the specified points, including collisions detection or not - - Compute the solid angle and the directing vector subtended by the Detect-Optics system as seen from the desired points (provided in the specified coordinates). - This can be useful for visualizing the solid angle distribution or for computing synthetic signal from simulated emissivity in a 3D numerical integration manner. - The automtic detection of collisions with the edges of the :class:`~tofu.geom.Ves` object can be switched off (not recommended). - - Parameters - ---------- - Pts : np.ndarray - (2,N) or (3,N) array of coordinates of the provided N points - In : str - Flag indicating in which coordinate system the Pts are provided, must be in ['(R,Z)','(X,Y,Z)','(R,phi,Z)'] - Colis : bool - Flag indicating whether collision detection should be activated - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - SAng : np.ndarray - (N,) array of floats, the computed solid angles - - """ - if Test: - assert isinstance(Pts,np.ndarray) and Pts.ndim==2 and Pts.shape[0] in [2,3], "Arg Pts must be a 2D np.ndarray !" - CrossRef = np.arctan2(self.LOS[self._LOSRef]['PRef'][1],self.LOS[self._LOSRef]['PRef'][0]) if self.Ves.Type=='Tor' else self.LOS[self._LOSRef]['PRef'][0] - Pts = _tfg_gg.CoordShift(Pts, In=In, Out='(X,Y,Z)', CrossRef=CrossRef) - LOPolys = [oo.Poly for oo in self.Optics] - LOnIns = [oo.nIn for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - return _tfg_c._Detect_SAngVect_Points(Pts, DPoly=self.Poly, DBaryS=self.BaryS, DnIn=self.nIn, LOBaryS=LOBaryS, LOnIns=LOnIns, LOPolys=LOPolys, SAngPlane=self._SAngPlane, Lens_ConeTip=self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, RadL=self.Optics[0].Rad, RadD=self.Rad, F1=self.Optics[0].F1, thet=np.linspace(0.,2.*np.pi,self.NP), OpType=self.OpticsType, VPoly=self.Ves.Poly, VVin=self.Ves.Vin, DLong=self.Ves.DLong, VType=self.Ves.Type, Cone_PolyCrossbis=self._Cone_PolyCrossbis, Cone_PolyHorbis=self._Cone_PolyHorbis, TorAngRef=CrossRef, Colis=Colis, Test=Test)
- - - def _get_SAngIntMax(self, Proj='Cross', SAng='Int'): - """ Get the Int or Max of the SAng in a cross-section or horizontal projection """ - CrossRef = np.arctan2(self.LOS[self._LOSRef]['PRef'][1],self.LOS[self._LOSRef]['PRef'][0]) if self.Ves.Type=='Tor' else self.LOS[self._LOSRef]['PRef'][0] - return _tfg_c._Detect_get_SAngIntMax(SAngCross_Reg=self._SAngCross_Reg, SAngCross_Points=self._SAngCross_Points, SAngCross_Reg_K=self._SAngCross_Reg_K, SAngCross_Reg_Psi=self._SAngCross_Reg_Psi, SAngCross_Reg_Int=self._SAngCross_Reg_Int, SAngCross_Int=self._SAngCross_Int, SAngCross_Max=self._SAngCross_Max, SAngHor_Points=self._SAngHor_Points, SAngHor_Int=self._SAngHor_Int, SAngHor_Max=self._SAngHor_Max, Cone_PolyCrossbis=self._Cone_PolyCrossbis, Cone_PolyHorbis=self._Cone_PolyHorbis, TorAngRef=CrossRef, DBaryS=self.BaryS, LOSPOut=self.LOS[self._LOSRef]['LOS'].POut, Proj=Proj, SAng=SAng, VType=self.Ves.Type) - - - -
[docs] def set_SigPrecomp(self, CalcPreComp=True, dX12=None, dX12Mode=None, ds=None, dsMode=None, MarginS=None, Colis=None): - """ Precompute a 3D grid for fast integration of a 3D emissivity for a synthetic diagnostic approach - - In order to accelerate the computation of synthetic signal from simulated emissivity, it is possible to pre-compute a discretisation of the VOS (mesh points + solid angle) and store it as an attribute of the Detect object. - While such pre-computation does speed-up significantly the numerical integration, it also burdens the object with heavy attributes that can make it too big to save. - Hence, the saving method has a special argument that allows to specify that these pre-computed attributes should not be saved but should instead be re-computed automatically when loading the file. - The parameters dX12, dX12Mode, ds and dsMode give the user control over how fine the discretization of the VOS should be, which affects both the accuracy of the numerical integration and the size of the resulting mesh. - - Parameters - ---------- - CalcPreComp : bool - Flag indicating whether the pre-computation should be run - dX12 : list - Array of the 2 resolutions to be used to define the grid in a plane perpendicular to the LOS - dX12Mode : str - Flag specifying whether the values in dX12 are absolute distances or relative values (i.e. fraction of the total width [0;1]) - ds : float - Float indicating the resolution in the longitudinal direction - dsMode : str - Flag specifying whether ds is an absolute distance or relative (i.e. fraction of the total length [0;1]) - MarginS : float - Float specifying - Colis : bool - Flag indicating whether collision detection should be used - - """ - if CalcPreComp and not (self.LOS=='Impossible !' or self.LOS is None): - print " "+self.Id.Name+" : Pre-computing 3D matrix for synthetic diag..." - - LOPolys = [oo.Poly for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - LOnIns = [oo.nIn for oo in self.Optics] - LOSD = self.LOS[self._LOSRef]['LOS'].D - LOSu = self.LOS[self._LOSRef]['LOS'].u - thet = np.linspace(0.,2.*np.pi,self.Poly.shape[1]) - CrossRef = np.arctan2(self.LOS[self._LOSRef]['PRef'][1],self.LOS[self._LOSRef]['PRef'][0]) if self.Ves.Type=='Tor' else self.LOS[self._LOSRef]['PRef'][0] - - if self._SynthDiag_Done: - dX12 = tfd.DetSynthdX12 if dX12 is None else self._SynthDiag_dX12 - dX12Mode = tfd.DetSynthdX12Mode if dX12Mode is None else self._SynthDiag_dX12Mode - ds = tfd.DetSynthds if ds is None else self._SynthDiag_ds - dsMode = tfd.DetSynthdsMode if dsMode is None else self._SynthDiag_dsMode - MarginS = tfd.DetSynthMarginS if MarginS is None else self._SynthDiag_MarginS - Colis = tfd.DetCalcSAngVectColis if Colis is None else self._SynthDiag_Colis - else: - dX12 = tfd.DetSynthdX12 if dX12 is None else dX12 - dX12Mode = tfd.DetSynthdX12Mode if dX12Mode is None else dX12Mode - ds = tfd.DetSynthds if ds is None else ds - dsMode = tfd.DetSynthdsMode if dsMode is None else dsMode - MarginS = tfd.DetSynthMarginS if MarginS is None else MarginS - Colis = tfd.DetCalcSAngVectColis if Colis is None else Colis - - Out = _tfg_c._Detect_set_SigPrecomp(self.Poly, self.BaryS, self.nIn, LOPolys, LOBaryS, LOnIns, self._SAngPlane, LOSD=LOSD, LOSu=LOSu, Span_k=self._Span_k, ConeWidth_k=self._ConeWidth_k, ConeWidth_X1=self._ConeWidth_X1, - ConeWidth_X2=self._ConeWidth_X2, Cone_PolyCrossbis=self._Cone_PolyCrossbis, Cone_PolyHorbis=self._Cone_PolyHorbis, - Lens_ConeTip=self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, RadL=self.Optics[0].Rad, RadD=self.Rad, F1=self.Optics[0].F1, thet=thet, - VPoly=self.Ves.Poly, VVin=self.Ves.Vin, DLong=self.Ves.DLong, CrossRef=CrossRef, dX12=dX12, dX12Mode=dX12Mode, ds=ds, dsMode=dsMode, MarginS=MarginS, VType=self.Ves.Type, OpType=self.OpticsType, Colis=Colis) - self._SynthDiag_Points, self._SynthDiag_SAng, self._SynthDiag_Vect, self._SynthDiag_dV = Out[0], Out[1], Out[2], Out[3] - self._SynthDiag_ds, self._SynthDiag_dsMode, self._SynthDiag_MarginS, self._SynthDiag_dX12, self._SynthDiag_dX12Mode, self._SynthDiag_Colis = Out[4], Out[5], Out[6], Out[7], Out[8], Out[9] - self._SynthDiag_Done = True
- - def _reset_SynthDiag(self): - self._SynthDiag_Points, self._SynthDiag_SAng, self._SynthDiag_Vect, self._SynthDiag_dV = None, None, None, None - -
[docs] def calc_Sig(self, ff, extargs={}, Method='Vol', Mode='simps', PreComp=True, - epsrel=tfd.DetSynthEpsrel, dX12=tfd.DetSynthdX12, dX12Mode=tfd.DetSynthdX12Mode, ds=tfd.DetSynthds, dsMode=tfd.DetSynthdsMode, MarginS=tfd.DetSynthMarginS, Colis=tfd.DetCalcSAngVectColis, Test=True): - """ Return the signal computed from an input emissivity function, using a 3D or LOS method - - The synthetic signal resulting from a simulated emissivity can be computed automatically in several ways. - The user can choose between a VOS and a LOS approach (volume integration or line integration with etendue). - In each case the user can choose between the numerical integration method (from scipy.integrate + np.sum()). - It is possible to specify that, for a VOS approach, you want to use the pre-conputed mesh for faster computation (see :meth:`~tofu.geom.Detect.set_SigPrecomp`). - For a VOS approach, the user can specify how fine the discretization should be. - The collision detection with the edges of the :class:`~tofu.geom.Ves` object can be switched off (not recommended). - - Parameters - ---------- - ff : function - Input emissiviy function, should take one input as follows: - * ff(Pts), where Points is a np.ndarray of shape=(3,N), with the (X,Y,Z) coordinates of any N number of points - Method : str - Flag indicating whether the spatial integration should be done with a volume ('Vol') or a LOS ('LOS') approach - Mode : str - Flag indicating the numerical integration method in ['quad','simps','trapz','nptrapz','sum'] - PreComp : bool - Flag indicating whether the pre-computed grid should be used - epsrel : float - Float specifying the tolerated relative error on the numerical integration, used for 'quad' - dX12 : list - Array of the 2 resolutions to be used to define the grid in a plane perpendicular to the LOS - dX12Mode : str - Flag specifying whether the values in dX12 are absolute distances or relative values (i.e. fraction of the total width [0;1]) - ds : float - Float indicating the resolution in the longitudinal direction - dsMode : str - Flag specifying whether ds is an absolute distance or relative (i.e. fraction of the total length [0;1]) - Colis : bool - Flag indicating whether collision detection should be used - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - -------- - Sig : float - The computed signal - - """ - # * ff(Pts, Vect), where Vect is a np.ndarray of shape=(3,N) with the (X,Y,Z) coordinates of a vector indicating the direction in which photons are emitted - if PreComp and not Method=='LOS': - assert not self._SynthDiag_ds is None, "The precomputed matrix shall be computed before using it..... " - - LOPolys = [oo.Poly for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - LOnIn = [oo.nIn for oo in self.Optics] - LOSD = self.LOS[self._LOSRef]['LOS'].D - LOSu = self.LOS[self._LOSRef]['LOS'].u - LOSkPIn = self.LOS[self._LOSRef]['LOS'].kPIn - LOSkPOut = self.LOS[self._LOSRef]['LOS'].kPOut - LOSEtend = self.LOS[self._LOSRef]['Etend'] - thet = np.linspace(0.,2.*np.pi,self.Poly.shape[1]) - CrossRef = np.arctan2(self.LOS[self._LOSRef]['PRef'][1],self.LOS[self._LOSRef]['PRef'][0]) if self.Ves.Type=='Tor' else self.LOS[self._LOSRef]['PRef'][0] - - Sig = _tfg_c._Detect_SigSynthDiag(ff, extargs=extargs, Method=Method, Mode=Mode, PreComp=PreComp, - DPoly=self.Poly, DBaryS=self.BaryS, DnIn=self.nIn, LOPolys=LOPolys, LOBaryS=LOBaryS, LOnIn=LOnIn, Lens_ConeTip=self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, - RadL=self.Optics[0].Rad, RadD=self.Rad, F1=self.Optics[0].F1, thet=thet, OpType=self.OpticsType, - LOSD=LOSD, LOSu=LOSu, LOSkPIn=LOSkPIn, LOSkPOut=LOSkPOut, LOSEtend=LOSEtend, Span_k=self._Span_k, ConeWidth_X1=self._ConeWidth_X1, ConeWidth_X2=self._ConeWidth_X2, SAngPlane=self._SAngPlane, CrossRef=CrossRef, - Cone_PolyCrossbis=self._Cone_PolyCrossbis, Cone_PolyHorbis=self._Cone_PolyHorbis, VPoly=self.Ves.Poly, VVin=self.Ves.Vin, VType=self.Ves.Type, - SynthDiag_Points=self._SynthDiag_Points, SynthDiag_SAng=self._SynthDiag_SAng, SynthDiag_Vect=self._SynthDiag_Vect, SynthDiag_dV=self._SynthDiag_dV, - SynthDiag_dX12=self._SynthDiag_dX12, SynthDiag_dX12Mode=self._SynthDiag_dX12Mode, SynthDiag_ds=self._SynthDiag_ds, - SynthDiag_dsMode=self._SynthDiag_dsMode, SynthDiag_MarginS=self._SynthDiag_MarginS, SynthDiag_Colis=self._SynthDiag_Colis, - epsrel=epsrel, dX12=dX12, dX12Mode=dX12Mode, ds=ds, dsMode=dsMode, MarginS=MarginS, Colis=Colis, Test=Test) - return Sig
- - def _debug_Etendue_BenchmarkRatioMode(self, RelErr=tfd.DetEtendepsrel, Ratio=[0.01,0.05,0.2,0.5], Modes=['simps','trapz','quad'], dX12=[0.002,0.002], dX12Mode='abs', Colis=tfd.DetCalcEtendColis): - """ Return the etendue computed 3 different numerical integration methods, with or without collisions, with more or less margin for the perpendicular plane size (Ratio) - - USed for debugging, compute the etendue with various values of the Ratio (extra margin for the integration intervals), to check it does not affect the computed value - - Parameters - ---------- - RelErr : float - Float specifying the tolerated relative error on the numerical integration, used for 'quad' - Ratio : list - Array of values in [0,1] specifying margin to be used to define the edges of the perpendicular plane - Colis : bool - Flag indicating whether collision detection should be used - - Returns - ------- - EtendSimps : np.ndarray - (NLos,NRatio) array of the computed etendues with numerical integration 'simps', where NLos is the number of LOS of Detect and NRatio=len(Ratio) - EtendTrapz : np.ndarray - (NLos,NRatio) array of the computed etendues with numerical integration 'trapz', where NLos is the number of LOS of Detect and NRatio=len(Ratio) - EtendQuad : np.ndarray - (NLos,NRatio) array of the computed etendues with numerical integration 'quad', where NLos is the number of LOS of Detect and NRatio=len(Ratio) - Keys : list - List of the available LOS - - """ - if not self.LOS=='Impossible !': - Keys = self.LOS.keys() - NLOS, NR = len(Keys), len(Ratio) - Etends = {} - for kk in Modes: - Etends[kk] = np.nan*np.ones((NLOS,NR)) - for jj in range(0,NLOS): - PRef = self.LOS[Keys[jj]]['PRef'] - LOSu = self.LOS[Keys[jj]]['LOS'].u - e1, e2 = _tfg_gg.Calc_DefaultCheck_e1e2_PLane_1D(PRef, LOSu) - PRef = PRef.reshape((3,1)) - LOSu = LOSu.reshape((3,1)) - e1, e2 = e1.reshape((3,1)), e2.reshape((3,1)) - LOPolys = [oo.Poly for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - LOnIn = [oo.nIn for oo in self.Optics] - LOSurfs = [oo.Surf for oo in self.Optics] - for ii in range(0,len(Ratio)): - print " ...Computing Etendue with integration method", kk, " for LOS ", Keys[jj], " and Ratio=", Ratio[ii] - Etends[kk][jj,ii] = _tfg_c.Calc_Etendue_PlaneLOS(PRef, LOSu, self.Poly, self.BaryS, self.nIn, LOPolys, LOnIn, LOSurfs, LOBaryS, self._SAngPlane, self.Ves.Poly, self.Ves.Vin, DLong=self.Ves.DLong, - Lens_ConeTip = self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, RadL=self.Optics[0].Rad, RadD=self.Rad, F1=self.Optics[0].F1, - OpType=self.OpticsType, VType=self.Ves.Type, Mode=kk, e1=e1, e2=e2, epsrel=RelErr, Ratio=Ratio[ii], dX12=dX12, dX12Mode=dX12Mode, Colis=Colis, Test=True)[0][0] - return Etends, Ratio, RelErr, dX12, dX12Mode, Colis - - -
[docs] def calc_Etendue_AlongLOS(self, Length='', NP=tfd.DetEtendOnLOSNP, Modes=['trapz','quad'], RelErr=tfd.DetEtendepsrel, dX12=tfd.DetSynthdX12, dX12Mode=tfd.DetSynthdX12Mode, Ratio=tfd.DetEtendRatio, - Colis=tfd.DetSAngColis, LOSRef=None, Test=True): - """ Return the etendue computed at different points along the LOS, with various numerical methods, with or without collision detection - - Computing the etendue along the LOS of a Detect object can be useful for checking whether the etendue is constant (as it should be if the LOS approximation is to be used). - Cases with non-constant etendue include in particular partially obstructed VOS in the divertor region of Tokamaks. - Also useful for debugging: if the etendue is not constant but the VOS is not obstructed, something might be wrong with the computation of the etendue or with the model (e.g.: for Lens optics). - Indeed, the model implemented for a Lens is ideal, but a close look at the etendue shows that the model is not perfect (but sufficiently accurate for most uses though). - - Parameters - ---------- - Length : str - Flag indicating whether to use the full length of the VOS (including partially obstructed parts: ''), or just the length of the LOS unil its exit point ('LOS'). - NP : int - Number of points (uniformly distributed along the LOS) where the etendue should be computed - Modes : list or str - Flag or list of flags indicating which numerical integration methods shoud be used in ['quad','simps','trapz'] - RelErr : float - For 'quad', a positive float defining the relative tolerance allowed - dX12 : list - For 'simps' or 'trapz', a list of 2 floats defining the resolution of the sampling in X1 and X2 - dX12Mode : str - For 'simps' or'trapz', 'rel' or 'abs', if 'rel' the resolution dX12 is in dimensionless units in [0;1] (hence a value of 0.1 means 10 discretisation points between the extremes), if 'abs' dX12 is in meters - Ratio : float - A float specifying the relative margin to be taken for integration boundaries - Colis : bool - Flag indicating whether collision detection should be used - LOSRef : None or str - Flag indicating which LOS should be used - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Etend : np.ndarray - Computed etendues - Pts : np.ndarray - (3,NP) array specifying the 3D (X,Y,Z) coordinates of the points along the LOS where the etendue was computed - kPts : np.ndarray - (NP,) array of the distance-coordinate k along the LOS - LOSRef : str - The LOS that was used - - """ - if Test: - assert Modes in ['quad','simps','trapz'] or (type(Modes) is list and all([mode in ['quad','simps','trapz'] for mode in Modes])), "Arg Modes must be a list of Modes to be used ('quad', 'simps' or 'trapz') !" - if type(Modes) is str: - Modes = [Modes] - NMod = len(Modes) - - if not self.LOS=='Impossible !': - LOSRef = self._LOSRef if LOSRef is None else LOSRef - RelErr = self.LOS[LOSRef]['Etend_RelErr'] if 'quad' in Modes and RelErr is None else RelErr - dX12 = self.LOS[LOSRef]['Etend_dX12'] if (not (Modes=='quad' or Modes==['quad'])) and dX12 is None else dX12 - dX12Mode = self.LOS[LOSRef]['Etend_dX12Mode'] if (not (Modes=='quad' or Modes==['quad'])) and dX12Mode is None else dX12Mode - Ratio = self.LOS[LOSRef]['Etend_Ratio'] if Ratio is None else Ratio - Etends = {} - - PRef = self.LOS[LOSRef]['PRef'] - LOSu = self.LOS[LOSRef]['LOS'].u - e1, e2 = _tfg_gg.Calc_DefaultCheck_e1e2_PLane_1D(PRef, LOSu) - LOPolys = [oo.Poly for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - LOnIn = [oo.nIn for oo in self.Optics] - LOSurfs = [oo.Surf for oo in self.Optics] - - k1 = self.LOS[LOSRef]['LOS'].kPIn if Length=='LOS' else self._Span_k[0] - k2 = self.LOS[LOSRef]['LOS'].kPOut if Length=='LOS' else self._Span_k[1] - k = np.linspace(k1,k2,NP) - P1 = self.LOS[LOSRef]['LOS'].D - Ps = np.array([P1[0] + k*LOSu[0], P1[1] + k*LOSu[1], P1[2] + k*LOSu[2]]) - nPs = np.tile(LOSu,(NP,1)).T - e1, e2 = np.tile(e1,(NP,1)).T, np.tile(e2,(NP,1)).T - for ii in range(0,NMod): - print " ...Computing Etendues of "+ self.Id.Name +" for ",NP," planes with integration method ",Modes[ii] - Etends[Modes[ii]] = _tfg_c.Calc_Etendue_PlaneLOS(Ps, nPs, self.Poly, self.BaryS, self.nIn, LOPolys, LOnIn, LOSurfs, LOBaryS, self._SAngPlane, - self.Ves.Poly, self.Ves.Vin, DLong=self.Ves.DLong, Lens_ConeTip=self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, RadL=self.Optics[0].Rad, RadD=self.Rad, F1=self.Optics[0].F1, - OpType=self.OpticsType, VType=self.Ves.Type, Mode=Modes[ii], e1=e1, e2=e2, epsrel=RelErr, Ratio=Ratio, dX12=dX12, dX12Mode=dX12Mode, Colis=Colis, Test=True)[0] - return Etends, Ps, k, LOSRef
- - -
[docs] def calc_SAngNb(self, Pts=None, Proj='Cross', Slice='Int', DRY=None, DXTheta=None, DZ=None, Colis=tfd.DetSAngColis): - """ Compute the solid angle subtended by the Detect+Optics system as seen for desired points, in a slice or integrated manner - - Mostly useful in the :class:`GDetect` object when there are several detectors. - Computes, for each point in the desired projection, the total solid angle subtended by all the detectors (or its integral) and the number of detectors that 'see' each point. - - Parameters - ---------- - Pts : None / np.ndarray - (3,N) array of cartesian (X,Y,Z) coordinates of the provided N points, if None a default set of points is computed according to DRY, DXTheta and DZ - Proj : str - Flag indicating to which projection of the VOS the method should be applied - Slice : str - Flag indicating whether to compute the solid angle ('Slice'), the maximum solid angle along the ignorable coordinate ('Max'), or the integral over the ignorable coordinate ('Int') - DRY : None / float - Resolution (in horizontal direction of the cross-section) of the mesh to be constructed if the points are not provided - DXTheta : None / float - Resolution (in ignorable coordinate direction) of the mesh to be constructed if the points are not provided - DZ : None / float - Resolution (in vertical direction) of the mesh to be constructed if the points are not provided - Colis : bool - Flag indicating whether collision detection should be used - - Returns - ------- - SA : np.ndarray - Array of (ND,NP) solid angle values, where ND is the number of detectors and NP the number of points - Nb : np.ndarray - Array of (ND,NP) booleans, True if a point is seen by a detector - Pts : np.ndarray - The computed points (in case they were not provided) - - """ - # Return pre-computed data if matches - if all([ss is None for ss in [Pts,DRY,DXTheta,DZ]]) and Slice in ['Int','Max']: - if Proj=='Cross': - SA = self._SAngCross_Int if Slice=='Int' else self._SAngCross_Max - Pts = self._SAngCross_Points - elif Proj=='Hor': - SA = self._SAngHor_Int if Slice=='Int' else self._SAngHor_Max - Pts = self._SAngHor_Points - else: - # Get the mesh if Pts not provided - if Pts is None: - LOS = self.LOS[self._LOSRef]['LOS'] - SingPts = np.vstack((LOS.PIn, LOS.PIn+0.002*LOS.u, 0.5*(LOS.POut+LOS.PIn), LOS.POut-0.002*LOS.u , LOS.POut)).T - if self.Ves.Type=='Tor': - X1, XIgn, Z, NX1, NIgn, NZ, Pts, out = _tfg_c._get_CrossHorMesh(SingPoints=SingPts, LSpan_R=[self._Span_R], LSpan_Theta=[self._Span_Theta], LSpan_Z=[self._Span_Z], DR=DRY, DTheta=DXTheta, DZ=DZ, - VType=self.Ves.Type, Proj=Proj, ReturnPts=True) - elif self.Ves.Type=='Lin': - XIgn, X1, Z, NIgn, NX1, NZ, Pts, out = _tfg_c._get_CrossHorMesh(SingPoints=SingPts, LSpan_X=[self._Span_X], LSpan_Y=[self._Span_Y], LSpan_Z=[self._Span_Z], DX=DXTheta, DY=DRY, DZ=DZ, - VType=self.Ves.Type, Proj=Proj, ReturnPts=True) - # Get the Solid angle (itself, or Int or Max) - if Slice in ['Int','Max']: - FF = self._get_SAngIntMax(Proj=Proj, SAng=Slice) - SA = FF(Pts, In=out) - else: - if Proj=='Hor': - Span = self._Span_Z - else: - Span = self._Span_Theta if self.Ves.Type=='Tor' else self._Span_X - assert Slice>=Span[0] and Slice<=Span[1], "Arg Slice is outside of the interval were non-zeros values can be found !" - Ptsint = _tfg_gg.CoordShift(Pts, In=out, Out='(X,Y,Z)', CrossRef=Slice) - SA = self.calc_SAngVect(Ptsint, In='(X,Y,Z)', Colis=Colis, Test=True)[0] - return SA, SA>0., Pts
- - - def _calc_Res(self, Pts=None, CrossMesh=[0.01,0.01], CrossMeshMode='abs', Mode='Iso', Amp=1., Deg=0, steps=0.001, Thres=0.05, ThresMode='rel', ThresMin=0.01, - IntResCross=[0.1,0.1], IntResCrossMode='rel', IntResLong=0.05, IntResLongMode='rel', - Eq=None, PlotDetail=False, Cdict=dict(tfd.DetConed), Ntt=100, SaveName=None, SavePath='./', save=False, Test=True): - """ Compute the resolution and given input points or grid knots, with specified method and accuracy, the result can be automatically saved (useful for long computations) - - The definition that tofu proposes for the spatial resolution of a tomography diagnostic is as follows: - (describe after publication) - - Parameters - ---------- - Pts : None or iterable - CrossMesh : None or iterable - CrossMeshMode : str - Mode : str - Amp : float - Deg : int - steps : float - Thres : float - ThresMode : str - ThresMin : float - IntResCross : iterable - IntResCrossMode : str - IntResLong : float - IntResLongMode : str - Eq : None or callable - PlotDetail : bool - Cdict : dict - Ntt : int - SaveName : None or str - SavePath : str - save : bool - Test : bool - - Returns - ------- - Res : np.ndarray - Pts : np.ndarray - - """ - - Res, Pts, LDetLim, Mode, steps, Thres, ThresMode, ThresMin, IntResCross, IntResCrossMode, IntResLong, IntResLongMode \ - = _Calc_Resolution(self, Pts=Pts, CrossMesh=CrossMesh, CrossMeshMode=CrossMeshMode, Mode=Mode, Amp=Amp, Deg=Deg, steps=steps, Thres=Thres, ThresMode=ThresMode, ThresMin=ThresMin, - IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, IntResLong=IntResLong, IntResLongMode=IntResLongMode, - Eq=Eq, PlotDetail=PlotDetail, Cdict=Cdict, Ntt=Ntt, SaveName=SaveName, SavePath=SavePath, save=save, Test=Test) - return Res, Pts - - def _set_Res(self, CrossMesh=[0.05,0.02], CrossMeshMode='rel', Mode='Iso', Amp=1., Deg=0, steps=0.001, Thres=0.05, ThresMode='rel', ThresMin=0.01, - IntResCross=[0.1,0.1], IntResCrossMode='rel', IntResLong=0.05, IntResLongMode='rel', Eq=None, EqName=None, Ntt=100, save=False, Test=True): - """ Compute the resolution of the Detect instance on a mesh grid of the Cross section, with specified parameters (see :meth:`~self.calc_Res` for details) - - Parameters - ---------- - EqName : str - Flag name used to identify the equilibrium reconstruction that was used, if any - save : bool - if True the Detect instance saves itself automatically once the computation is finished (useful for long computations) - """ - - Res, Pts, LDetLim, Mode, steps, Thres, ThresMode, ThresMin, IntResCross, IntResCrossMode, IntResLong, IntResLongMode \ - = _Calc_Resolution(self, Pts=None, CrossMesh=CrossMesh, CrossMeshMode=CrossMeshMode, Mode=Mode, Amp=Amp, Deg=Deg, steps=steps, Thres=Thres, ThresMode=ThresMode, ThresMin=ThresMin, - IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, IntResLong=IntResLong, IntResLongMode=IntResLongMode, Eq=Eq, Ntt=Ntt, PlotDetail=False, save=False, Test=Test) - - self._Res_Mode, self._Res_Amp, self._Res_Deg = Mode, Amp, Deg - self._Res_Pts, self._Res_Res, self._Res_CrossMesh, self._Res_CrossMeshMode = Pts, Res, CrossMesh, CrossMeshMode - self._Res_steps, self._Res_Thres, self._Res_ThresMode, self._Res_ThresMin = steps, Thres, ThresMode, ThresMin - self._Res_IntResCross, self._Res_IntResCrossMode, self._Res_IntResLong, self._Res_IntResLongMode, self._Res_IntNtt = IntResCross, IntResCrossMode, IntResLong, IntResLongMode, Ntt - self._Res_EqName = EqName - self._Res_Done = True - if save: - self.save() - - def _reset_Res(self): - self._Res_Mode, self._Res_Amp, self._Res_Deg = None, None, None - self._Res_Pts, self._Res_Res, self._Res_CrossMesh, self._Res_CrossMeshMode = None, None, None, None - self._Res_steps, self._Res_Thres, self._Res_ThresMode, self._Res_ThresMin = None, None, None, None - self._Res_IntResCross, self._Res_IntResCrossMode, self._Res_IntResLong, self._Res_IntResLongMode, self._Res_IntNtt = None, None, None, None, None - self._Res_EqName = None - self._Res_Done = False - - -
[docs] def plot(self, Lax=None, Proj='All', Elt='PVC', EltLOS='LDIORP', EltOptics='P', EltVes='', Leg=None, LOSRef=None, - Pdict=tfd.ApPd, Vdict=tfd.ApVd, Cdict=tfd.DetConed, LVIn=tfd.ApLVin, - LOSdict=tfd.LOSdict, Opticsdict=tfd.Apertdict, Vesdict=tfd.Vesdict, - LegDict=tfd.TorLegd, draw=True, a4=False, Test=True): - """ Plot the Detect instance in a projection or in 3D, its polygon, perpendicular vector, projected viewing cones and optionally its :class:`~tofu.geom.LOS`, :class:`~tofu.geom.Apert`, and :class:`~tofu.geom.Ves` objects - - The Detect instance can be plotted in a cross-section or horizontal projection, or in 3D. - Several of its attributes can be plotted too using the usual 'Elt' keyword argument. - Dedicated 'Elt' keyword arguments are also usable to specify the elements to be plotted for sub-classes like :class:`~tofu.geom.LOS`, :class:`~tofu.geom.Apert`, and :class:`~tofu.geom.Ves`. - Dedicated dictionary help specify how each element sshould be plotted. - - Parameters - ---------- - Lax : None, plt.Axes or list - Axes or list of axes to be used for plotting, if None a new figure and appropriate axes are created - Proj : str - Flag indicating whether to plot the cross-section ('Cross'), the horizontal projection ('Hor'), both ('All') or a 3D representation ('3D') - Elt : str - Flag indicating which elements of the Detect instance to plot, each capital letter stands for an element - * 'P': polygon - * 'V': perpendicular vector - * 'C': viewing cone - EltLOS : None or str - Flag indicating which elements of the LOS to plot, will be fed to LOS.plot(), if None uses the 'Elt' arg of LOSdict instead - EltOptics : None or str - Flag indicating which elements of the Aperts to plot, will be fed to Apert.plot(), if None uses the 'Elt' arg of Apertdict instead - EltVes : None or str - Flag indicating which elements of the Ves to plot, will be fed to :meth:`~tofu.geom.Ves.plot`, if None uses the 'Elt' arg of Vesdict instead - Leg : str - Legend to be used for the detector, if '' the Detect.iD.Name is used - LOSRef : None or str - Flag indicating which LOS should be represented, if None Detect._LOSRef is used - Pdict : dict - Dictionary of properties for the Polygon - Vdict : dict - Dictionary of properties for the Vector - Cdict : dict - Dictionary of properties for the Cone - LVIn : float - Length of the Vector - LOSdict : dict - Dictionary of properties for the LOS if EltLOS is not '', fed to LOS.plot() - Apertdict : dict - Dictionary of properties for the Apert if EltOptics is not '', fed to Apert.plot() - Vesdict : dict - Dictionary of properties for the Ves if EltVes is not '', fed to :meth:`~tofu.geom.Ves.plot` - LegDict : dict - Dictionary of properties for the legend, fed to plt.legend() - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the default figure should be of size a4 paper - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Lax plt.Axes or list - Axes or list of axes used for plotting - - """ - return _tfg_p.GLDetect_plot(self, Lax=Lax, Proj=Proj, Elt=Elt, EltOptics=EltOptics, EltLOS=EltLOS, EltVes=EltVes, Leg=Leg, LOSRef=LOSRef, - Pdict=Pdict, Vdict=Vdict, Cdict=Cdict, LVIn=LVIn, - LOSdict=LOSdict, Opticsdict=Opticsdict, Vesdict=Vesdict, LegDict=LegDict, draw=draw, Test=Test)
- -
[docs] def plot_SAngNb(self, Lax=None, Proj='Cross', Slice='Int', Pts=None, plotfunc='scatter', DRY=None, DXTheta=None, DZ=None, - Elt='P', EltVes='P', EltLOS='', EltOptics='P', - Pdict=tfd.ApPd, Vdict=tfd.ApVd, Cdict=tfd.DetConed, LVIn=tfd.ApLVin, - LOSdict=tfd.LOSdict, Opticsdict=tfd.Apertdict, Vesdict=tfd.Vesdict, - CDictSA=None, CDictNb=None, Colis=tfd.DetSAngColis, a4=False, draw=True, Test=True): - """ Plot the solid angle projections (integrated 'Int' or maximum 'Max') as well as the number of detectors visible from each point in the plasma - - Mostly useful with the :class:`~tofu.geom.GDetect` object, used to visualize the goemetrical coverage in terms of total solid angle and number of detectors 'seeing' each point for a set of detectors (see :meth:`~tofu.geom.Detect.calc_SAngNb` method for details). - - Parameters - ---------- - Lax : None or list or plt.Axes - Axes or list of Axes to be used for plotting, if None a new figure and appropriate axes are created - Proj : str - Flag indicating whether to plot the cross-section ('Cross') or the horizontal projection ('Hor') - Mode : str, None or float - Flag indicating whether to plot: - * 'Int': the integrated value along the projected coordinates - * 'Max': the maximum value along the projected coordinates - * float: the projected coordinate at which to plot the slice (Theta or X if Proj='Cross', Z if Proj='Hor') - * None: the slice is done in the middle of the viewing volume - plotfunc : str - Flag indicating which plotting method to use ('scatter', 'contour', 'contourf' or 'imshow') - DCross : float - Resolution along the 1st cross-section coordinate (R for Type='Tor', Y for Type='Lin') - DXTheta : float - Resolution along the ignorable coordinate (Theta for Type='Tor', X for Type='Lin') - DZ : float - Vertical resolution (for both Types) - CDictSA : dict - Properties of the solid angle plot, to be fed to the function chosen by plotfunc - CDictNb : dict - Properties of the Nb plot, to be fed to the chsoen plotting routine - Colis : bool - Flag indicating whether collision detection should be used - a4 : bool - Flag indicating whether to use a4 dimensions to create a new figure if Lax=None - draw : bool - Flag indicating whether to draw the figure - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Lax : plt.Axes or list - List of the axes used for plotting - - """ - SA, Nb, Pts = self.calc_SAngNb(Pts=Pts, Proj=Proj, Slice=Slice, DRY=DRY, DXTheta=DXTheta, DZ=DZ, Colis=Colis) - Lax = _tfg_p._GLDetect_plot_SAngNb(Leg=self.Id.Name, SA=SA, Nb=Nb, Pts=Pts, Lax=Lax, Proj=Proj, Slice=Slice, plotfunc=plotfunc, CDictSA=CDictSA, CDictNb=CDictNb, Colis=Colis, - DRY=DRY, DXTheta=DXTheta, VType=self.Ves.Type, a4=a4, draw=False, Test=Test) - if any([not ss=='' for ss in [Elt,EltVes, EltLOS, EltOptics]]): - Lax[0] = self.plot(Proj=Proj, Lax=Lax[0], Elt=Elt, EltVes=EltVes, EltLOS=EltLOS, EltOptics=EltOptics, Pdict=Pdict, Vdict=Vdict, Cdict=Cdict, LVIn=LVIn, - LOSdict=LOSdict, Opticsdict=Opticsdict, Vesdict=Vesdict, LegDict=None, a4=a4, draw=False, Test=Test) - Lax[1] = self.plot(Proj=Proj, Lax=Lax[1], Elt=Elt, EltVes=EltVes, EltLOS=EltLOS, EltOptics=EltOptics, Pdict=Pdict, Vdict=Vdict, Cdict=Cdict, LVIn=LVIn, - LOSdict=LOSdict, Opticsdict=Opticsdict, Vesdict=Vesdict, LegDict=None, a4=a4, draw=False, Test=Test) - if draw: - Lax[0].figure.canvas.draw() - return Lax
- - def _debug_plot_SAng_OnPlanePerp(self, ax=None, Pos=tfd.DetSAngPlRa, dX12=tfd.DetSAngPldX12, dX12Mode=tfd.DetSAngPldX12Mode, Ratio=tfd.DetSAngPlRatio, SurfDict=tfd.DetSAngPld, LegDict=tfd.TorLegd, - Colis=tfd.DetSAngColis, LOSRef=None, draw=True, a4=False, Test=True): - """ Plot the solid angle subtended by the Detect-Apert system as seen from points on a plane perpendicular to the LOS - - Used for debugging or illustrative purposes. - Plot a surface plot of the solid angle subtended by the Detect+Optics system as seen for all points standing on a plane perpendicular to the LOS (the integral of which is the etendue). - - Parameters - ---------- - ax : None or plt.Axes - Axes to be used for plotting, if None a new figure and appropriate axes are created - Pos : float - Relative position between LOS.PIn and LOS.POut where the plane os to be placed, in ]0;1[ - dX12 : list - List of 2 floats defining the resolution of the sampling in X1 and X2 - dX12Mode : str - Flag indicating whether the resolution dX12 is in dimensionless units (in [0;1], hence a value of 0.1 means 10 discretisation points between the extremes), if 'abs' dX12 is in meters - Ratio : float - A float specifying the relative margin to be taken for integration boundaries - SurfDict : dict - Dictionary of properties to be used for plotting the surface plot (fed to :meth:`~matplotlib.pyplot.plot_surface`) - LegDict : None or dict - If None, no legend is plotted, else LegDict is fed to :meth:'~matplotlib.pyplot.Axes.legend' - Colis : bool - Flag indicating whether collision detection should be used - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the created figure should have a4 dimensions (useful for printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used for plotting - - """ - if Test: - assert type(Pos) is float, "Arg Pos must be a float specifying the relative distance on the LOS at which the plane is to be placed !" - if LOSRef is None: - LOSRef = self._LOSRef - Ps = (self.LOS[LOSRef]['LOS'].PIn + Pos*(self.LOS[LOSRef]['LOS'].POut - self.LOS[LOSRef]['LOS'].PIn)).reshape((3,1)) - nPs = self.LOS[LOSRef]['LOS'].u.reshape((3,1)) - LOPolys = [oo.Poly for oo in self.Optics] - LOBaryS = [oo.BaryS for oo in self.Optics] - LOnIns = [oo.nIn for oo in self.Optics] - LOSurfs = [oo.Surf for oo in self.Optics] - Etend, e1, e2, err, SA, X1, X2, NumX1, NumX2 = _tfg_c.Calc_Etendue_PlaneLOS(Ps, nPs, self.Poly, self.BaryS, self.nIn, LOPolys, LOnIns, LOSurfs, LOBaryS, self._SAngPlane, self.Ves.Poly, self.Ves.Vin, DLong=self.Ves.DLong, - Lens_ConeTip=self._Optics_Lens_ConeTip, Lens_ConeHalfAng=self._Optics_Lens_ConeHalfAng, RadL=self.Optics[0].Rad, RadD=self.Rad, F1=self.Optics[0].F1, - OpType=self.OpticsType, VType=self.Ves.Type, Mode='trapz', dX12=dX12, dX12Mode=dX12Mode, Ratio=Ratio, Colis=Colis, Details=True, Test=True) - - #SA, X1, X2, numX1, numX2 = _tfg_c.Calc_SAngOnPlane(self, P, self.LOS[LOSRef]['LOS'].u, dX12=dX12, dX12Mode=dX12Mode, e1=None,e2=None, Ratio=Ratio, Colis=Colis, Test=True) - SA = SA.reshape((NumX1[0],NumX2[0])) - X1, X2 = np.tile(X1.flatten(),(NumX2[0],1)).T, np.tile(X2.flatten(),(NumX1[0],1)) - Name = self.Id.NameLTX + " Pos={0} (Ratio={1})".format(Pos,Ratio) - ax = _tfg_p.Plot_SAng_Plane(SA, X1, X2, Name=Name, ax=ax, SurfDict=SurfDict, LegDict=LegDict, draw=False, a4=a4) - if draw: - ax.figure.canvas.draw() - return ax - - -
[docs] def plot_Etend_AlongLOS(self, ax=None, NP=tfd.DetEtendOnLOSNP, kMode='rel', Modes=['trapz'], Length='', RelErr=tfd.DetEtendepsrel, dX12=tfd.DetSynthdX12, dX12Mode=tfd.DetSynthdX12Mode, Ratio=tfd.DetEtendRatio, LOSRef=None, - LOSPts=True, Ldict=dict(tfd.DetEtendOnLOSLd), LegDict=tfd.TorLegd, Colis=tfd.DetSAngColis, draw=True, a4=True, Test=True): - """ Plot the etendue of the selected LOS along it, with or without collision detection - - The number of points along the LOS where the etendue is computed can be specified via arguments, as well as the numerical integration method. - Arguments Length, NP, Modes, RelErr, dX12, dX12Mode, Ratio, Colis, LOSRef are fed to :meth:`~tofu.geom.Detect.calc_Etendue_AlongLOS` - - Parameters - ---------- - ax : None or plt.Axes - Axes to be used for plotting, if None a new figure and appropriate axes are created - kMode : str - Flag indicating whether the distance on the line should be plotted as abolute distance ('abs') or relative to the total length ('rel') - Ldict : dict - Dictionary of properties for plotting the result - LegDict : None / dict - If None, no legend is plotted, else LegDict is fed to :meth:'~matplotlib.pyplot.Axes.legend' - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the created figure should have a4 dimensions (useful for printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used for plotting - - """ - Etends, Pts, kPts, LOSRef = self.calc_Etendue_AlongLOS(Length=Length, NP=NP, Modes=Modes, RelErr=RelErr, dX12=dX12, dX12Mode=dX12Mode, Ratio=Ratio, Colis=Colis, LOSRef=LOSRef, Test=True) - ax = _tfg_p.Plot_Etendue_AlongLOS(kPts, Etends, kMode, self.LOS[LOSRef]['LOS'].Id.NameLTX, ax=ax, Colis=Colis, - Etend=self.LOS[LOSRef]['Etend'], kPIn=self.LOS[LOSRef]['LOS'].kPIn, kPOut=self.LOS[LOSRef]['LOS'].kPOut, y0=0., - RelErr=RelErr, dX12=dX12, dX12Mode=dX12Mode, Ratio=Ratio, - Ldict=Ldict, LegDict=LegDict, draw=draw, a4=a4, Test=Test) - return ax
- -
[docs] def plot_Sinogram(self, ax=None, Proj='Cross', Elt='DLV', Ang='theta', AngUnit='rad', Sketch=True, Ddict=tfd.DetImpd, Ldict=tfd.LOSMImpd, Vdict=tfd.TorPFilld, LegDict=tfd.TorLegd, LOSRef=None, draw=True, a4=False, Test=True): - """ Plot the the Detect VOS in projection space, optionally also the associated :class:`~tofu.geom.Ves` object and reference LOS - - In projection space, a VOS is a patch (as opposed to a LOS which is a point). - The patch is estimated by plotting a large number of LOS sampling the VOS and taking the convex hull of the resulting points on projection space. - Notice that this method results in irrelevant patches for VOS lying at the edges of the projection space. - See :meth:`~tofu.geom.LOS.plot_Sinogram` for details. - - Parameters - ---------- - ax : None / plt.Axes - Axes on which to plot the Etendue, if None a default axes is created - Proj : str - Flag indicating whether to plot the traditional sinogram in a cross-section ('Cross') or a 3D sinogram ('3d'), cannot be '3d' if 'D' in Elt. - Elt : str - Flags indicating whether to plot the VOS of the Detect ('D' in Elt => only Proj='Cross'), the LOS ('L' in Elt) and the :class:`~tofu.geom.Ves` ('V' in Elt) - Ang : str - Flag indicating which angle to use for the plot, with respect to the considered line () or to the impact parameter line () - AngUnit : str - Flag indicating whether the angle should be measured in 'rad' or 'deg' - Sketch : bool - Flag indicating whether a small sketch illustrating the definitions of angles and impact parameter should be included - Ddict : dict - Plotting properties of the VOS of the Detect, fed to plt.plot() - Ldict : dict - Plotting properties of the LOS, fed to plt.plot() - Vdict : dict - Plotting properties of the Ves, fed to plt.plot() - LegDict : None / dict - Plotting properties of the legend, if None no legend is plotted - LOSRef : None / str - Flag indicating which LOS to plot, if None self._LOSRef is used - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the created figure should have a4 dimensions (useful for printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used for plotting - - """ - ax = _tfg_p.GLDetect_plot_Sinogram(self, Proj=Proj, ax=ax, Elt=Elt, Sketch=Sketch, Ang=Ang, AngUnit=AngUnit, Ddict=Ddict, Ldict=Ldict, Vdict=Vdict, LegDict=LegDict, LOSRef=LOSRef, draw=draw, a4=a4, Test=Test) - return ax
- - - - def _plot_Res(self, ax=None, plotfunc='scatter', NC=20, CDict=tfd.DetConed, draw=True, a4=False, Test=True): - """ Plot the resolution as defined by tofu (see :meth:`~tofu.geom.Detect._calc_Res` for details) - - Parameters - ---------- - ax : None / plt.Axes - Axes on which to plot the Etendue, if None a default axes is created - plotfunc : str - Flag indicating which plotting method to use in ['scatter','contour','contourf','imshow'] - NC : int - Number of contours to be plotted if plotfunc in ['contour','contourf'] - CDict : dict - Dictionary of properties for plotting, fed to the plotting routine - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the created figure should have a4 dimensions (useful for printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ax : plt.Axes - - """ - assert self._Res_Done, "Cannot plot the resolution before it has been computed on a mesh grid with self.set_Res() !" - ax = _tfg_p._Resolution_Plot(self._Res_Pts, self._Res_Res, self, [self.Id.Name], ax=ax, plotfunc=plotfunc, NC=NC, CDict=dict(CDict), - ind=None, Val=None, draw=draw, a4=a4, Test=Test) - return ax - - - -
[docs] def save(self,SaveName=None,Path=None,Mode='npz', compressed=False, SynthDiag=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - In the case of Detect and GDetect instances, there is an additional keyword argument 'SynthDiag' which allows to **not** save the pre-computed 3D mesh of the VOS for synthetic diagnostic. - Indeed, this pre-computed data is often large and results in big files. Not saving it results in significantly smaller files, and it can be re-computed when loading the instance. - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - SynthDiag : bool - Flag indicating whether the pre-computed mesh for synthetic diagnostics calculations shall be saved too (can be heavy, if False, it will be re-computed when opening the saved object) - - """ - if not SynthDiag: - self._reset_SynthDiag() - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - - - - -def _Detect_set_Defaults(Poly=None, Type=None, Exp=None, Diag=None, shot=None, Ves=None, Optics=None): - if not Optics is None: - if type(Optics) is list: - Diag = Diag if not Diag is None else Optics[0].Id.Diag - Exp = Exp if not Exp is None else Optics[0].Id.Exp - Ves = Optics[0].Ves if Ves is None else Ves - else: - Diag = Diag if not Diag is None else Optics.Id.Diag - Exp = Exp if not Exp is None else Optics.Id.Exp - Ves = Optics.Ves if Ves is None else Ves - if type(Optics) is Lens: - Type = Type if not Type is None else 'Circ' - elif not Ves is None: - Exp = Exp if not Exp is None else Ves.Id.Exp - if type(Poly) is dict and not Optics is None: - if type(Optics) is Lens: - Poly['O'] = Optics.O-Optics.F1*Optics.nIn - Poly['nIn'] = Optics.nIn - return Poly, Type, Exp, Diag, shot, Ves - - - - - - -def _Detect_check_inputs(Id=None, Poly=None, Type=None, Optics=None, Vess=None, Sino_RefPt=None, Exp=None, Diag=None, shot=None, CalcEtend=None, CalcSpanImp=None, CalcCone=None, CalcPreComp=None, Calc=None, Verb=None, - Etend_RelErr=None, Etend_dX12=None, Etend_dX12Mode=None, Etend_Ratio=None, Colis=None, LOSRef=None, Etend_Method=None, - MarginRMin=None, NEdge=None, NRad=None, Nk=None, - Cone_DRY=None, Cone_DXTheta=None, Cone_DZ=None, Cone_NPsi=None, Cone_Nk=None, - arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - if not Poly is None: - assert type(Poly) is dict or (hasattr(Poly,'__getitem__') and np.asarray(Poly).ndim==2 and 3 in np.asarray(Poly).shape), "Arg Poly must be a dict or an iterable with 3D cartesian coordinates of points !" - if type(Poly) is dict: - assert all([aa in Poly.keys() for aa in ['Rad']]), "Arg Poly must be a dict with keys ['Rad'] !" - assert type(Poly['Rad']) in [float,np.float64], "Arg Poly['Rad'] must be a float !" - if not Optics is None: - assert type(Optics) in [list,Apert,Lens], "Arg Optics must be a list, Apert or Lens" - if type(Optics) is list: - assert all([type(oo) is Apert for oo in Optics]), "Arg Optics must be a list of Apert !" - if type(Optics) is Lens: - assert type(Poly) is dict and 'Rad' in Poly.keys(), "When Optics is a Lens, Poly must be a dict with field 'Rad' !" - if not Exp is None: - if type(Optics) is list: - assert Exp==Optics[0].Id.Exp, "Arg Exp must be the same as the Optics[0].Id.Exp !" - else: - assert Exp==Optics.Id.Exp, "Arg Exp must be the same as the Optics.Id.Exp !" - if not Diag is None: - if type(Optics) is list: - assert Diag==Optics[0].Id.Diag, "Arg Exp must be the same as the Optics[0].Id.Diag !" - else: - assert Diag==Optics.Id.Diag, "Arg Diag must be the same as the Optics.Id.Diag !" - if not Vess is None: - assert type(Vess) is Ves, "Arg Ves must be a Ves instance !" - if not Exp is None: - assert Exp==Vess.Id.Exp, "Arg Exp must be the same as the Ves.Id.Exp !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - bools = [CalcEtend,CalcSpanImp,CalcCone,CalcPreComp,Calc,Verb,Colis,Clock,dtimeIn] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [CalcEtend,CalcSpanImp,CalcCone,CalcPreComp,Calc,Verb,Colis,Clock,dtimeIn] must all be bool !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Arg Exp must be in "+str(tfd.AllowedExp)+" !" - assert Type is None or Type=='Circ', "Arg Type must be Circ or None for Detect objects !" - Iter2 = [Sino_RefPt,Etend_dX12] - if any([not aa is None for aa in Iter2]): - assert all([aa is None or (hasattr(aa,'__iter__') and np.asarray(aa).shape==(2,)) for aa in Iter2]), "Args [Sino_RefPt,Etend_dX12] must be an iterable with len()=2 !" - strs = [Etend_dX12Mode,LOSRef,Etend_Method,Diag,SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [dX12Mode,LOSRef,Method,Diag,SavePath] must all be str !" - floats = [Etend_RelErr,Etend_Ratio,MarginRMin,Cone_DRY,Cone_DXTheta,Cone_DZ] - if any([not aa is None for aa in floats]): - assert all([aa is None or type(aa) in [float,np.float64] for aa in floats]), "Args [RelErr,dX12,Ratio,MarginRMin] must all be floats !" - ints = [shot,NEdge,NRad,Nk,Cone_NPsi,Cone_Nk] - if any([not aa is None for aa in ints]): - assert all([aa is None or type(aa) is int for aa in ints]), "Args [shot,NEdge,NRad] must be int !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - - - - - - - - - - - -
[docs]class GDetect(object): - """ An object grouping a list of :class:`~tofu.geom.Detect` objects with some common features (e.g.: all belong to the same camera) and the same :class:`~tofu.geom.Ves` object, provides methods for common computing and plotting - - A GDetect object is a convenient tool for managing groups of detectors, applying common treatment, plotting... - It is typically suited for a camera (e.g.: a group of detectors sharing a common aperture) - - Parameters - ---------- - Id : str or tfpf.ID - A name string or a pre-built tfpf.ID class to be used to identify this particular instance, if a string is provided, it is fed to :class:`~tofu.pathfile.ID` - LDetect : list or Detect - List of Detect instances with the same :class:`~tofu.geom.Ves` instance - Type : None - Not used in the current verion of tofu - Exp : None or str - Experiment to which the Lens belongs, should be identical to Ves.Id.Exp if Ves is provided, if None and Ves is provided, Ves.Id.Exp is used - Diag : None or str - Diagnostic to which the Lens belongs - shot : None or int - Shot number from which this Lens is usable (in case its position was changed from a previous configuration) - SavePath : None / str - If provided, forces the default saving path of the object to the provided value - Sino_RefPt : None or iterable - If provided, forces the common :attr:`~tofu.geom.Detect.Sino_RefPt` to the provided value for all :class:`~tofu.geom.Detect` instances - arrayorder : str - Flag indicating whether the attributes of type=np.ndarray (e.g.: Poly) should be made C-contiguous ('C') or Fortran-contiguous ('F') - dtime : None or dtm.datetime - A time reference to be used to identify this particular instance (used for debugging mostly) - dtimeIn : bool - Flag indicating whether dtime should be included in the SaveName (used for debugging mostly) - - """ - def __init__(self, Id, LDetect, Type=None, Exp=None, Diag=None, shot=None, Sino_RefPt=None, LOSRef=None, arrayorder='C', Clock=False, dtime=None, dtimeIn=False, SavePath=None): - - self._Done = False - tfpf._check_NotNone({'Clock':Clock,'arrayorder':arrayorder}) - self._check_inputs(Clock=Clock, arrayorder=arrayorder) - self._arrayorder = arrayorder - self._Clock = Clock - - self._check_inputs(LDetect=LDetect, Exp=Exp, Diag=Diag) - LDetect, Exp, Diag, Sino_RefPt, LOSRef = _GDetect_set_Defaults(LDetect=LDetect, Exp=Exp, Diag=Diag, Sino_RefPt=Sino_RefPt, LOSRef=LOSRef) - self._LOSRef = LOSRef - - self._set_Id(Id, Type=Type, Exp=Exp, Diag=Diag, shot=shot, dtime=dtime, dtimeIn=dtimeIn, SavePath=SavePath) - self._set_LDetect(LDetect) - self._reset_Res() - self._Done = True - - @property - def Id(self): - """ the associated tfpf.ID object """ - return self._Id - @property - def LDetect(self): - """ Return the list of :class:`~tofu.geom.Detect` instances the GDetect object comprises """ - return self._LDetect - @property - def nDetect(self): - """ Return the number of :class:`~tofu.geom.Detect` instances the GDetect object comprises """ - return self._nDetect - @property - def Optics(self): - """ Return the list of optics the GDetect object comprises (either :class:`~tofu.geom.Lens` or :class:`~tofu.geom.Apert`) """ - return self._Optics - @property - def Ves(self): - """ Return the :class:`~tofu.geom.Ves` instance associated to the GDetect object """ - return self._Ves - @property - def Sino_RefPt(self): - """ Return the coordinates (R,Z) or (Y,Z) for Ves of Type 'Tor' or (Y,Z) for Ves of Type 'Lin' of the reference point used to compute the sinogram """ - return self._Sino_RefPt - - - - def _check_inputs(self, Id=None, LDetect=None, Type=None, Sino_RefPt=None, LOSRef=None, Exp=None, Diag=None, shot=None, - arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - _GDetect_check_inputs(Id=Id, LDetect=LDetect, Type=Type, Sino_RefPt=Sino_RefPt, LOSRef=LOSRef, Exp=Exp, Diag=Diag, shot=shot, - arrayorder=arrayorder, Clock=Clock, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - - def _set_Id(self, Val, Type=None, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None): - if self._Done: - Out = tfpf._get_FromItself(self.Id, {'Type':Type, 'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Type, Exp, shot, Diag, dtime, dtimeIn, SavePath = Out['Type'], Out['Exp'], Out['shot'], Out['Diag'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Exp':Exp, 'shot':shot, 'Diag':Diag, 'dtimeIn':dtimeIn}) - self._check_inputs(Type=Type, Exp=Exp, shot=shot, Diag=Diag, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('GDetect', Val, Type=Type, Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_LDetect(self, LDetect): - self._check_inputs(LDetect=LDetect) - self._LDetect = LDetect - self._nDetect = len(LDetect) - self._Optics = _get_OpticsFromLDetect(LDetect) - - LObj = [dd.Id for dd in LDetect] + [aa.Id for aa in self._Optics] - if not LDetect[0].Ves is None: - LObj.append(LDetect[0].Ves.Id) - self.Id.set_LObj(LObj) - self._Ves = LDetect[0].Ves - self._Sino_RefPt = LDetect[0].Sino_RefPt - - def _calc_All(self, Sino_RefPt=None, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, - Etend_Method=tfd.DetEtendMethod, Etend_RelErr=tfd.DetEtendepsrel, Etend_dX12=tfd.DetEtenddX12, Etend_dX12Mode=tfd.DetEtenddX12Mode, Etend_Ratio=tfd.DetEtendRatio, Colis=tfd.DetCalcEtendColis, LOSRef=None, - Cone_DRY=tfd.DetConeDRY, Cone_DXTheta=None, Cone_DZ=tfd.DetConeDZ, Cone_NPsi=20, Cone_Nk=60, Verb=True): - LOSRef = self._LOSRef if LOSRef is None else LOSRef - for ii in range(0,self.nDetect): - self._LDetect[ii]._calc_All(Sino_RefPt=Sino_RefPt, CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp, - Etend_Method=Etend_Method, Etend_RelErr=Etend_RelErr, Etend_dX12=Etend_dX12, Etend_dX12Mode=Etend_dX12Mode, Etend_Ratio=Etend_Ratio, Colis=Colis, LOSRef=LOSRef, - Cone_DRY=Cone_DRY, Cone_DXTheta=Cone_DXTheta, Cone_DZ=Cone_DZ, Cone_NPsi=Cone_NPsi, Cone_Nk=Cone_Nk, Verb=Verb) - - def _set_Sino(self, RefPt=None): - self._check_inputs(RefPt=RefPt) - self._Ves._set_Sino(RefPt) - for ii in range(0,self.nDetect): - self._LDetect[ii]._set_Sino(RefPt) - self._Sino_RefPt = RefPt - -
[docs] def select(self, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Out=bool): - """ Return the indices or instances of all instances matching the specified criterion. - - The selection can be done according to 2 different mechanism (1) and (2). - - For mechanism (1): the user provides the value (Val) that the specified criterion (Crit) should take for a :class:`tofu.geom.Detect` to be selected. - The criteria are typically attributes of the self.Id attribute (i.e.: name of the instance, or user-defined attributes like the camera head...) - - For mechanism (2), used if Val=None: the user provides a str expression (or a list of such) to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: 'not ' or '<='). - Another str or list of str expressions can be provided that will be placed after the criterion value. - - Other parameters are used to specify logical operators for the selection (match any or all the criterion...) and the type of output. - See :meth:`~tofu.geom.GLOS.select` for examples - - Parameters - ---------- - Crit : str - Flag indicating which criterion to use for discrimination - Can be set to any attribute of the tofu.pathfile.ID class (e.g.: 'Name','SaveName','SavePath'...) or any key of ID.USRdict (e.g.: 'Exp'...) - Val : list, str or None - The value to match for the chosen criterion, can be a list of different values - Used for selection mechanism (1) - PreExp : list, str or None - A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed before the criterion value (e.g.: 'not ') - Used for selection mechanism (2) - PostExp : list, str or None - A str of list of str expressions to be fed to eval(), used to check on quantitative criteria, placed after the criterion value (e.g.: '>=5.') - Used for selection mechanism (2) - Log : str - Flag indicating whether the criterion shall match all provided values or one of them ('any' or 'all') - InOut : str - Flag indicating whether the returned indices are the ones matching the criterion ('In') or the ones not matching it ('Out') - Out : type / str - Flag indicating in which form shall the result be returned, as an array of integer indices (int), an array of booleans (bool), a list of names ('Names') or a list of instances ('Detect') - - Returns - ------- - ind : list / np.ndarray - The computed output (array of index, list of names or instances depending on parameter 'Out') - - """ - if not Out=='Detect': - return tfpf.SelectFromListId([ll.Id for ll in self.LDetect], Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Out=Out) - else: - ind = tfpf.SelectFromListId([ll.Id for ll in self.LDetect], Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Out=int) - return [self.LDetect[ii] for ii in ind]
- - -
[docs] def isInside(self, Points, In='(X,Y,Z)', Test=True): - """ Return an array of indices indicating whether each point lies both in the cross-section and horizontal porojections of the viewing cone of each :class:`~tofu.geom.Detect` - - see :meth:`~tofu.geom.Detect.isInside` for details - - Parameters - ---------- - Points : np.ndarray - (2,N) or (3,N) array of coordinates of the N points to be tested - In : str - Flag indicating in which coordinate system the Points are provided, must be in ['(R,Z)','(Y,Z)','(X,Y)','(X,Y,Z)','(R,phi,Z)'] - * '(R,Z)': All points are assumed to lie in the horizontal projection, for 'Tor' vessel type only - * '(Y,Z)': All points are assumed to lie in the horizontal projection, for 'Lin' vessel type only - * '(X,Y)': All points are assumed to lie in the cross-section projection - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ind : np.ndarray - (ND,N) array of booleans with True if a point lies inside both projections of the viewing cone, where ND is the number of Detect instances - - """ - assert isinstance(Points,np.ndarray), "Arg Points must be a np.ndarray !" - return np.vstack([dd.isInside(Points, In=In, Test=Test) for dd in self.LDetect])
- -
[docs] def get_GLOS(self, Name=None, LOSRef=None): - """ Return the :class:`~tofu.geom.GLOS` instance that can be built by grouping the :class:`~tofu.geom.LOS` of each :class:`~tofu.geom.Detect` instance - - Can be useful for handling a GLOS instead of a GDetect (heavier) instance - - Parameters - ---------- - Name : None / str - Name to be given to the GLOS instance, if None a name is built from the name of the GDetect object by appending '_GLOS' - LOSRef : None / str - Key indicating which LOS to be used, if None the default LOSRef is used - - Returns - ------- - glos : :class:`~tofu.geom.GLOS` - The constructed :class:`~tofu.geom.GLOS` instance - - """ - LOSRef = self._LOSRef if LOSRef is None else LOSRef - LLOS = [dd.LOS[LOSRef]['LOS'] for dd in self.LDetect if not dd.LOS in ['Impossible !',None]] - if Name is None: - Name = self.Id.Name+'_GLOS' - return GLOS(Name,LLOS)
- -
[docs] def set_SigPrecomp(self, CalcPreComp=True, dX12=tfd.DetSynthdX12, dX12Mode=tfd.DetSynthdX12Mode, ds=tfd.DetSynthds, dsMode=tfd.DetSynthdsMode, MarginS=tfd.DetSynthMarginS, Colis=tfd.DetCalcSAngVectColis): - """ Applies :meth:`~tofu.geom.Detect.set_SigPrecomp` to all :class:`~tofu.geom.Detect` instances """ - for ii in range(0,self.nDetect): - self._LDetect[ii].set_SigPrecomp(CalcPreComp=CalcPreComp, dX12=dX12, dX12Mode=dX12Mode, ds=ds, dsMode=dsMode, MarginS=MarginS, Colis=Colis)
- -
[docs] def calc_SAngVect(self, Pts, In='(X,Y,Z)', Colis=tfd.DetCalcSAngVectColis, Test=True): - """ Applies :meth:`~tofu.geom.Detect.calc_SAngVect` to all :class:`~tofu.geom.Detect` instances - - Return the result as two 2D arrays where the first dimension is the number of :class:`~tofu.geom.Detect` instances - see :meth:`~tofu.geom.Detect.calc_SAngVect` for details - - """ - SAng, Vect = np.zeros((self.nDetect,Pts.shape[1])), [0 for ii in range(0,self.nDetect)] - for ii in range(0,self.nDetect): - SAng[ii,:], Vect[ii] = self.LDetect[ii].calc_SAngVect(Pts, In=In, Colis=Colis, Test=Test) - return SAng, Vect
- - def calc_SAngNb(self, Pts=None, Proj='Cross', Slice='Int', DRY=None, DXTheta=None, DZ=None, Colis=tfd.DetSAngColis, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - SA, Nb, Pts = _GDetect_Calc_SAngNb(self, Pts=Pts, Proj=Proj, Slice=Slice, DRY=DRY, DXTheta=DXTheta, DZ=DZ, Colis=Colis, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - """ Applies :meth:`~tofu.geom.Detect.calc_SAngNb` to all :class:`~tofu.geom.Detect` instances - - See :meth:`~tofu.geom.Detect.calc_SAngNb` for details - Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to :meth:`~tofu.geom.GDetect.select` - - """ - return SA, Nb, Pts - -
[docs] def calc_Sig(self, ff, extargs={}, Method='Vol', Mode='simps', PreComp=True, - epsrel=tfd.DetSynthEpsrel, dX12=tfd.DetSynthdX12, dX12Mode=tfd.DetSynthdX12Mode, ds=tfd.DetSynthds, dsMode=tfd.DetSynthdsMode, MarginS=tfd.DetSynthMarginS, Colis=tfd.DetCalcSAngVectColis, Test=True, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Applies :meth:`~tofu.geom.Detect.calc_Sig` to all :class:`~tofu.geom.Detect` instances - - See :meth:`~tofu.geom.Detect.calc_Sig` for details - Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to :meth:`~tofu.geom.GDetect.select` - - """ - GD, Leg, LOSRef = _tfg_p._get_LD_Leg_LOSRef(self, LOSRef=self._LOSRef, ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - Sig = [dd.calc_Sig(ff, extargs=extargs, Method=Method, Mode=Mode, PreComp=PreComp, epsrel=epsrel, dX12=dX12, dX12Mode=dX12Mode, ds=ds, dsMode=dsMode, MarginS=MarginS, Colis=Colis,Test=Test) for dd in GD] - return np.vstack(Sig).T, GD
- - - def _calc_Res(self, Pts=None, CrossMesh=[0.01,0.01], CrossMeshMode='abs', Mode='Iso', Amp=1., Deg=0, steps=0.001, Thres=0.05, ThresMode='rel', ThresMin=0.01, - IntResCross=[0.1,0.1], IntResCrossMode='rel', IntResLong=0.05, IntResLongMode='rel', - Eq=None, PlotDetail=False, Cdict=dict(tfd.DetConed), Ntt=100, SaveName=None, SavePath='./', save=False, Test=True): - """ Applies :meth:`~tofu.geom.Detect._calc_Res` to all :class:`~tofu.geom.Detect` instances - - See :meth:`~tofu.geom.Detect._calc_Res` for details - - """ - - Res, Pts, LDetLim, Mode, steps, Thres, ThresMode, ThresMin, IntResCross, IntResCrossMode, IntResLong, IntResLongMode \ - = _Calc_Resolution(self, Pts=Pts, CrossMesh=CrossMesh, CrossMeshMode=CrossMeshMode, Mode=Mode, Amp=Amp, Deg=Deg, steps=steps, Thres=Thres, ThresMode=ThresMode, ThresMin=ThresMin, - IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, IntResLong=IntResLong, IntResLongMode=IntResLongMode, - Eq=Eq, PlotDetail=PlotDetail, Cdict=Cdict, Ntt=Ntt, SaveName=SaveName, SavePath=SavePath, save=save, Test=Test) - return Res, Pts, LDetLim, Mode, steps, Thres, ThresMode, ThresMin, IntResCross, IntResCrossMode, IntResLong, IntResLongMode - - - - def _set_Res(self, CrossMesh=[0.05,0.02], CrossMeshMode='rel', Mode='Iso', Amp=1., Deg=0, steps=0.001, Thres=0.05, ThresMode='rel', ThresMin=0.01, - IntResCross=[0.1,0.1], IntResCrossMode='rel', IntResLong=0.05, IntResLongMode='rel', Eq=None, Ntt=100, EqName=None, save=False, Test=True): - """ Compute the resolution of the Detect instance on a mesh grid of the Cross section, with specified parameters - - See :meth:`~tofu.geom.Detect._set_Res` for details - - """ - Res, Pts, LDetLim, Mode, steps, Thres, ThresMode, ThresMin, IntResCross, IntResCrossMode, IntResLong, IntResLongMode \ - = _Calc_Resolution(self, Pts=None, CrossMesh=CrossMesh, CrossMeshMode=CrossMeshMode, Mode=Mode, Amp=Amp, Deg=Deg, steps=steps, Thres=Thres, ThresMode=ThresMode, ThresMin=ThresMin, - IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, IntResLong=IntResLong, IntResLongMode=IntResLongMode, Eq=Eq, Ntt=Ntt, PlotDetail=False, save=False, Test=Test) - - self._Res_Mode, self._Res_Amp, self._Res_Deg = Mode, Amp, Deg - self._Res_Pts, self._Res_Res, self._Res_DetLim, self._Res_CrossMesh, self._Res_CrossMeshMode = Pts, Res, LDetLim, CrossMesh, CrossMeshMode - self._Res_steps, self._Res_Thres, self._Res_ThresMode, self._Res_ThresMin = steps, Thres, ThresMode, ThresMin - self._Res_IntResCross, self._Res_IntResCrossMode, self._Res_IntResLong, self._Res_IntResLongMode = IntResCross, IntResCrossMode, IntResLong, IntResLongMode - self._Res_EqName = EqName - self._Res_Done = True - if save: - self.save() - - def _reset_Res(self): - self._Res_Mode, self._Res_Amp, self._Res_Deg = None, None, None - self._Res_Pts, self._Res_Res, self._Res_DetLim, self._Res_CrossMesh, self._Res_CrossMeshMode = None, None, None, None, None - self._Res_steps, self._Res_Thres, self._Res_ThresMode, self._Res_ThresMin = None, None, None, None - self._Res_IntResCross, self._Res_IntResCrossMode, self._Res_IntResLong, self._Res_IntResLongMode = None, None, None, None - self._Res_EqName = None - self._Res_Done = False - - -
[docs] def plot(self, Lax=None, Proj='All', Elt='PVC', EltLOS='LDIORP', EltOptics='P', EltVes='', Leg=None, LOSRef=None, - Pdict=tfd.ApPd, Vdict=tfd.ApVd, Cdict=tfd.DetConed, LVIn=tfd.ApLVin, - LOSdict=tfd.LOSdict, Opticsdict=tfd.Apertdict, Vesdict=tfd.Vesdict, - LegDict=tfd.TorLegd, draw=True, a4=False, Test=True, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Plot all or a subset of the Detect instances in a projection or in 3D - - See :meth:`~tofu.geom.Detect.plot` for details - Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to :meth:`~tofu.geom.GDetect.select` - - Parameters - ---------- - Lax : None, plt.Axes or list - Axes or list of axes to be used for plotting, if None a new figure and appropriate axes are created - Proj : str - Flag indicating whether to plot the cross-section ('Cross'), the horizontal projection ('Hor'), both ('All') or a 3D representation ('3D') - Elt : str - Flag indicating which elements of the Detect instance to plot, each capital letter stands for an element - * 'P': polygon - * 'V': perpendicular vector - * 'C': viewing cone - EltLOS : None or str - Flag indicating which elements of the LOS to plot, will be fed to LOS.plot(), if None uses the 'Elt' arg of LOSdict instead - EltOptics : None or str - Flag indicating which elements of the Aperts to plot, will be fed to Apert.plot(), if None uses the 'Elt' arg of Apertdict instead - EltVes : None or str - Flag indicating which elements of the :class:`~tofu.geom.Ves` to plot, will be fed to :meth:`~tofu.geom.Ves.plot`, if None uses the 'Elt' arg of Vesdict instead - Leg : str - Legend to be used for the detector, if '' the Detect.iD.Name is used - LOSRef : None or str - Flag indicating which LOS should be represented, if None Detect._LOSRef is used - Pdict : dict - Dictionary of properties for the Polygon - Vdict : dict - Dictionary of properties for the Vector - Cdict : dict - Dictionary of properties for the Cone - LVIn : float - Length of the Vector - LOSdict : dict - Dictionary of properties for the LOS if EltLOS is not '', fed to LOS.plot() - Apertdict : dict - Dictionary of properties for the Apert if EltOptics is not '', fed to Apert.plot() - Vesdict : dict - Dictionary of properties for the :class:`~tofu.geom.Ves` if EltVes is not '', fed to :meth:`~tofu.geom.Ves.plot` - LegDict : dict - Dictionary of properties for the legend, fed to plt.legend() - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the default figure should be of size a4 paper - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Lax plt.Axes or list - Axes or list of axes used for plotting - - """ - return _tfg_p.GLDetect_plot(self, Lax=Lax, Proj=Proj, Elt=Elt, EltOptics=EltOptics, EltLOS=EltLOS, EltVes=EltVes, Leg=Leg, LOSRef=LOSRef, - Pdict=Pdict, Vdict=Vdict, Cdict=Cdict, LVIn=LVIn, - LOSdict=LOSdict, Opticsdict=Opticsdict, Vesdict=Vesdict, LegDict=LegDict, draw=draw, Test=Test, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut)
- - -
[docs] def plot_SAngNb(self, Lax=None, Proj='Cross', Slice='Int', Pts=None, plotfunc='scatter', DRY=None, DXTheta=None, DZ=None, - Elt='P', EltVes='P', EltLOS='', EltOptics='P', - Pdict=tfd.ApPd, Vdict=tfd.ApVd, Cdict=tfd.DetConed, LVIn=tfd.ApLVin, - LOSdict=tfd.LOSdict, Opticsdict=tfd.Apertdict, Vesdict=tfd.Vesdict, - CDictSA=None, CDictNb=None, Colis=tfd.DetSAngColis, a4=False, draw=True, Test=True, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Plot the solid angle projections (integrated 'Int' or maximum 'Max') as well as the number of detectors visible from each point in the plasma - - See :meth:`~tofu.geom.Detect.plot_SAngNb` for details - Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to :meth:`~tofu.geom.GDetect.select` - - Parameters - ---------- - Lax : None or list or plt.Axes - Axes or list of Axes to be used for plotting, if None a new figure and appropriate axes are created - Proj : str - Flag indicating whether to plot the cross-section ('Cross') or the horizontal projection ('Hor') - Mode : str, None or float - Flag indicating whether to plot: - * 'Int': the integrated value along the projected coordinates - * 'Max': the maximum value along the projected coordinates - * float: the projected coordinate at which to plot the slice (Theta or X if Proj='Cross', Z if Proj='Hor') - * None: the slice is done in the middle of the viewing volume - plotfunc : str - Flag indicating which plotting method to use ('scatter', 'contour', 'contourf' or 'imshow') - DCross : float - Resolution along the 1st cross-section coordinate (R for Type='Tor', Y for Type='Lin') - DXTheta : float - Resolution along the ignorable coordinate (Theta for Type='Tor', X for Type='Lin') - DZ : float - Vertical resolution (for both Types) - CDictSA : dict - Properties of the solid angle plot, to be fed to the function chosen by plotfunc - CDictNb : dict - Properties of the Nb plot, to be fed to ... - Colis : bool - Flag indicating whether collision detection should be used - a4 : bool - Flag indicating whether to use a4 dimensions to create a new figure if Lax=None - draw : bool - Flag indicating whether to draw the figure - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Lax plt.Axes or list List of the axes used for plotting - - """ - SA, Nb, Pts = self.calc_SAngNb(Pts=Pts, Proj=Proj, Slice=Slice, DRY=DRY, DXTheta=DXTheta, DZ=DZ, Colis=Colis, ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - Lax = _tfg_p._GLDetect_plot_SAngNb(Leg=self.Id.Name, SA=SA, Nb=Nb, Pts=Pts, Lax=Lax, Proj=Proj, Slice=Slice, plotfunc=plotfunc, CDictSA=CDictSA, CDictNb=CDictNb, Colis=Colis, - DRY=DRY, DXTheta=DXTheta, VType=self.Ves.Type, a4=a4, draw=False, Test=Test) - if any([not ss=='' for ss in [Elt,EltVes, EltLOS, EltOptics]]): - Lax[0] = self.plot(Proj=Proj, Lax=Lax[0], Elt=Elt, EltVes=EltVes, EltLOS=EltLOS, EltOptics=EltOptics, Pdict=Pdict, Vdict=Vdict, Cdict=Cdict, LVIn=LVIn, - LOSdict=LOSdict, Opticsdict=Opticsdict, Vesdict=Vesdict, LegDict=None, a4=a4, draw=False, Test=Test, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - Lax[1] = self.plot(Proj=Proj, Lax=Lax[1], Elt=Elt, EltVes=EltVes, EltLOS=EltLOS, EltOptics=EltOptics, Pdict=Pdict, Vdict=Vdict, Cdict=Cdict, LVIn=LVIn, - LOSdict=LOSdict, Opticsdict=Opticsdict, Vesdict=Vesdict, LegDict=None, a4=a4, draw=False, Test=Test, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - if draw: - Lax[0].figure.canvas.draw() - return Lax
- - -
[docs] def plot_Etend_AlongLOS(self, ax=None, NP=tfd.DetEtendOnLOSNP, kMode='rel', Modes=['trapz'], RelErr=None, dX12=None, dX12Mode=None, Ratio=None, LOSRef=None, - LOSPts=True, Ldict=tfd.DetEtendOnLOSLd, LegDict=tfd.TorLegd, Colis=tfd.DetSAngColis, draw=True, a4=True, Test=True, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Plot the etendue of the selected LOS along it, with or without collision detection - - The number of points along the LOS where the etendue is computed can be specified via arguments, as well as the numerical integration method. - See :meth:`~tofu.geom.Detect.plot_Etendue_AlongLOS` for details - Arguments Length, NP, Modes, RelErr, dX12, dX12Mode, Ratio, Colis, LOSRef are fed to :meth:`~tofu.geom.Detect.calc_Etendue_AlongLOS` - Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to :meth:`~tofu.geom.GDetect.select` - - Parameters - ---------- - ax : None or plt.Axes - Axes to be used for plotting, if None a new figure and appropriate axes are created - NP : int - Number of points along the LOS at which the Etendue should be computed - kMode : str - Flag indicating whether the distance on the line should be plotted as abolute distance ('abs') or relative to the total length ('rel') - Modes : str or list - Flag or list of flags indicating which integration method should be used - Colis : bool - Flag indicating whether collision detection should be used - LOSRef : None or str - Flag indicating which LOS should be used - Ldict : dict - Dictionary of properties for plotting the result - LegDict : None / dict - If None, no legend is plotted, else LegDict is fed to :meth:'~matplotlib.pyplot.Axes.legend' - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the created figure should have a4 dimensions (useful for printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used for plotting - - """ - if ind is None: - ind = self.select(Val=Val,Crit=Crit,InOut=InOut,Out=int) - elif ind.dtype.name=='bool': - ind = ind.nonzero()[0] - LD = [self.LDetect[ii] for ii in ind] - nD = len(LD) - LOSRef = self._LOSRef if LOSRef is None else LOSRef - for ii in range(0,nD): - ax = LD[ii].plot_Etend_AlongLOS(ax=ax, NP=NP, kMode=kMode, Modes=Modes, RelErr=RelErr, dX12=dX12, dX12Mode=dX12Mode, Ratio=Ratio, LOSRef=LOSRef, - LOSPts=LOSPts, Ldict=Ldict, LegDict=None, Colis=Colis, draw=False, a4=a4, Test=Test) - if LegDict is not None: - ax.legend(**LegDict) - if draw: - ax.figure.canvas.draw() - return ax
- -
[docs] def plot_Sinogram(self, ax=None, Proj='Cross', Elt='DLV', Ang='theta', AngUnit='rad', Sketch=True, Ddict=tfd.DetImpd, Ldict=tfd.LOSMImpd, Vdict=tfd.TorPFilld, LegDict=tfd.TorLegd, LOSRef=None, draw=True, a4=False, Test=True, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Plot the VOS of all or of a subset of the :class:`~tofu.geom.Detect` instances in projection space, optionally also the associated :class:`~tofu.geom.Ves` object and reference :class:`~tofu.geom.LOS` - - See :meth:`~tofu.geom.Detect.plot_Sinogram` for details - Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to :meth:`~tofu.geom.GDetect.select` - - """ - ax = _tfg_p.GLDetect_plot_Sinogram(self, Proj=Proj, ax=ax, Elt=Elt, Sketch=Sketch, Ang=Ang, AngUnit=AngUnit, Ddict=Ddict, Ldict=Ldict, Vdict=Vdict, LegDict=LegDict, LOSRef=LOSRef, draw=draw, a4=a4, Test=Test, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - return ax
- -
[docs] def plot_Etendues(self, Mode='Etend', Elt='', ax=None, Adict=tfd.GDetEtendMdA, Rdict=tfd.GDetEtendMdR, Edict=tfd.GDetEtendMdS, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Plot the etendues of all or a subset of the :class:`~tofu.geom.Detect` instances for the chosen :class:`~tofu.geom.LOS` - - A given Detect+Optics system has a VOS, under proper conditions, this VOS can be approximated by a LOS, but the choice of the LOS is not unique, there is an infinite number of possible LOS in a single VOS. - The LOS automatically computed by tofu os the 'natural' option : goes from the midlle of the Detect area throught the middle of the optics. - Then tofu automatically computes the associated etendue. - This methods plots all the etendues of all the chosen :class:`~tofu.geom.Detect` instances for the chosen :class:`~tofu.geom.LOS`, which is by default the 'natural' LOS computed by tofu - - Parameters - ---------- - Mode : str - Flasg indicating whether to plot the etendue ('Etend') or a geometrical calibration factor ('Calib') computed as the 4pi/etendue - Elt : str - Flag indicating whether to plot, in addition to the etendue, also the direct ('A') and reverse ('R') 0-order approximation of the etendue - ax : None or plt.Axes - Axes to be used for plotting, if None a new figure and appropriate axes are created - Adict : dict - Dictionary of properties for plotting the direct 0-order approximation of the etendue (if 'A' in Elt), fed to :meth:`~matplotlib.pyplot.Axes.plot` - Rdict : dict - Dictionary of properties for plotting the reverse 0-order approximation of the etendue (if 'R' in Elt), fed to :meth:`~matplotlib.pyplot.Axes.plot` - Edict : dict - Dictionary of properties for plotting the etendue, fed to :meth:`~matplotlib.pyplot.Axes.plot` - LegDict : dict - If None, no legend is plotted, else LegDict is fed to :meth:'~matplotlib.pyplot.Axes.legend' - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the created figure should have a4 dimensions (useful for printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used for plotting - - """ - ax = _tfg_p.Plot_Etendues_GDetect(self, ax=ax, Mode=Mode, Elt=Elt, Adict=Adict, Rdict=Rdict, Edict=Edict, LegDict=LegDict, draw=draw, a4=a4, Test=Test, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - return ax
- - -
[docs] def plot_Sig(self, ffSig, extargs={}, Method='Vol', Mode='simps', ax=None, Leg='', Sdict=tfd.GDetSigd, LegDict=tfd.TorLegd, draw=True, a4=False, Test=True, - PreComp=True, epsrel=tfd.DetSynthEpsrel, dX12=tfd.DetSynthdX12, dX12Mode=tfd.DetSynthdX12Mode, ds=tfd.DetSynthds, dsMode=tfd.DetSynthdsMode, MarginS=tfd.DetSynthMarginS, Colis=tfd.DetCalcSAngVectColis, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - """ Plot the ignal computed for each or a subset of the :class:`~tofu.geom.Detect` instances - - If the signal is not directly provided as an array, it is computed from a function. - If ffSig is a callable function, arguments ffSig, extargs, Method, Mode, PreComp, epsrel, dX12, dX12Mode, ds, dsMode, MarginS, Colis and Test are fed to :meth:`~tofu.geom.GDetect.calc_Sig` - Arguments ind, Val, Crit, PreExp, PostExp, Log and InOut are fed to :meth:`~tofu.geom.GDetect.select` - - Parameters - ---------- - ffSig np.ndarray or callable - Either a np.ndarray containing the signal to be plotted (of shape (ND,) or (N,ND) where ND is the number of detectors to be plotted) or a callable to be fed to for computing the signal - ax : None or plt.Axes - Axes to be used for plotting, if None a new figure and appropriate axes are created - Sdict : dict - Dictionary of properties for plotting the signal, fed to :meth:`~matplotlib.pyplot.Axes.plot` - Leg : str - Label to be used for the plot - LegDict : dict - If None, no legend is plotted, else LegDict is fed to :meth:'~matplotlib.pyplot.Axes.legend' - draw : bool - Flag indicating whether to draw the figure - a4 : bool - Flag indicating whether the created figure should have a4 dimensions (useful for printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - ax : plt.Axes - The axes used for plotting - - """ - assert type(ffSig) is np.ndarray or hasattr(ffSig,'__call__'), "Arg ffSig must be either pre-computed np.ndarray of signals or a callable function for computing it (fed to GDetect.calc_Sig()) !" - if type(ffSig) is not np.ndarray: - ffSig, GD = self.calc_Sig(ffSig, extargs=extargs, Method=Method, Mode=Mode, PreComp=PreComp, epsrel=epsrel, dX12=dX12, dX12Mode=dX12Mode, ds=ds, dsMode=dsMode, MarginS=MarginS, Colis=Colis, Test=Test) - else: - GD, Leg, LOSRef = _tfg_p._get_LD_Leg_LOSRef(self, Leg=Leg, LOSRef=LOSRef, ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - assert (ffSig.ndim==1 and ffSig.size==len(GD)) or (ffSig.ndim==2 and ffSig.shape[1]==len(GD)), "Arg ffSig does not have the good shape !" - ax = _tfg_p.Plot_Sig_GDetect(GD, ffSig, ax=ax, Leg=Leg, Sdict=Sdict, LegDict=LegDict, draw=draw, a4=a4, Test=Test) - return ax
- - - def _plot_Res(self, ax=None, plotfunc='scatter', NC=20, CDict=None, draw=True, a4=False, Test=True): - """ see :meth:`~tofu.geom.Detect._plot_Res` for details - - """ - assert self._Res_Done, "Cannot plot the resolution before it has been computed on a mesh grid with self.set_Res() !" - ax = _tfg_p._Resolution_Plot(self._Res_Pts, self._Res_Res, self, self._Res_DetLim, ax=ax, plotfunc=plotfunc, NC=NC, CDict=CDict, draw=draw, a4=a4, Test=Test) - return ax - - -
[docs] def save(self,SaveName=None,Path=None,Mode='npz', compressed=False, SynthDiag=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - In the case of Detect and GDetect instances, there is an additional keyword argument 'SynthDiag' which allows to **not** save the pre-computed 3D mesh of the VOS for synthetic diagnostic. - Indeed, this pre-computed data is often large and results in big files. Not saving it results in significantly smaller files, and it can be re-computed when loading the instance. - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - SynthDiag : bool - Flag indicating whether the pre-computed mesh for synthetic diagnostics calculations shall be saved too (can be heavy, if False, it will be re-computed when opening the saved object) - - """ - if not SynthDiag: - for ii in range(0,self.nDetect): - self.LDetect[ii]._reset_SynthDiag() - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - - - -def _get_OpticsFromLDetect(LD): - LO = [] - for ii in range(0,len(LD)): - if ii==0: - LO += LD[ii].Optics - else: - for jj in range(0,len(LD[ii].Optics)): - if not any([tfpf.CheckSameObj(aa, LD[ii].Optics[jj], ['Poly','Name','SaveName','Type']) for aa in LO]): - LO.append(LD[ii].Optics[jj]) - return LO - - -def _GDetect_set_Defaults(LDetect=None, Exp=None, Diag=None, Sino_RefPt=None, LOSRef=None): - if not LDetect is None: - if type(LDetect) is list: - Diag = Diag if not Diag is None else LDetect[0].Id.Diag - Exp = Exp if not Exp is None else LDetect[0].Id.Exp - Sino_RefPt = Sino_RefPt if not Sino_RefPt is None else LDetect[0].Sino_RefPt - LOSRef = LOSRef if not LOSRef is None else LDetect[0]._LOSRef - else: - Diag = Diag if not Diag is None else LDetect.Id.Diag - Exp = Exp if not Exp is None else LDetect.Id.Exp - Sino_RefPt = Sino_RefPt if not Sino_RefPt is None else LDetect.Sino_RefPt - LOSRef = LOSRef if not LOSRef is None else LDetect._LOSRef - LDetect = [LDetect] - return LDetect, Exp, Diag, Sino_RefPt, LOSRef - - - - - -def _GDetect_check_inputs(Id=None, LDetect=None, Type=None, Optics=None, Vess=None, Sino_RefPt=None, Exp=None, Diag=None, shot=None, CalcEtend=None, CalcSpanImp=None, CalcCone=None, CalcPreComp=None, Calc=None, Verb=None, - Etend_RelErr=None, Etend_dX12=None, Etend_dX12Mode=None, Etend_Ratio=None, Colis=None, LOSRef=None, Etend_Method=None, - MarginRMin=None, NEdge=None, NRad=None, Nk=None, - Cone_DRY=None, Cone_DXTheta=None, Cone_DZ=None, Cone_NPsi=None, Cone_Nk=None, - arrayorder=None, Clock=None, SavePath=None, dtime=None, dtimeIn=None): - - if not Id is None: - assert type(Id) in [str,tfpf.ID], "Arg Id must be a str or a tfpf.ID object !" - if not LDetect is None: - assert type(LDetect) is list and all([type(dd) is Detect for dd in LDetect]), "Arg LDetect must be a list of Detect instances !" - assert all([tfpf.CheckSameObj(LDetect[0].Ves,dd.Ves, ['Poly','Name','SaveName']) for dd in LDetect]), "All Detect objects must have the same :class:`~tofu.geom.Ves` object !" - assert all([np.all(dd.Sino_RefPt==LDetect[0].Sino_RefPt) for dd in LDetect]) - assert all([dd.Id.Exp==LDetect[0].Id.Exp for dd in LDetect]), "All Detect instances in LDetect must belong to the same Exp !" - assert all([dd.Id.Diag==LDetect[0].Id.Diag for dd in LDetect]), "All Detect instances in LDetect must belong to the same Diag !" - if not Exp is None: - assert Exp==LDetect[0].Id.Exp, "Arg Exp must be identical to the LDetect Exp !" - if not Diag is None: - assert Diag==LDetect[0].Id.Diag, "Arg Diag must be identical to the LDetect Diag !" - if not arrayorder is None: - assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F'] !" - bools = [Clock,dtimeIn] - if any([not aa is None for aa in bools]): - assert all([aa is None or type(aa) is bool for aa in bools]), " Args [CalcEtend,CalcSpanImp,CalcCone,CalcPreComp,Calc,Verb,Colis,Clock,dtimeIn] must all be bool !" - if not Exp is None: - assert Exp in tfd.AllowedExp, "Arg Exp must be in "+str(tfd.AllowedExp)+" !" - assert Type is None, "Arg Type must be None for GDetect objects !" - Iter2 = [Sino_RefPt] - if any([not aa is None for aa in Iter2]): - assert all([aa is None or (hasattr(aa,'__iter__') and np.asarray(aa).shape==(2,)) for aa in Iter2]), "Args [Sino_RefPt] must be an iterable with len()=2 !" - strs = [Diag,SavePath] - if any([not aa is None for aa in strs]): - assert all([aa is None or type(aa) is str for aa in strs]), "Args [dX12Mode,LOSRef,Method,Diag,SavePath] must all be str !" - ints = [shot] - if any([not aa is None for aa in ints]): - assert all([aa is None or type(aa) is int for aa in ints]), "Args [shot,NEdge,NRad] must be int !" - if not dtime is None: - assert type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - - - - -def _GDetect_Calc_SAngNb(GD, Pts=None, Proj='Cross', Slice='Int', DRY=None, DXTheta=None, DZ=None, Colis=tfd.DetSAngColis, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In'): - if ind is None: - ind = GD.select(Val=Val,Crit=Crit,InOut=InOut,Out=int) - elif ind.dtype.name=='bool': - ind = ind.nonzero()[0] - LD = [GD.LDetect[ii] for ii in ind] - nD = len(LD) - if DRY is None: - DRY = min([dd._Cone_Poly_DR for dd in LD]) if GD.Ves.Type=='Tor' else min([dd._Cone_Poly_DY for dd in LD]) - if DXTheta is None: - DXTheta = min([dd._Cone_Poly_DTheta for dd in LD]) if GD.Ves.Type=='Tor' else min([dd._Cone_Poly_DX for dd in LD]) - if DZ is None: - DZ = min([dd._Cone_Poly_DZ for dd in LD]) - # Get the mesh if Pts not provided - if Pts is None: - LLOS = GD.get_GLOS().LLOS - LLOS = [LLOS[ii] for ii in ind] - SingPts = np.vstack(tuple([np.vstack((ll.PIn, ll.PIn+0.002*ll.u, 0.5*(ll.POut+ll.PIn), ll.POut-0.002*ll.u , ll.POut)) for ll in LLOS])).T - LSpan_Z = [dd._Span_Z for dd in LD] - if GD.Ves.Type=='Tor': - LSpan_R = [dd._Span_R for dd in LD] - LSpan_Theta = [dd._Span_Theta for dd in LD] - LSpan_Z = [dd._Span_Z for dd in LD] - X1, XIgn, Z, NX1, NIgn, NZ, Pts, out = _tfg_c._get_CrossHorMesh(SingPoints=SingPts, LSpan_R=LSpan_R, LSpan_Theta=LSpan_Theta, LSpan_Z=LSpan_Z, DR=DRY, DTheta=DXTheta, DZ=DZ, - VType=GD.Ves.Type, Proj=Proj, ReturnPts=True) - elif GD.Ves.Type=='Lin': - LSpan_X = [dd._Span_X for dd in LD] - LSpan_Y = [dd._Span_Y for dd in LD] - XIgn, X1, Z, NIgn, NX1, NZ, Pts, out = _tfg_c._get_CrossHorMesh(SingPoints=SingPts, LSpan_X=LSpan_X, LSpan_Y=LSpan_Y, LSpan_Z=LSpan_Z, DX=DXTheta, DY=DRY, DZ=DZ, VType=GD.Ves.Type, Proj=Proj, ReturnPts=True) - - # Get the Solid angle (itself, or Int or Max) - SA = np.zeros((nD,Pts.shape[1])) - if Slice in ['Int','Max']: - for ii in range(0,nD): - FF = LD[ii]._get_SAngIntMax(Proj=Proj, SAng=Slice) - SA[ii,:] = FF(Pts, In=out) - if np.any(SA[ii,:]<0.): - print " SAngNb : ", LD[ii].Id.Name, " has negative SAng values !" - else: - if Proj=='Hor': - Span = [min([oo[0] for oo in LSpan_Z]), max([oo[1] for oo in LSpan_Z])] - else: - Span = [min([oo[0] for oo in LSpan_Theta]), max([oo[1] for oo in LSpan_Theta])] if GD.Ves.Type=='Tor' else [min([oo[0] for oo in LSpan_X]), max([oo[1] for oo in LSpan_X])] - assert Slice>=Span[0] and Slice<=Span[1], "Arg Slice is outside of the interval were non-zeros values can be found !" - Ptsint = _tfg_gg.CoordShift(Pts, In=out, Out='(X,Y,Z)', CrossRef=Slice) - for ii in range(0,nD): - SA[ii,:] = LD[ii].calc_SAngVect(Ptsint, In='(X,Y,Z)', Colis=Colis, Test=True)[0] - if np.any(SA[ii,:]<0.): - print " SAngNb : ", LD[ii].Id.Name, " has negative SAng values !" - Nb = np.sum(SA>0.,axis=0) - SA = np.sum(SA,axis=0) - return SA, Nb, Pts - - - - - - - - - - - - - - - - - - - - - - - - - - - - -""" -############################################################################### -############################################################################### - Special high-level functions -############################################################################### -""" - - - -def _Calc_Resolution(GLD, Pts=None, CrossMesh=[0.01,0.01], CrossMeshMode='abs', Mode='Iso', Amp=1., Deg=0, steps=0.001, Thres=0.05, ThresMode='rel', ThresMin=0.01, - IntResCross=[0.1,0.1], IntResCrossMode='rel', IntResLong=0.05, IntResLongMode='rel', - Eq=None, PlotDetail=False, Cdict=dict(tfd.DetConed), Ntt=100, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', SaveName=None, SavePath='./', save=False, Test=True): - if Test: - assert type(GLD) in [list,Detect,GDetect], "Arg GLD must be a Detect or list of such or a GDetect instance !" - assert Pts is None or (hasattr(Pts,'__iter__') and np.asarray(Pts).ndim in [1,2]), "Arg Pts must be an iterable with Points coordinates !" - assert len(CrossMesh)==2, "Arg CrossMesh must be a len()==2 iterable with the desired mesh resolution in the two directions !" - assert CrossMeshMode in ['abs','rel'], "Arg CrossMeshMode must be in ['abs','rel'] !" - assert Mode in ['Iso','HorVert','Equi'], "Arg Mode must be in ['Iso','HorVert','Equi'] !" - assert type(Amp) is float, "Arg Amp must be a float (amplitude of the emissivity) !" - assert type(Deg) is int, "Arg Deg must be a int (degree of the bivariate b-splines) !" - assert type(steps) is float or (hasattr(steps,'__iter__') and len(steps)==2), "Arg steps must be a float or an iterable of 2 floats (incremental increase of emissivity size, in absolute value, meters or rad) !" - assert type(Thres) is float or hasattr(Thres,'__iter__'), "Arg Thres must be a float or an iterable (fraction of the initial signal above which a change can be considered visible) !" - assert len(IntResCross)==2, "Arg IntResCross must be an iterable of len()==2 with absolute resolution to be used for signal integration ([DRY,DZ]) !" - assert type(IntResLong) is float, "Arg IntResLong must be a float with the absolute resolution to be used for signal integration (DXTheta) !" - assert Eq is None or hasattr(Eq,'__call__'), "Arg Eq must be None or a callable function (delivering etheta tangent to flux surface for each point in cross-section) !" - - # Convert to list of Detect, with common legend if GDetect - GLD, Leg, LOSRef = _tfg_p._get_LD_Leg_LOSRef(GLD, Leg=None, LOSRef=None, ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut) - ND = len(GLD) - Ves = GLD[0].Ves - if hasattr(Thres,'__iter__'): - Thres = np.asarray(Thres) - assert Thres.ndim==1 and Thres.size==len(GLD), "If an iterable, arg Thres must be the same len() as the input list of Detect !" - - DXTheta = np.array([dd._Span_Theta for dd in GLD]) if Ves.Type=='Tor' else np.array([dd._Span_X for dd in GLD]) - DXTheta = [np.nanmin(DXTheta[:,0]), np.nanmax(DXTheta[:,1])] - - # Build name if save - if save: - if SaveName is None: - Thresstr = "Thres{0:02.0f}-{1:02.0f}".format(100.*ThresMin,100.*Thres) - Thresstr = Thresstr+"Rel" if ThresMode.lower()=='rel' else Thresstr+"Abs" - Stepstr = "Step{0:03.1f}mm".format(1000.*steps) - Intstr = "IntCross{0:02.0f}-{1:02.0f}mm".format(1000.*IntResCross[0],1000.*IntResCross[1]) if IntResCrossMode.lower()=='abs' else "IntCross{0:4.2f}-{1:4.2f}".format(IntResCross[0],IntResCross[1]) - Intstr = Intstr+"_IntLong{0:02.0f}mm".format(1000.*IntResLong) if IntResLongMode.lower()=='abs' else Intstr+"_IntLong{0:4.2f}".format(IntResLong) - SaveName = 'Res_'+GLD[0].Id.Exp+'_Diag'+GLD[0].Id.Diag+'_'+Mode+'_'+Thresstr+'_'+Stepstr+'_'+Intstr - print SaveName - - # Prepare mesh - if Pts is None: - Pts, X1, X2, NumX1, NumX2 = Ves.get_MeshCrossSection(CrossMesh=CrossMesh, CrossMeshMode=CrossMeshMode, Test=True) - else: - Pts = np.asarray(Pts) - Pts = Pts if Pts.ndim==2 else Pts.reshape((Pts.size,1)) - assert Pts.shape[0]==2, "Arg Pts must be provided in (R,Z) or (Y,Z) coordinates (for Ves.Type=Tor or Ves.Type=Lin) !" - In = '(R,Z)' if Ves.Type=='Tor' else '(Y,Z)' - - ind = np.vstack([dd.isInside(Pts, In=In) for dd in GLD]) - - # Prepare THR fraction - Thres = Thres*np.ones((ND,),dtype=float) if type(Thres) is float else Thres - if ThresMode=='abs': - THR = np.copy(Thres) - else: - # Restrict to points initially detected by at least one detector - Pts = Pts[:,np.any(ind,axis=0)] - ind = ind[:,np.any(ind,axis=0)] - NP = Pts.shape[1] - - LDetLim = [] - if Mode=='Iso': - tt = np.linspace(0.,2.*np.pi,Ntt) - Res = np.nan*np.ones((NP,)) - for ii in range(0,NP): - print " Resolution : Point", ii+1, "/", NP - size = 0. - InitSigs = np.zeros((ND,),dtype=float) - if np.any(ind[:,ii]): - Ind = ind[:,ii].nonzero()[0] - pp, Emiss, dV = _Resolution_PpsEmissdV_Iso(Pts[:,ii], DXTheta, size=size, Deg=Deg, Amp=Amp, IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, - IntResLong=IntResLong, IntResLongMode=IntResLongMode, VType=Ves.Type) - InitSigs[ind[:,ii]] = np.asarray([np.sum(Emiss * dV * GLD[jj].calc_SAngVect(pp, In='(X,Y,Z)', Colis=True)[0]) for jj in Ind]) - if not np.any(InitSigs[ind[:,ii]]>0.): - continue - if ThresMode=='rel': - THR = np.min(Thres)*np.nanmin(InitSigs[ind[:,ii]])*np.ones((ND,)) - THR[ind[:,ii]] = Thres[ind[:,ii]]*InitSigs[ind[:,ii]] - if not ThresMin is None: - THRmin = ThresMin*np.nanmax(InitSigs[ind[:,ii]]) - THR[THR<THRmin] = THRmin - - Lsigs = [np.copy(InitSigs)] - Lsize = [size] - while not np.any(np.abs(Lsigs[-1]-InitSigs)>THR): - Lsize.append(Lsize[-1]+steps) - pp, Emiss, dV = _Resolution_PpsEmissdV_Iso(Pts[:,ii], DXTheta, size=Lsize[-1], Deg=Deg, Amp=Amp, IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, - IntResLong=IntResLong, IntResLongMode=IntResLongMode, VType=Ves.Type) - Lsigs.append(np.asarray([np.sum(Emiss * dV * dd.calc_SAngVect(pp, In='(X,Y,Z)', Colis=True)[0]) for dd in GLD])) - - if len(Lsize) == 2: - #print " ...Refining..." - Lsigs = [np.copy(InitSigs)] - Lsize = [0.] - stepsbis = steps/5. - while not np.any(np.abs(Lsigs[-1]-InitSigs)>THR): - Lsize.append(Lsize[-1]+stepsbis) - pp, Emiss, dV = _Resolution_PpsEmissdV_Iso(Pts[:,ii], DXTheta, size=Lsize[-1], Deg=Deg, Amp=Amp, IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, - IntResLong=IntResLong, IntResLongMode=IntResLongMode, VType=Ves.Type) - Lsigs.append(np.asarray([np.sum(Emiss * dV * dd.calc_SAngVect(pp, In='(X,Y,Z)', Colis=True)[0]) for dd in GLD])) - - # Identify the Detect that passed the threshold and interpolate an accurate value of Res from Lsize - indDet = (np.abs(Lsigs[-1]-InitSigs)>THR).nonzero()[0][0] - ss = [Lsigs[-2][indDet],Lsigs[-1][indDet]] - crit = InitSigs[indDet]+THR[indDet] if Lsigs[-1][indDet] > InitSigs[indDet]+THR[indDet] else InitSigs[indDet]-THR[indDet] - Res[ii] = (np.diff(Lsize[-2:]))/np.diff(ss) * (crit-Lsigs[-2][indDet]) + Lsize[-2] - LDetLim.append(GLD[indDet].Id.Name) - - if PlotDetail: - print 'InitSigs[ind[:,ii]]', InitSigs[ind[:,ii]] - print 'THR[ind[:,ii]]', THR[ind[:,ii]] - ax1, ax2, ax3 = _tfg_p._Resolution_PlotDetails(GLD, ND, Pts[:,ii], np.array(Lsize), np.vstack(Lsigs), InitSigs, len(Lsigs), indDet, Ind, Res[ii], Ves, THR, tt=tt, Cdict=dict(Cdict), draw=True) - #print " ", GLD[indDet].Id.Name, Res[ii] - - if save: - np.savez(SavePath+SaveName+'.npz', Res=Res, LDetLim=LDetLim, Pts=Pts, Mode=Mode, steps=steps, Thres=Thres, ThresMode=ThresMode, ThresMin=ThresMin, - IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, IntResLong=IntResLong, IntResLongMode=IntResLongMode) - return Res, Pts, LDetLim, Mode, steps, Thres, ThresMode, ThresMin, IntResCross, IntResCrossMode, IntResLong, IntResLongMode - else: - Res0, Res1 = np.nan*np.ones((NP,)), np.nan*np.ones((NP,)) - for ii in range(0,NP): - ind = [dd.isInside(Pts[:,ii:ii+1], In=In) for dd in GLD] - if save: - np.savez(SavePath+SaveName+'.npz', Res0=Res0, Res1=Res1, LDetLim=LDetLim, Pts=Pts, Mode=Mode, steps=steps, Thres=Thres, ThresMode=ThresMode, ThresMin=ThresMin, - IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, IntResLong=IntResLong, IntResLongMode=IntResLongMode) - return [Res0,Res1], Pts, LDetLim, Mode, steps, Thres, ThresMode, ThresMin, IntResCross, IntResCrossMode, IntResLong, IntResLongMode - - - -def _Resolution_PpsEmissdV_Iso(Pt, DXTheta, size=0., Deg=0, Amp=1., IntResCross=[0.1,0.1], IntResCrossMode='rel', IntResLong=0.05, IntResLongMode='rel', VType='Tor'): - Nxtheta = int(np.diff(DXTheta)/IntResLong) if IntResLongMode=='abs' else int(1./IntResLong) - xtheta = np.linspace(DXTheta[0],DXTheta[1],Nxtheta) - if size==0.: - pp = np.array([Pt[0]*np.cos(xtheta), Pt[0]*np.sin(xtheta), Pt[1]*np.ones((Nxtheta,))]) if VType=='Tor' else np.array([xtheta, Pt[0]*np.ones((Nxtheta,)), Pt[1]*np.ones((Nxtheta,))]) - Emiss = Amp * np.ones((pp.shape[1],)) - dV = IntResLong - else: - # Get Number of points, make sure it is odd (to get the center) - NRY = max(3,int(np.ceil(size/IntResCross[0]))) if IntResCrossMode=='abs' else int(1./IntResCross[0]) - NZ = max(3,int(np.ceil(size/IntResCross[1]))) if IntResCrossMode=='abs' else int(1./IntResCross[1]) - NRY = NRY+1 if NRY%2==0 else NRY - NZ = NZ+1 if NZ%2==0 else NZ - - RY = np.linspace(Pt[0]-0.5*size,Pt[0]+0.5*size,NRY) - Z = np.linspace(Pt[1]-0.5*size,Pt[1]+0.5*size,NZ) - RRYY = np.tile(RY,(NZ,1)).flatten() - ZZ = np.tile(Z,(NRY,1)).T.flatten() - - r = np.hypot(RRYY-Pt[0], ZZ-Pt[1]) - ind = r<=size/2. - - ds = IntResCross[1]*((RRYY+IntResCross[0]/2.)**2 - (RRYY-IntResCross[0]/2.)**2)/2. if VType=='Tor' else IntResCross[0]*IntResCross[1]*np.ones((RRYY.size,)) - dS = np.sum(ds[ind]) - - if VType=='Tor': - RRRYYY = np.tile(RRYY[ind],(Nxtheta,1)).flatten() - ZZZ = np.tile(ZZ[ind],(Nxtheta,1)).flatten() - TTT = np.tile(xtheta,(ind.sum(),1)).T.flatten() - pp = np.array([RRRYYY*np.cos(TTT), RRRYYY*np.sin(TTT), ZZZ]) - else: - pp = np.array([np.tile(xtheta,(ind.sum(),1)).T.flatten(), np.tile(RRYY[ind],(Nxtheta,1)).flatten(), np.tile(ZZ[ind],(Nxtheta,1)).flatten()]) - dV = IntResLong*np.tile(ds[ind],(Nxtheta,1)).flatten() - if Deg==0: - Emiss = Amp/dS * np.ones((ind.sum()*Nxtheta,)) - - return pp, Emiss, dV - - - - -def _Plot_Resolution(GLD, ax=None, Pts=None, Res=[0.01,0.01], ResMode='abs', Mode='Iso', Amp=1., Deg=0, steps=0.001, Thres=0.05, ThresMode='rel', ThresMin=None, - IntResCross=[0.1,0.1], IntResCrossMode='rel', IntResLong=0.05, IntResLongMode='rel', - Eq=None, Cdict=dict(tfd.DetConed), tt=np.linspace(0.,2.*np.pi,100), - plotfunc='scatter', NC=20, CDictRes=None, - ind=None, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Test=True): - - Res, LDetLim, Pts = _Calc_Resolution(GLD, Pts=Pts, Res=Res, ResMode=ResMode, Mode=Mode, Amp=Amp, Deg=Deg, steps=steps, Thres=Thres, ThresMode=ThresMode, ThresMin=ThresMin, - IntResCross=IntResCross, IntResCrossMode=IntResCrossMode, IntResLong=IntResLong, IntResLongMode=IntResLongMode, - Eq=Eq, PlotDetail=False, Cdict=Cdict, tt=tt, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Test=Test) - ax = _tfg_p._Resolution_Plot(Pts, Res, GLD, LDetLim, ax=ax, plotfunc=plotfunc, NC=NC, CDictRes=CDictRes, - ind=ind, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Test=Test) - return ax - - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/pathfile.html b/doc/build/html/_modules/tofu/pathfile.html deleted file mode 100644 index cad8f8521..000000000 --- a/doc/build/html/_modules/tofu/pathfile.html +++ /dev/null @@ -1,1692 +0,0 @@ - - - - - - - tofu.pathfile — tofu v1.1 - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.pathfile

-# -*- coding: utf-8 -*-
-"""
-Created on Wed Jul 30 14:37:31 2014
-
-@author: didiervezinet
-"""
-# Built-in
-import os                   # For accessing cuurent working direcVesy
-import subprocess
-import getpass
-import inspect
-import warnings
-
-# Common
-import numpy as np
-import datetime as dtm
-
-# ToFu specific
-from tofu import __version__
-
-__author__ = "Didier Vezinet"
-__all__ = ["ID",
-           "SaveName_Conv","CheckSameObj","SelectFromListId",
-           "get_InfoFromFileName","get_FileFromInfos",
-           "convert_units","get_PolyFromPolyFileObj",
-           "Save_Generic","Open"]
-
-dModes = {'geom':'TFG', 'data':'TFD'}
-lCls = ['Ves','Struct',
-        'Rays','LOS','LOSCam1D','LOSCam2D',
-        'GDetect','Detect','Cam1D','Cam2D',
-        'Data']
-dPref = {'Exp':'Exp','Diag':'Dg','shot':'sh','Deg':'Deg',
-         'version':'Vers','usr':'U'}
-defInclude = ['Mod','Cls','Type','Exp','Deg','Diag','Name','shot']
-
-"""
-###############################################################################
-###############################################################################
-###############################################################################
-                Path Handling
-###############################################################################
-###############################################################################
-"""
-
-def _set_arrayorder(obj, arrayorder):
-    assert arrayorder in ['C','F'], "Arg arrayorder must be in ['C','F']"
-    Lattr = dir(obj)
-    for aa in Lattr:
-        bb = getattr(obj,aa)
-        if type(bb) is np.array and bb.ndim>1:
-            try:
-                if arrayorder=='C':
-                    setattr(obj,aa,np.ascontiguousarray(bb))
-                else:
-                    setattr(obj,aa,np.asfortranarray(bb))
-            except Exception:
-                pass
-    obj._arrayorder = arrayorder
-
-
-
[docs]def convert_units(P, In='cm', Out='m'): - """ - Quickly convert distance units between meters, centimeters and millimeters - """ - c = {'m':{'mm':1000.,'cm':100.,'m':1.}, - 'cm':{'mm':10.,'cm':1.,'m':0.01}, - 'mm':{'mm':1.,'cm':0.1,'m':0.001}} - return c[In][Out]*P
- - - -
[docs]def get_PolyFromPolyFileObj(PolyFileObj, SavePathInp=None, units='m', comments='#', skiprows=0, shape0=2): - """ Return a polygon as a np.ndarray, extracted from a txt file or from a ToFu object, with appropriate units - - Useful for :meth:`tofu.plugins.AUG.Ves._create()` - - Parameters - ---------- - PolyFileObj : str / :mod:`tofu.geom` object / np.ndarray - The source where the polygon is to be found, either: - - str: the name of a file containing the coorindates of a polygon to be loaded with :meth:`numpy.loadtxt()` - - A :mod:`tofu.geom` object: with attribute 'Poly' - - np.ndarray: an 2-dimensional array containing the 2D cartesian coordinates of a polygon - SavePathInp : str / None - The absolute path where the input file is stored - units : str - Flag indicating in which units the polygon coordinates is expressed in the input file / object / array (will be converted to meters) - comments : str - Parameter to be fed to :meth:`numpy.loadtxt()` if PolyFileObj is a file name - skiprows : int - Parameter to be fed to :meth:`numpy.loadtxt()` if PolyFileObj is a file name - shape0 : int - Specifies whether the loaded array is a (2,N) or (3,N) array (transposed it if necessary) - - Returns - ------- - Poly : np.ndarray - (2,N) np.ndarray containing the 2D cartesian coordinates of the polygon, where N is the number of points - addInfo : dict - Dictionaryb containing information on the origin of the polygon, for the record (e.g.: the name and absolute path of the file from which it was extracted) - - """ - assert type(PolyFileObj) in [list,str] or hasattr(PolyFileObj,"Poly") or np.asarray(PolyFileObj).ndim==2, "Arg PolyFileObj must be str (PathFileExt), a ToFu object with attribute Poly or an iterable convertible to 2d np.ndarray !" - - # Load PolyFileObj if file and check shape - addInfo = {} - if type(PolyFileObj) in [list,str]: - PathFileExt = get_FileFromInfos(Path=SavePathInp, Name=PolyFileObj) - # Include PathFileExt in ID for tracability - addInfo = {'Input':PathFileExt} - PolyFileObj = np.loadtxt(PathFileExt, dtype=float, comments=comments, delimiter=None, converters=None, skiprows=skiprows, usecols=None, unpack=False, ndmin=2) - elif hasattr(PolyFileObj,"Poly"): - addInfo = {'Input':PolyFileObj.Id.SaveName} - PolyFileObj = PolyFileObj.Poly - - Poly = np.asarray(PolyFileObj) - assert Poly.ndim==2 and shape0 in Poly.shape and max(Poly.shape)>=3 and not np.any(np.isnan(Poly)), "Arg np.asarray(PolyFileObj) must be a (2,N) or (N,2) np.ndarray with non NaNs !" - Poly = Poly if Poly.shape[0]==shape0 else Poly.T - Poly = convert_units(Poly, In=units, Out='m') - return Poly, addInfo
- - - - - - -""" -############################################################################### -############################################################################### -############################################################################### - Generic input checking and retrieving -############################################################################### -############################################################################### -""" - -# Deprecated ??? -def _check_NotNone(Dict): - for aa in Dict.keys(): - assert not Dict[aa] is None, "Arg "+aa+" must not be None !" - - -# Deprecated ??? -def _get_FromItself(obj, Dict): - for aa in Dict.keys(): - if Dict[aa] is None: - try: - Dict[aa] = getattr(obj,aa) - except: - pass - return Dict - - - -""" -############################################################################### -############################################################################### -############################################################################### - ID Class and naming -############################################################################### -############################################################################### -""" - -# Deprecated ???? -
[docs]class ID(object): - """ A class used by all ToFu objects as an attribute - - It stores all relevant data for the identification of instances - Stored info can be the name of the instance, the experiment and diagnostics - it belongs to, or other user-defined info - Also provides default names for saving the instances - - Parameters - ---------- - Cls : str - Class of the object on which info should be stored: - Name : str - Name of the instance (user-defined) - Should be a str without space ' ' or underscore '_' - (automatically removed if present) - Type : None / str - Type of object (i.e.: 'Tor' or 'Lin' for a :class:`~tofu.geom.Ves`) - Deg : None / int - Degree of the b-splines constituting the :mod:`tofu.mesh` object - Exp : None / str - Flag specifying the experiment (e.g.: 'WEST', 'AUG', 'ITER', 'JET'...) - Diag : None / str - Flag indicating the diagnostic (e.g.: 'SXR', 'HXR', 'Bolo'...) - shot : None / int - A shot number from which the instance is valid (for tracking changes) - SaveName : None / str - Overrides the default file name for saving (not recommended) - SavePath : None / str - Absolute path where the instance should be saved - USRdict : None / dict - A user-defined dictionary containing information about the instance - All info considered relevant can be passed here - (e.g.: thickness of the diode, date of installation...) - LObj : None / dict / list - Either: - - list: list of other ID instances of objects on which the created object depends (this list will then be sorted by class and formatted into a dictionary storign key attributes) - - dict: a ready-made such dictionary - - """ - - def __init__(self, Cls=None, Name=None, Type=None, Deg=None, - Exp=None, Diag=None, shot=None, SaveName=None, - SavePath=os.path.abspath('./'), - USRdict={}, LObj=None, fromdict=None, - Include=defInclude): - - if fromdict is None: - assert Cls is not None - assert Name is not None - self._check_inputs(Cls=Cls, Name=Name, Type=Type, Deg=Deg, - Exp=Exp, Diag=Diag, shot=shot, SaveName=SaveName, - SavePath=SavePath, USRdict=USRdict, - Include=Include) - - # Try to get the user name - self._version = __version__ - try: - self._usr = getpass.getuser() - except: - self._usr = None - - # Set fixed attributes - self._Mod, self._Cls = _extract_ModClsFrom_class(Cls) - self._Type, self._SavePath = Type, SavePath - self._Exp, self._Diag, self._shot = Exp, Diag, shot - self._Deg = Deg - - # Set variable attributes - self.set_Name(Name, SaveName=SaveName, Include=Include) - - self._LObj = {} - self.set_LObj(LObj) - self.set_USRdict(USRdict) - else: - self._fromdict(fromdict) - - def _fromdict(self, fd): - self._check_inputs(fromdict=fd) - # Set fixed attributes - self._Mod, self._Cls, self._Type = fd['Mod'], fd['Cls'], fd['Type'] - self._Exp, self._Diag, self._shot = fd['Exp'], fd['Diag'], fd['shot'] - self._Deg, self._SavePath = fd['Deg'], fd['SavePath'] - self._version, self._usr = fd['version'], fd['usr'] - self._USRdict = fd['USRdict'] - self._LObj = fd['LObj'] - # Set variable attributes - self._Name, self._SaveName = fd['Name'], fd['SaveName'] - # Check the original tofu version against the current version - if not self._version==__version__: - Str = self._Name+" was created from a different ToFu version !\n" - Str += "original : %s\n"%self._version - Str += "current : %s"%__version__ - warnings.warn(Str) - - def _todict(self): - d = {'Mod':self._Mod, 'Cls':self.Cls, 'Type':self.Type, - 'Name':self.Name, 'SaveName':self.SaveName, - 'SavePath':self.SavePath, 'Exp':self.Exp, 'Diag':self.Diag, - 'shot':self.shot, 'Deg':self._Deg, 'version':self._version, - 'usr':self._usr, 'USRdict':self.USRdict, 'LObj':self.LObj} - return d - - def _check_inputs(self, Cls=None, Name=None, Type=None, Deg=None, - Exp=None, Diag=None, shot=None, SaveName=None, - SavePath=None, USRdict=None, LObj=None, version=None, - usr=None, fromdict=None, Include=None): - _ID_check_inputs(Cls=Cls, Name=Name, Type=Type, Deg=Deg, Exp=Exp, - Diag=Diag, shot=shot, SaveName=SaveName, - SavePath=SavePath, USRdict=USRdict, LObj=LObj, - version=version, usr=usr, fromdict=fromdict, - Include=Include) - -
[docs] def set_Name(self, Name, SaveName=None, - Include=defInclude, - ForceUpdate=False): - """ Set the Name of the instance, automatically updating the SaveName - - The name should be a str without spaces or underscores (removed) - When the name is changed, if SaveName (i.e. the name used for saving) - was not user-defined, it is automatically updated - - Parameters - ---------- - Name : str - Name of the instance, without ' ' or '_' (automatically removed) - SaveName : None / str - If provided, overrides the default name for saving (not recommended) - Include: list - Controls how te default SaveName is generated - Each element of the list is a key str indicating whether an element - should be present in the SaveName - - """ - self._check_inputs(Name=Name, SaveName=SaveName, Include=Include) - self._Name = Name - self.set_SaveName(SaveName=SaveName, Include=Include, - ForceUpdate=ForceUpdate)
- -
[docs] def set_SaveName(self,SaveName=None, - Include=defInclude, - ForceUpdate=False): - """ Set the name for saving the instance (SaveName) - - SaveName can be either: - - provided by the user (no constraint) - not recommended - - automatically generated from Name and key attributes (cf. Include) - - Parameters - ---------- - SaveName : None / str - If provided, overrides the default name for saving (not recommended) - Include : list - Controls how te default SaveName is generated - Each element of the list is a key str indicating whether an element - should be present in the SaveName - ForceUpdate : bool - Flag indicating the behaviour when SaveName=None: - - True : A new SaveName is generated, overriding the old one - - False : The former SaveName is preserved (default) - """ - self._check_inputs(SaveName=SaveName, Include=Include) - if not hasattr(self,'_SaveName_usr'): - self._SaveName_usr = (SaveName is not None) - # If SaveName provided by user, override - if SaveName is not None: - self._SaveName = SaveName - self._SaveName_usr = True - else: - # Don't update if former is user-defined and ForceUpdate is False - # Override if previous was: - # automatic or (user-defined but ForceUpdate is True) - if (not self._SaveName_usr) or (self._SaveName_usr and ForceUpdate): - SN = SaveName_Conv(Mod=self._Mod, Cls=self.Cls, Type=self.Type, - Name=self.Name, Deg=self._Deg, Exp=self.Exp, - Diag=self.Diag, shot=self.shot, - version=self._version, usr=self._usr, - Include=Include) - self._SaveName = SN - self._SaveName_usr = False
- -
[docs] def set_LObj(self,LObj=None): - """ Set the LObj attribute, storing objects the instance depends on - - For example: - A Detect object depends on a vessel and some apertures - That link between should be stored somewhere (for saving/loading). - LObj does this: it stores the ID (as dict) of all objects depended on. - - Parameters - ---------- - LObj : None / dict / :class:`~tofu.pathfile.ID` / list of such - Provide either: - - A dict (derived from :meth:`~tofu.pathfile.ID._todict`) - - A :class:`~tofu.pathfile.ID` instance - - A list of dict or :class:`~tofu.pathfile.ID` instances - - """ - self._LObj = {} - if LObj is not None: - if type(LObj) is not list: - LObj = [LObj] - for ii in range(0,len(LObj)): - if type(LObj[ii]) is ID: - LObj[ii] = LObj[ii]._todict() - ClsU = list(set([oo['Cls'] for oo in LObj])) - for c in ClsU: - self._LObj[c] = [oo for oo in LObj if oo['Cls']==c]
- -
[docs] def set_USRdict(self,USRdict={}): - """ Set the USRdict, containing user-defined info about the instance - - Useful for arbitrary info (e.g.: manufacturing date, material...) - - Parameters - ---------- - USRdict : dict - A user-defined dictionary containing info about the instance - - """ - self._check_inputs(USRdict=USRdict) - self._USRdict = USRdict
- - @property - def Cls(self): - return self._Cls - @property - def Name(self): - return self._Name - @property - def NameLTX(self): - return r"$"+self.Name.replace('_','\_')+r"$" - @property - def Exp(self): - return self._Exp - @property - def Diag(self): - return self._Diag - @property - def shot(self): - return self._shot - @property - def Type(self): - return self._Type - @property - def SaveName(self): - return self._SaveName - @property - def SavePath(self): - return self._SavePath - @property - def LObj(self): - return self._LObj - @property - def USRdict(self): - return self._USRdict
- - - - -# Deprecated ???? -def _ID_check_inputs(Mod=None, Cls=None, Name=None, Type=None, Deg=None, - Exp=None, Diag=None, shot=None, SaveName=None, SavePath=None, - USRdict=None, LObj=None, version=None, usr=None, - fromdict=None, Include=None): - if Mod is not None: - assert type(Mod) is str - assert Mod in dModes.keys() - if Cls is not None: - assert type(Cls) in [str,type] - if type(Cls) is type: - assert 'tofu.' in str(Cls) - assert any([ss in str(Cls) for ss in dModes.keys()]) - assert any([ss in str(Cls) for ss in lCls]) - else: - assert Cls in lCls - Lstr = [Name,Type,Exp,Diag,SaveName,SavePath,version,usr] - for ss in Lstr: - assert ss is None or type(ss) is str - Lint = [Deg,shot] - for ii in Lint: - assert ii is None or (type(ii) is int and ii>=0) - if USRdict is not None: - assert type(USRdict) is dict - if Include is not None: - IR = ['Mod','Cls','Type','Name']+list(dPref.keys()) - assert type(Include) in ['str',list,tuple] - if type(Include) is str: - assert Include in IR - else: - for ss in Include: - assert ss in IR, "%s not in "%ss + str(IR) - if LObj is not None: - assert type(LObj) in [dict,list,ID] - if type(LObj) is list: - assert all([type(oo) in [dict,ID] for oo in LObj]) - if fromdict is not None: - assert type(fromdict) is dict - k = ['Cls','Name','SaveName','SavePath','Type','Deg','Exp','Diag', - 'shot','dUSR','version','usr','lObj'] - K = fromdict.keys() - for kk in k: - assert kk in K, "%s missing from provided dict !"%kk - - -# Deprecated ???? -def _extract_ModClsFrom_class(Cls): - strc = str(Cls) - ind0 = strc.index('tofu.')+5 - indeol = strc.index("'>") - strc = strc[ind0:indeol] - indp = strc.index('.') - Mod = strc[:indp] - strc = strc[indp+1:][::-1] - cls = strc[:strc.index('.')][::-1] - return Mod, cls - - - -
[docs]def SaveName_Conv(Mod=None, Cls=None, Type=None, Name=None, Deg=None, - Exp=None, Diag=None, shot=None, version=None, usr=None, - Include=defInclude): - """ Return a default name for saving the object - - Includes key info for fast identification of the object from file name - Used on object creation by :class:`~tofu.pathfile.ID` - It is recommended to use this default name. - - """ - Modstr = dModes[Mod] if Mod is not None else None - Include = defInclude if Include is None else Include - if Cls is not None and Type is not None and 'Type' in Include: - Clsstr = Cls+Type - else: - Clsstr = Cls - Dict = {'Mod':Modstr, 'Cls':Clsstr, 'Name':Name} - for ii in Include: - if not ii in ['Mod','Cls','Type','Name']: - Dict[ii] = None - if ii=='Deg' and Deg is not None: - Dict[ii] = dPref[ii]+'{0:02.0f}'.format(Deg) - elif ii=='shot' and shot is not None: - Dict[ii] = dPref[ii]+'{0:05.0f}'.format(shot) - elif not ii in ['Mod','Cls','Type','Name'] and eval(ii+' is not None'): - Dict[ii] = dPref[ii]+eval(ii) - if 'Data' in Cls: - Order = ['Mod','Cls','Exp','Deg','Diag','shot','Name','version','usr'] - else: - Order = ['Mod','Cls','Exp','Deg','Diag','Name','shot','version','usr'] - - SVN = "" - for ii in range(0,len(Order)): - if Order[ii] in Include and Dict[Order[ii]] is not None: - SVN += '_' + Dict[Order[ii]] - SVN = SVN.replace('__','_') - if SVN[0]=='_': - SVN = SVN[1:] - return SVN
- - -
[docs]def CheckSameObj(obj0, obj1, LFields=None): - """ Check if two variables are the same instance of a ToFu class - - Checks a list of attributes, provided by LField - - Parameters - ---------- - obj0 : tofu object - A variable refering to a ToFu object of any class - obj1 : tofu object - A variable refering to a ToFu object of the same class as obj0 - LFields : None / str / list - The criteria against which the two objects are evaluated: - - None: True is returned - - str or list: tests whether all listed attributes have the same value - - Returns - ------- - A : bool - True only is LField is None or a list of attributes that all match - - """ - A = True - if LField is not None and obj0.__class__==obj1.__class__: - assert type(LFields) in [str,list] - if type(LFields) is str: - LFields = [LFields] - assert all([type(s) is str for s in LFields]) - ind = [False for ii in range(0,len(LFields))] - Dir0 = dir(obj0.Id)+dir(obj0) - Dir1 = dir(obj1.Id)+dir(obj1) - for ii in range(0,len(LFields)): - assert LFields[ii] in Dir0, LFields[ii]+" not in "+obj0.Id.Name - assert LFields[ii] in Dir1, LFields[ii]+" not in "+obj1.Id.Name - if hasattr(obj0,LFields[ii]): - ind[ii] = np.all(getattr(obj0,LFields[ii])==getattr(obj1,LFields[ii])) - else: - ind[ii] = getattr(obj0.Id,LFields[ii])==getattr(obj1.Id,LFields[ii]) - A = all(ind) - return A
- - - - -""" Not used ? -def SelectFromIdLObj(IdLObjCls, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Out=bool): - # To do (deprecated ?) - assert type(Crit) is str or (type(Crit) is list and all([type(cc) is str for cc in Crit])), "Arg Crit must be a str or list of str !" - assert all([rr is None or type(rr) is str or (type(rr) is list and all([type(ee) is str for ee in rr])) for rr in [PreExp,PostExp]]), "Args PreExp and PostExp must be a str or list of str !" - assert Log in ['any','all'], "Arg Log must be in ['and','or'] !" - assert InOut in ['In','Out'], "Arg InOut must be in ['In','Out'] !" - NObj = len(IdLObjCls['Name']) - if Val is None and PreExp is None and PostExp is None: - ind = np.ones((1,NObj),dtype=bool) - elif not Val is None: - if type(Val) is str: - Val=[Val] - N = len(Val) - ind = np.zeros((N,NObj),dtype=bool) - if Crit in dir(ID): - for ii in range(0,N): - ind[ii,:] = np.asarray([idd==Val[ii] for idd in IdLObjCls[Crit]],dtype=bool) - else: - for ii in range(0,N): - ind[ii,:] = np.asarray([idd[Crit]==Val[ii] for idd in IdLObjCls['USRdict']],dtype=bool) - else: - if type(PreExp) is str: - PreExp = [PreExp] - if type(PostExp) is str: - PostExp = [PostExp] - if PreExp is None: - PreExp = ["" for ss in PostExp] - if PostExp is None: - PostExp = ["" for ss in PreExp] - assert len(PreExp)==len(PostExp), "Arg Exp must be a list of same length as Crit !" - N = len(PreExp) - ind = np.zeros((N,NObj),dtype=bool) - if Crit in dir(ID): - for ii in range(0,N): - ind[ii,:] = np.asarray([eval(PreExp[ii]+" idd "+PostExp[ii]) for idd in IdLObjCls[Crit]],dtype=bool) - else: - for ii in range(0,N): - ind[ii,:] = np.asarray([eval(PreExp[ii]+" idd[Crit] "+PostExp[ii]) for idd in IdLObjCls['USRdict']],dtype=bool) - ind = np.any(ind,axis=0) if Log=='any' else np.all(ind,axis=0) - if InOut=='Out': - ind = ~ind - if Out==bool: - return ind - elif Out==int: - return ind.nonzero()[0] - else: - if Out in dir(ID): - return [IdLObjCls[Out][ii] for ii in ind.nonzero()[0]] - else: - return [IdLObjCls['USRdict'][ii][Out] for ii in ind.nonzero()[0]] -""" - - - - - - -
[docs]def SelectFromListId(LId, Val=None, Crit='Name', - PreExp=None, PostExp=None, Log='any', - InOut='In', Out=bool): - """ Return the indices or instances of all LOS matching criteria - - The selection can be done according to 2 different mechanisms - - Mechanism (1): provide the value (Val) a criterion (Crit) should match - The criteria are typically attributes of :class:`~tofu.pathfile.ID` - (i.e.: name, or user-defined attributes like the camera head...) - - Mechanism (2): (used if Val=None) - Provide a str expression (or a list of such) to be fed to eval() - Used to check on quantitative criteria. - - PreExp: placed before the criterion value (e.g.: 'not ' or '<=') - - PostExp: placed after the criterion value - - you can use both - - Other parameters are used to specify logical operators for the selection - (match any or all the criterion...) and the type of output. - - Parameters - ---------- - Crit : str - Flag indicating which criterion to use for discrimination - Can be set to: - - any attribute of :class:`~tofu.pathfile.ID` - (e.g.: 'Name','SaveName','SavePath'...) - - any key of ID.USRdict (e.g.: 'Exp'...) - Val : None / list / str - The value to match for the chosen criterion, can be a list - Used for selection mechanism (1) - PreExp : None / list / str - A str (or list of such) expression to be fed to eval(), - Placed before the criterion value - Used for selection mechanism (2) - PostExp : None / list / str - A str (or list of such) expression to be fed to eval() - Placed after the criterion value - Used for selection mechanism (2) - Log : str - Flag indicating whether the criterion shall match: - - 'all': all provided values - - 'any': at least one of them - InOut : str - Flag indicating whether the returned indices are: - - 'In': the ones matching the criterion - - 'Out': the ones not matching it - Out : type / str - Flag indicating in which form to return the result: - - int: as an array of integer indices - - bool: as an array of boolean indices - - 'Name': as a list of names - - 'LOS': as a list of :class:`~tofu.geom.LOS` instances - - Returns - ------- - ind : list / np.ndarray - The computed output, of nature defined by parameter Out - - """ - C0 = type(Crit) is str - C1 = type(Crit) is list and all([type(cc) is str for cc in Crit]) - assert C0 or C1, "Arg Crit must be a str or list of str !" - for rr in [PreExp,PostExp]: - if rr is not None: - C0 = type(rr) is str - C1 = type(rr) is list and all([type(ee) is str for ee in rr]) - assert C0 or C1, "Args %S must be a str or list of str !"%rr - assert Log in ['any','all'], "Arg Log must be in ['any','all'] !" - assert InOut in ['In','Out'], "Arg InOut must be in ['In','Out'] !" - if Val is None and PreExp is None and PostExp is None: - ind = np.ones((1,len(LId)),dtype=bool) - elif not Val is None: - if type(Val) is str: - Val=[Val] - N = len(Val) - ind = np.zeros((N,len(LId)),dtype=bool) - if Crit in dir(ID): - for ii in range(0,N): - ind[ii,:] = np.asarray([getattr(iid,Crit)==Val[ii] - for iid in LId],dtype=bool) - else: - for ii in range(0,N): - ind[ii,:] = np.asarray([iid.USRdict[Crit]==Val[ii] - for iid in LId],dtype=bool) - else: - if type(PreExp) is str: - PreExp = [PreExp] - if type(PostExp) is str: - PostExp = [PostExp] - if PreExp is None: - PreExp = ["" for ss in PostExp] - if PostExp is None: - PostExp = ["" for ss in PreExp] - assert len(PreExp)==len(PostExp), "len(PreExp) should be =len(PostExp)" - N = len(PreExp) - ind = np.zeros((N,len(LId)),dtype=bool) - if Crit in dir(ID): - for ii in range(0,N): - List = [eval(PreExp[ii]+" getattr(iid,'%s') "%Crit+PostExp[ii]) - for iid in LId] - ind[ii,:] = np.array(List,dtype=bool) - else: - for ii in range(0,N): - List = [eval(PreExp[ii]+" iid.USRdict['%s'] "%Crit+PostExp[ii]) - for iid in LId] - ind[ii,:] = np.asarray(List,dtype=bool) - ind = np.any(ind,axis=0) if Log=='any' else np.all(ind,axis=0) - if InOut=='Out': - ind = ~ind - if Out==int: - ind = ind.nonzero()[0] - elif Out is not bool and hasattr(ID,Out): - ind = [getattr(LId[ii],Out) for ii in ind.nonzero()[0]] - elif Out is not bool and Out in LId[0].USRdict.keys(): - ind = [LId[ii].USRdict[Out] for ii in ind.nonzero()[0]] - return ind
- - - -#def _Id_todict(Id): -# IdTxt = {'version':Id._version, 'Cls':Id.Cls, 'Name':Id.Name, 'SaveName':Id.SaveName, 'SavePath':Id.SavePath, 'Diag':Id.Diag, 'Type':Id.Type, 'shot':Id.shot, 'Exp':Id.Exp} -# Iddtime = {'dtime':Id.dtime, 'dtFormat':Id._dtFormat} -# IdLobjUsr = {'LObj':Id.LObj, 'USRdict':Id.USRdict} -# return [IdTxt,Iddtime,IdLobjUsr] - - - - -#def _Id_recreateFromdict(IdS): -# Id = ID(Cls=IdS[0]['Cls'], Type=IdS[0]['Type'], Exp=IdS[0]['Exp'], Diag=IdS[0]['Diag'], shot=IdS[0]['shot'], Name=IdS[0]['Name'], SaveName=IdS[0]['SaveName'], SavePath=IdS[0]['SavePath'], -# dtime=IdS[1]['dtime'], dtFormat=IdS[1]['dtFormat'], -# LObj=IdS[2]['LObj'], USRdict=IdS[2]['USRdict'], version=IdS[0]['version']) -# return Id - - - - - -""" -############################################################################### -############################################################################### -############################################################################### - Saving and loading ToFu objects with numpy and cPickle -############################################################################### -############################################################################### -""" - - -########################### -# Identify a Sol2D file -########################### - - -def FindSolFile(shot=0, t=0, Dt=None, Mesh='Rough1', Deg=2, Deriv='D2N2', Sep=True, Pos=True, OutPath='/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu/src/Outputs_AUG/'): - """ Identify the good Sol2D saved file in a given folder (OutPath), based on key ToFu criteria - - When trying to load a Sol2D object (i.e.: solution of a tomographic inversion), it may be handy to provide the key parameters (shot, time, mesh name, degree of basis functions, regularisation functional) instead of copy-pasting the full file name. - This function identifies, within the relevant repository (OutPath), the files matching the provided criteria. - This function only works of the automatically generated default SaveName was preserved for the Sol2D objects. - - Parameters - ---------- - shot : int - A shot number - t : None / int / float - A time value that must be contained in the time interval of the Sol2D file, must be provided if Dt is None - Dt : None / iterable - A time interval that the Sol2D file has to match, must be provided if t is None - Mesh : str - The name of the mesh that was used to compute the inversion - Deg : int - The of the b-splines (LBF2D object) that were used to discretize the solution - Deriv : str - The flag indicating the regularization functional that was used for the inversion - Sep : bool - The flag value that was used for indicating whether the boundary constraint at the separatrix should be considered - Pos : bool - The flag value that was used for indicating whether the positivity constraint was considered - Outpath : str - The absolute path of the repository where to look - - Returns - ------- - out : None / str - The matching file name, if any - - """ - assert None in [t,Dt] and not (t is None and Dt is None), "Arg t or Dt must be None, but not both !" - LF = [ff for ff in os.listdir(OutPath) if 'TFI_Sol2D_AUG_SXR' in ff] - LF = [ff for ff in LF if all([ss in ff for ss in ['_'+str(shot)+'_', '_'+Mesh+'_D'+str(Deg), '_Deriv'+Deriv+'_Sep'+str(Sep)+'_Pos'+str(Pos)]])] - if len(LF)==0: - print("No matching Sol2D file in ", OutPath) - out = None - LDTstr = [ff[ff.index('_Dt')+3:ff.index('s_')] for ff in LF] - LDTstr = [(ss[:7],ss[8:]) for ss in LDTstr] - if t is None: - LF = [LF[ii] for ii in range(0,len(LF)) if LDTstr[ii][0]+'-'+LDTstr[ii][1]=='{0:07.4f}-{1:07.4f}'.format(Dt[0],Dt[1])] - elif Dt is None: - LF = [LF[ii] for ii in range(0,len(LF)) if t>=float(LDTstr[ii][0]) and t<=float(LDTstr[ii][1])] - if len(LF)==0: - print("No matching Sol2D file in ", OutPath) - out = None - elif len(LF)>1: - print("Several matching Sol2D files in ", OutPath) - print(LF) - out = None - else: - out = LF[0] - return out - - -def get_InfoFromFileName(PathFileExt): - assert type(PathFileExt) is str, "Arg PathFileExt must be a str !" - - # Prepare input (extract file name) - pfe = PathFileExt[::-1] - ind0 = pfe.index('.') - ind1 = pfe.index('/') - f = pfe[ind0:ind1][::-1] - - dout = {} - # Extracting Module and Class - mod = [] - cls = [cc for cc in lCls if cc in f] - assert len(mod) in [0,1], "Several modules found !" - assert len(cls) in [0,1], "Several classes found !" - if len(mod)==1: - dout['Mod'] = mod[0] - if len(cls)==1: - dout['Cls'] = cls[0] - - # Extracting other parameters - for ii in dPref.keys(): - if ii in f: - sub = f[f.index(dPref[ii])+len(dPref[ii]):] - if '_' in f: - ind = f.index('_') - else: - ind = f.index('.') - dout[ii] = sub[:ind] - if ii in ['Deg','shot']: - dout[ii] = int(dout[ii]) - - return dout - - -# Replaces _get_PathFileExt_FromName() -def get_FileFromInfos(Path='./', Mod=None, Cls=None, Type=None, Name=None, - Exp=None, Diag=None, shot=None, Deg=None, - version=None, usr=None): - assert type(Path) is str - ld = os.listdir(Path) - ld = [l for l in ld if '.npz' if l] - lstr = [Mod,Cls,Type,Name] - for ii in range(0,len(lstr)): - if lstr[ii] is not None: - ld = [l for l in ld if lstr[ii] in l] - for k in dPref.keys(): - if eval('k is not None'): - v = eval('k') - if k=='shot': - v = '{0:05.0f}'.format(v) - if k=='Deg': - v = '{0:02.0f}'.format(v) - ld = [l for l in ld if v in l] - assert len(ld)==1, "None or several matching files found in %s"%Path - return os.path.join(Path,ld[0]) - - - -########################### -# Saving -########################### - -# Deprecated ??? -
[docs]def Save_Generic(obj, SaveName=None, Path='./', - Mode='npz', compressed=False, Print=True): - """ Save a ToFu object under file name SaveName, in folder Path - - ToFu provides built-in saving and loading functions for ToFu objects. - There is now only one saving mode: - - 'npz': saves a dict of key attributes using :meth:`numpy.savez` - - Good practices are: - - save :class:`~tofu.geom.Ves` and :class:`~tofu.geom.Struct` - - intermediate optics (:class:`~tofu.geom.Apert` and - :class:`~tofu.geom.Lens`) generally do not need to be saved - Indeed, they will be autoamtically included in larger objects - like Detect or Cam objects - - Parameters - ---------- - SaveName : str - The file name, if None (recommended) uses obj.Id.SaveName - Path : str - Path where to save the file - Mode : str - Flag specifying the saving mode - - 'npz': Only mode currently available ('pck' deprecated) - compressed : bool - Indicate whether to use np.savez_compressed (slower but smaller files) - - """ - assert type(obj.__class__) is type - if SaveName is not None: - C = type(SaveName) is str and not (SaveName[-4]=='.') - assert C, "SaveName should not include the extension !" - assert Path is None or type(Path) is str - assert Mode in ['npz'] - assert type(compressed) is bool - assert type(Print) is bool - if Path is None: - Path = obj.Id.SavePath - else: - obj._Id._SavePath = Path - if Mode=='npz': - Ext = '.npz' - if SaveName is None: - SaveName = obj.Id.SaveName - else: - obj._Id.set_SaveName(SaveName) - pathfileext = os.path.join(Path,SaveName+Ext) - if Ext=='.npz': - _save_np(obj, pathfileext, compressed=compressed) - if Print: - print("Saved in : "+pathfileext)
- - - -""" -def _convert_Detect2Ldict(obj): - # Store LOS data - llos = obj.LOS.keys() - LOSprops = {'Keys':llos, 'Id':[obj.LOS[kk]['LOS'].Id.todict() for kk in llos], 'Du':[(obj.LOS[kk]['LOS'].D,obj.LOS[kk]['LOS'].u) for kk in llos]} - lprops = obj.LOS[kk].keys() - for pp in lprops: - if not pp=='LOS': - LOSprops[pp] = [obj.LOS[kk][pp] for kk in llos] - - # Get all attributes - lAttr = dir(obj) - Sino, Span, Cone, SAng, SynthDiag, Res = {}, {}, {}, {}, {}, {} - - # Store Sino data - for pp in lAttr: - #print( inspect.ismethod(getattr(obj,pp)), type(getattr(obj,pp)), pp - if not inspect.ismethod(getattr(obj,pp)): - if '_Sino' in pp: - Sino[pp] = getattr(obj,pp) - elif '_Span' in pp: - Span[pp] = getattr(obj,pp) - elif '_Cone' in pp: - Cone[pp] = getattr(obj,pp) - elif '_SAng' in pp: - SAng[pp] = getattr(obj,pp) - elif '_SynthDiag' in pp: - SynthDiag[pp] = getattr(obj,pp) - elif '_Res' in pp: - Res[pp] = getattr(obj,pp) - - - # Store Optics key parameters (for re-creating if not saved independantly) - Optics = [] - if len(obj.Optics)>0: - if obj.OpticsType=='Apert': - for aa in obj.Optics: - Optics.append({'Id':aa.Id.todict(), 'Poly':aa.Poly, 'arrayorder':aa._arrayorder, 'Clock':aa._Clock}) - elif obj.OpticsType=='Lens': - ln = obj.Optics[0] - Optics.append({'Id':ln.Id.todict(), 'O':ln.O, 'nIn':ln.nIn, 'Rad':ln.Rad, 'F1':ln.F1, 'F2':ln.F2, 'R1':ln.R1, 'R2':ln.R2, 'dd':ln.dd, 'Type':ln.Type, 'arrayorder':ln._arrayorder, 'Clock':ln._Clock}) - - return LOSprops, Sino, Span, Cone, SAng, SynthDiag, Res, Optics - - - -def _convert_PreData2Ldict(obj): - Init = {'data':obj._dataRef, 't':obj._tRef, 'Chans':obj._ChansRef, 'DtRef':obj._DtRef} - PhysNoiseParam = None if obj._PhysNoise is None else obj._PhysNoise['Param'].update(obj._NoiseModel['Par']) - Update = {'Dt':obj.Dt, 'Resamp_t':obj._Resamp_t, 'Resamp_f':obj._Resamp_f, 'Resamp_Method':obj._Resamp_Method, 'Resamp_interpkind':obj._Resamp_interpkind, - 'indOut':obj._indOut, 'indCorr':obj._indCorr, 'interp_lt':obj._interp_lt, 'interp_lNames':obj._interp_lNames, 'Subtract_tsub':obj._Subtract_tsub, - 'FFTPar':obj._FFTPar, 'PhysNoiseParam':PhysNoiseParam} - return Init, Update -""" - - -def _save_np(obj, pathfileext, compressed=False): - - func = np.savez_compressed if compressed else np.savez - dId = obj.Id._todict() - - # tofu.geom - if obj.Id.Cls=='Ves': - func(pathfileext, Id=dId, arrayorder=obj._arrayorder, Clock=obj._Clock, - Poly=obj.Poly, Lim=obj.Lim, Sino_RefPt=obj.sino['RefPt'], - Sino_NP=obj.sino['NP']) - - elif obj.Id.Cls=='Struct': - func(pathfileext, Id=dId, arrayorder=obj._arrayorder, Clock=obj._Clock, - Poly=obj.Poly, Lim=obj.Lim, mobile=obj._mobile) - - elif obj.Id.Cls in ['Rays','LOS','LOSCam1D','LOSCam2D']: - func(pathfileext, Id=dId, extra=obj._extra, - geom=obj.geom, sino=obj.sino, dchans=obj.dchans) - - elif obj.Id.Cls in ['Data','Data1D','Data2D']: - dsave = obj._todict() - if dsave['geom'] is not None and dsave['geom']['LCam'] is not None: - LCam = [] - for cc in dsave['geom']['LCam']: - pathS = cc['Id']['SavePath'] - pathN = cc['Id']['SaveName'] - LCam.append(os.path.join(pathS,pathN+'.npz')) - dsave['geom'] = LCam - elif dsave['geom'] is not None: - geom = [] - if dsave['geom']['Ves'] is not None: - pathS = dsave['geom']['Ves']['Id']['SavePath'] - pathN = dsave['geom']['Ves']['Id']['SaveName'] - Ves = os.path.join(pathS,pathN+'.npz') - geom += [Ves] - if dsave['geom']['LStruct'] is not None: - for ss in dsave['geom']['LStruct']: - sf = os.path.join(ss['Id']['SavePath'], - ss['Id']['SaveName']+'.npz') - geom += [sf] - dsave['geom'] = geom - func(pathfileext, **dsave) - - """ - elif obj.Id.Cls=='GLOS': - LIdLOS = [ll.Id.todict() for ll in obj.LLOS] - LDs, Lus = np.array([ll.D for ll in obj.LLOS]).T, np.array([ll.u for ll in obj.LLOS]).T - func(pathfileext, Idsave=Idsave, LIdLOS=LIdLOS, LDs=LDs, Lus=Lus, Sino_RefPt=obj.Sino_RefPt, arrayorder=obj._arrayorder, Clock=obj._Clock) - - elif obj.Id.Cls=='Lens': - func(pathfileext, Idsave=Idsave, arrayorder=obj._arrayorder, Clock=obj._Clock, O=obj.O, nIn=obj.nIn, Rad=[obj.Rad], F1=[obj.F1], F2=[obj.F2], R1=[obj.R1], R2=[obj.R2], dd=[obj.dd]) - - elif obj.Id.Cls=='Apert': - func(pathfileext, Idsave=Idsave, arrayorder=obj._arrayorder, Clock=obj._Clock, Poly=obj.Poly) - - elif obj.Id.Cls=='Detect': - LOSprops, Sino, Span, Cone, SAng, SynthDiag, Res, Optics = _convert_Detect2Ldict(obj) - VesCalc = {'SavePath':None} if (not hasattr(obj,'_VesCalc') or obj._VesCalc is None) else {'SavePath':obj._VesCalc.Id.SavePath, 'SaveName':obj._VesCalc.Id.SaveName} - func(pathfileext, Idsave=Idsave, Poly=obj.Poly, Rad=obj.Rad, BaryS=obj.BaryS, nIn=obj.nIn, arrayorder=obj._arrayorder, Clock=obj._Clock, Sino_RefPt=obj.Sino_RefPt, LOSNP=[obj._LOS_NP], - LOSprops=[LOSprops], Sino=[Sino], Span=[Span], Cone=[Cone], SAng=[SAng], SynthDiag=[SynthDiag], Res=[Res], Optics=[Optics], VesCalc=[VesCalc]) - - elif obj.Id.Cls=='GDetect': - LDetsave, LDetSynthRes = [], [] - for ii in range(0,obj.nDetect): - ddIdsave = obj.LDetect[ii].Id.todict() - LOSprops, Sino, Span, Cone, SAng, SynthDiag, Res, Optics = _convert_Detect2Ldict(obj.LDetect[ii]) - VesCalc = {'SavePath':None} if (not hasattr(obj.LDetect[ii],'_VesCalc') or obj.LDetect[ii]._VesCalc is None) else {'SavePath':obj.LDetect[ii]._VesCalc.Id.SavePath, 'SaveName':obj.LDetect[ii]._VesCalc.Id.SaveName} - dd = dict(Idsave=ddIdsave, Poly=obj.LDetect[ii].Poly, Rad=obj.LDetect[ii].Rad, BaryS=obj.LDetect[ii].BaryS, nIn=obj.LDetect[ii].nIn, arrayorder=obj._arrayorder, Clock=obj._Clock, Sino_RefPt=obj.Sino_RefPt, - LOSNP=[obj.LDetect[ii]._LOS_NP], LOSprops=[LOSprops], Sino=[Sino], Span=[Span], Cone=[Cone], SAng=[SAng], Optics=[Optics], VesCalc=[VesCalc]) - LDetsave.append(dd) - LDetSynthRes.append({'SynthDiag':[SynthDiag],'Res':[Res]}) - Res, lAttr = {}, dir(obj) - for pp in lAttr: - if not inspect.ismethod(getattr(obj,pp)) and '_Res' in pp: - Res[pp] = getattr(obj,pp) - func(pathfileext, Idsave=Idsave, arrayorder=obj._arrayorder, Clock=obj._Clock, Sino_RefPt=obj.Sino_RefPt, LOSRef=obj._LOSRef, Res=[Res], LDetsave=LDetsave, LDetSynthRes=LDetSynthRes) - - # tofu.Eq - elif obj.Id.Cls=='Eq2D': - np.savez(pathfileext, Idsave=Idsave, **obj._Tab) - - # tofu.mesh - elif obj.Id.Cls=='Mesh1D': - func(pathfileext, Idsave=Idsave, Knots=obj.Knots) - - elif obj.Id.Cls=='Mesh2D': - SubMinds = [{'Name':kk, 'ind':obj._SubMesh[kk]['ind']} for kk in obj._SubMesh.keys()] - func(pathfileext, Idsave=Idsave, Knots=[obj.MeshX1.Knots,obj.MeshX2.Knots], SubMinds=SubMinds, IndBg=obj._get_CentBckg()[1]) - - elif obj.Id.Cls=='BF2D': - Id = np.array(['BF2D',obj.Id.Name,obj.Id.SaveName,obj.Id.SavePath,obj.Id._dtFormat,obj.Id._Diag,str(obj.Id._shot), [obj.Id.Type], obj.Id.Exp],dtype=str) - IdMesh = np.array(['Mesh2D',obj.Mesh.Id.Name,obj.Mesh.Id.SaveName,obj.Mesh.Id.SavePath,obj.Mesh.Id._dtFormat],dtype=str) - dtime, dtimeMesh = np.array([obj.Id._dtime],dtype=object), np.array([obj.Mesh.Id._dtime],dtype=object) - USR = np.asarray(obj.Id.USRdict) - func(pathfileext, Id=Id, IdMesh=IdMesh, dtime=dtime, IdUSR=USR, dtimeMesh=dtimeMesh, KnotsR=obj.Mesh.MeshR.Knots, KnotsZ=obj.Mesh.MeshZ.Knots, Deg=np.array([obj.Deg],dtype=int), Ind=obj.Mesh._get_CentBckg()[1]) - - # tofu.matcomp - elif obj.Id.Cls=='GMat2D': - Id = np.array(['GMat2D',obj.Id.Name,obj.Id.SaveName,obj.Id.SavePath,obj.Id._dtFormat,obj.Id._Diag,str(obj.Id._shot), [obj.Id.Type], obj.Id.Exp],dtype=str) - dtime = np.array([obj.Id._dtime],dtype=object) - USR = np.asarray(obj.Id.USRdict) - IdObj, IdObjUSR = save_np_IdObj(obj.Id) - CompParamVal = np.array([obj._Mat_epsrel, obj._Mat_SubP, obj._Mat_SubTheta, obj._indMat_SubP, obj._MatLOS_epsrel, obj._MatLOS_SubP, int(obj._Mat_Fast)]) - CompParamStr = np.array([obj._Mat_Mode, obj._Mat_SubMode, obj._Mat_SubThetaMode, obj._MatLOS_Mode, obj._MatLOS_SubMode]) - func(pathfileext, Id=Id, dtime=dtime, IdUSR=USR, Ves=IdObj[2], VesUSR=IdObjUSR[2], LDetect=IdObj[1], BF2=IdObj[0], BF2USR=IdObjUSR[0], LDetectUSR=IdObjUSR[1], CompParamVal=CompParamVal, - CompParamStr=CompParamStr, indMat=obj._indMat, Matdata=obj._Mat_csr.data, Matind=obj._Mat_csr.indices, Matindpr=obj._Mat_csr.indptr, Matshape=obj._Mat_csr.shape, - MatLOSdata=obj._MatLOS_csr.data, MatLOSind=obj._MatLOS_csr.indices, MatLOSindpr=obj._MatLOS_csr.indptr, MatLOSshape=obj._MatLOS_csr.shape, - BF2Par=np.array([obj._BF2_Deg,obj._BF2_NFunc,obj._BF2_NCents]), LD_nD=obj._LD_nDetect) - - # tofu.treat - elif obj.Id.Cls=='PreData': - Init, Update = _convert_PreData2Ldict(obj) - func(pathfileext, Idsave=Idsave, Init=[Init], Update=[Update]) - - #Id = np.array(['PreData',obj.Id.Name,obj.Id.SaveName,obj.Id.SavePath,obj.Id._dtFormat,obj.Id._Diag,str(obj.Id._shot), [obj.Id.Type], obj.Id.Exp],dtype=str) - #dtime = np.array([obj.Id._dtime],dtype=object) - #USR = np.asarray(obj.Id.USRdict) - #IdObj, IdObjUSR = save_np_IdObj(obj.Id) - #StrPar = np.asarray([obj._Exp, obj._interpkind]) - #func(pathfileext, Id=Id, dtime=dtime, IdUSR=USR, LDetect=IdObj[0], LDetectUSR=IdObjUSR[0], - # DLPar=obj._DLPar, shot=obj._shot, StrPar=StrPar, Dt=obj._Dt, DtMarg=obj._DtMargin, MovMeanfreq=obj._MovMeanfreq, Resamp=obj._Resamp, - # indOut=obj._indOut, indCorr=obj._indCorr, PhysNoise=obj._PhysNoise, NoiseMod=obj._NoiseModel, interp_lt=obj._interp_lt, interp_lN=obj._interp_lNames) - - # tofu.inv - elif obj.Id.Cls=='Sol2D': - Id = np.array(['Sol2D',obj.Id.Name,obj.Id.SaveName,obj.Id.SavePath,obj.Id._dtFormat,obj.Id._Diag,str(obj.Id._shot), [obj.Id.Type], obj.Id.Exp],dtype=str) - dtime = np.array([obj.Id._dtime],dtype=object) - USR = np.asarray(obj.Id.USRdict) - IdObj, IdObjUSR = save_np_IdObj(obj.Id) - try: - timing = obj._timing - except Exception: - timing = obj._t2 - func(pathfileext, Id=Id, dtime=dtime, IdUSR=USR, PreData=IdObj[2], PreDataUSR=IdObjUSR[2], GMat2D=IdObj[1], GMatUSR=IdObjUSR[1], BF2D=IdObj[0], BF2DUSR=IdObjUSR[0], - InvParam=obj.InvParam, shot=obj.shot, LNames=obj._LNames, Run=obj._run, - LOS=obj._LOS, data=obj._data, t=obj._t, Coefs=obj._Coefs, sigma=obj._sigma, Mu=obj._Mu, Chi2N=obj._Chi2N, R = obj._R, Nit=obj._Nit, Spec=obj._Spec, t2=timing, PostTreat=obj._PostTreat) - """ - -def save_np_IdObj(Id): - """ (to do) """ - LObj, LObjUSR = [], [] - Keys = sorted(Id.LObj.keys()) - for ii in range(0,len(Keys)): - kk = sorted(Id.LObj[Keys[ii]].keys()) - Larr, LarrUSR = [], [] - for jj in range(0,len(kk)): - if kk[jj]=='USRdict': - LarrUSR.append(np.asarray([Id.LObj[Keys[ii]][kk[jj]]],dtype=object)) - else: - Larr.append(np.asarray([Id.LObj[Keys[ii]][kk[jj]]],dtype=str)) - LObj.append( np.concatenate(tuple(Larr),axis=0) ) - LObjUSR.append( np.concatenate(tuple(LarrUSR),axis=0) ) - return LObj, LObjUSR - - - - -########################### -# Opening -########################### - - -
[docs]def Open(pathfileext=None, - shot=None, t=None, Dt=None, Mesh=None, Deg=None, Deriv=None, - Sep=True, Pos=True, OutPath=None, ReplacePath=None, Ves=None, - out='full', Verb=False, Print=True): - """ Open a ToFu object saved file - - This generic open function identifies the required loading routine by detecting how the object was saved from the file name extension. - Also, it uses :meth:`~tofu.pathfile.FindSolFile()` to identify the relevant file in case key criteria such as shot, Deg... are provided instead of the file name itself. - Finally, once all the relevant data is loaded from the file, a ToFu object is re-created, if necessary by implicitly loading all other objects it may depend on (i.e.: vessel, apertures...) - - If pathfileext is not provided (None), then the following keyword arguments are fed to :meth:`~tofu.pathfile.FindSolFile()`: shot, t, Dt, Mesh, Deg, Deriv, Sep, Pos - - Parameters - ---------- - pathfileext : None / str - If provided, the name of the file to load - OutPath : None / str - If provided, the absolute path where the file is to be found - ReplacePath : str - If provided, ? (to finish) - Ves : None / - If provided, the :class:`tofu.geom.Ves` object that shall be used to reconstruct the object (if not provided, the appropriate vessel will be loaded). - out : str - Flag indicating whether the object should be loaded completely ('full'), in a light dismissing the heaviest attributes ('light') or whether only the Id or a list of Id should be returned ('Id'), valid only for '.npz' - Verb : bool - Flag indicating whether to pring intermediate comments on the loading procedure - - Returns - ------- - obj ToFu object - The loaded and re-created ToFu object - - """ - assert None in [pathfileext,shot] and not (pathfileext is None and shot is None), "Arg pathfileext or shot must be None, but not both !" - if pathfileext is None: - File = FindSolFile(shot=shot, t=t, Dt=Dt, Mesh=Mesh, Deg=Deg, - Deriv=Deriv, Sep=Sep, Pos=Pos, OutPath=OutPath) - if File is None: - return File - pathfileext = os.path.join(OutPath,File) - C = any([ss in pathfileext for ss in ['.npz']]) - assert C, "Arg pathfileext must contain '.npz' !" - - if '.npz' in pathfileext: - obj = _open_np(pathfileext, Ves=Ves, ReplacePath=ReplacePath, - out=out, Verb=Verb, Print=Print) - if Print: - print("Loaded : "+pathfileext) - return obj
- - -def open_np_IdObj(LCls=None,LIdArr=None,LIdUSR=None): - LIdObj = [] - if not LIdArr is None: - assert type(LIdArr) is list and type(LCls) is list, "Args LCls and LIdArr must be lists !" - NObj = len(LIdArr) - for ii in range(0,NObj): - no = LIdArr[ii].shape[1] - for jj in range(0,no): - if not LIdUSR is None and not LIdUSR[ii][0][jj] is None: - LIdObj.append(ID(LCls[ii],str(LIdArr[ii][1,jj]),SaveName=str(LIdArr[ii][2,jj]), SavePath=str(LIdArr[ii][3,jj]), Exp=str(LIdArr[ii][0,jj]), dtime=dtm.datetime.strptime(str(LIdArr[ii][5,jj]),str(LIdArr[ii][4,jj])), dtFormat=str(LIdArr[ii][4,jj]), USRdict=LIdUSR[ii][0][jj])) - else: - LIdObj.append(ID(LCls[ii],str(LIdArr[ii][1,jj]),SaveName=str(LIdArr[ii][2,jj]), SavePath=str(LIdArr[ii][3,jj]), Exp=str(LIdArr[ii][0,jj]), dtime=dtm.datetime.strptime(str(LIdArr[ii][5,jj]),str(LIdArr[ii][4,jj])), dtFormat=str(LIdArr[ii][4,jj]))) - return LIdObj - - -def _tryloadVesStruct(Id, VesStruct=None, Print=True): - if hasattr(VesStruct,'__iter__') and VesStruct[0].Id.Cls=='Ves': - return VesStruct[0], VesStruct[1] - else: - Ves, LStruct = None, None - if 'Ves' in Id.LObj.keys(): - PathFileExt = os.path.join(Id.LObj['Ves'][0]['SavePath'], - Id.LObj['Ves'][0]['SaveName']+'.npz') - try: - Ves = Open(PathFileExt, Print=Print) - except: - Str = " : associated Ves/Struct could not be loaded from " - warnings.warn(Id.Name + Str + PathFileExt) - if 'Struct' in Id.LObj.keys(): - LStruct = [] - for ss in Id.LObj['Struct']: - PathFileExt = os.path.join(ss['SavePath'], - ss['SaveName']+'.npz') - try: - LStruct.append(Open(PathFileExt, Print=Print)) - except: - Str = " : associated Ves/Struct could not be loaded from " - warnings.warn(Id.Name + Str +PathFileExt) - return Ves, LStruct - -def _tryLoadOpticsElseCreate(Id, Opt=None, Ves=None, Verb=False): - import tofu.geom as TFG - if 'Apert' in Id.LObj.keys(): - Optics = [] - for ii in range(0,len(Id.LObj['Apert']['SaveName'])): - try: - PathFileExt = Id.LObj['Apert']['SavePath'][ii]+Id.LObj['Apert']['SaveName'][ii]+'.npz' - aa = Open(PathFileExt, Ves=Ves) - Optics.append(aa) - except Exception: - if not Opt is None: - assert type(Ves) is TFG.Ves, "Arg Ves must be a TFG.Ves instance !" - if Verb: - print(Id.Name +" : no saved Apert => creating the associated Apert object !") - ind = [jj for jj in range(0,len(Opt)) if Opt[jj]['Id'][0]['SaveName']==Id.LObj['Apert']['SaveName'][ii] and Opt[jj]['Id'][0]['SavePath']==Id.LObj['Apert']['SavePath'][ii]] - assert len(ind)==1, "Several possible solutions !" - ind = ind[0] - iid = _Id_recreateFromdict(Opt[ind]['Id']) - aa = TFG.Apert(iid, Opt[ind]['Poly'], Ves=Ves, arrayorder=Opt[ind]['arrayorder'], Clock=Opt[ind]['Clock']) - Optics.append(aa) - else: - warnings.warn(Id.Name +" : associated Apert object could not be loaded from "+PathFileExt) - elif 'Lens' in Id.LObj.keys(): - try: - PathFileExt = Id.LObj['Lens']['SavePath'][0]+Id.LObj['Lens']['SaveName'][0]+'.npz' - Optics = Open(PathFileExt, Ves=Ves) - except Exception: - if not Opt is None: - assert type(Ves) is TFG.Ves, "Arg Ves must be a TFG.Ves instance !" - if Verb: - print(Id.Name +" : no saved Lens => creating the associated Lens object !") - iid = _Id_recreateFromdict(Opt[0]['Id']) - aa = TFG.Lens(iid, Opt[0]['O'], Opt[0]['nIn'], Opt[0]['Rad'], Opt[0]['F1'], F2=Opt[0]['F2'], R1=Opt[0]['R1'], R2=Opt[0]['R2'], dd=Opt[0]['dd'], Type=Opt[0]['Type'], Ves=Ves, - arrayorder=Opt[0]['arrayorder'], Clock=Opt[0]['Clock']) - Optics = aa - else: - warnings.warn(Id.Name +" : associated Lens object could not be loaded from "+PathFileExt) - return Optics - - - -def _resetDetectAttr(obj, Out): - import tofu.geom as TFG - # Re-creating LOS - LOS = {} - kkeys = Out['LOSprops'].keys() - for ii in range(0,len(Out['LOSprops']['Keys'])): - idlos = _Id_recreateFromdict(Out['LOSprops']['Id'][ii]) - los = TFG.LOS(idlos, Out['LOSprops']['Du'][ii], Ves=obj.Ves, Sino_RefPt=obj.Sino_RefPt) - LOS[Out['LOSprops']['Keys'][ii]] = {'LOS':los} - for jj in range(0,len(kkeys)): - if not kkeys[jj] in ['Keys','Id','Du']: - LOS[Out['LOSprops']['Keys'][ii]][kkeys[jj]] = Out['LOSprops'][kkeys[jj]][ii] - obj._LOS = LOS - - # Re-assigning tabulated data - fields = ['Sino', 'Span', 'Cone', 'SAng', 'SynthDiag', 'Res'] - for ff in fields: - for kk in Out[ff].keys(): - setattr(obj,kk,Out[ff][kk]) - return obj - - - - -def _get_light_SynthDiag_Res(): - SynthDiag = {'_SynthDiag_Done':False, '_SynthDiag_ds':None, '_SynthDiag_dsMode':None, '_SynthDiag_MarginS':None, '_SynthDiag_dX12':None, '_SynthDiag_dX12Mode':None, '_SynthDiag_Colis':None, - '_SynthDiag_Points':None, '_SynthDiag_SAng':None, '_SynthDiag_Vect':None, '_SynthDiag_dV':None} - Res = {'_Res_Mode':None, '_Res_Amp':None, '_Res_Deg':None, - '_Res_Pts':None, '_Res_Res':None, '_Res_CrossMesh':None, '_Res_CrossMeshMode':None, - '_Res_steps':None, '_Res_Thres':None, '_Res_ThresMode':None, '_Res_ThresMin':None, - '_Res_IntResCross':None, '_Res_IntResCrossMode':None, '_Res_IntResLong':None, '_Res_IntResLongMode':None, '_Res_IntNtt':None, - '_Res_EqName': None, - '_Res_Done': False} - - return SynthDiag, Res - - - - -def _open_np(pathfileext, Ves=None, - ReplacePath=None, out='full', Verb=False, Print=True): - - if 'TFG' in pathfileext: - import tofu.geom as tfg - elif 'TFD' in pathfileext: - import tofu.data as tfd - #elif 'TFEq' in pathfileext: - # import tofu.Eq as tfEq - #elif 'TFM' in pathfileext: - # import tofu.mesh as TFM - #elif 'TFMC' in pathfileext: - # import tofu.matcomp as TFMC - #elif 'TFT' in pathfileext: - # import tofu.treat as tft - #elif 'TFI' in pathfileext: - # import tofu.inv as TFI - - try: - Out = np.load(pathfileext,mmap_mode=None) - except UnicodeError: - Out = np.load(pathfileext,mmap_mode=None, encoding='latin1') - Id = ID(fromdict=Out['Id'].tolist()) - if out=='Id': - return Id - - if Id.Cls == 'Ves': - Lim = None if Out['Lim'].tolist() is None else Out['Lim'] - obj = tfg.Ves(Id, Out['Poly'], Lim=Lim, Type=Id.Type, - Clock=bool(Out['Clock']), - arrayorder=str(Out['arrayorder']), - Sino_RefPt=Out['Sino_RefPt'], Sino_NP=int(Out['Sino_NP'])) - - elif Id.Cls == 'Struct': - Lim = None if Out['Lim'].tolist() is None else Out['Lim'] - obj = tfg.Struct(Id, Out['Poly'], Type=Id.Type, Lim=Lim, - Clock=bool(Out['Clock']), - arrayorder=str(Out['arrayorder']), - mobile=Out['mobile'].tolist()) - - elif Id.Cls in ['Rays','LOS','LOSCam1D','LOSCam2D']: - Ves, LStruct = _tryloadVesStruct(Id, Print=Print) - dobj = {'Id':Id._todict(), 'dchans':Out['dchans'].tolist(), - 'geom':Out['geom'].tolist(), - 'sino':Out['sino'].tolist()} - if 'extra' in Out.keys(): - dobj['extra'] = Out['extra'].tolist() - if Ves is None: - dobj['Ves'] = None - else: - dobj['Ves'] = Ves._todict() - if LStruct is None: - dobj['LStruct'] = None - else: - dobj['LStruct'] = [ss._todict() for ss in LStruct] - if Id.Cls=='Rays': - obj = tfg.Rays(fromdict=dobj) - elif Id.Cls=='LOSCam1D': - obj = tfg.LOSCam1D(fromdict=dobj) - elif Id.Cls=='LOSCam2D': - obj = tfg.LOSCam2D(fromdict=dobj) - - elif Id.Cls in ['Data1D','Data2D']: - dobj = {'Id':Id._todict(), 'Ref':Out['Ref'].tolist(), - 'dunits':Out['dunits'].tolist(), 'fft':Out['fft'].tolist(), - 'data0':Out['data0'].tolist(), 'CamCls':Out['CamCls'].tolist()} - indt = None if Out['indt'].tolist() is None else Out['indt'] - indch = None if Out['indch'].tolist() is None else Out['indch'] - if Out['geom'].tolist() is None: - geom = None - else: - if 'Cam' in Out['geom'][0]: - LCam = [Open(ss)._todict() for ss in Out['geom']] - geom = {'LCam':LCam} - else: - Ves = Open(Out['geom'][0])._todict() - if len(Out['geom'])>1: - LStruct = [Open(ss)._todict() for ss in Out['geom'][1:]] - else: - LStruct = None - geom = {'LCam':None, 'Ves':Ves, 'LStruct':LStruct} - dobj['indt'] = indt - dobj['indch'] = indch - dobj['geom'] = geom - if 'dMag' in Out.keys(): - dMag = Out['dMag'].tolist() - else: - dMag = None - dobj['dMag'] = dMag - if Id.Cls=='Data1D': - obj = tfd.Data1D(fromdict=dobj) - elif Id.Cls=='Data2D': - obj = tfd.Data2D(fromdict=dobj) - - """ - elif Id.Cls == 'GLOS': - Ves = _tryloadVes(Id) - LLOS, IdLOS = [], Id.LObj['LOS'] - for ii in range(0,len(IdLOS['Name'])): - Idl = _Id_recreateFromdict(Out['LIdLOS'][ii]) - ll = TFG.LOS(Idl, Du=(Out['LDs'][:,ii],Out['Lus'][:,ii]), Ves=Ves, Sino_RefPt=Out['Sino_RefPt'], arrayorder=str(Out['arrayorder'])) - LLOS.append(ll) - obj = TFG.GLOS(Id, LLOS, Ves=Ves, Type=Id.Type, Exp=Id.Exp, Diag=Id.Diag, shot=Id.shot, Sino_RefPt=Out['Sino_RefPt'], SavePath=Id.SavePath, arrayorder=str(Out['arrayorder']), Clock=bool(Out['Clock']), - dtime=Id.dtime) - - elif Id.Cls == 'Lens': - Ves = _tryloadVes(Id, Ves=Ves) - obj = TFG.Lens(Id, Out['O'], Out['nIn'], Out['Rad'][0], Out['F1'][0], F2=Out['F2'][0], Type=Id.Type, R1=Out['R1'][0], R2=Out['R2'][0], dd=Out['dd'][0], Ves=Ves, - Exp=Id.Exp, Clock=bool(Out['Clock']), Diag=Id.Diag, shot=Id.shot, arrayorder=str(Out['arrayorder']), SavePath=Id.SavePath, dtime=Id.dtime) - - elif Id.Cls == 'Apert': - Ves = _tryloadVes(Id, Ves=Ves) - obj = TFG.Apert(Id, Out['Poly'], Clock=bool(Out['Clock']), arrayorder=str(Out['arrayorder']), Ves=Ves, Exp=Id.Exp, Diag=Id.Diag, shot=Id.shot, dtime=Id.dtime) - - elif Id.Cls == 'Detect': - Ves = _tryloadVes(Id, Ves=Ves) - if 'VesCalc'in Out.keys() and Out['VesCalc'][0]['SavePath'] is not None: - VesCalc = Open(Out['VesCalc'][0]['SavePath']+Out['VesCalc'][0]['SaveName']+'.npz') - else: - VesCalc = None - LOSprops, Sino, Span, Cone, SAng, Opt = Out['LOSprops'][0], Out['Sino'][0], Out['Span'][0], Out['Cone'][0], Out['SAng'][0], Out['Optics'][0] - (SynthDiag,Res) = (Out['SynthDiag'][0],Out['Res'][0]) if out=='full' else _get_light_SynthDiag_Res() - Optics = _tryLoadOpticsElseCreate(Id, Opt=Opt, Ves=Ves, Verb=Verb) - - Poly = Out['Poly'] if type(Optics) is list else dict(Rad=float(Out['Rad']),O=Out['BaryS'],nIn=Out['nIn']) - obj = TFG.Detect(Id, Poly, Optics=Optics, Ves=Ves, VesCalc=VesCalc, Sino_RefPt=Sino['_Sino_RefPt'], CalcEtend=False, CalcSpanImp=False, CalcCone=False, CalcPreComp=False, Calc=True, Verb=Verb, - arrayorder=str(Out['arrayorder']), Clock=bool(Out['Clock'])) - obj = _resetDetectAttr(obj, {'LOSprops':LOSprops, 'Sino':Sino, 'Span':Span, 'Cone':Cone, 'SAng':SAng, 'SynthDiag':SynthDiag, 'Res':Res, 'Optics':Opt}) - obj._LOS_NP = Out['LOSNP'] - if obj._SynthDiag_Done and obj._SynthDiag_Points is None: - obj.set_SigPrecomp() - - elif Id.Cls == 'GDetect': - LDetsave = list(Out['LDetsave']) - LDet = [] - Ves = _tryloadVes(Id, Ves=Ves) - if out=='light': - SynthDiag, Res = _get_light_SynthDiag_Res() - else: - LDetSynthRes = Out['LDetSynthRes'] - for ii in range(0,len(LDetsave)): - ddIdsave = _Id_recreateFromdict(LDetsave[ii]['Idsave']) - if 'VesCalc'in LDetsave[ii].keys() and LDetsave[ii]['VesCalc'][0]['SavePath'] is not None: - VesCalc = Open(LDetsave[ii]['VesCalc'][0]['SavePath']+LDetsave[ii]['VesCalc'][0]['SaveName']+'.npz') - else: - VesCalc = None - LOSprops, Sino, Span, Cone, SAng, Opt = LDetsave[ii]['LOSprops'][0], LDetsave[ii]['Sino'][0], LDetsave[ii]['Span'][0], LDetsave[ii]['Cone'][0], LDetsave[ii]['SAng'][0], LDetsave[ii]['Optics'][0] - if out=='full': - SynthDiag, Res = LDetSynthRes[ii]['SynthDiag'][0], LDetSynthRes[ii]['Res'][0] - Optics = _tryLoadOpticsElseCreate(ddIdsave, Opt=Opt, Ves=Ves, Verb=Verb) - Poly = LDetsave[ii]['Poly'] if type(Optics) is list else dict(Rad=float(LDetsave[ii]['Rad']),O=LDetsave[ii]['BaryS'],nIn=LDetsave[ii]['nIn']) - Sino_RefPt = None if Out['Sino_RefPt'].shape==() else Out['Sino_RefPt'] - dd = TFG.Detect(ddIdsave, Poly, Optics=Optics, Ves=Ves, VesCalc=VesCalc, Sino_RefPt=Sino_RefPt, CalcEtend=False, CalcSpanImp=False, CalcCone=False, CalcPreComp=False, Calc=True, Verb=Verb, - arrayorder=str(Out['arrayorder']), Clock=bool(Out['Clock'])) - dd = _resetDetectAttr(dd, {'LOSprops':LOSprops, 'Sino':Sino, 'Span':Span, 'Cone':Cone, 'SAng':SAng, 'SynthDiag':SynthDiag, 'Res':Res, 'Optics':Opt}) - dd._LOS_NP = LDetsave[ii]['LOSNP'] - if dd._SynthDiag_Done and dd._SynthDiag_Points is None: - dd.set_SigPrecomp() - LDet.append(dd) - obj = TFG.GDetect(Id, LDet, Type=Id.Type, Exp=Id.Exp, Diag=Id.Diag, shot=Id.shot, dtime=Id.dtime, Sino_RefPt=Out['Sino_RefPt'], LOSRef=str(Out['LOSRef']), - arrayorder=str(Out['arrayorder']), Clock=bool(Out['Clock']), SavePath=Id.SavePath) - Res = Out['Res'][0] if out=='full' else Res - for kk in Res.keys(): - setattr(obj,kk,Res[kk]) - - elif Id.Cls=='Eq2D': - Sep = [np.array(ss) for ss in Out['Sep'].tolist()] - obj = tfEq.Eq2D(Id, Out['PtsCross'], t=Out['t'], MagAx=Out['MagAx'], Sep=Sep, rho_p=Out['rho_p'].tolist(), rho_t=Out['rho_t'].tolist(), surf=Out['surf'].tolist(), vol=Out['vol'].tolist(), - q=Out['q'].tolist(), jp=Out['jp'].tolist(), pf=Out['pf'].tolist(), tf=Out['tf'].tolist(), theta=Out['theta'].tolist(), thetastar=Out['thetastar'].tolist(), - BTX=Out['BTX'].tolist(), BRY=Out['BRY'].tolist(), BZ=Out['BZ'].tolist(), Ref=str(Out['Ref'])) - - elif Id.Cls=='Mesh1D': - obj = TFM.Mesh1D(Id, Out['Knots']) - - elif Id.Cls=='Mesh2D': - obj = TFM.Mesh2D(Id, [Out['Knots'][0],Out['Knots'][1]]) - obj = TFM.Mesh2D(Id, Knots=obj, ind=Out['IndBg']) - for ii in range(0,len(Out['SubMinds'])): - obj.add_SubMesh(Name=Out['SubMinds'][ii]['Name'], ind=Out['SubMinds'][ii]['ind']) - - elif Id.Cls=='Metric1D': - obj = TFM.Metric1D(Id) - - elif Id.Cls=='Metric2D': - obj = TFM.Metric2D(Id) - - - elif Id.Cls in 'BF2D': - IdMesh = ID(str(Out['IdMesh'][0]), str(Out['IdMesh'][1]), SaveName=str(Out['IdMesh'][2]), SavePath=str(Out['IdMesh'][3]), dtime=Out['dtimeMesh'][0], dtFormat=str(Out['IdMesh'][4])) - M2 = TFM.Mesh2D(IdMesh, Knots=[Out['KnotsR'],Out['KnotsZ']]) - M2bis = TFM.Mesh2D(IdMesh,Knots=M2,Ind=Out['Ind']) - obj = TFM.BF2D(Id, M2bis, int(Out['Deg'][0])) - elif Id.Cls=='GMat2D': - import ToFu_MatComp as TFMC - import scipy.sparse as scpsp - Id.set_LObj(open_np_IdObj(['Ves','BF2D','Detect'], [Out['Ves'],Out['BF2'],Out['LDetect']], [Out['VesUSR'],Out['BF2USR'],Out['LDetectUSR']])) - Mat = scpsp.csr_matrix((Out['Matdata'], Out['Matind'], Out['Matindpr']), shape=Out['Matshape']) - MatLOS = scpsp.csr_matrix((Out['MatLOSdata'], Out['MatLOSind'], Out['MatLOSindpr']), shape=Out['MatLOSshape']) - obj = TFMC.GMat2D(Id, None, None, Mat=None, indMat=None, MatLOS=None, Calcind=False, Calc=False, CalcLOS=False) - obj._init_CompParam(Mode=str(Out['CompParamStr'][0]), epsrel=Out['CompParamVal'][0], SubP=Out['CompParamVal'][1], SubMode=str(Out['CompParamStr'][1]), SubTheta=Out['CompParamVal'][2], SubThetaMode=str(Out['CompParamStr'][2]), Fast=bool(Out['CompParamVal'][-1]), SubPind=Out['CompParamVal'][3], ModeLOS=str(Out['CompParamStr'][3]), epsrelLOS=Out['CompParamVal'][4], SubPLOS=Out['CompParamVal'][5], SubModeLOS=str(Out['CompParamStr'][4])) - obj._BF2 = None - obj._BF2_Deg = int(Out['BF2Par'][0]) - obj._BF2_NCents = int(Out['BF2Par'][2]) - obj._BF2_NFunc = int(Out['BF2Par'][1]) - obj._Ves = None - obj._LD = None - obj._LD_nDetect = int(Out['LD_nD']) - obj._set_indMat(indMat=Out['indMat'], Verb=False) - obj._set_MatLOS(MatLOS=MatLOS, Verb=False) - obj._set_Mat(Mat=Mat, Verb=False) - - - - elif Id.Cls=='PreData': - LIdDet = Id.get_LObjasLId('Detect') if 'Detect' in Id.LObj.keys() else None - Init, Update = Out['Init'][0], Out['Update'][0] - obj = tft.PreData(Init['data'], Id=Id, t=Init['t'], Chans=Init['Chans'], DtRef=Init['DtRef'], LIdDet=LIdDet) - obj.set_Dt(Update['Dt'], Calc=False) - obj.set_Resamp(t=Update['Resamp_t'], f=Update['Resamp_f'], Method=Update['Resamp_Method'], interpkind=Update['Resamp_interpkind'], Calc=False) - obj.Out_add(indOut=Update['indOut'], Calc=False) - obj.Corr_add(indCorr=Update['indCorr'], Calc=False) - obj.interp(lt=Update['interp_lt'], lNames=Update['interp_lNames'], Calc=False) - obj.substract_Dt(tsub=Update['Subtract_tsub'], Calc=False) - obj.set_fft(Calc=True, **Update['FFTPar']) - if not Update['PhysNoiseParam'] is None: - Method = 'svd' if 'Modes' in Update['PhysNoiseParam'].keys() else 'fft' - obj.set_PhysNoise(**Update['PhysNoiseParam'].update({'Method':Method})) - - - #Id.set_LObj(open_np_IdObj(['Detect'],[Out['LDetect']], [Out['LDetectUSR']])) - #obj = TFT.PreData(Id=Id, shot=int(Out['shot']), DLPar=Out['DLPar'].item(), Exp=str(Out['StrPar'][0]), Dt=list(Out['Dt']), DtMargin=float(Out['DtMarg']), MovMeanfreq=float(Out['MovMeanfreq']), Resamp=bool(Out['Resamp']), - # interpkind=str(Out['StrPar'][1]), indOut=Out['indOut'], indCorr=Out['indCorr'], lt=Out['interp_lt'], lNames=Out['interp_lN'].tolist(), Test=True) - #if not Out['PhysNoise'].item() is None: - # obj.set_PhysNoise(Deg=int(Out['NoiseMod'].item()['Deg']), Nbin=int(Out['NoiseMod'].item()['Nbin']), LimRatio=float(Out['NoiseMod'].item()['LimRatio']), **Out['PhysNoise'].item()['Param']) - - - elif Id.Cls=='Sol2D': - Id.set_LObj(open_np_IdObj(['PreData','GMat2D','BF2D'],[Out['PreData'], Out['GMat2D'], Out['BF2D']], [Out['PreDataUSR'],Out['GMatUSR'],Out['BF2DUSR']])) - GMSaveName = Id.LObj['GMat2D']['SaveName'][0] - try: - GMat = Open(Id.LObj['GMat2D']['SavePath'][0]+GMSaveName+'.npz') - except Exception: - GMSaveName = GMSaveName[:GMSaveName.index('All_')+4]+'sh'+GMSaveName[GMSaveName.index('All_')+4:] - GMat = Open(Id.LObj['GMat2D']['SavePath'][0]+GMSaveName+'.npz') - obj = TFI.Sol2D(Id, PreData=None, GMat=GMat, InvParam=Out['InvParam'].item(), SVesePreData=False, SVeseGMat=True, SVeseBF=True) - obj._PreData = None - obj._GMat = obj.GMat.get_SubGMat2D(Val=list(Out['LNames']), Crit='Name',InOut='In') - obj._shot = int(Out['shot']) - try: - obj._LNames = Out['LNames'].tolist() - except Exception: - obj._LNames = obj.PreData.In_list() - obj._run = bool(Out['Run']) - if bool(Out['Run']): - obj._LOS = bool(Out['LOS']) - obj._t, obj._data = Out['t'], Out['data'] - obj._Coefs, obj._sigma = Out['Coefs'], Out['sigma'] - obj._Mu, obj._Chi2N, obj._R, obj._Nit = Out['Mu'], Out['Chi2N'], Out['R'], Out['Nit'] - obj._Spec = list(Out['Spec']) - obj._timing = Out['t2'] - obj._PostTreat = list(Out['PostTreat']) - """ - return obj - - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/plugins/AUG/SXR/data/_core.html b/doc/build/html/_modules/tofu/plugins/AUG/SXR/data/_core.html deleted file mode 100644 index 901e2492f..000000000 --- a/doc/build/html/_modules/tofu/plugins/AUG/SXR/data/_core.html +++ /dev/null @@ -1,580 +0,0 @@ - - - - - - - - tofu.plugins.AUG.SXR.data._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.plugins.AUG.SXR.data._core

-# -*- coding: utf-8 -*-
-"""
-Provide basic python routines for load AUG SXR data in a ToFu-compatible format
-
-@author: didiervezinet
-"""
-
-from __future__ import print_function
-import sys
-
-import os
-import itertools as itt
-import string
-import numpy as np
-import warnings
-# import scipy.interpolate as scpinterp
-
-import matplotlib.pyplot as plt
-import datetime as dtm
-
-# ToFu specific
-import tofu.defaults as tfd
-import tofu.pathfile as tfpf
-import tofu.helper as tfh
-import tofu.treat as tft
-from ... import _path as _tfaug_path
-from .. import _helper as tfaugSXRh
-from .. import geom as tfaugsxrg
-
-# AUG specific
-import dd
-
-__author__ = "Didier Vezinet"
-__all__ = ["load"]
-
-
-
-
-############################################################################
-############################################################################
-############################################################################
-#       Default path for PreData saving
-############################################################################
-
-
-def _get_defaultsSavePathsdtime(SavePathObj=None, SavePathInp=None, dtime=None, dtFormat=tfd.dtmFormat, Type='Object'):
-    assert SavePathObj is None or type(SavePathObj) is str, "Arg SavePathObj must be a str !"
-    assert SavePathInp is None or type(SavePathInp) is str, "Arg SavePathInp must be a str !"
-    assert dtime is None or type(dtime) is str or isinstance(dtime,dtm.datetime), "Arg dtime must be a str or a dtm.datetime instance !"
-    assert type(dtFormat) is str, "Arg dtFormat must be a str !"
-    RP = tfpf.Find_Rootpath()
-    if SavePathInp is None:
-        SavePathInp = RP+'/Inputs_'+Exp+'/'
-    if SavePathObj is None:
-        SavePathObj = RP+'/Objects_'+Exp+'/' if Type=='Object' else RP+'/Outputs_'+Exp+'/'
-    if dtime is None:
-        dtime = dtm.datetime.now()
-    elif type(dtime) is str:
-        dtime = dtm.strptime(dtime,dtFormat)
-    return SavePathObj, SavePathInp, dtime
-
-
-
-
-
-
-
-############################################################################
-############################################################################
-############################################################################
-#       Data loading
-############################################################################
-
-
-
[docs]def load(shot=None, Names=None, Mode='SSX', Dt=None, Join=True, tRef='fmin', Method='interp', NoGeom=True, Tofu=True, - - Verb=True, Test=True): # Add kwdarg tRef to decide which time base to use - """ Load SXR data from the AUG database and returns it either as numpy arrays or a ToFu-compatible object with appropriate methods - - - Part of the difficulty is that all channels do not have the same sampling frequency and time vector. - Hence, there is an option to uniformize the time base. - - - Parameters - ---------- - shot : int - Shot number for which the SXR data should be loaded - Names : None / str / list - If provided, data is loaded only for the specified channel(s) - Mode : str - Flag indicating whether data should be loaded from a down-sampled database ('SSX', , faster loading) or from the complete database ( depending on the channel) - Dt : None / iterable - If provided, a len()=2 iterable giving the time interval of interest (recommended to avoid very large data files) - Join : bool - Flag, useful when Mode='SX', indicating whether the different time bases of the channels shall be uniformized - tRef : None / str / np.ndarray - Flag or time vector, useful when Mode='SX' and Join=True, indicating which time basis should be used as a reference - - 'fmin': the time vector of the channel presenting the smallest sampling frequency is used as a reference - - 'fmax': the time vector of the channel presenting the highest sampling frequency is used as a reference - - any channel name: the time vector of the specifiec channel is used as a reference - - np.ndarray: the provided time vector is used as a reference - Method : str - Flag, usefule when Mode='SX' and Join=True, indicating how the - NoGeom : bool - Flag indicating whether the data should be stripped of its geometrical calibration factor (thus being expressed in W instead of W/m2), to allow for: - - Application of a tofu-computed etendue in case of a LOS approach - - Direct use of the signal in case of a VOS approach - Tofu : bool - Flag indicating whether the loaded data should be returned as (SXR, t, Names) where the first two are np.ndarrays and Names is a list or as a tofu.data.PreData object - Verb : bool - Flag indicating whether extra comments should be printed to give feedback on the progress of the routine - Test : bool - Flag indicating whether the inputs should be tested for conformity - - - Returns - ------- - out : tuple / tofu.data.PreData - - - """ - if Test: - assert type(shot) is int, "Arg shot must be a int !" - assert Names is None or type(Names) is str or (hasattr(Names,'__iter__') and all([type(ss) is str for ss in Names])), "Arg Names must be a str or an iterable of str (channel names) !" - assert Mode in ['SSX','SX'], "Arg Mode must be in ['SSX','SX'] !" - assert type(Join) is bool, "Arg Join must be a bool !" - assert Dt is None or (hasattr(Dt,'__iter__') and len(Dt)==2 and all([type(dt) in [float,int,np.float64] for dt in Dt]) and Dt[0]<Dt[1]), "Arg Dt be an iterable of len()==2 with increasing values !" - assert tRef is None or type(tRef) is str or (type(tRef) is np.ndarray and tRef.ndim==1), "Arg tRef must be a str or a 1D np.ndarray !" - assert not (type(tRef) is np.ndarray and Dt is not None), "Conflicting time interval between Dt and tRef !" - assert Method in ['interp'], "Arg Method must be in ['interp'] !" - assert type(NoGeom) is bool, "Arg NoGeom must be a bool !" - assert type(Tofu) is bool, "Arg ToFu must be a bool !" - assert type(Verb) is bool, "Arg Verb must be a bool !" - - # Pre-formatting input - if Mode=='SSX' and not NoGeom: - Names = [Names] if type(Names) is str else Names - Names = sorted(tfaugSXRh._CamHeads().keys()) if Names is None else sorted(Names) - else: - Dict = tfaugSXRh._WhichSX(shot=shot, Names=Names, Verb=Verb) - Names = sorted(Dict.keys()) - NN = len(Names) - assert NN>0, "None of the desired channels available for {0}".format(shot) - - if type(tRef) is np.ndarray: - Dt = [np.nanmin(tRef), np.nanmax(tRef)] - Dtlarge = [Dt[0]-0.1*np.diff(Dt), Dt[1]+0.1*np.diff(Dt)] if not Dt is None else None - - # Loading - - # Use diagnostic SSX (down-sampled data) - if Mode=='SSX': - try: - SXR, t, Names = _load_SSX(shot, Names, NN, Dt) - - except Exception: - print(" Could not load SSX for ", shot) - SXR, t, Names = np.empty((0,0)), np.empty((0,0)), [] - - assert len(Names)==SXR.shape[1], " There seems to be a mistake in the number of channels !" - indt = (t>=Dt[0]) & (t<=Dt[1]) - t = t[(t>=Dt[0]) & (t<=Dt[1])] - - # Use diagnostic SX. - elif Mode=='SX': - - Ldiags = [Dict[nn]['Diag'] for nn in Names] - ind = [Ldiags[ii] is None for ii in range(0,NN)] - if any(ind): - print(" Could not find "+str([Names[ii] for ii in range(0,NN) if ind[ii]])+" in the SX shotfiles for {0}".format(shot)) - - Names = [Names[ii] for ii in range(0,NN) if not ind[ii]] - Ldiags = [Ldiags[ii] for ii in range(0,NN) if not ind[ii]] - NN = len(Names) - - Ldiagsu = sorted(list(set(Ldiags))) - SXR, t = [None for ii in range(0,NN)], [None for ii in range(0,NN)] - dtl = Dtlarge if Join else Dt # To have margin (for boundary effects) for unifying the time basis - if Verb: - print("---------------------------------------------------------", end="\n") - for ii in range(0,len(Ldiagsu)): - try: - SXR, t = _load_SX(shot, Ldiagsu[ii], Names, NN, Ldiags, dtl, SXR, t) - - except Exception: - print(" Could not load "+Ldiagsu[ii]+" for "+str(shot)) - - ind = [ii for ii in range(0,NN) if not SXR[ii] is None] - t = [t[ii] for ii in ind] - Names = [Names[ii] for ii in ind] - SXR = [SXR[ii] for ii in ind] - NN = len(Names) - if Join: - if Verb: - print("---------------------------------------------------------", end="\n") - print(" Unifying the time bases") - tRef = _get_tRef(Names, t, tRef) - tRef = tRef[(tRef>=Dt[0]) & (tRef<=Dt[1])] - SXR, t = _Unify(SXR, t, tRef, Method=Method) - elif Tofu: - Tofu = False - warnings.warn("ToFu output can only be issued if Join=True !") - - if NoGeom and NN>0: - FourPiOnEt = np.asarray([Dict[nn]['MULTIA02'] for nn in Names]) - if type(SXR) is list: - SXR = [SXR[ii]/FourPiOnEt[ii] for ii in range(0,NN)] - else: - SXR = SXR.dot(np.diag(1./FourPiOnEt)) - - if not Tofu: - out = (SXR, t, Names) - else: - out = _create_PreData(shot, SXR, t, Names, Mode, Dt, tRef, Method, NoGeom) - - return out
- - - - - - - - - -def _load_SSX(shot, Names, NN, Dt): - sh = dd.shotfile('SSX',shot) - sxr, t = [None for ii in range(0,NN)], [None for ii in range(0,NN)] - for ii in range(0,NN): - try: - load = sh(Names[ii]) - time = load.time - indin = np.ones((time.size,),dtype=bool) - if not Dt is None: - indin = (time>=Dt[0]) & (time<=Dt[1]) - if not np.any(indin): - indin[np.argsort(np.abs(time-np.mean(Dt)))[0:3]] = True - t[ii] = time[indin] - sxr[ii] = load.data[indin] - except Exception: - print(" Could not load SSX "+Names[ii]+" for "+str(shot)) - sh.close() - ind = [ii for ii in range(0,NN) if not t[ii] is None] - t = [t[ii] for ii in ind] - assert all([np.all(tt==t[0]) for tt in t]), " SSX do not have same time base for all channels in "+str(shot) - t = t[0] - Names = [Names[ii] for ii in ind] - SXR = np.asarray([sxr[ii] for ii in ind]).T - return SXR, t, Names - - - -def _load_SX(shot, diag, Names, NN, Ldiags, Dt, SXR, t, Verb=True): - inds = [jj for jj in range(0,NN) if Ldiags[jj]==diag] - sh = dd.shotfile(diag, shot) - for jj in range(0,len(inds)): - try: - load = sh(Names[inds[jj]]) - if Verb: - print(Names[inds[jj]], end=" ") - sys.stdout.flush() - time = load.time - if not Dt is None: - indin = (time>=Dt[0]) & (time<=Dt[1]) - if not np.any(indin): - indin[np.argsort(np.abs(time-np.mean(Dt)))[0:3]] = True - t[inds[jj]] = time[indin] - SXR[inds[jj]] = load.data[indin] - except Exception: - if Verb: - print("",end="\n") - print(" Could not load "+diag+" "+Names[inds[jj]]+" for {0}".format(shot), end='\n') - if Verb: - print("",end="\n") - sh.close() - return SXR, t - - - - - - - -############################################################################ -############################################################################ -############################################################################ -# Secondary routines -############################################################################ - -def _get_tRef(Names, t, tRef): - if type(tRef) is np.ndarray: - assert tRef==np.unique(tRef), "Arg tRef must be a vector of increasing values !" - else: - assert tRef in Names or tRef in ['fmin','fmax'], "Arg tRef must be a channel name or in ['fmin','fmax'] !" - if tRef in Names: - tRef = t[Names.index(tRef)] - else: - lf = [1./np.mean(np.diff(tt)) for tt in t] - tRef = t[int(np.argmin(lf))] if tRef=='fmin' else t[int(np.argmax(lf))] - return tRef - - - -def _Unify(SXR, t, tRef, Method='interp'): - SXRref = np.nan*np.ones((tRef.size,len(SXR))) - if Method=='interp': - for ii in range(0,len(SXR)): - SXRref[:,ii] = np.interp(tRef, t[ii], SXR[ii]) - return SXRref, tRef - - - - -############################################################################ -############################################################################ -############################################################################ -# --------- Objects creation ------- -############################################################################ - - -def _create_PreData(shot, SXR, t, Names, Mode, Dt, tRef, Method, NoGeom, - Name=None, SavePath=None, Root=_tfaug_path._Root, save=True, - SXInfo=True, Filt=True, TorPos=True, NamesOut=[], - CorrDef=True, NamesCorr=[], - Test=True): - """ - Get the data from AUG shotfile for chosen shot and time interval, resampled with chosen frequency and using chosen diagnostic and return it as a TFT.PreData object - - Paramaters - ---------- - Name str, user-defined name to be given to the dataset for customization, advised to leave None (default) which automatically include useful information - shot int, shot number to be used for shotfile loading - Dt list, bounds of the time interval to which data should be restricted in seconds (default : [0,10]) - MovMeanFreq float, frequency to used for resampling of the data in Hz (default 200.e3) - Diag str, diagnostic name to be used for shotfile loading, for SXR on AUG one can choose between 'SSX' and 'SX' (default) - Exp str, experiment name used shotfile loading (default: 'AUG') - NamesOut list, names of the SXR channels to be left out of the data because they are thought to be corrupted or useless (default : []) - OutChanDef bool, flag indicating whereas the default selection of corrupted channels shall be used (default : True) - SXInfo bool, flag indicating whereas the default selection of corrupted channels shall use info available from SXinfo (default : True) - Filt bool, flag indicating whether the default selection of corrupted channels shall use info regarding the filter type of each diode (default : True) - TorPos bool, flag indicating whether the default selection of corrupted channels shall use info regarding the toroidal position of each channel (default : True) - Resamp bool, flag indicating whether data shall be resampled (default : True) - interpkind str, type of interpolation to be used for the resampling (default : 'linear') - CorrDef bool, flag indicating whereas the default selection of channels needing correction shall be used (default : True) - NamesCorr list, names of the SXR channels that are thought to be needing automated correction by retrofit (default : []) - SavePathObj str, absolute path of the AUG ToFu objects (TFG.Tor and TFG.GDetect) to be used (default : None => automatic) - SavePathInp str, absolute path of the ... - dtimeObj dtm.datetime object indicating the kind of kind of SXR diagnostic geometry that should be used (default : None => automatic) - dtFormat str, format to be used in the file names for the dtime indication (default : "D%Y%m%d_T%H%M%S") - Test bool, flag indicating whether inputs shall be tested for consistency - - Returns - ------- - Pre : TFT.PreData - Object containing the prepared data, additional treatments can be done using the object methods (channel selection, noise estimation...) - - """ - if Test: - assert type(SXR) is np.ndarray, "Arg SXR must be a np.ndarray !" - assert type(t) is np.ndarray and t.ndim==1 and t.size==SXR.shape[0], "Arg t must be a time vector with size=SXR.shape[0] !" - assert all([type(ss) is bool for ss in [SXInfo,Filt,TorPos]]), "Args [OutChanDef,SXInfo,Filt,TorPos] must be bools !" - assert NamesOut is None or (type(NamesOut) is list and all([type(nn) is str for nn in NamesOut])), "Arg NamesOut must be a list of Names !" - - - # Get pathfileext of geometry files to pass to PreData in case of data plotting with geometry - CamHs = tfaugSXRh._CamHeads() - CamHs = sorted(list(set([CamHs[nn] for nn in Names]))) - LIdDet = tfaugsxrg.load(Cams=CamHs, shot=shot, out='Id') - if len(CamHs)>1: - LIdDet = list(itt.chain.from_iterable([idg.get_LObjasLId(Cls='Detect')['Detect'] for idg in LIdDet])) - else: - LIdDet = LIdDet[0].get_LObjasLId(Cls='Detect')['Detect'] - LIdDet = [idd for idd in LIdDet if idd.Name in Names] - - # Path for saving PreData object - if SavePath is None: - SavePath = Root+'/tofu/plugins/AUG/SXR/data/Outputs/' - - # Loading data in tft.PreData object - USRdict = {'Mode':Mode, 'Dt':Dt, 'tRef':tRef, 'Method':Method, 'NoGeom':NoGeom} - - # Creating the PreData object - Pre = tft.PreData(SXR, t=t, Chans=Names, Id=Name, Exp='AUG', shot=shot, Diag='SXR', SavePath=SavePath, LIdDet=LIdDet, DtRef=Dt) - Pre.Id.set_USRdict(USRdict) - - # Getting Default corrupted channels out - if any([SXInfo,Filt,TorPos]): - LOut = {'Cam':[], 'CamHead':[], 'Name':[]} - Lout = _GetDefOutChannels(shot, Pre.Id.LObj['Detect'], LOut, SXInfo=SXInfo, Filt=Filt, TorPos=TorPos) - NamesOut = NamesOut+Lout['Name']+LOut['Cam']+LOut['CamHead'] - Pre.Out_add(Val=sorted(list(set(NamesOut))), LCrit=['Name','Cam','CamHead']) - - - # Getting defaults Corr channels - Corr = {'Cam':[], 'CamHead':[], 'Name':[]} - if CorrDef: - Corr = _GetCorrChannels(shot, Corr) - NamesCorr = NamesCorr+Corr['Name']+Corr['Cam']+Corr['CamHead'] - Pre.Corr_add(Val=sorted(list(set(NamesCorr))), LCrit=['Name','Cam','CamHead']) - - return Pre - - - - - - - - - -def _GetDefOutChannels(shot, LObjDet, LOut={'Cam':[],'CamHead':[],'Name':[]}, SXInfo=True, Filt=True, TorPos=True): - if TorPos: - LOut['Cam'] += ['F'] - if Filt: - Filt = [(usr['FiltMat'],usr['FiltThick']) for usr in LObjDet['USRdict']] - Filtu = list(set(Filt)) - FiltRef = [Filt.count(ff) for ff in Filtu] - FiltRef = Filtu[FiltRef.index(max(FiltRef))] - LOut['Name'] = [LObjDet['Name'][ii] for ii in range(0,len(LObjDet['Name'])) if not (LObjDet['USRdict'][ii]['FiltMat'],LObjDet['USRdict'][ii]['FiltThick'])==FiltRef] - # The rest is taken from SXinfo (update regularly) - if SXInfo: - if shot >= 31679: - LOut['Name'] += ['F_019', 'J_057','J_058','J_059','J_060', 'J_079','J_082'] - if shot >= 25987: - LOut['Name'] += ['K_020','K_049','K_058'] - if shot >= 26663: - LOut['Name'] += ['K_057'] - if shot >= 27489 and shot <= 31621: - LOut['Name'] += ['I_061'] - if shot >= 30506 and shot <= 31549: - LOut['Name'] += ['I_060'] - if shot >= 25823 and shot <= 25890: - LOut['Cam'] += ['L'] - if shot >= 30161 and shot <= 30425: - LOut['Cam'] += ['H'] - return LOut - - - - - -def _GetCorrChannels(shot, Corr={'Name':[],'Cam':[],'CamHead':[]}): - if shot >= 30446: - Corr['CamHead'] += ['H2'] - if shot == 25854: - Corr['CamHead'] += ['J2'] - if shot >= 31802: - Corr['Cam'] += 'L' - Corr['Cam'] += 'M' - return Corr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/plugins/AUG/SXR/geom/_core.html b/doc/build/html/_modules/tofu/plugins/AUG/SXR/geom/_core.html deleted file mode 100644 index 5ac7667ee..000000000 --- a/doc/build/html/_modules/tofu/plugins/AUG/SXR/geom/_core.html +++ /dev/null @@ -1,751 +0,0 @@ - - - - - - - - tofu.plugins.AUG.SXR.geom._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.plugins.AUG.SXR.geom._core

-# -*- coding: utf-8 -*-
-"""
-Provides the basic ToFu geometry handling for the SXR diagnostic of AUG
-"""
-
-
-
-import itertools as itt
-import os
-import numpy as np
-import math
-import datetime as dtm
-import warnings
-
-
-# ToFu specific
-import tofu.defaults as tfd
-import tofu.pathfile as tfpf
-import tofu.helper as tfh
-import tofu.geom as tfg
-from ... import Ves as tfaugVes
-from ... import _path as _tfaug_path
-from .. import _helper as tfaugSXRh
-
-
-# AUG specific
-import dd
-
-__author__ =    "D. Vezinet"
-__all__ = ["create","load","get_GeomFromShot"]
-
-
-_addpath = '/tofu/plugins/AUG/SXR/geom'
-
-
-#########################################################
-#########################################################
-### Storing changes in geometry in a dictionary #########
-#########################################################
-
-
-def _compareDictChan(Dict1, Dict2):
-    Crit = ['FiltThick','RPINHOLE','ZPINHOLE','REND','ZEND','Tor_Pos','CAMANGLE','P_Length','P_Width','Foc_Len','D_Length','D_Width','D_Gap','MULTIA02']
-    Lim = [5.e-6, 0.5e-3, 0.5e-3, 0.5e-3, 0.5e-3, 0.5, 0.5, 0.1, 0.01, 0.1, 0.1, 0.01, 0.001, 1.e6]
-    CritCh = []
-    Change = {}
-
-    Names1 = sorted(Dict1.keys())
-    Names2 = sorted(Dict2.keys())
-    Names = sorted(list(set(Names1+Names2)))
-
-    for nn in Names:
-        Change[nn] = {}
-
-        if not nn in Names1:
-            Change[nn] = Dict2[nn]
-
-        elif not nn in Names2:
-            Change[nn] = Dict1[nn]
-
-        else:
-            for ii in range(0,len(Crit)):
-                diff = math.fabs(float(Dict1[nn][Crit[ii]]-Dict2[nn][Crit[ii]]))
-                if diff > Lim[ii]:
-                    Change[nn][Crit[ii]] = diff
-
-        if len(Change[nn].keys())==0:
-            del Change[nn]
-
-    return Change
-
-
-
-def _get_GeomFromShot_CSX(shot, Nums, CamH, Chan='CamHeads', Verb=True):
-    assert Chan in ['All','CamHeads'] or (type(Chan) is list and all([type(cc) is str for cc in Chan])), "Arg Chan must be in ['All','CamHeads'] or a list of channel names !"
-
-    DictChan = {}
-    sh = dd.shotfile('CSX',shot)
-
-    # Which channels shall be used for the testing
-    if Chan=='All':
-        Dir = sh.getObjectNames()
-    elif Chan=='CamHeads':  # One per camera head
-        Dir = ['CF_020','CG_020','CH_020','CH_052','CH_087','CI_016','CI_052','CI_091','CJ_017','CJ_052','CJ_087','CK_020','CK_055','CL_020','CM_020']
-    else:   # Custom
-        for ii in range(0,len(Chan)):
-            if not Chan[ii][0]=='C':
-                Chan[ii] = 'C'+Chan[ii]
-        Dir = Chan
-    Dir = [Dir[ii] for ii in range(0,len(Dir)) if all([ss in Dir[ii] for ss in ['C','_']]) and all([nn in Nums for nn in Dir[ii][-3:]])]
-
-    # Do the testing
-    LNames = []
-    for ii in range(0,len(Dir)):
-        try:
-            Name = Dir[ii][1:]
-            load = sh('C'+Name)
-            Diag = str(load['SX_DIAG'].data[0]+load['SX_DIAG'].data[1]+load['SX_DIAG'].data[2])
-            if not Diag=='000' and Name in CamH.keys():
-                tfaugSXRh._get_DictChanFromload(DictChan, Name, load, CamH, Diag)
-                if Verb:
-                    print("        Done for "+Name)
-        except Exception:
-            pass
-    sh.close()
-    return DictChan
-
-
-def _get_GeomFromShot_CSXscan( Lshots=range(22000,40000,1), Chan='CamHeads', Verb=True ):
-
-    CamH = tfaugSXRh._CamHeads()
-
-    DictShot = {}
-    DictChan0 = {}
-    DictChan1 = {}
-    init = True
-    Nums = map(str,range(0,10))
-    Change = {}
-
-    Inshots = [True for ss in Lshots]
-    for ii in range(0,len(Lshots)):
-        shot = int(Lshots[ii])
-        success = False
-        while not success:
-            try:
-                if init:
-                    DictChan0 = _get_GeomFromShot_CSX(shot, Nums, CamH, Chan=Chan, Verb=Verb)
-                    init = False
-                    if Verb:
-                        print("")
-                        print("    Initiated with shot {0}".format(shot))
-                    minshot = int(shot)
-                    Lshots[ii] = int(shot)
-                elif shot>minshot:
-                    DictChan1 = _get_GeomFromShot_CSX(shot, Nums, CamH, Chan=Chan, Verb=Verb)
-                    change = _compareDictChan(DictChan0, DictChan1)
-                    if len(change.keys())>0:
-                        Change[shot] = change
-                        DictChan0 = dict(DictChan1)
-                        if Verb:
-                            print("    Change detected for shot {0}".format(shot))
-                    minshot = int(shot)
-                    Lshots[ii] = int(shot)
-                else:
-                    Inshots[ii] = False
-                success = True
-            except Exception:
-                if ii==len(Lshots)-1:
-                    shot = shot-1
-                else:
-                    shot = shot+1
-    Lshots = [Lshots[ii] for ii in range(0,len(Lshots)) if Inshots[ii]]
-    return Change, Lshots
-
-
-
-def get_GeomFromShot( shot_init=22006, shot_end=33730, Ds=1000, Chan='CamHeads', Verb=True, save=True ):
-    """ Scan the database using diagnostic 'CSX' to identify the shots where changes were made to the SXR diagnostic
-
-    The geometry of a diagnostic changes from year to year due to improvements, adjustments...
-    It is necessary to know from which shot a new geometry is valid.
-    This function uses the 'CSX' data to scan the stored geometry (and other parameters) of all channels of the SXR diagnostic on a large span of shots to identify the first shots presenting changes.
-    Beware... it is long (typically several hours for a scann of all channels on a span of several thousands of shots).
-
-    Parameters
-    ----------
-    shot_init :     int
-        The first shot of the interval to be scanned
-    shot_end :      int
-        The last shot of the interval to be scanned
-    Ds :            10*int
-        The step by which the shot numbers will be increased for scanning (initial value, an algorithm then reduces it by dividing by 10 successively to focus on the identified changes)
-    Verb :          bool
-        Flag indicating whether some extra comments should be printed
-    save :          bool
-        Flag indicating whether the result should be saved
-
-    Returns
-    -------
-    Change :        dict
-        A dictionary of changes, where the keys are the shot numbers identified as first to change and where the values are themselves dictionaries of the changes implemented
-    Array :        np.ndarray
-        (2,N) np.ndarray where the first line is the list of shots tested in the last iteration and the second line is 0 or 1 (1 if changes are observed between the corresponding shot and its predecessor)
-
-    """
-
-    Lshots = sorted(list(set(range(shot_init, shot_end+1, Ds)+[shot_end])))
-    ds = int(Ds)
-    while not ds<1:
-        if Verb:
-            print("")
-            print("    In: ", Lshots)
-        Change, Lshots = _get_GeomFromShot_CSXscan( Lshots, Chan=Chan, Verb=Verb )
-        Lshots = sorted(list(set(Lshots)))
-        Lch = Change.keys()
-
-        Array = np.asarray([Lshots, [ii in Lch for ii in Lshots]])
-        if Verb:
-            print("    Out: ", Array)
-
-        ds = ds/10
-        if ds>=1:
-            Lshots = sorted(list(set(itt.chain.from_iterable([range(Lshots[ii-1],Lshots[ii]+1,ds)+[Lshots[ii]] for ii in range(1,len(Lshots)) if Array[1,ii]]))))
-
-    if save:
-        Chanstr = Chan if type(Chan) is str else 'Custom'
-        Name = 'Changes_'+Chanstr+'_shot{0}-{1}_Ds{2}'.format(shot_init,shot_end,Ds)
-        np.savez(_tfaug_path._Root+'/tofu/plugins/AUG/SXR/geom/'+Name+'.npz', Change=[Change], Array=Array)
-
-    return Change, Array
-
-
-
-
-
-
-#########################################################
-#########################################################
-### Using the dictionary to determine relevant shots ####
-#########################################################
-
-
-
-def _get_GeomFromShot_New(shot, chfile='Changes_CamHeads_shot22006-33730_Ds1000.npz', chpath=_tfaug_path._Root):
-    """ Return the last reference geometry shot depending on the input shot and on the Change dictionary selected
-
-    Parameters
-    ----------
-    shot :      int
-        Shot for which the user wants to know which geometry to use
-    chfile :    str
-        Name of the Changes dictionary to be used
-
-    Returns
-    -------
-    Rshot:      int
-        Reference geometry shot corresponding to the input shot
-
-    """
-
-    shot_init = int(chfile[chfile.index('_shot')+5:chfile.index('-')])
-    shot_end = int(chfile[chfile.index('-')+1:chfile.index('-')+6])
-    assert shot >= shot_init and shot <= shot_end, "Geometry not computed yet !"
-
-    # Loading the Changes dictionary
-    Change = np.load(chpath+_addpath+'/'+chfile)['Change'][0]
-    lshots = np.unique(Change.keys())
-    assert shot >= np.min(lshots) and shot <= np.max(lshots), "Geometry not computed yet (stored shots in Changes) !"
-    Rshot = int(np.max(lshots[lshots<=shot]))
-
-    return Rshot
-
-
-def _get_RectifiedFromShot(shot):
-    """ Get the real lower shot number from CSX
-
-    Check whether the desired shot number is available in the database of CSX diagnostic, if not return the first following one which is
-
-    Parameters
-    -----------
-    shot :      int
-        Desired shot number to be checked
-
-    Returns
-    -------
-    shotbis :   int
-        Closest valid shot number
-
-    """
-    Done = False
-    shotbis = int(shot)
-    while not Done:
-        try:
-            sh = dd.shotfile('CSX',shotbis)
-            Done = True
-        except Exception:
-            shotbis = shotbis + 1
-    sh.close()
-    return shotbis
-
-
-def _get_Tiles_FromShot(shot):
-    """ Return the list of camera heads that should be affected by view-limiting tiles depending on the shot number
-
-    In theory, the limiting tiles were removed after #31802, but in practice the gap was probably just widened (but how much ?)
-
-    Parameters
-    ----------
-    shot :  int
-        The shot number for which to return the list
-
-    Returns
-    -------
-    Tiles :     list
-        The list of camera heads with limiting tiles
-
-    """
-    Tiles = ['F','G']
-    if shot<31802:
-        Tiles = Tiles + ['L','M']
-    return Tiles
-
-
-
-
-# Old, mot used any more (keep for backward compatibility and double checks)
-def _get_GeomFromShot(shot):     # Deprecated
-    """ Deprecated """
-    assert shot>=24190, "Geometry not computed yet !"
-    if shot >= 24190 and shot < 24492:     # Lower bound not adjusted to minimum !
-        shot, LCamH = 24190, "All"
-    elif shot >= 24492 and shot < 25962:
-        shot, LCamH = 24492, "All"
-    elif shot >= 25962 and shot < 27439:
-        shot, LCamH = 25962, "All"
-    elif shot >= 27439 and shot < 31802:
-        shot, LCamH = 27439, "All"
-    elif shot >= 31802:   #Upper bound to be updated !
-        shot, LCamH = 31802, ['L','M']
-    return shot, LCamH
-
-
-
-
-
-
-#########################################################
-#########################################################
-### Helper routines to find out which cameras have already been created ####
-#########################################################
-
-
-
-
-
-
-
-def _listavailCams(Exp='AUG', Diag='SXR', SavePathObj=None, Root=_tfaug_path._Root, shotstr='_sh'):
-    """ Return a dictionary listing, for each camera head (keys), the shot numbers for which it was already created
-
-    A GDetect object is created for each camera head, and several versions of it exist depending on the shot number because of geometry changes in time
-    This routine tells you, for each camera head, for which shots it was already created
-
-    Parameters
-    ----------
-    Exp :           str
-        The experiment, here always 'AUG'
-    Diag :          str
-        The diagnostic, here always 'SXR'
-    SavePathObj :   None / str
-        The path where to look for already created GDetect objects, if None takes default
-    Root : str
-        The root path to which '/tofu/plugins/AUG/SXR/geom/Objects/' will be appended to build a default path if SavePathObj is None
-    shotstr :       str
-        The string pattern used to identify the shot number in the file names
-
-    Returns
-    -------
-    DC :    dict
-        The dictionary containing all relevant info
-
-    """
-
-    if SavePathObj is None:
-        SavePathObj = Root + _addpath+ '/Objects/'
-
-    kstr = 'TFG_GDetect_'+Exp+'_Dg'+Diag+'_'
-    LC = os.listdir(SavePathObj)
-    LC = [cc for cc in LC if all([ss in cc for ss in [kstr,shotstr,'.npz']])]
-    DC = {}
-    for ii in range(0,len(LC)):
-        ind = LC[ii].index(shotstr)
-        shot = int(LC[ii][ind+len(shotstr):ind+len(shotstr)+5])
-        ind = LC[ii].index(kstr)
-        strtemp = LC[ii][ind+len(kstr):]
-        indbis = strtemp.index('_')
-        CamH = strtemp[:indbis]
-        if not CamH in DC.keys():
-            DC[CamH] = []
-        DC[CamH].append(shot)
-
-    return DC
-
-
-
-
-
-
-
-#########################################################
-#########################################################
-######## Create cameras (apertures + detectors) #########
-#########################################################
-
-
-def _getLApert( Dict, dd, Ves, shot, SavePathObj, dtime, dtFormat, Exp='AUG', Tiles=['F','G','L','M']):
-    """ Return the list of apertures associated to a specific SXR channel
-
-    In AUG, each camera head is associated to a single aperture (data stored in CSX)
-    However, for some camera heads, a fraction of the VOS might be obstructed by
-
-    Parameters
-    ----------
-    Dict :          dict
-        Dictionary with all info from CSX, issued by :meth:`~tofu.plugins.AUG.SXR._helper._WhichSX()`
-    dd :            str
-        Key to Dict, should be a channel name
-    Ves :           :class:`tofu.geom.Ves`
-        The Ves instance with which to build the Apert objects
-    shot :          int
-        The shot number with which to build the Apert objects
-    SavePathObj :   None / str
-        The SavePath where the Apert objects should be saved (None recommended for default)
-    dtime :         dtm.datetime
-        A dtm.datetime object for identifying the create Apert objects (mostly for debugging)
-    dtFormat :      str
-        A str flag indicating the format with which dtime should be written in the automatically generated SaveName (if necessary)
-    Exp :           str
-        The experiment flag on which the Apert objects are created, should be the same as for Ves
-    Tiles :      bool
-        Flag indicating the list of caamera heads for which an additional aperture should be built from tiles (can be de-activated simply by removing the concerned camera head from the list)
-
-    Returns
-    ------
-    LApert :        list
-        List of apertures, created using the data available in CSX via Dict
-
-    """
-
-    A = np.array([Dict[dd]['RPINHOLE'], Dict[dd]['ZPINHOLE']])
-    B = np.array([Dict[dd]['REND'], Dict[dd]['ZEND']])
-    phi = Dict[dd]['Tor_Pos']*np.pi/180.
-    theta = Dict[dd]['CAMANGLE']*np.pi/180.
-
-    PolyApert, M = tfh.PolyFromLine(A, B, A, theta, phi, float(Dict[dd]['P_Length']*1.e-3), float(Dict[dd]['P_Width']*1.e-3))
-    assert np.hypot(np.hypot(M[0],M[1])-A[0], M[2]-A[1]) < 1.e-10, "Something wrong with Apert poly !"
-    IdApert0 = tfpf.ID('Apert', Dict[dd]['CamHead'], shot=shot, Diag='SXR', SaveName=None, SavePath=SavePathObj, dtime=dtime, Exp=Exp, LObj=None, dtFormat=dtFormat,
-                       USRdict={'Cam':Dict[dd]['Cam'], 'CamHead':Dict[dd]['CamHead'], 'FiltMat':Dict[dd]['FiltMat'], 'FiltThick':Dict[dd]['FiltThick']})
-    Apert0 = tfg.Apert(IdApert0, PolyApert, Ves=Ves)
-    LApert, LIdApert = [Apert0], [IdApert0]
-
-    # Add extra apertures (space between tiles) for the relevant cameras
-    if Dict[dd]['CamHead'] in Tiles:
-        if Dict[dd]['Cam']=='F':
-            d = 0.034
-            LTor, L2 = 0.012, 0.12
-            Ang = -(np.pi/2-theta)
-        elif Dict[dd]['Cam']=='G':
-            d = 0.034
-            LTor, L2 = 0.0117, 0.12
-            Ang = -(np.pi/2-theta)
-        elif Dict[dd]['Cam']=='L':
-            d  = 0.040
-            LTor, L2 = 0.0064, 0.2
-            Ang = -36.9*np.pi/180.
-        else:
-            d  = 0.036
-            LTor, L2 = 0.0054, 0.15
-            Ang = 16.75*np.pi/180.
-        C = tfh.RZ2XYZ_1D(A,phi) + d*Apert0.nIn
-        e2 = np.cross(np.array([-np.sin(phi),np.cos(phi),0]),Apert0.nIn)
-        e2 = e2/np.linalg.norm(e2)
-        nP = Apert0.nIn*np.cos(Ang) + e2*np.sin(Ang)
-        PolyApert = tfh.RectFromPlaneCenter(C, nP, np.array([-np.sin(phi),np.cos(phi),0]), LTor, L2, Test=True)
-        LIdApert.append(tfpf.ID('Apert', Dict[dd]['CamHead']+"_Tiles", shot=shot, Diag='SXR', SaveName=None, SavePath=SavePathObj, dtime=dtime, Exp=Exp, LObj=None, dtFormat=dtFormat,
-                                USRdict={'Cam':Dict[dd]['Cam'],'CamHead':Dict[dd]['CamHead'],'FiltMat':None,'FiltThick':None}))
-        Apert1 = tfg.Apert(LIdApert[-1], PolyApert, Ves=Ves)
-        LApert.append(Apert1)
-    return LApert
-
-
-
-
-
[docs]def create(shot=0, VesName='V1', SavePathObj=None, Root=_tfaug_path._Root, forceshot=False, overwrite=False, save=True, dtime=None, dtFormat=tfd.dtmFormat, - CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, Calc=True, Verb=True, - Etend_Method='quad', Etend_RelErr=1.e-3, Etend_dX12=[0.01,0.01], Etend_dX12Mode='rel', Etend_Ratio=0.02, Colis=True, LOSRef='Cart', - Cone_DRY=0.0025, Cone_DXTheta=np.pi/1024., Cone_DZ=0.0025, Cone_NPsi=20, Cone_Nk=60): - """ Create, save and return all the GDetect objects relevant for the input shot, unless already created for a relevant reference shot - - Create the :class:`tofu.geom.GDetect` objects (i.e.: the cameras, which are groups of detectors) from geometry taken from CSX disgnostic for the proposed shot or earlier (looks for the oldest version of the matching geometry) and stores them in the SavePathObj. - - All extra arguments are fed to :class:`~tofu.geom.Detect` - - Parameters - ---------- - shot : int - Shot number for which to build the geometry - VesName : str - Name of the tfg.Ves object to be fed as an input to the :class:`tofu.geom.GDetect` objects - SavePathObj : None / str - Absolute path where the created :class:`tofu.geom.GDetect` objects should be saved (if save=True), if None the default is used - Root : str - If SavePathObj=None, a default value is created by appending '/tofu/plugins/AUG/SXR/geom/Objects/' to Root - forceshot : bool - Flag indicating whether the shot number shall be downgraded to the oldest shot with the same geometry (False) or whether the provided shot number shall be enforced (True, for all camera heads) - overwrite : bool - Flag indicating whether new :class:`tofu.geom.GDetect` objects shall be computed (and possibly saved) when similar ones already exist (True) - save : bool - Flag indicating whether to save the created :class:`tofu.geom.GDetect` objects (in SavePathObj) - dtime : None / dtm.datetime - If provided (i.e.: not None), used as a label of the created :class:`tofu.geom.GDetect` objects (mostly used for debugging) - dtFormat : str - The time format to be used for labelling the created :class:`tofu.geom.GDetect` objects (mostly used for debugging) - - Returns - ------- - LGD : list - A list of all the created tfg.GDetect objects - - """ - - # Pre-formatting inputs - if SavePathObj is None: - SavePathObj = Root + _addpath + '/Objects/' - - # LMNoTile = _get_LMTilesFromShot(shot) # Deprecated, replace by proper scanning / refit of several successive shots - if not forceshot: - #shot, LCamH = _get_GeomFromShot(shot) - shot = _get_GeomFromShot_New(shot) - #else: - # LCamH = "All" - #if not LCamH=="All": - # assert LCamH in CamHeads or all([cc in CamHeads for cc in LCamH]) - #else: - # LCamH = CamHeads - shot = _get_RectifiedFromShot(shot) - - Dict = tfaugSXRh._WhichSX(shot=shot) - Ves = tfaugVes.load(VesName) - - Tiles = _get_Tiles_FromShot(shot) - - # Computing and saving - UnCamH = sorted(list(set([Dict[dd]['CamHead'] for dd in Dict.keys()]))) - ListGDPre = _listavailCams(Exp='AUG', Diag='SXR', SavePathObj=SavePathObj, Root=Root, shotstr='_sh') - LGD = [] - for ii in range(0,len(UnCamH)): - cond0 = overwrite - cond1 = not UnCamH[ii] in ListGDPre.keys() or not shot in ListGDPre[UnCamH[ii]] - if any([cond0, cond1]): - lds = sorted([dd for dd in Dict.keys() if Dict[dd]['CamHead']==UnCamH[ii]]) - LApert = _getLApert(Dict, lds[0], Ves, shot, SavePathObj, dtime, dtFormat, Tiles=Tiles, Exp='AUG') - LD = [] - for dd in lds: - Id = tfpf.ID('Detect', dd, shot=shot, Diag='SXR', SaveName=None, SavePath=SavePathObj, dtime=dtime, Exp='AUG', LObj=None, dtFormat=dtFormat, - USRdict={'Cam':Dict[dd]['Cam'], 'CamHead':Dict[dd]['CamHead'], 'Diag':Dict[dd]['Diag'], 'Sig':Dict[dd]['Sig'], 'Num':Dict[dd]['Num'], 'FiltMat':Dict[dd]['FiltMat'], 'FiltThick':Dict[dd]['FiltThick'], - 'Sampl':Dict[dd]['Sampling'], 'Address':Dict[dd]['Address']}) - - A = np.array([Dict[dd]['RPINHOLE'], Dict[dd]['ZPINHOLE']]) - B = np.array([Dict[dd]['REND'], Dict[dd]['ZEND']]) - phi = Dict[dd]['Tor_Pos']*np.pi/180. - theta = Dict[dd]['CAMANGLE']*np.pi/180. - - RIn = np.hypot(LApert[0].BaryS[0]+LApert[0].nIn[0],LApert[0].BaryS[1]+LApert[0].nIn[1]) - np.hypot(LApert[0].BaryS[0],LApert[0].BaryS[1]) - Sgn = np.sign(RIn*np.cos(theta) + LApert[0].nIn[2]*np.sin(theta)) - P = A - Sgn*1.e-3*Dict[dd]['Foc_Len']*np.array([np.cos(theta), np.sin(theta)]) - DTor, DPol, DGap = float(1.e-3*Dict[dd]['D_Length']), float(1.e-3*Dict[dd]['D_Width']), float(1.e-3*Dict[dd]['D_Gap']) - Poly, M = tfh.PolyFromLine(A, B, P, theta, phi, DTor, DPol) - DD = np.hypot(np.hypot(M[0],M[1])-P[0], M[2]-P[1]) - nn = DD/(DGap+DPol) - assert np.abs(nn-np.round(nn))<0.017, "Inconsistent location of center for "+dd+", abs(nn-round(nn)) = "+str(np.abs(nn-np.round(nn)))+" with nn = "+str(nn) - - Det = tfg.Detect(Id, Poly, Optics=LApert, Ves=Ves, Sino_RefPt=None, - CalcEtend=CalcEtend, CalcSpanImp=CalcSpanImp, CalcCone=CalcCone, CalcPreComp=CalcPreComp, Calc=Calc, Verb=Verb, - Etend_Method=Etend_Method, Etend_RelErr=Etend_RelErr, Etend_dX12=Etend_dX12, Etend_dX12Mode=Etend_dX12Mode, Etend_Ratio=Etend_Ratio, Colis=Colis, LOSRef=LOSRef, - Cone_DRY=Cone_DRY, Cone_DXTheta=Cone_DXTheta, Cone_DZ=Cone_DZ, Cone_NPsi=Cone_NPsi, Cone_Nk=Cone_Nk, - arrayorder='C', Clock=False, Type=None, Exp='AUG', Diag='SXR', shot=shot, dtime=None, dtimeIn=False, SavePath=SavePathObj) - - LD.append(Det) - - GD = tfg.GDetect(UnCamH[ii], LDetect=LD, Type=None, Exp='AUG', Diag='SXR', shot=shot, Sino_RefPt=None, LOSRef='Cart', arrayorder='C', Clock=False, dtime=None, dtimeIn=False, SavePath=SavePathObj) - - if save: - GD.save(SynthDiag=True) - LGD.append(GD) - return LGD
- - - - - - - - - - - - - -######################################################### -######################################################### -############ Loading tools ############################## -######################################################### - - -
[docs]def load(Cams=None, shot=None, SavePathObj=None, Root=_tfaug_path._Root, sort=False, out='full', Test=True): - """ Load and return the desired :class:`~tofu.geom.GDetect` objects (i.e.: camera heads) - - Directly fecthes and loads the desired :class:`~tofu.geom.GDetect` objects. - - Parameters - ---------- - Cams : str / list - A name or a list of names of the camera heads to be loaded (available are ['F','G','H1','H2','H3','I1','I2','I3','J1','J2','J3','K1','K2','L','M']) - shot : int / float / np.float - A shot number indicating which version of the geometry should be loaded (the ) - SavePathObj : None / str - Absolute path where the created :class:`tofu.geom.GDetect` objects should be saved (if save=True), if None the default is used - Root : str - If SavePathObj=None, a default value is created by appending '/tofu/plugins/AUG/SXR/geom/Objects/' to Root - sort : bool - Flag indicating whether the loaded :class:`tofu.geom.GDetect` objects shall be returned sorted by alphabetical order of the names (True) or in the same order as asked in Cams (False) - out : str - Flag indicating whether the object should be loaded completely ('full'), in a light dismissing the heaviest attributes ('light') or whether only the Id or a list of Id should be returned ('Id'), valid only for '.npz' - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns: - -------- - LGD : list / :class:`tofu.geom.GDetect` - The loaded :class:`tofu.geom.GDetect`, returned as a single object if Cams was provided as a single name, as a list otherwise - - """ - - if Test: - assert Cams is None or type(Cams) is str or (type(Cams) is list and all([type(cc) is str for cc in Cams])), "Arg Cams must be a str or a list of such !" - assert shot is None or type(shot) in [int,float,np.float], "Arg shot must be a int !" - - # Pre-formatting inputs - Flagstr = False - if type(Cams) is str: - Cams = [Cams] - Flagstr = True - if SavePathObj is None: - SavePathObj = Root + _addpath + '/Objects/' - - # List available cameras heads, sort and select the relevant files - DC = _listavailCams(Exp='AUG', Diag='SXR', SavePathObj=SavePathObj, Root=Root, shotstr='_sh') - Cams = sorted(DC.keys()) if Cams is None else Cams - assert all([cc in DC.keys() for cc in Cams]), "Some Cams asked for are not available in "+SavePathObj - Cams = sorted(Cams) if sort else Cams - - # Loading - LGD = [] - for ii in range(0,len(Cams)): - sh = DC[Cams[ii]] if shot is None else [sh for sh in DC[Cams[ii]] if sh<shot] - if len(sh)==0: - warnings.warn(" Camera "+Cams[ii]+" could not be loaded because it was only computed for later shots !") - else: - sh = max(sh) - ff = 'TFG_GDetect_AUG_DgSXR_'+Cams[ii]+'_sh'+str(sh)+'.npz' - gd = tfpf.Open(SavePathObj + ff, out=out) - LGD.append( gd ) - if len(LGD)>0: - LGD = LGD[0] if Flagstr else LGD - return LGD
- - - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/plugins/AUG/Ves/_core.html b/doc/build/html/_modules/tofu/plugins/AUG/Ves/_core.html deleted file mode 100644 index 631b70d6f..000000000 --- a/doc/build/html/_modules/tofu/plugins/AUG/Ves/_core.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - - tofu.plugins.AUG.Ves._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.plugins.AUG.Ves._core

-# -*- coding: utf-8 -*-
-#! /usr/bin/python
-
-"""
-Provide all necessary modules for dealing with AUG-specific data (geometry, diag and signal names...)
-"""
-
-
-import os
-import datetime as dtm
-
-# ToFu specific
-import tofu.defaults as tfd
-import tofu.pathfile as tfpf
-import tofu.geom as tfg
-from .. import _path as _tfaug_path
-
-
-
-__author__ = "Didier Vezinet"
-__all__ = ["_create","load"]
-
-
-
-############################################################################
-############################################################################
-#       Pre-set default SavePathIn, SavePathObj and SavePathOut
-############################################################################
-
-
-
-
-
-############################################################################
-############################################################################
-############################################################################
-#                   Ves creation and loading
-############################################################################
-
-
-def _create(Name='V1', Ves=None, shot=0, SavePathInp=None, SavePathObj=None, Root=_tfaug_path._Root, save=True,
-           skiprows=0, comments='#', units="m",
-           dtime=None, dtFormat=tfd.dtmFormat, dtimeIn=False, Test=True):
-    """ Create and save a Ves object from givn input file or Ves object
-
-    A Ves object can be created from an input file, a np.ndarray or another :class:`~tofu.geom.Ves` object
-
-    Parameters
-    ----------
-    Name :          str
-        The name to be given to the created Ves instance
-    Ves :           None / str / :class:`tofu.geom.Ves` / np.ndarray
-        The source where the polygon is to be found, either:
-            - str: the name of a file containing the coordinates of a polygon to be loaded with :meth:`numpy.loadtxt()`
-            - A :class:`tofu.geom.Ves` object: to re-use its Poly attribute and build one with different name
-            - np.ndarray: an 2-dimensional array containing the 2D cartesian coordinates of a polygon
-    shot :          int
-        A shot number, to be used as a reference point in time, marking from when the provided geometry is valid
-    SavePathInp :   None / str
-        If provided, forces the routine to search for the input file at SavePathInp, if not provided SavePathInp is automatically set to default (i.e. tofu/plugin/Ves/Inputs/)
-    SavePathObj :   None / str
-        If provided, forces the routine to save the created instance at SavePathObj, if not provided SavePathObj is automatically set to default (i.e. tofu/plugin/Ves/Objects/)
-    Root :          str
-        If SavePathObj=None, a default value is created by appending '/tofu/plugins/AUG/Ves/Objects/' to Root
-    save :          bool
-        Flag indicating whether the created Ves instance shall be saved automatically (in SavePathObj)
-    skiprows :      int
-        Parameter fed to np.loadtxt() for reading the polygon from a txt file
-    comments :      str
-        Parameter fed to np.loadtxt() for reading the polygon from a txt file
-    units :         str
-        Flag indicating in which units the input polygon is provided (in ['m','cm','mm'])
-    dtime :         None / dtm.datetime
-        A datetime instance used for labelling the created instance (mostly used for debugging)
-    dtFormat :      str
-        The format of the labelling (mostly used for debugging)
-    dtimeIn :       bool
-        Flag indicating whether to include the label in the file name (mostly used for debugging)
-
-    Returns
-    -------
-    Ves :           tfg.Ves
-        The created tfg.Ves instance
-
-    """
-
-    if Test:
-        assert type(Name) is str, "Arg Name must be a str !"
-        assert Ves is None or type(Ves) in [tfg.Ves,str,np.ndarray], "Arg Ves must be a :class:`~tofu.geom.Ves` instance, a file name or a np.ndarray !"
-        assert type(shot) is int, "Arg shot must be a int !"
-        assert all([ss is None or type(ss) is str for ss in [SavePathInp,SavePathObj]]), "Args [SavePathInp,SavePathObj] must be str !"
-        assert type(save) is bool, "Arg save must be a bool !"
-        assert type(units) is str and units in ['m','cm','mm'], "Arg units must be in ['m','cm','mm'] !"
-        assert dtime is None or type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !"
-        assert type(dtFormat) is str, "Arg dtFormat must be a str !"
-        assert type(dtimeIn) is bool, "Arg dtimeIn must be a bool !"
-
-    if SavePathInp is None:
-        SavePathInp = Root + '/tofu/plugins/AUG/Ves/Inputs/'
-    if SavePathObj is None:
-        SavePathObj = Root + '/tofu/plugins/AUG/Ves/Objects/'
-
-
-    # Get default paths and dtime
-    dtime, dtFormat = tfpf.get_Default_dtimeFmt(dtime=dtime, dtFormat=dtFormat)
-
-    # Get default Ves
-    Ves = SavePathInp+'AUG_Ves.txt' if Ves is None else Ves
-
-    # Create ID object for Ves
-    Ves, addInfo = tfpf.get_PolyFromPolyFileObj(Ves, SavePathInp, units=units, comments=comments, skiprows=skiprows)
-    Ves = tfg.Ves(Name, Ves, Type='Tor', Sino_RefPt=None, Sino_NP=tfd.TorNP, Clock=False, arrayorder='C', Exp=_Exp, shot=shot, dtime=dtime, dtimeIn=dtimeIn, SavePath=SavePathObj)
-
-    # Add info about input to Id
-    for dd in addInfo.keys():
-        Ves.Id._USRdict[dd] = addInfo[dd]
-
-    if save:
-        Ves.save()
-    return Ves
-
-
-
-
[docs]def load(Name='V1', SavePathObj=None, Root=_tfaug_path._Root, Test=True): - """ Load and return the selected Ves object (selected by name or file name) - - Several Ves object might exist for the same experiment depending changes to the experiment in time for example - This function loads the one specified by its name. - - Parameters - ---------- - Name : str / list - Name of the file to be loaded, or a subset of this name or a list of subsets, the file with a name matching all the subsets will be loaded. An error is issued in case of ambiguity - SavePathObj : str - Absolute path where the objects can be found, if None sets to default - Root : str - If SavePathObj=None, a default value is created by appending '/tofu/plugins/AUG/Ves/Objects/' to Root - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Ves : :class:`tofu.geom.Ves` - The loaded Ves object - - """ - - if Test: - assert type(Name) is str or (type(Name) is list and all([type(ss) is str for ss in Name])), "Arg Name must be a str or a list of str !" - assert SavePathObj is None or type(SavePathObj) is str, "Arg SavePathObj must be a str !" - - if SavePathObj is None: - SavePathObj = Root + '/tofu/plugins/AUG/Ves/Objects/' - - Name = [Name] if type(Name) is str else Name - lobj = os.listdir(SavePathObj) - lobj = [ff for ff in lobj if all([ss in ff for ss in Name])] - assert len(lobj)==1, "Several possible matching files for "+str(Name)+" in "+SavePathObj - - Ves = tfpf.Open(SavePathObj+lobj[0]) - return Ves
- - - - - - - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/plugins/ITER/Bolo/geom/_core.html b/doc/build/html/_modules/tofu/plugins/ITER/Bolo/geom/_core.html deleted file mode 100644 index 373a63c31..000000000 --- a/doc/build/html/_modules/tofu/plugins/ITER/Bolo/geom/_core.html +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - - - tofu.plugins.ITER.Bolo.geom._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.plugins.ITER.Bolo.geom._core

-# -*- coding: utf-8 -*-
-"""
-Created on Wed Mar  5 10:42:24 2014
-
-@author: didiervezinet
-"""
-
-import os
-import numpy as np
-import datetime as dtm
-import warnings
-
-
-# ToFu-specific
-import tofu.defaults as tfd
-import tofu.pathfile as tfpf
-import tofu.geom as tfg
-from ... import _path as _tfiter_path
-from ... import Ves as tfiterVes
-
-
-__author__ = "Didier Vezinet"
-__all__ = ["create_Apert","create_Detect","create_GDetect", "load"]
-
-
-Exp = 'ITER'
-
-SavePathObj = '/afs/ipp-garching.mpg.de/home/g/gav/ToFu_ITER/Objects_ITER/'
-SavePathInp = '/afs/ipp-garching.mpg.de/home/g/gav/ToFu_ITER/Inputs_ITER/'
-
-
-
-############################################################################
-############################################################################
-############################################################################
-# --------- Objects creation -------
-############################################################################
-
-
-
[docs]def create_Apert(Name, Ves, Poly, shot=0, SavePathVes=SavePathObj, SavePathObj=SavePathObj, SavePathInp=SavePathInp, comments='#', skiprows=0, units='m', save=True): - """ - Create a Apert object (i.e.: aperture) with specified Name from either a file (.dat,.txt,.csv) or directly from a (2,N) or (N,2) numpy array - Object is created, Saved in SavePathObj and returned - If an input file is specified and the file name does not include an absolute path, the path specified in SavePathInp is used - - Parameters - ---------- - Name : str - Name of the object to be created - Ves : str / :class:`tofu.geom.Ves` - Ves object to which the aperture is associated, a file name can also be used if the Ves object was previously Saved - Poly : str / np.ndarray - Numpy array or input file name (fed to numpy.loadtxt) used to specify the polygon to be used (should be (2,N) or (N,2) for N points) - shot : int - Shot number from which the provided geometry is valid (useful for geometry changes bewteen campaigns) - SavePathVes : None / str - (optional) if Ves is a str (i.e.: file name) or a list (i.e.: list of strings contained in the file name), specifies the path at which the file is to be found - SavePathObj : None / str - (optional) Absolute path where the created object will be saved - SavePathInp : None / str - (optional) Absolute path where the input file is to be found - comments : str - (optional) str specifying the flag for comments in the Poly file (if Poly is a file name), fed to numpy.loadtxt - skiprows : int - (optional) number of rows to be skipped in the Poly file (if Poly is a file name), fed to numpy.loadtxt - units : str - Flag indicating in which units the input polygon is provided (in ['m','cm','mm']) - save : bool - (optional) Flag indicating whether the created object should be Saved - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Apert : :class:`tofu.geom.Apert` - The created Apert object - - """ - if Test: - assert type(Name) is str, "Arg Name must be a str !" - assert type(Ves) in [tfg.Ves,str], "Ves must be specified (tfg.Ves or file name) !" - assert type(Poly) in [str,list,np.ndarray], "Poly must be specified (np.ndarray or file name) !" - assert type(shot) is int, "Arg shot must be a int !" - assert all([ss is None or type(ss) is str for ss in [SavePathVes,SavePathInp,SavePathObj]]), "Args [SavePathInp,SavePathObj] must be str !" - assert type(save) is bool, "Arg save must be a bool !" - assert type(units) is str and units in ['m','cm','mm'], "Arg units must be in ['m','cm','mm'] !" - - # Get default path for loading inputs and saving object - #SavePathObj, SavePathInp = _get_defaultsSavePathsdtime(SavePathObj=SavePathObj, SavePathInp=SavePathInp, Type='Object') - if SavePathInp is None: - SavePathInp = Root + '/tofu/plugins/'+_Exp+'/Bolo/geom/Inputs/' - if SavePathObj is None: - SavePathObj = Root + '/tofu/plugins/'+_Exp+'/Bolo/geom/Objects/' - - # Loading the Ves object - if type(Ves) in [str.list]: - Ves = tfiterVes.load(Name=Ves, SavePathObj=SavePathVes) - - # Get polygon and info - Poly, addInfo = tfpf.get_PolyFromPolyFileObj(Poly, SavePathInp, units=units, comments=comments, skiprows=skiprows, shape0=3) - - # Create Apert object - Apert = tfg.Apert(Name, Poly, Ves=Ves, Exp='ITER', Diag='Bolo', shot=shot, arrayorder='C', Clock=False, SavePath=SavePathObj) - - # Add info about input to Id - for dd in addInfo.keys(): - Apert.Id._USRdict[dd] = addInfo[dd] - - if save: - Apert.save() - return Apert
- - - - - - -
[docs]def create_Detect(Name, Ves, Poly, LApert, shot=0, SavePathVes=SavePathObj, SavePathObj=SavePathObj, SavePathInp=SavePathInp, comments='#', skiprows=0, - Cone_DRY=0.0025, Cone_DXTheta=np.pi/1024., Cone_DZ=0.0025, Cone_NPsi=20, Cone_Nk=60, - Synth_dX12=[0.005, 0.005], Synth_dX12Mode='abs', Synth_ds=0.005, Synth_dsMode='abs', Synth_Colis=True, - Calc=True, CalcEtend=True, CalcSpanImp=True, CalcCone=True, CalcPreComp=True, save=True, save_SynthDiag=False): - """ - Create a :class:`tofu.geom.Detect` object (i.e.: detector) with specified Name from either a file (.dat,.txt,.csv) or directly from a (2,N) or (N,2) numpy array - Object is created, optionally Saved in SavePathObj and returned - If an input file is specified and the file name does not include an absolute path, the path specified in SavePathInp is used - - Parameters - ---------- - Name : str - Name of the object to be created - Ves : :class:`tofu.geom.Ves` or str - Ves object to which the aperture is associated, a file name can also be used if the Ves object was previously Saved - Poly : str or np.ndarray - Numpy array or input file name (fed to numpy.loadtxt) used to specify the polygon to be used (should be (2,N) or (N,2) for N points) - LApert : list - List of Apert objects to be associated to the detector - SavePathVes : None / str - (optional) if Ves is a str (i.e.: file name) or a list (i.e.: list of strings contained in the file name), specifies the path at which the file is to be found - SavePathObj : str - (optional) Absolute path where the created object will be Saved - SavePathInp : str - (optional) Absolute path where the input file is to be found - comments : str - (optional) str specifying the flag for comments in the Poly file (if Poly is a file name), fed to numpy.loadtxt - skiprows : int - (optional) number of rows to be skipped in the Poly file (if Poly is a file name), fed to numpy.loadtxt - save : bool - (optional) Flag indicating whether the created object should be Saved - save_SynthDiag : bool - (optional) Flag indicating whether the pre-computed synthetic diagnostic mesh should also be saved (larger files) or whether it should be recomputed upon loading - - To compute the VOS, tofu tests all points inside a 3D grid to see if each point is visible from the detector through the apertures or not - Cone_DR : float - Resolution of the grid in the R direction, in meters - Cone_DTheta : float - Resolution of the grid in the toroidal direction, in radians - Cone_DZ : float - Resolution of the grid in the Z direction, in meters - - In the particular case when the LOS of the detector lies entirely inside one poloidal cross-section (e.g.: tomography diagnostics), - tofu also computes the integral in the toroidal direction of the solid angle on a regular mesh (for faster computation of the geometry assuming toroidaly invariant basis functions) - This regular mesh is defined in 2D, by the distance between a mesh point and the detector (k) and by the poloidal angle between the LOS and the line going from the detector to the mesh point (psi) - Cone_NPsi : 20 - Number of points of the regular mesh in psi direction (angle) - Cone_Nk : 60 - Number of points of the regular mesh in k direction (distance) - - To compute synthetic signal faster for any simulated emissivity, tofu can pre-compute a 3D mesh of the VOS and store it, with the associates solid angles - This 3D mesh is computed with respect to the LOS. One coordinate (s) is the distance along the LOS, the two others (1 and 2) are the distances in directions perpendicular to the LOS - Synth_dX12 : list - Resolution of the mesh in the two directions perpendicular to the LOS - Synth_dX12Mode : str - Flag indicating whether dX12 is an absolute value ('abs', in meters) or a fraction of the maximum local with of the VOS ('rel') - Synth_ds : float - Resolution of the mesh in the direction parallel to the LOS - Synth_dsMode : str - Flag indicating whether ds is an absolute value ('abs', in meters) or a fraction of the maximum local with of the VOS ('rel') - Synth_Colis : bool - Flag indicating whether the collision detection should be activated - - Returns - ------- - Detect : TFG.Detect - The created TFG.Detect object - - """ - if Test: - assert type(Name) is str, "Arg Name must be a str !" - assert type(Ves) in [tfg.Ves,str], "Ves must be specified (tfg.Ves or file name) !" - assert type(Poly) in [str,list,np.ndarray], "Poly must be specified (np.ndarray or file name) !" - assert type(LApert) is list and all([type(ss) in [TFG.Apert,str] for ss in LApert]), "Arg LApert must be a list of apertures, specified by file name or directly TFG.Apert !" - assert type(shot) is int, "Arg shot must be a int !" - assert all([ss is None or type(ss) is str for ss in [SavePathVes,SavePathInp,SavePathObj]]), "Args [SavePathInp,SavePathObj] must be str !" - assert type(save) is bool, "Arg save must be a bool !" - assert type(units) is str and units in ['m','cm','mm'], "Arg units must be in ['m','cm','mm'] !" - - - # Get default path for loading inputs and saving object - #SavePathObj, SavePathInp = _get_defaultsSavePathsdtime(SavePathObj=SavePathObj, SavePathInp=SavePathInp, Type='Object') - if SavePathInp is None: - SavePathInp = Root + '/tofu/plugins/'+_Exp+'/Bolo/geom/Inputs/' - if SavePathObj is None: - SavePathObj = Root + '/tofu/plugins/'+_Exp+'/Bolo/geom/Objects/' - - # Loading the Ves object - if type(Ves) in [str.list]: - Ves = tfiterVes.load(Name=Ves, SavePathObj=SavePathVes) - - # Loading apertures - for ii in range(0,len(LApert)): - if type(LApert[ii]) is str: - PathFileExt = tfpf._get_PathFileExt_FromName(LApert[ii], Path=SavePathObj, Lstr=['TFG_Apert','ITER','Bolo',LApert[ii],'.npz']) - LApert[ii] = tfpf.Open(PathFileExt) - - # Get polygon and info - Poly, addInfo = tfpf.get_PolyFromPolyFileObj(Poly, SavePathInp, units=units, comments=comments, skiprows=skiprows, shape0=3) - - # Create Detect - Detect = TFG.Detect(Id, Poly, Ves=Ves, LApert=LApert, Exp='ITER', Diag='Bolo', shot=shot, - Cone_DRY=Cone_DRY, Cone_DXTheta=Cone_DXTheta, Cone_DZ=Cone_DZ, Cone_NPsi=Cone_NPsi, Cone_Nk=Cone_Nk, - Calc=True, CalcEtend=True, CalcSpanImp=True, CalcCone=CalcCone, CalcPreComp=False, SavePath=SavePathObj) - - # Now compute the pre-computed mesh for synthetic signal, with default or specified parameters - if CalcPreComp: - LPar = {'dX12':Synth_dX12, 'dX12Mode':Synth_dX12Mode, 'ds':Synth_ds, 'dsMode':Synth_dsMode, 'Colis':Synth_Colis} - Detect.set_SigPrecomp(**params) - - if save: - Detect.save() - return Detect
- - - - - - - -
[docs]def create_GDetect(Name, LDetect, SavePathObj=SavePathObj, save=True, save_SynthDiag=False): - """ - Create a :class:`tofu.geom.GDetect` object (i.e.: group of detectors, or camera) with specified Name from a list of Detect objects - Object is created, optionally Saved in SavePathObj and returned - - Parameters - ---------- - Name : str - Name of the object to be created - LDetect : list - List of already-created Detect objects - SavePathObj : str - (optional) Absolute path where the created object will be Saved - save : bool - (optional) Flag indicating whether the created object should be Saved - save_SynthDiag : bool - (optional) Flag indicating whether the pre-computed synthetic diagnostic mesh should also be saved (larger files) or whether it should be recomputed upon loading - - Returns - ------- - GD : :class:`tofu.geom.GDetect` - The created object - - """ - - if SavePathObj is None: - SavePathObj = shot=LDetect[0].Id.SavePath - - GD = tfg.GDetect(Name, LDetect, Exp='ITER', Diag='Bolo', shot=LDetect[0].Id.shot, SavePath=SavePathObj) - if save: - GD.save(SynthDiag=save_SynthDiag) - return GD
- - - -
[docs]def load(Name, Cls='GDetect', SavePathObj=SavePathObj): - """ Load the desired object, identified by name and saving path - - Searches in SavePathObj a ToFu object of the specified class (Cls) saved under the specified name (Name). - If a single match is found, the object is loaded and returned, otherwise an error is raised - - Parameters - ---------- - Name : str - Name of the object - Cls : str - Class of the object, in ['Ves','Apert','Detect','GDetect'] - SavePathObj : str - Path under which the object is to be found - - """ - - LD = os.listdir(SavePathObj) - LD = [ff for ff in LD if all([ss in ff for ss in ['TFG_','ITER','Bolo',Cls,Name,'.npz']])] - assert len(LD)==1, "Several or no matching file for "+Name+" of class "+Cls+" in "+SavePathObj - - obj = tfpf.open(SavePathObj+LD[0]) - return obj
- - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/plugins/ITER/Struct/_core.html b/doc/build/html/_modules/tofu/plugins/ITER/Struct/_core.html deleted file mode 100644 index e8f5cbb83..000000000 --- a/doc/build/html/_modules/tofu/plugins/ITER/Struct/_core.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - tofu.plugins.ITER.Struct._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.plugins.ITER.Struct._core

-# -*- coding: utf-8 -*-
-"""
-Created on Wed Mar  5 10:42:24 2014
-
-@author: didiervezinet
-"""
-
-
-import os
-import numpy as np
-import datetime as dtm
-import warnings
-
-# ToFu-specific
-import tofu.defaults as tfd
-import tofu.pathfile as tfpf
-import tofu.geom as tfg
-from .. import _path as _tfiter_path
-from .. import Ves as tfiterVes
-
-
-__author__ = "Didier Vezinet"
-__all__ = ["plot"]
-
-
-
-_Exp = 'ITER'
-
-SavePathInp = '/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu/tofu/plugins/ITER/Struct/Inputs/'
-SavePathObj = '/afs/ipp-garching.mpg.de/home/d/didiv/Python/tofu/tofu/plugins/ITER/Struct/Objects/'
-
-
-
-############################################################################
-############################################################################
-############################################################################
-#                   Struct creation and plotting
-############################################################################
-
-
-
-
[docs]def plot(Elt='BPV', EltStruct='P', EltVes='P', Lax=None, Proj="Cross", shot=0, SavePathInp=SavePathInp, SavePathObj=SavePathObj, - Ves=None, NameVes=None, SavePathVes=None, - skiprows=0, comments='#', units='mm', - dtime=None, dtFormat=tfd.dtmFormat, dtimeIn=False, Test=True): - """ Create and plot the required Struct object on the required axes - - The coordinates of the polygons of the Struct objects are taken from SavePathInp - - Parameters - ---------- - Elt : str - Flag indicating which elements to plot, one capital letter per element - - 'B' : the Beams - - 'P' : the ports - - 'V' : the associated Ves object - Lax : None / plt.Axes / list - If provided, the axes or list of axes on which the poloidal and / or horizontal projections of the structure elements shall be plotted - shot : int - A shot number, to be used as a reference point in time, marking from when the provided geometry is valid - SavePathInp : None / str - If provided, forces the routine to search for the input file at SavePathInp, if not provided SavePathInp is automatically set to default (i.e. tofu/plugin/Ves/Inputs/) - SavePathObj : None / str - (optional) Absolute path where the created object will be saved - Ves : None / :class:`tofu.geom.Ves` - If provided, associates the Struct objects with this Ves object, otherwise a default Ves is loaded from SavePathVes if provided - NameVes : str - Use if Ves is not provided, fed to tofu.plugins.ITER.Ves.load() for loading a default Ves - SavePathVes : None / str - If provided, path from which a default Ves object can be loaded - skiprows : int - Parameter fed to np.loadtxt() for reading the polygon from a txt file - comments : str - Parameter fed to np.loadtxt() for reading the polygon from a txt file - units : str - Flag indicating in which units the input polygon is provided (in ['m','cm','mm']) - dtime : None / dtm.datetime - A datetime instance used for labelling the created instance (mostly used for debugging) - dtFormat : str - The format of the labelling (mostly used for debugging) - dtimeIn : bool - Flag indicating whether to include the label in the file name (mostly used for debugging) - Test : bool - Flag indicating whether the inpurts should be checked for conformity - - Returns - ------- - LS : list - The list of all created :class:`tofu.geom.Struct` instances - - """ - - if Test: - assert type(Elt) is str, "Arg Elt must be a str !" - assert type(shot) is int, "Arg shot must be a int !" - assert all([ss is None or type(ss) is str for ss in [SavePathInp]]), "Args [SavePathInp] must be str !" - assert type(units) is str and units in ['m','cm','mm'], "Arg units must be in ['m','cm','mm'] !" - assert dtime is None or type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - assert type(dtFormat) is str, "Arg dtFormat must be a str !" - assert type(dtimeIn) is bool, "Arg dtimeIn must be a bool !" - - # Get default path for loading inputs and saving object - if SavePathInp is None: - SavePathInp = Root + '/tofu/plugins/'+_Exp+'/Struct/Inputs/' - - # Load Ves if necessary - if Ves is None: - Ves = tfiterVes.load(Name=NameVes, SavePathObj=SavePathVes) - - # Get polygons and info - LS = [] - ld = os.listdir(SavePathInp) - if 'P' in Elt: - L = sorted([ll for ll in ld if all([ss in ll for ss in ['PoloidalCurvesCoordinates_','.csv']]) and not any([ss in ll for ss in ['_Poloidal','_BM']])]) - NB = len(L) - for ii in range(0,NB): - ind1 = L[ii].index('PoloidalCurvesCoordinates_')+len('PoloidalCurvesCoordinates_') - ind2 = L[ii].index('.csv') - name = L[ii][ind1:ind2] - Poly, addInfo = tfpf.get_PolyFromPolyFileObj(L[ii], SavePathInp=SavePathInp, units=units, comments='#', skiprows=0, shape0=2) - ss = tfg.Struct(name, Poly, Type='Tor', Ves=Ves, Exp='ITER', shot=shot, SavePath=SavePathObj) - for dd in addInfo.keys(): - ss.Id._USRdict[dd] = addInfo[dd] - LS.append(ss) - if 'B' in Elt: - L = sorted([ll for ll in ld if all([ss in ll for ss in ['PoloidalCurvesCoordinates_','_BM','.csv']]) and not any([ss in ll for ss in ['_Poloidal']])]) - NB = len(L) - for ii in range(0,NB): - ind1 = L[ii].index('_BM')+1 - ind2 = L[ii].index('.csv') - name = L[ii][ind1:ind2] - Poly, addInfo = tfpf.get_PolyFromPolyFileObj(L[ii], SavePathInp=SavePathInp, units=units, comments='#', skiprows=0, shape0=2) - ss = tfg.Struct(name, Poly, Type='Tor', Ves=Ves, Exp='ITER', shot=shot, SavePath=SavePathObj) - for dd in addInfo.keys(): - ss.Id._USRdict[dd] = addInfo[dd] - LS.append(ss) - - # Plot - if 'V' in Elt: - Lax = Ves.plot(Lax=Lax, Proj=Proj, Elt=EltVes) - for ii in range(0,len(LS)): - Lax = LS[ii].plot(Lax=Lax, Proj=Proj, Elt=EltStruct) - - return Lax, LS
- - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/plugins/ITER/Ves/_core.html b/doc/build/html/_modules/tofu/plugins/ITER/Ves/_core.html deleted file mode 100644 index 91b4a4bee..000000000 --- a/doc/build/html/_modules/tofu/plugins/ITER/Ves/_core.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - - tofu.plugins.ITER.Ves._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.plugins.ITER.Ves._core

-# -*- coding: utf-8 -*-
-"""
-Created on Wed Mar  5 10:42:24 2014
-
-@author: didiervezinet
-"""
-
-
-import os
-import numpy as np
-import datetime as dtm
-import warnings
-
-# ToFu-specific
-import tofu.defaults as tfd
-import tofu.pathfile as tfpf
-import tofu.geom as tfg
-from .. import _path as _tfiter_path
-
-
-__author__ = "Didier Vezinet"
-__all__ = ["create","load"]
-
-
-
-_Exp = 'ITER'
-
-DefName, DefFile, Defskiprows = 'ITER_D_2N9J75 v1.7-1', ['PoloidalCurvesCoordinates','ITER','2N9J75','csv'], 4
-
-
-
-############################################################################
-############################################################################
-############################################################################
-# --------- Miscellaneous -------
-############################################################################
-
-
-def _get_defaultsSavePathsdtime(SavePathObj=None, SavePathInp=None, Type='Object'):  # Deprecated ?
-    """ Get default path for loading input and saving output """
-    assert SavePathObj is None or type(SavePathObj) is str, "Arg SavePathObj must be a str !"
-    assert SavePathInp is None or type(SavePathInp) is str, "Arg SavePathInp must be a str !"
-    RP = TFPF.Find_Rootpath(Path=cwd,substr='/ToFu_ITER')
-    if SavePathInp is None:
-        SavePathInp = RP+'/Inputs_'+Exp+'/'
-    if SavePathObj is None:
-        SavePathObj = RP+'/Objects_'+Exp+'/' if Type=='Object' else RP+'/Outputs_'+Exp+'/'
-    return SavePathObj, SavePathInp
-
-
-
-
-############################################################################
-############################################################################
-############################################################################
-#                   Ves creation
-############################################################################
-
-
-
-
[docs]def create(Name=DefName, Poly=DefFile, shot=0, - SavePathInp=None, SavePathObj=None, Root=_tfiter_path._Root, save=True, - skiprows=Defskiprows, comments='#', units='mm', - dtime=None, dtFormat=tfd.dtmFormat, dtimeIn=False, Test=True): - """ Create and save a Ves object from givn input file or Ves object - - A Ves object can be created from an input file, a np.ndarray or another :class:`~tofu.geom.Ves` object - - Parameters - ---------- - Name : str - The name to be given to the created Ves instance - Poly : None / str / :class:`tofu.geom.Ves` / np.ndarray - The source where the polygon is to be found, either: - - str: the name of a file containing the coordinates of a polygon to be loaded with :meth:`numpy.loadtxt()` - - A :class:`tofu.geom.Ves` object: to re-use its Poly attribute and build one with different name - - np.ndarray: an 2-dimensional array containing the 2D cartesian coordinates of a polygon - shot : int - A shot number, to be used as a reference point in time, marking from when the provided geometry is valid - SavePathInp : None / str - If provided, forces the routine to search for the input file at SavePathInp, if not provided SavePathInp is automatically set to default (i.e. tofu/plugin/Ves/Inputs/) - SavePathObj : None / str - If provided, forces the routine to save the created instance at SavePathObj, if not provided SavePathObj is automatically set to default (i.e. tofu/plugin/Ves/Objects/) - Root : str - If SavePathObj=None, a default value is created by appending '/tofu/plugins/ITER/Ves/Objects/' to Root - save : bool - Flag indicating whether the created Ves instance shall be saved automatically (in SavePathObj) - skiprows : int - Parameter fed to np.loadtxt() for reading the polygon from a txt file - comments : str - Parameter fed to np.loadtxt() for reading the polygon from a txt file - units : str - Flag indicating in which units the input polygon is provided (in ['m','cm','mm']) - dtime : None / dtm.datetime - A datetime instance used for labelling the created instance (mostly used for debugging) - dtFormat : str - The format of the labelling (mostly used for debugging) - dtimeIn : bool - Flag indicating whether to include the label in the file name (mostly used for debugging) - Test : bool - Flag indicating whether the inpurts should be checked for conformity - - Returns - ------- - Ves : :class:`tofu.geom.Ves` - The created tfg.Ves instance - - """ - - if Test: - assert type(Name) is str, "Arg Name must be a str !" - assert Poly is None or type(Poly) in [tfg.Ves,str,list,np.ndarray], "Arg Poly must be a :class:`~tofu.geom.Ves` instance, a file name or a np.ndarray !" - assert type(shot) is int, "Arg shot must be a int !" - assert all([ss is None or type(ss) is str for ss in [SavePathInp,SavePathObj]]), "Args [SavePathInp,SavePathObj] must be str !" - assert type(save) is bool, "Arg save must be a bool !" - assert type(units) is str and units in ['m','cm','mm'], "Arg units must be in ['m','cm','mm'] !" - assert dtime is None or type(dtime) is dtm.datetime, "Arg dtime must be a dtm.datetime !" - assert type(dtFormat) is str, "Arg dtFormat must be a str !" - assert type(dtimeIn) is bool, "Arg dtimeIn must be a bool !" - - # Get default path for loading inputs and saving object - #SavePathObj, SavePathInp = _get_defaultsSavePathsdtime(SavePathObj=SavePathObj, SavePathInp=SavePathInp, Type='Object') - if SavePathInp is None: - SavePathInp = Root + '/tofu/plugins/'+_Exp+'/Ves/Inputs/' - if SavePathObj is None: - SavePathObj = Root + '/tofu/plugins/'+_Exp+'/Ves/Objects/' - - # Get polygon and info - Poly, addInfo = tfpf.get_PolyFromPolyFileObj(Poly, SavePathInp, units=units, comments=comments, skiprows=skiprows) - - # Create Ves object - Ves = tfg.Ves(Name, Poly, Type='Tor', Sino_RefPt=None, Sino_NP=tfd.TorNP, Clock=False, arrayorder='C', Exp=_Exp, shot=shot, dtime=dtime, dtimeIn=dtimeIn, SavePath=SavePathObj) - - # Add info about input to Id - for dd in addInfo.keys(): - Ves.Id._USRdict[dd] = addInfo[dd] - - if save: - Ves.save() - return Ves
- - - - - - - - -############################################################################ -############################################################################ -############################################################################ -# Ves loading -############################################################################ - - - - -
[docs]def load(Name=None, SavePathObj=None, Root=_tfiter_path._Root, Test=True): - """ Load and return the selected Ves object (selected by name or file name) - - Several Ves object might exist for the same experiment depending changes to the experiment in time for example - This function loads the one specified by its name. - - Parameters - ---------- - Name : str / list - Name of the file to be loaded, or a subset of this name or a list of subsets, the file with a name matching all the subsets will be loaded. An error is issued in case of ambiguity (no or several matches) - SavePathObj : None / str - Absolute path where the objects can be found, if None sets to default - Root : str - If SavePathObj=None, a default value is created by appending '/tofu/plugins/AUG/Ves/Objects/' to Root - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Ves : :class:`tofu.geom.Ves` - The loaded Ves object - - """ - - if Test: - assert Name is None or type(Name) is str or (type(Name) is list and all([type(ss) is str for ss in Name])), "Arg Name must be a str or a list of str !" - assert SavePathObj is None or type(SavePathObj) is str, "Arg SavePathObj must be a str !" - - if SavePathObj is None: - SavePathObj = Root + '/tofu/plugins/'+_Exp+'/Ves/Objects/' - - if Name is None: - Name = ['2N9J75','v1.7-1'] - - Name = [Name] if type(Name) is str else Name - lobj = os.listdir(SavePathObj) - lobj = [ff for ff in lobj if all([ss in ff for ss in Name])] - assert len(lobj)==1, "Several possible matching files for "+str(Name)+" in "+SavePathObj - - Ves = tfpf.Open(SavePathObj+lobj[0]) - return Ves
- - - - - - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_modules/tofu/treat/_core.html b/doc/build/html/_modules/tofu/treat/_core.html deleted file mode 100644 index c42c70f0a..000000000 --- a/doc/build/html/_modules/tofu/treat/_core.html +++ /dev/null @@ -1,796 +0,0 @@ - - - - - - - - tofu.treat._core — tofu v1.1 - - - - - - - - - - - - - - - -
-
-
-
- -

Source code for tofu.treat._core

-# -*- coding: utf-8 -*-
-"""
-Provide data handling class and methods (storing, processing, plotting...)
-"""
-
-import numpy as np
-import matplotlib.pyplot as plt
-
-
-# ToFu-specific
-import tofu.pathfile as tfpf
-from . import _compute as _tft_c
-from . import _plot as _tft_p
-
-
-__author__ = "Didier Vezinet"
-__all__ = ["PreData"]
-
-
-
-
[docs]class PreData(object): - """ A class defining a data-handling object, data is stored as read-only attribute, copies of it can be modified, methods for plotting, saving... - - The name of the class refers to Pre-treatment Data (i.e.: in the context of tomography, data that is pre-treated before being fed to an inversion algorithm). - ToFu provide a generic data-handling class, which comes a robust data storing policy: the input data is stored in a read-only attribute and the data-processing methods are used on a copy (e.g.: for computing the SVD, Fourier transform, shorten the time interval of interest, eliminate some channels...). - Furthermore, methods for interactive plotting are provided as well as a saving method - - Parameters: - ----------- - - - - Returns: - -------- - obj : PreData - The created instance - - """ - - - - - def __init__(self, data, t=None, Chans=None, Id=None, Exp='AUG', shot=None, Diag='SXR', dtime=None, dtimeIn=False, SavePath=None, - LIdDet=None, DtRef=None, - MovMeanfreq=100, Resamp=True, interpkind='linear', indOut=None, indCorr=None, - - DF=None, Harm=True, DFEx=None, HarmEx=True, lt=[], lNames=[], - Calc=True): - - self._Done = False - - self._set_Id(Id, Exp=Exp, shot=shot, Diag=Diag, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn, Dt=Dt, t=t) - self.set_data(data, t=t, Chans=Chans, DtRef=DtRef, LIdDet=LIdDet) - - self.set_timeResamp(MovMeanfreq, Resamp=Resamp, interpkind=interpkind, Test=Test, Calc=False) - - self.Out_add(indOut=indOut, Calc=False) - self.Corr_add(indCorr=indCorr, Calc=False) - self.substract_Dt(DtRef, Calc=False) - self.set_fft(DF=DF, Harm=Harm, DFEx=DFEx, HarmEx=HarmEx, Calc=False) - self.interp(lt=lt, lNames=lNames, Calc=False) - if Calc: - self._doAll() - self._PhysNoise = None - self._NoiseModel = None - - - - - self._Done = True - - - @property - def Id(self): - return self._Id - @property - def Exp(self): - return self.Id.Exp - @property - def shot(self): - return self.Id.shot - @property - def data(self): - return self._data - @property - def t(self): - return self._t - @property - def Dt(self): - return self._Dt - @property - def Chans(self): - return self._Chans - - @property - def svd(self): - return self._svd - @property - def FFT(self): - return self._FFT - - - def _check_inputs(self, Id=None, Exp=None, shot=None, SavePath=None): - _PreData_check_inputs(Id=Id, Exp=Exp, shot=shot, SavePath=SavePath) - - def _set_Id(self, Val, Exp=None, Diag=None, shot=None, dtime=None, dtimeIn=False, SavePath=None, t=None, Dt=None): - if self._Done: - Out = tfpf._get_FromItself(self.Id,{'Exp':Exp, 'Diag':Diag, 'shot':shot, 'dtime':dtime, '_dtimeIn':dtimeIn, 'SavePath':SavePath}) - Exp, Diag, shot, dtime, dtimeIn, SavePath = Out['Exp'], Out['Diag'], Out['shot'], Out['dtime'], Out['dtimeIn'], Out['SavePath'] - if Val is None: - Val = _tft_c.get_DefName(t=t, Dt=Dt) - tfpf._check_NotNone({'Id':Val}) - self._check_inputs(Id=Val) - if type(Val) is str: - tfpf._check_NotNone({'Exp':Exp, 'Diag':Diag, 'shot':shot, 'dtimeIn':dtimeIn}) - self._check_inputs(Exp=Exp, Diag=Diag, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - Val = tfpf.ID('PreData', Val, Type=Type, Exp=Exp, shot=shot, SavePath=SavePath, dtime=dtime, dtimeIn=dtimeIn) - self._Id = Val - - def _set_data(self, data, t, Chans, DtRef=None, LIdDet=None): - self._check_inputs(data=data, t=t, Chans=Chans, DtRef=DtRef, LIdDet=LIdDet) - - OutRef, Out, Outind = _tft_c._PreData_set_data(data, t, Chans, DtRef=DtRef, LIdDet=LIdDet) - self._dataRef, self._tRef, self._ChanRef, self._NChanRef, self._LIdDetRef, self._DtRef = OutRef - self._data, self._t, self._Chans, self._NChans, self._LIdDet, self._Dt = Out - self._indOut, self._indCorr = Outind - - if not self._LIdDetRef is None: - self.Id.set_LObj(self._LIdDetRef) - - -
[docs] def set_Dt(self, Dt=None, Calc=True): - """ Set the time interval to which the data should be limited (does not affect the reference data) - - While the original data set and time base are always preserved in the background, you can change your mind and focus on a smaller interval included in the original one. - This can be convenient for applying data treatment (SVD, fft...) to parts of the signal lifetime only. - - Parameters - ---------- - Dt : None / list - The time interval of interest, as a list of len()=2 in increasing values - Calc : bool - Flag indicating whether the calculation should be triggered immediately - - """ - self._check_inputs(Dt=Dt) - # assert Dt is None or (hasattr(Dt,'__getitem__') and len(Dt)==2), "Arg Dt must be a len==2 list, tuple or np.ndarray !" - self._Dt = Dt - if Calc: - self._doAll()
- - - -
[docs] def set_Resamp(self, t=None, f=None, Method='movavrg', interpkind='linear', Calc=True): - """ Re-sample the data and time vector - - Use a new time vector that can either be: - - provided directly (if t is not None) - - computed from an input sampling frequency (if f is not None) - If but t and f are provided, t is used as the time vector and f is only used for the moving average - - Then, the data is re-computed on this new time vector using either interpolation ('interp') or moving average ('movavrg') - - Parameters - ---------- - t : None / np.ndarray - - f : None / int / float - - Method : str - - Resamp : bool - - interpkind : str - - Calc : bool - Flag indicating whether the calculation should be triggered immediately - - """ - self._check_inputs(t=t, f=f, Method=Method, Resamp=Resamp, interpkind=interpkind, Calc=Calc) - - self._Resamp_t = t - self._Resamp_f = f - self._Resamp_Method = Method - self._Resamp_interpkind = interpkind - if Calc: - self._doAll()
- - - - -
[docs] def select(self, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', InOut='In', Out=bool, ToIn=False): - """ Return a sub-set of the data (channels-wise selection) - - Return an array of indices of channels selected according to the chosen criteria with chosen values - Use either Val or (PreExp and PostExp) - - Parameters - ---------- - Val : list or str - List of values that the chosen criteria must match (converted to one-item list if str) - Crit : str - Criterion used to select some channels, must be among their tfpf.ID class attributes (e.g.: 'Name', 'SaveName'...) or IFTF.ID.USRdict ('Cam',...) - PreExp : list or str - List of str expressions to be fed to eval(PreExp[ii]+" Detect.Crit "+PostExp[ii]) or eval(PreExp[ii]+" Detect.USRdict.Crit "+PostExp[ii]) - PostExp : list or str - List of str expressions to be fed to eval(PreExp[ii]+" Detect.Crit "+PostExp[ii]) or eval(PreExp[ii]+" Detect.USRdict.Crit "+PostExp[ii]) - Log : str - Flag ('or' or 'and') indicating whether to select the channels matching all criteria or any - InOut : str - Flag ('In' or 'Out') indicating whether to select all channels matching the criterion, or all except those - Out : type or str - Flag (bool, int or an attribute of tfpf.ID or tfpf.ID.USRdict) indicating whether to return an array of boolean indices or int indices, or a list of the chosen attributes (e.g.: 'Name') - ToIn : bool - Flag indicating whether indices should be returned with respect to the channels that are considered as included only (see obj.In_list() to see these channels) - - Returns - ------- - ind : np.ndarray - Indices of the selected channels, as a bool or int array - - - Examples - -------- - >> ind = TFT.PreData.select(Val=['H','J'], Crit='Cam', Log='any', InOut='In', Out=bool) - Will return a bool array of the indices of all channels for which 'Cam' is 'H' or 'J' - >> ind = PreData.select(Crit='Name', PreExp=["'F' in ", "'6' in "], Log='and', InOut='In', Out=int) - Will return an int array of indices of all channels for which 'F' and '6' are both included in the name - >> ind = PreData.select(Crit='CamHead', PreExp=["'F' in ", "'2' in "], Log='any', InOut='Out', Out='Name') - Will return the names (as a list) of all channels except those that have a camera head name that includes a 'F' or a '2' (i.e.: except camera heads 'F' and 'H2', 'I2', 'J2', 'K2') - - """ - - if ToIn: - LD = {} - for kk in self.Id.LObj['Detect'].keys(): - LD[kk] = [self.Id.LObj['Detect'][kk][ii] for ii in (~self._indOut).nonzero()[0]] - return tfpf.SelectFromIdLObj(LD, Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Out=Out) - else: - return tfpf.SelectFromIdLObj(self.Id.LObj['Detect'], Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Out=Out)
- - - - -
[docs] def Out_add(self, Val=[], LCrit=['Name','Cam','CamHead'], indOut=None, Calc=True): - """ Add desired channels to the list of channels to be excluded - - It is possible to store a list a list of channels that are thought to be corrupted or more generally that, after closer inspection, are considered not fit. - This list is then automatically passed on to further ToFu objects (e.g.: for inversions), so that the corresponding data is excluded from all further processes. - PreData provides methods to append channel names to this list (in fact you can even exclude whole cameras). - - Parameters - ---------- - Val : list - Fed to self.select(), list of values for criteria in LCrit that should be used to exclude channels (e.g.: list of channel names of camera names) - LCrit : list - Fed to self.select(), list of criteria against which to select the channels matching the values in Val (should be attributes of :class:`tofu.pathfile.ID` or of its USRdict attribute) - indOut : None / np.ndarray - Alternatively, you can directly pass a (N,) bool array whereN matches the number of channels and True means that a channel should be excluded, thus setting self._indOut - Calc : bool - Flag indicating whether the calculation should be triggered immediately - - """ - if not indOut is None: - assert isinstance(indOut,np.ndarray) and indOut.dtype.name=='bool' and indOut.ndim==1 and indOut.size==self._NChanRef, "Arg indOut must be a (N,) np.ndarray of bool !" - self._indOut = indOut - elif not LVal==[]: - ind = np.zeros((len(LCrit),self._NChanRef),dtype=bool) - for ii in range(0,len(LCrit)): - ind[ii,:] = self.select(Val=Val, Crit=LCrit[ii], InOut='In', Out=bool) - self._indOut = self._indOut | np.any(ind,axis=0) - if Calc & (not Val==[] or not indOut is None): - self._doAll()
- -
[docs] def In_add(self, LVal=[], LCrit=['Name','Cam','CamHead'], Calc=True): - """ Add channels to the list of channels to be re-included as valid channels - - Provides a mechanism opposite to :meth:`~tofu.treat.PreData.Out_add()`. - We you change your mind about a series of channel and think they should be re-included as valid, pass them to this method using the same arguments as self.Out_add() - - Parameters - ---------- - Val : list - Fed to self.select(), list of values for criteria in LCrit that should be used to exclude channels (e.g.: list of channel names of camera names) - LCrit : list - Fed to self.select(), list of criteria against which to select the channels matching the values in Val (should be attributes of :class:`tofu.pathfile.ID` or of its USRdict attribute) - indOut : None / np.ndarray - Alternatively, you can directly pass a (N,) bool array whereN matches the number of channels and True means that a channel should be excluded, thus setting self._indOut - Calc : bool - Flag indicating whether the calculation should be triggered immediately - - """ - if not LVal==[]: - ind = np.ones((len(LCrit),self._NChanRef),dtype=bool) - for ii in range(0,len(LCrit)): - ind[ii,:] = self.select(Val=LVal, Crit=LCrit[ii], InOut='Out', Out=bool) - self._indOut = self._indOut & np.all(ind,axis=0) - if Calc: - self._doAll()
- -
[docs] def Out_list(self, Out='Name'): - """ Return the list of excluded channel names (considered corrupted) - - This lists the channels indicated by self._indOut, populated using self.Out_add() and de-populated using self.In_add(). - The output can be returned as a list of channel Names - - Parameters - ---------- - Out : str - Flag indicating in which form to return the output (fed to :meth:`~tofu.treat.PreData.select()`) - - Returns - ------- - L : list - List of excluded channels in the required form - - """ - L = self.select(Out=Out) - L = [L[ii] for ii in range(0,len(L)) if self._indOut[ii]] - return L
- -
[docs] def In_list(self, Out='Name'): - """ Return the list of included channel names (considered valid) - - The equivalent of :meth:`~tofu.treat.PreData.Out_list()`, but this time returning the complementary list - - Parameters - ---------- - Out : str - Flag indicating in which form to return the output (fed to :meth:`~tofu.treat.PreData.select()`) - - Returns - ------- - L : list - List of excluded channels in the required form - - """ - L = self.select(Out=Out) - L = [L[ii] for ii in range(0,len(L)) if not self._indOut[ii]] - return L
- -
[docs] def interp(self, lt=[], lNames=[], Calc=True): - """ Perform linear interpolation of data at chosen times for chosen channels - - As opposed to self.set_t(), this method shall be used to interpolate data of a small number of channels at a small sumber of time points. - Use this to correct a small number of time points that are clearly corrupted when you think the rest shall be preserved. - - !!! This is done with respect to the reference time vector and dataset, to avoid propagating errors through later data treatment (use self.plot(V='Ref') to plot the reference data set) !!! - - Parameters - ---------- - lt : list - Times at which linear interpolation should be performed - lNames : list - Channels for which interpolation should be performed, one element per corresponding time point, elements can be: - - list of str: list of channel names that should be interpolated for the corresponding time point - - str: single channel name that should be interpolated for the corresponding time point - - 'All': all channels should be interpolated for the corresponding time point - Calc : bool - Flag indicating whether data should be updated immediately - - Examples - -------- - >> obj.interp(lt=[2.55, 5.10, 6.84], lNames=[['H_021','J_014'], 'F_10', 'All'], Calc=True) - Will perform interpolation for 2 channels for the first time point, for one channel for the second, and for all channels for the last time point - - """ - self._interp_lt, self._interp_lNames, self._interp_UNames = _tft_c._PreData_interp(lt=lt, lNames=lNames) - if Calc: - self._doAll()
- -
[docs] def substract_Dt(self, tsub=None, Calc=True): - """ Allows subtraction of data at one time step from all data - - Can be convenient for plotting background-subtracted signal (background meaning signal before a reference time step). - - Parameters - ---------- - tsub : int / float / iterable - A time value, or a time interval indicating which part of the signal is to be considered as reference and subtracted from the rest - - int / float : - Calc : bool - Flag indicating whether data should be updated immediately - - """ - assert tsub is None or type(tsub) in [int,float,list,tuple,np.ndarray], "Arg tsub must be a time value (int,float) or a time interval (list,tuple,np.ndarray) !" - if not type(tsub) is float and not tsub is None: - assert len(tsub)==2 and tsub[1]>tsub[0] and np.diff(tsub)>np.mean(np.diff(self.t)), "Arg tsub must be an increasing time interval larger than the signal time reolsution !" - self._Subtract_tsub = tsub - if Calc: - self._doAll()
- - -
[docs] def set_fft(self, DF=None, Harm=True, DFEx=None, HarmEx=True, Calc=True): - """ Return the FFT-filtered signal (and the rest) in the chosen frequency window (in Hz) and in all the higher harmonics (optional) - - Can also exclude a given interval and its higher harmonics from the filtering (optional) - - Parameters - ---------- - DF : iterable - Iterable of len()=2, containing the lower and upper bounds of the frequency interval (Hz) to be used for filtering - Harm : bool - If True all the higher harmonics of the interval DF will also be included - DFEx : list - List or tuple of len()=2, containing the lower and upper bounds of the frequency interval to be excluded from filtering (in case it overlaps with some high harmonics of DF) - HarmEx : bool - If True all the higher harmonics of the interval DFEx will also be excluded - - """ - self._FFTPar = {'DF':DF, 'Harm':Harm, 'DFEx':DFEx, 'HarmEx':HarmEx} - if Calc: - self._doAll()
- - - def _doAll(self): - """ Centralizes all the computations, run everytime something is updated (time interval, valid channels, resampling, subtraction, fft...) """ - - # Get the list of channels considered valid - self._Chans = self.In_list() - self._NChans = np.sum(~self._indOut) - - data = self._dataRef[:,~self._indOut] - - # Interp of individual corrupted time points (must be done on reference data and time vector to be robust) - unames = [nn for nn in self._interp_UNames if not nn=='All'] - inds = [self.select(Val=nn, Crit='Name', Out=bool)[~self._indOut].nonzero()[0] for nn in unames] - data = _tft_c._PreData_doAll_interp(data, self._tRef, self._interp_lt, self._interp_lNames, unames, inds) - - # Time re-sampling - data, t = _tft_c._PreData_doAll_Resamp(self._DtRef, self._tRef, data, self._Resamp_t, self._Resamp_f, self._Resamp_Method, self._Resamp_interpkind) - - # Subtracting reference time - data = _tft_c._PreData_doAll_Subtract(data, t, self._Subtract_tsub) - - # Performing fft - data = _tft_c._PreData_doAll_FFT(data, t, self._FFTPar) - - # Focus on time interval (only for visualization) - indt = (t>=self._Dt[0]) & (t<=self._Dt[1]) if not self._Dt is None else np.ones((t.size,),dtype=bool) - self._data, self._t = data[indt,:], t[indt] - - -
[docs] def Corr_add(self, Val=[], LCrit=['Name','Cam','CamHead'], indCorr=None, Calc=True): - """ Add channels to the list of channels that are thought to need correction - - When a channel is suspected to need correction (mismatching retrofit due for example to wrong calibration), it can be included in a dedicated correction list. - Channels in this list can then be discarded for the inversion, a correction coefficient can be computed from the retrofit, and the inversion can be re-done using this correction coefficient. - This list works like the list of excluded / corrupted channels self.Out_list() - - Parameters - ---------- - Val : list - Fed to self.select(), list of values for criteria in LCrit that should be used to exclude channels (e.g.: list of channel names of camera names) - LCrit : list - Fed to self.select(), list of criteria against which to select the channels matching the values in Val (should be attributes of :class:`tofu.pathfile.ID` or of its USRdict attribute) - indCorr : None / np.ndarray - Alternatively, you can directly pass a (N,) bool array whereN matches the number of channels and True means that a channel should be excluded, thus setting self._indCorr - Calc : bool - Flag indicating whether the calculation should be triggered immediately - - """ - if not indCorr is None: - assert isinstance(indCorr,np.ndarray) and indCorr.dtype.name=='bool' and indCorr.ndim==1 and indCorr.size==self._NChanRef, "Arg indCorr must be a (N,) np.ndarray of bool !" - self._indCorr = indCorr - elif not LVal==[]: - ind = np.zeros((len(LCrit),self._NChanRef),dtype=bool) - for ii in range(0,len(LCrit)): - ind[ii,:] = self.select(Val=LVal, Crit=LCrit[ii], InOut='In', Out=bool) - self._indCorr = self._indCorr | np.any(ind,axis=0)
- - -
[docs] def Corr_remove(self, Val=[], LCrit=['Name','Cam','CamHead'], Calc=True): - """ Add channels to the list of channels to be re-inserted as valid channels - - Works like self.In_add() (i.e.: opposite of self.Corr_add()) - - Parameters - ---------- - Val : list - Fed to self.select(), list of values for criteria in LCrit that should be used to exclude channels (e.g.: list of channel names of camera names) - LCrit : list - Fed to self.select(), list of criteria against which to select the channels matching the values in Val (should be attributes of :class:`tofu.pathfile.ID` or of its USRdict attribute) - indCorr : None / np.ndarray - Alternatively, you can directly pass a (N,) bool array whereN matches the number of channels and True means that a channel should be excluded, thus setting self._indCorr - Calc : bool - Flag indicating whether the calculation should be triggered immediately - - """ - if not LVal==[]: - ind = np.ones((len(LCrit),self._NChanRef),dtype=bool) - for ii in range(0,len(LCrit)): - ind[ii,:] = self.select(Val=LVal, Crit=LCrit[ii], InOut='Out', Out=bool) - self._indCorr = self._indCorr & np.all(ind,axis=0)
- -
[docs] def Corr_list(self, Out='Name'): - """ Return the list of channel names needing correction - - This lists the channels indicated by self._indOut, populated using self.Out_add() and de-populated using self.In_add(). - The output can be returned as a list of channel Names - - Parameters - ---------- - Out : str - Flag indicating in which form to return the output (fed to :meth:`~tofu.treat.PreData.select()`) - - Returns - ------- - L : list - List of excluded channels in the required form - - """ - L = self.select(Out=Out) - L = [L[ii] for ii in range(0,len(L)) if self._indCorr[ii]] - return L
- -
[docs] def set_PhysNoise(self, Mode='svd', Phys=range(0,8), DF=[10.e3,11.e3], DFEx=None, Harm=True, HarmEx=True, Deg=0, Nbin=3, LimRatio=0.05, Plot=False): - """ Use a svd or a fft to estimate the physical part of the signal and the part which can be assimilated to noise, then uses specified degree for polynomial noise model - - This method provides an easy way to compute the noise level on each channel. - It can be done in 2 different ways: - - 'svd': you have to provide the mode numbers that you think can be considered as physical, the signal will be re-constructed from these and the rest discarded as noise - - 'fft': you have to provide the frequency window that you think is physical (optionaly the higher harmonics can be included), the signal is re-constructed via inverse fourier and the rest discarded as noise - - To help you decide which mode numbers of frequency interval to use, you can preliminarily use self.plot_svd() and self.plot_fft() to visualize the decompositions. - - Note : this is only used to compute a noise estimate, stored separately, the total original signal is preserved - - Parameters - ---------- - Mode : str - Flag indicating with which method should the noise be estimated ('svd' or 'fft') - Phys list - Modes to be extracted from the svd (default: first 8 modes), use method .plot_svd() to choose the modes - DF list - 2 values delimiting a frequency interval (in Hz) from which to extract signal using a fft and rfft - Harm bool - Flag, if True all the available higher harmonics of FreqIn will also be included in the physical signal - DFEx list - 2 values delimiting a frequency interval (in Hz) that shall be avoided in the physical signal (relevant if some high harmonics of DF intersect DFEx) - HarmEx bool - Flag, if True all the available higher harmonics of Freqout will also be avoided in the physical signal - Deg int - Degree to be used for the polynomial noise model - Nbin int - Number of bins to be used for evaluating the noise (std) at various signal values - LimRatio float - Ratio ... to be finished... - Plot bool - Flag, if True the histogram of the estimated noise is plotted - - Examples - -------- - >> obj.set_PhysNoise(Mode='svd', Phys=[0,1,2,3,4,5], Deg=0) - Will take the first 6 modes of the signal svd and consider as physical, the rest is used to compute a constant (Deg=0) noise estimate on each channel - - """ - if Mode=='svd': - Physic, Noise = _tft_c.SVDExtractPhysNoise(self.data, ModesPhys=Phys) - Param = {'Phys':Phys} - elif Mode=='FFT': - Physic, Noise = _tft_c.FourierExtract(self.t, self.data, DF=DF, DFEx=DFEx, Harm=Harm, HarmEx=HarmEx, Test=True) - Param = {'DF':DF, 'DFEx':DFEx, 'Harm':Harm, 'HarmEx':HarmEx} - self._PhysNoise = {'Mode':Mode, 'Param':Param, 'Physic':Physic, 'Noise':Noise} - self._set_NoiseModel(Deg=Deg, Nbin=Nbin, LimRatio=LimRatio, Plot=Plot)
- - - def _set_NoiseModel(self, Deg=0, Nbin=3, LimRatio=0.05, Plot=False): - """ Fit the noise as a function of the physical part of the signal by a polynomial, using np.polyfit and the noise level estimated from self.set_PhysNoise() - - After the physical part of the data has been extracted with self.set_PhysNoise(), this function provides tools for estimating how the noise level varies with the signal value (i.e. fixed noise vs signal-dependent noise). - It fits the noise vs data plot to give a least-square noise model. - If you want a constant noise model, just use Deg=0. - - Parameters - ---------- - Deg : int - Degree to be used for the polynomial noise model - Nbin : int - Number of bins to be used for evaluating the noise (std) at various signal values - LimRatio : float - Ratio ... - Plot : bool - Flag, if True the histogram of the estimated noise is plotted - - """ - self._NoiseModel, self._Noise, self._NoiseCoefs = _tft_c._PreData_set_NoiseModel() - - -
[docs] def plot(self, a4=False): - """ Plot the signal in an interactive window, no arguments needed - - Plot an interactive matplotlib window to explore the data - - Parameters - ---------- - a4 : bool - Flag indicating whether the figure should be the size of a a4 sheet of paper (to facilitate printing) - - Returns - ------- - Lax : list - List of plt.Axes on which the plots are made - - """ - Lax = _tft_p.Plot_Signal(self.data, self.t, self.Chans, nMax=4, shot=self.shot, a4=a4) - return Lax
- - -
[docs] def plot_svd(self, Modes=10, NRef=None, a4=False, Test=True): - """ Plot the chosen modes (topos and chronos) of the svd of the data, and the associated spectrum on a separate figure - - Performs a svd of the data and plots the singular values, the temporal and spacial modes - - Paramaters - ---------- - Modes : int / iterable - Index of the modes to be plotted, the modes and sorted in decreasing order of singular value - - int : plots all modes in range(0,Modes) - - iterable : plots all modes whose index is contained in Modes - NRef : None - Number of columns in the plot, if None set to len(Modes)/2 (i.e.: 2 modes plotted per axes) - a4 : bool - Flag indicating whether the figure should be the size of a a4 sheet of paper (to facilitate printing) - Test : bool - Flag indicating whether the inputs should be tested for conformity - - Returns - ------- - Lax : list - List of plt.Axes on which the plots were made - - """ - Lax = _tft_p.SVDNoisePlot(self.data, t=self.t, Modes=Modes, NRef=NRef, a4=a4, Test=Test) - return Lax
- - -
[docs] def plot_fft(self, Val=None, Crit='Name', V='simple', tselect=None, Fselect=None, PreExp=None, PostExp=None, Log='or', InOut='In', SpectNorm=True, DTF=None, RatDef=100., Inst=True, MainF=True, - ylim=(None,None), cmap=plt.cm.gray_r, a4=False): - """ Plot the power spectrum (fft) of the chosen signals - - Computes the fft of the data and plots the power spectrum, normalized or not, for the chosen channels - - Parameters Val, Crit, PreExp, PostExp, Log and InOut are for channel selection and are fed to :meth:`~tofu.treat.PreData.select()` - - Parameters - ---------- - V : str - Flag indicating whether the plot should be interactive, values in ['simple','inter'] - tselect : None / - - Fselect : None / - - SpectNorm : bool - Flag, if True the power spectrum is normalised to its maximum at each time step (default: True) - DTF : float - Size (in seconds) of the running time window to be used for the windowed fft - RatDef : float - Used if DTF not provided, the number by which the total signal duration is divided to get a time window - Inst : bool - Flag, if true, the average of the signal is substracted at each time step to emphasize high frequencies (higher than the one associated to the running time window, default: True) - MainF : bool - Flag - ylim : tuple - Each limit which is not None is fed to plt.Axes.set_ylim() - a4 : bool - Flag, if true the figure is sized so as to fill a a4 paper sheet - - Returns - ------- - Lax : list - List of plt.Axes on which the plots were made - - """ - ind = self.select(Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, InOut=InOut, Out=int, ToIn=True) - Lax = _tft_p._PreData_plot_fft(self.Chans, V, ind, Inst, self.data, self.t, DTF, RatDef, SpectNorm, cmap, ylim, tselect, Fselect, a4=False) - return Lax
- - def _plot_NoiseVSPhys(self, Val=None, Crit='Name', PreExp=None, PostExp=None, Log='any', a4=False): - ind = self.select(Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, Out=int, ToIn=True) - LNames = self.select(Val=Val, Crit=Crit, PreExp=PreExp, PostExp=PostExp, Log=Log, Out='Name', ToIn=True) - Coefs = self._NoiseCoefs[:,ind] if self._NoiseCoefs.ndim==2 else self._NoiseCoefs[ind] - return Plot_Noise(self._PhysNoise['Phys'][:,ind], self._PhysNoise['Noise'][:,ind], self._NoiseCoefs[:,ind], LNames, self._NoiseModel['Deg'], a4=a4) - -
[docs] def save(self, SaveName=None, Path=None, Mode='npz', compressed=False): - """ Save the object in folder Name, under file name SaveName, using specified mode - - Most tofu objects can be saved automatically as numpy arrays (.npz, recommended) at the default location (recommended) by simply calling self.save() - - Parameters - ---------- - SaveName : None / str - The name to be used for the saved file, if None (recommended) uses self.Id.SaveName - Path : None / str - Path specifying where to save the file, if None (recommended) uses self.Id.SavePath - Mode : str - Flag specifying whether to save the object as a numpy array file ('.npz', recommended) or an object using cPickle (not recommended, heavier and may cause retro-compatibility issues) - compressed : bool - Flag, used when Mode='npz', indicating whether to use np.savez or np.savez_compressed (slower saving and loading but smaller files) - - """ - tfpf.Save_Generic(self, SaveName=SaveName, Path=Path, Mode=Mode, compressed=compressed)
- - - - -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/doc/build/html/_sources/Auto_tofu.geom.txt b/doc/build/html/_sources/Auto_tofu.geom.txt deleted file mode 100644 index 39547abef..000000000 --- a/doc/build/html/_sources/Auto_tofu.geom.txt +++ /dev/null @@ -1,28 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.geom** -============== - -.. automodule:: tofu.geom - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - - -.. Local Variables: -.. mode: rst -.. End: - diff --git a/doc/build/html/_sources/Auto_tofu.pathfile.txt b/doc/build/html/_sources/Auto_tofu.pathfile.txt deleted file mode 100644 index 08fb4fd31..000000000 --- a/doc/build/html/_sources/Auto_tofu.pathfile.txt +++ /dev/null @@ -1,28 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.pathfile** -================= - -.. automodule:: tofu.pathfile - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - - -.. Local Variables: -.. mode: rst -.. End: - diff --git a/doc/build/html/_sources/Auto_tofu.plugins.AUG.SXR.geom.txt b/doc/build/html/_sources/Auto_tofu.plugins.AUG.SXR.geom.txt deleted file mode 100644 index fea9c8bf8..000000000 --- a/doc/build/html/_sources/Auto_tofu.plugins.AUG.SXR.geom.txt +++ /dev/null @@ -1,35 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**AUG.SXR** -=========== - - -**AUG.SXR.geom** ----------------- - -.. automodule:: tofu.plugins.AUG.SXR.geom - :members: - -**AUG.SXR.data** ----------------- -.. automodule:: tofu.plugins.AUG.SXR.data - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_sources/Auto_tofu.plugins.AUG.txt b/doc/build/html/_sources/Auto_tofu.plugins.AUG.txt deleted file mode 100644 index fbbe47ba9..000000000 --- a/doc/build/html/_sources/Auto_tofu.plugins.AUG.txt +++ /dev/null @@ -1,43 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**AUG** -======= - - -**AUG.Ves** ------------ - -.. automodule:: tofu.plugins.AUG.Ves - :members: - - -**AUG.SXR.geom** ----------------- - -.. automodule:: tofu.plugins.AUG.SXR.geom - :members: - - -**AUG.SXR.data** ----------------- -.. automodule:: tofu.plugins.AUG.SXR.data - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_sources/Auto_tofu.plugins.ITER.Bolo.geom.txt b/doc/build/html/_sources/Auto_tofu.plugins.ITER.Bolo.geom.txt deleted file mode 100644 index 38d879d9c..000000000 --- a/doc/build/html/_sources/Auto_tofu.plugins.ITER.Bolo.geom.txt +++ /dev/null @@ -1,27 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.plugins.ITER.Bolo.geom** -=============================== - -.. automodule:: tofu.plugins.ITER.Bolo.geom - :members: - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_sources/Auto_tofu.plugins.ITER.txt b/doc/build/html/_sources/Auto_tofu.plugins.ITER.txt deleted file mode 100644 index 2a3ce8669..000000000 --- a/doc/build/html/_sources/Auto_tofu.plugins.ITER.txt +++ /dev/null @@ -1,44 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**ITER** -=============================== - - -**ITER.Ves** ------------- - -.. automodule:: tofu.plugins.ITER.Ves - :members: - -**ITER.Struct** ---------------- - -.. automodule:: tofu.plugins.ITER.Struct - :members: - - -**ITER.Bolo.geom** ------------------- - -.. automodule:: tofu.plugins.ITER.Bolo.geom - :members: - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_sources/Auto_tofu.plugins.txt b/doc/build/html/_sources/Auto_tofu.plugins.txt deleted file mode 100644 index 3bca24afa..000000000 --- a/doc/build/html/_sources/Auto_tofu.plugins.txt +++ /dev/null @@ -1,48 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.plugins** -================ - - -In an effort to adapt ToFu to several experiments and ensure a smooth use for non-specialists users, plugins can be developped to adapt ToFu to the local specificities of each laboratory or environment (local computer systems and networks, local geometry and nomenclature, local data storing systems...). - -While ToFu in itself is open-source, the plugins, which concentrate everything that is machine-specific, are writen on demand and customized for the local needs, they remain on the local servers and are not provided on the GitHub page of ToFu. It is via the laboratories that you may have access to them. - -The following plugins have been / are being developped: - -Machine-oriented plugins ------------------------- - -.. toctree:: - :maxdepth: 1 - - Auto_tofu.plugins.AUG - Auto_tofu.plugins.ITER - - -Code-oriented plugins ---------------------- - -1. CAID_ - -.. _CAID: https://www.qwant.com/web - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_sources/Auto_tofu.treat.txt b/doc/build/html/_sources/Auto_tofu.treat.txt deleted file mode 100644 index d8536b49d..000000000 --- a/doc/build/html/_sources/Auto_tofu.treat.txt +++ /dev/null @@ -1,28 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.treat** -============== - -.. automodule:: tofu.treat - :members: - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - - - -.. Local Variables: -.. mode: rst -.. End: - diff --git a/doc/build/html/_sources/Autodoc.txt b/doc/build/html/_sources/Autodoc.txt deleted file mode 100644 index 4ac1542a2..000000000 --- a/doc/build/html/_sources/Autodoc.txt +++ /dev/null @@ -1,19 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**tofu.geom** -============== - -.. automodule:: tofu.geom - :members: - -.. automodule:: tofu.plugins.AUG.SXR.geom - :members: - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_sources/Citation.txt b/doc/build/html/_sources/Citation.txt deleted file mode 100644 index 7cf988cb7..000000000 --- a/doc/build/html/_sources/Citation.txt +++ /dev/null @@ -1,41 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -Citing ToFu: -============ - -An article dedicated to describing ToFu and its capacities is in preparation, in the meantime please cite this one_ [#]_, which briefly describes it and uses it to present physics results. Since this paper may not present enough details for the interested reader, please also include a url pointing to this web-based documentation. - -.. _one: http://iopscience.iop.org/article/10.1088/0029-5515/56/8/086001/meta - -.. [#] D. Vezinet et al., 'Non-monotonic growth rates of sawtooth precursors evidenced with a new method on ASDEX Upgrade', Nuclear Fusion **56**, 086001, 2016 - -**Bibtex:** - -:: - - @article{0029-5515-56-8-086001, - author={D. Vezinet and V. Igochine and M. Weiland and Q. Yu and A. Gude and D. Meshcheriakov and M. Sertoli and the Asdex Upgrade - Team and the EUROfusion MST1 Team}, - title={Non-monotonic growth rates of sawtooth precursors evidenced with a new method on ASDEX Upgrade}, - journal={Nuclear Fusion}, - volume={56}, - number={8}, - pages={086001}, - url={http://stacks.iop.org/0029-5515/56/i=8/a=086001}, - year={2016}, - } - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/Dependencies.txt b/doc/build/html/_sources/Dependencies.txt deleted file mode 100644 index ac56ee71c..000000000 --- a/doc/build/html/_sources/Dependencies.txt +++ /dev/null @@ -1,63 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -Dependencies -============ - -ToFu uses the following generic packages: - -- python/2.7.3 -- ipython/1.1.0 -- dateutil/2.4.0 -- docutils/0.12.0 -- distribute/0.6.34 - - -Scientific computing and plotting: - -- numpy/1.9.1 -- scipy/0.15.1 -- matplotlib/1.2.1 -- polygon2 -- datetime - - -Some part of ToFu are coded using Cython, which requires Cython and a compiler: - -- cython/0.19.1 -- gcc or intel - - -Testing: - -- nose/1.3.4 - - -Documentation: - -- pygments/1.5 - - -To be determined: - -- pyzmq/13.0.2 -- tornado/2.4.1 -- setuptools -- mdsplus/5.0_11 -- pip -- git/1.8.4 - - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/Todos.txt b/doc/build/html/_sources/Todos.txt deleted file mode 100644 index 98696dbc4..000000000 --- a/doc/build/html/_sources/Todos.txt +++ /dev/null @@ -1,34 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**To do for contributors** -========================== - -This to do list includes aspects that require a few hours up to a few months of work. -Whenever possible, a link to a document describing the problem in details is provided. - - -Math and geometry: ------------------- -* Write a C routine for (very) fast computation of solid angle in non-trival cases using spherical geometry and write a python / cython wrapper (weeks) - - -Coding: -------- -* Parallelize (frist CPU then GPU) the key functions of the geometry module (months) -* Branch the meshing module to allow compatibility with CAID/Pigasus (months) -* Branch the matrix computation module for the same reason (months) -* Branch the inversion module for the same reason (months) - -Long term: ----------- -* Create a parallel library called ToFuG, which provides all ToFu functionalities through a GUI for each ToFu module (year) - - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_sources/Tutorial_AUG.txt b/doc/build/html/_sources/Tutorial_AUG.txt deleted file mode 100644 index eee76d8cb..000000000 --- a/doc/build/html/_sources/Tutorial_AUG.txt +++ /dev/null @@ -1,63 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -AUG-specific tutorial -===================== - -How to access the ToFu library ------------------------------- - -The plugin for ASDEX Upgrade (AUG) is hosted on the theory (Tok) clusters of the Max-Planck Institute for Plasma Physics (IPP) in Garching. -If you have an account in IPP, you can then connect to one of the tok clusters where the library is hosted, via the command: - ->>> ssh toki01 - -Enter your password and then you need to load the module in the terminal - ->>> module load tofu - -You may need to load other modules on which ToFu depends (see the dependencies_). - -.. _dependencies : Dependencies.html - -You can then start a ipython console and load the AUG plugin for ToFu: - ->>> import tofu.plugins.AUG as tfAUG - - -How to load existing geometry ------------------------------- - -You can now load the geometry that was already computed and stored for some diagnostics (only the Soft X-Ray diagnostic at this date). -In general loading the geometry means using a method of the plugin that will load and return a list of :class:`tofu.geom.GDetect` instances. -On AUG, each :class:`tofu.geom.GDetect` instance corresponds to a camera head. -Since the geometry (position, aperture size...) of each camera head may change in time (changes are sometimes implemented between experimental campaigns), you can specify a shot number and the plugin will return the latest geometry that was computed before that shot number (only a few have been computed so far, but more will come). - ->>> LGD = tfAUG.SXR.geom.load(shot=31801) - -This command returns a list of :class:`tofu.geom.GDetect` instances with the latest geometry computed before shot 31801. - - -How to load SXR data --------------------- - -the ToFu plugin for AUG also comes with a data loading and formatting routine. -In addition to a shot number and a time window, you can choose whether the data is returned as numpy arrays or as a ToFu-compatible object for data pre-treatment via the Tofu keyword argument. - ->>> pre = tfAUG.SXR.data.load(shot=30801, Dt=[2.,2.01], Method='SX', Tofu=True) - -This command will return the SXR data for shot 30801 in the [2.,2.01] s time window using diagnostic 'SX.' (instead of SSX), in the form of a ToFu-compatible object. -See the documentation of the method for more details. - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/Tutorial_Geom_Advanced.txt b/doc/build/html/_sources/Tutorial_Geom_Advanced.txt deleted file mode 100644 index 7b4ba7d6d..000000000 --- a/doc/build/html/_sources/Tutorial_Geom_Advanced.txt +++ /dev/null @@ -1,102 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -How to create a diagnostic geometry -==================================== - -It is the geometry module that provides all the necessary tools for creating a new diagnostic. -A diagnostic comprises a set of detectors (ToFu creates one object for each detector and you can then group them into a larger object to represent cameras). -Each detector is basically defined by its active surface, which should be a planar polygon, and by a set of optics through which it 'sees' the plasma. -The optics can be a converging spherical lens or an arbitrary number of apertures (of arbitrary shape). -Each detector is also assigned to a vessel, which defines the linear or toroidal volume in which the plasma can exist. - -The following guides you through the creation of these objects in the famous 'hello-world' example: - -To find out more about what you can do with the geometry module check out the advanced_ tutorial. - -.. _advanced: - -Creating a vessel ------------------ - -If a vessel object does not exist yet, you have to create one (otherwise you can just load it an existing one). -A vessel object is basically defined by a 2D simple polygon (i.e.: non self-intersecting), - - - - - - - - - - - - -**Open-source:** - ToFu is distributed under the very permissive MIT_ license, thus allowing free use, keeping in mind that neither the author nor any of the laboratories in which he worked can be held responsible for unwanted behaviour or results. - It is instead transparency that is considered for as a warranty of quality on the long-term. - - ToFu is hosted on github_. - -.. _MIT: https://opensource.org/licenses/MIT -.. _github: https://github.com/ - -**Versions:** - A list of the successive versions of ToFu, with a brief description can be found here_. - -.. _here: Versions.html - -**Dependences:** - ToFu uses the following python packages_. - -.. _packages: Dependencies.html - - -**Citing ToFu:** - If you decide to use ToFu for research and published results please acknowledge this work by citing_ the project. - -.. _citing: Citation.html - - -Contents: ---------- - -**Description of the library modules:** - -.. toctree:: - :maxdepth: 1 - - overview - -**Code documentation:** - -.. toctree:: - :maxdepth: 1 - - Auto_tofu.geom - Auto_tofu.plugins.AUG.SXR.geom - Auto_tofu.plugins.ITER.Bolo.geom - - -**Tutorials and how to's:** - * How to build a diagnostic geometry - Create apertures and detectors to test a new configuration, to apply ToFu to your own problems, to design a prospetive diagnostic... - * How to compute integrated signal from 2D or 3D synthetic emissivity - Use an already-existing diagnostic geometry in a synthetic diagnostic approach to solve the direct problem and compute the line Of Sight and / or Volume of Sight integrated signals from a simulated emissivity field that you provide as an input. - * How to compute tomographic inversions - Use existing diagnostic geometry and signals to solve the inverse problem and compute tomographic inversions using a choice of discretization basis functions and regularisation functionals. - * How to contribute (to do's) - - -Indices and tables -================== -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/Tutorial_Geom_HowToCreateGeometry.txt b/doc/build/html/_sources/Tutorial_Geom_HowToCreateGeometry.txt deleted file mode 100644 index 83ecd2355..000000000 --- a/doc/build/html/_sources/Tutorial_Geom_HowToCreateGeometry.txt +++ /dev/null @@ -1,247 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -How to create a diagnostic geometry -==================================== - -It is the geometry module that provides all the necessary tools for creating a new diagnostic. -A diagnostic comprises a set of detectors (ToFu creates one object for each detector and you can then group them into a larger object to represent cameras). -Each detector is basically defined by its active surface, which should be a planar polygon, and by a set of optics through which it 'sees' the plasma. -The optics can be a converging spherical lens or an arbitrary number of apertures (of arbitrary shape). -Each detector is also assigned to a vessel, which defines the linear or toroidal volume in which the plasma can exist. - -The following guides you through the creation of these objects in the famous 'hello-world' example: - -To find out more about what you can do with the geometry module check out the advanced_ tutorial. - -.. _advanced: Tutorial_Geom_Advanced.html - - -As a pre-requisite, let's load some basic useful libraries in a ipython session, as well as the geometry module of ToFu: - ->>> import numpy as np ->>> import matplotlib.pyplot as plt ->>> plt.ion() ->>> # tofu-specific ->>> import tofu.geom as tfg - - -Creating, plotting and saving a vessel --------------------------------------- - -If a vessel object does not exist yet, you have to create one (otherwise you can just load it an existing one). -A vessel object is basically defined by a 2D simple polygon (i.e.: non self-intersecting), that is then expanded linearly or toroidally depending on the desired configuration. -This polygon limits the volume available for the plasma, where the emissivity can be non-zero. It is typically defined by the inner wall in a tokamak. - -Let's define the polygon limiting the vessel as a circle with a divertor-like shape at the bottom: - ->>> # Define the center, radius and lower limit ->>> R0, Z0, rad, ZL = 2., 0., 1., -0.85 ->>> # Define the key points in the divertor region below ZL ->>> Div_R, Div_Z = [R0-0.2, R0, R0+0.2], [-1.2, -0.9, -1.2] ->>> # Find the angles corresponding to ZL and span the rest ->>> thet1 = np.arcsin((ZL-Z0)/rad) ->>> thet2 = np.pi - thet1 ->>> thet = np.linspace(thet1,thet2,100) ->>> # Assemble the polygon ->>> poly_R = np.append(R0+rad*np.cos(thet), Div_R) ->>> poly_Z = np.append(Z0+rad*np.sin(thet), Div_Z) ->>> # Plot for checking ->>> f, l, a = plt.figure(facecolor='w', figsize=(6,6)), plt.plot(poly_R, poly_Z), plt.axis('equal') - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_01.png - :height: 300px - :width: 300 px - :scale: 100 % - :alt: Polygon used for defining the vaccum vessel where the plasma may live - :align: center - - Polygon used for defining the vaccum vessel where the plasma may live - -Notice that the polygon does not have to be closed, ToFu will anyway check that and close it automatically if necessary - -Now let's feed this 2D polygon to the appropriate ToFu class and specify that it should be a toroidal type (if linear type is chosen, the length should be specified by the 'DLong' keyword argument). -ToFu also asks for a name to be associated to this instance, and an experiment ('Exp') and a shot number (useful when the same experiment changes geometry in time). - ->>> # Create a toroidal Ves instance with name 'World', associated to experiment 'Misc' (for 'Miscellaneous') and shot number 0 ->>> ves = tfg.Ves('HelloWorld', [poly_R,poly_Z], Type='Tor', Exp='Misc', shot=0) - -Now the vessel instance is created. I provides you with several key attributes and methods (see :class:`~tofu.geom.Ves` for details). -Among them the Id attribute is itself a class instance that contains all useful information about this vessel instance for identification, saving... In particular, that's where the name, the default saving path, the Type, the experiment, the shot number... are all stored. -A default name for saving was also created that automatically includes not only the name you gave but also the module from which this instance was created (tofu.geom or tfg), the type of object, the experiment, the shot number... -This recommended default pattern is useful for quick identification of saved object, it is advised not to modify it. - ->>> print ves.Id.SaveName -TFG_VesTor_Misc_World_sh0 - -Now, we can simply visualise the created vessel by using the dedicated method (keyword argument 'Elt' specifies the elements of the instance we want to plot, typically one letter corresponds to one element, here we just want the polygon): - ->>> # Plot the polygon, by default in two projections (cross-section and horizontal) and return the list of axes ->>> Lax = ves.plot(Elt='P') - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_02.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: The created vessel instance, plotted in cross-section and horizontal projections - :align: center - - The created vessel instance, plotted in cross-section and horizontal projections - - -Since the vessel is an important object (it defines where the plasma can live), all the other ToFu objects rely on it. It is thus important that you save it so that it can be used by other ToFu objects when necessary. - ->>> ves.save(Path='./') - -This method will save the instance as a numpy compressed file (.npz), using the path and file name found in ves.Id.SavePath and ves.Id.SaveName. -While it is highly recommended to stick to the default value for the SaveName, but you can easily modify the saving path if you want by specifying it using keyword argument Path. - - - -Creating, plotting and saving structural elements -------------------------------------------------- - -Unlike the vessel, which is important for physics reasons, the structural elements that ToFu allows to create are purely for illustrative purposes. They are entirely passive and have no effect whatsoever on the computation of the volume of sight of the detectors or on the plasma volume and are just made available for illustrations. - -Like for a vessel, a structural element is mostly defined by a 2D polygon. If a vessel instance is provided, the type of the structural element (toroidal or linear) is automatically the same as the type of the vessel, otherwise the type must be specified. -For plotting, structural elements that enclose the entirety of a vessel are automatically transparent, and gray if they don't. - ->>> # Define two polygons, one that does not enclose the vessel and one that does ->>> thet = np.linspace(0.,2.*np.pi,100) ->>> poly1 = [[2.5,3.5,3.5,2.5],[0.,0.,0.5,0.5]] ->>> poly2 = [R0+1.5*np.cos(thet),1.5*np.sin(thet)] ->>> # Create the structural elements with the appropriate ToFu class, specifying the experiment and a shot number for keeping track of changes ->>> s1 = tfg.Struct('S1', poly1, Ves=ves, Exp='Misc', shot=0) ->>> s2 = tfg.Struct('S2', poly2, Ves=ves, Exp='Misc', shot=0) ->>> # Plot them on top of the vessel ->>> Lax = ves.plot(Elt='P') ->>> # Re-use the same list of axes to overlay the plots ->>> Lax = s1.plot(Lax=Lax) ->>> Lax = s2.plot(Lax=Lax) - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_03.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: The created structural elements, plotted over the structural elements on both projections - :align: center - - The created structural elements, plotted over the structural elements on both projections - - -It is not necessary for ToFu (since structural elements are used by no other objects) but for convenience you can save a structral element using the same save() method as for any other object. - - - -Creating apertures ------------------- - -An aperture is also mosly defined by a planar polygon, except that the polygon coordinates should be provided in 3D cartesian coordinates (even though the polygon is planar, it mey not live in the same plane as other apertures or as the detector). - -We can easily define two different polygons for two different apertures - ->>> # Define the planes in which they will live by a point (O) and a vector (n) ->>> O1, n1 = (3.0,0.00,0.52), (-1.,0.1,-0.9) ->>> O2, n2 = (2.9,0.01,0.48), (-1.,0.0,-1.0) ->>> # Compute local orthogonal basis vectors in the planes ->>> e11, e21 = np.cross(n1,(0.,0.,1.)), np.cross(n2,(0.,0.,1.)) ->>> e12, e22 = np.cross(e11,n1), np.cross(e21,n2) ->>> # Normalize ->>> e11, e12 = e11/np.linalg.norm(e11), e12/np.linalg.norm(e12) ->>> e21, e22 = e21/np.linalg.norm(e21), e22/np.linalg.norm(e22) ->>> # Implement the planar polygons 2D coordinates ->>> p1_2D = 0.005*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]]) ->>> p2_2D = 0.01*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]]) ->>> # Compute the 3D coordinates ->>> p1 = [O1[0] + e11[0]*p1_2D[0,:] + e12[0]*p1_2D[1,:], O1[1] + e11[1]*p1_2D[0,:] + e12[1]*p1_2D[1,:], O1[2] + e11[2]*p1_2D[0,:] + e12[2]*p1_2D[1,:]] ->>> p2 = [O2[0] + e21[0]*p2_2D[0,:] + e22[0]*p2_2D[1,:], O2[1] + e21[1]*p2_2D[0,:] + e22[1]*p2_2D[1,:], O2[2] + e21[2]*p2_2D[0,:] + e22[2]*p2_2D[1,:]] ->>> # Create the apertures, specifying also the diagnostic the apertures belong to ->>> a1 = tfg.Apert('A1', p1, Ves=ves, Exp='Misc', shot=0, Diag='misc') ->>> a2 = tfg.Apert('A2', p2, Ves=ves, Exp='Misc', shot=0, Diag='misc') ->>> # Plot them, both the polygon and the vector, with the associated vessel (using EltVes), in 3D ->>> Lax = a1.plot(Elt='PV', EltVes='P') ->>> Lax = a2.plot(Lax=Lax, Elt='PV') - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_04.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: The created apertures, plotted over the vessel on both projections - :align: center - - The created apertures, plotted over the vessel on both projections - -ToFu allows you to save the apertures, if you wish, but if you created then only to pass tem on to detectors, you can also skip saving them. Indeed, once the detector associated to these apertures is created, you will save the detector object instead, and ToFu will automatically store all information about the apertures (everything necessary to re-create them when loading the detector object). - - - -Creating, plotting and saving detectors objects ------------------------------------------------ - -A detector object is defined in the same way as an aperture, except that it needs to know which optics it is associated to. The optics can be either a converging spherical lens or, as in this case, a list of apertures. -In the folloing we will thus create two detectors (re-using the same planes as for the apertures for simplicity, but they could lie in any plane). - ->>> # Choose different reference points for the 2 planes ->>> Od1, Od2 = (3.05,0.00,0.54), (3.05,0.00,0.50) ->>> # Implement the planar polygons 2D coordinates ->>> pd1_2D = 0.005*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]]) ->>> pd2_2D = 0.005*np.array([[-1.,1.,1.,-1],[-1.,-1.,1.,1.]]) ->>> # Compute the 3D coordinates ->>> pd1 = [Od1[0] + e11[0]*pd1_2D[0,:] + e12[0]*pd1_2D[1,:], Od1[1] + e11[1]*pd1_2D[0,:] + e12[1]*pd1_2D[1,:], Od1[2] + e11[2]*pd1_2D[0,:] + e12[2]*pd1_2D[1,:]] ->>> pd2 = [Od2[0] + e21[0]*pd2_2D[0,:] + e22[0]*pd2_2D[1,:], Od2[1] + e21[1]*pd2_2D[0,:] + e22[1]*pd2_2D[1,:], Od2[2] + e21[2]*pd2_2D[0,:] + e22[2]*pd2_2D[1,:]] ->>> # Create the detectors, specifying also the diagnostic and the Optics ->>> d1 = tfg.Detect('D1', pd1, Optics=[a1,a2], Ves=ves, Exp='Misc', shot=0, Diag='misc') ->>> d2 = tfg.Detect('D2', pd2, Optics=[a2], Ves=ves, Exp='Misc', shot=0, Diag='misc') - -The computation of the detectors may take a while (~3 min) because ToFu automatically computes the natural Line Of Sight (LOS) and its etendue, the Volume Of Sight (VOS), a pre-computed 3D grid of the VOS for faster computation of synthetic signal... -Some of these automatic computations can be de-activacted using the proper keyword arguments, or the resolution of the discretization can downgraded for faster computation (see :class:`~tofu.geom.Detect` for details). - -A Detect object is at the core of the added value of ToFu: all relevant quantities are automatically computed, and can be obtained and plotted via attributes and methods. - ->>> # Plot the detectors, specifying we want not only the polygon but also the perpendicular vector and the viewing cone ('C'), as well as elements of the LOS, Optics and vessel ->>> Lax = d1.plot(Elt='PVC', EltOptics='P', EltLOS='L', EltVes='P') ->>> Lax = d2.plot(Lax=Lax, Elt='PVC', EltOptics='P', EltLOS='L') - -.. figure:: figures_doc/Fig_Tutor_Geom_Basic_05.png - :height: 300px - :width: 600 px - :scale: 100 % - :alt: The created detectors, with associated apertures and vessel, on both projections - :align: center - - The created detectors, with associated apertures and vessel, on both projections - -Using d1.save() would save detector 1 and all necessary info about its associated optics (i.e.:apertures) will also be included in the file so it is not necessary to save the apertures separately (unless you need to for something else). -Usually, tomography diagnostics do not have a few but many different detectors, grouped in cameras (often a group of detectors sharing a common aperture). -ToFu provides an GDetect object that allows you to group a list of detectors and treat them like a single object (each method is automatically applied to all the detectors included in the GDetect object). - - - -Creating, plotting and saving GDetect objects ---------------------------------------------- - -Once several Detect objects are created, they can be fed to a GDetect object to be handle as a single object. - ->>> # Create the group of detectors by feeding a list of detectors ->>> gd = tfg.GDetect('GD', [d1,d2], Exp='Misc', shot=0) ->>> # Plot the group of detectors as a single set ->>> Lax = gd.plot(Elt='PVC', EltOptics='P', EltLOS='L', EltVes='P') - -The last command yields the same result as the previous figure. - - -Congratulations ! You completed the basic tutorial for getting started and creating your own geometry, take you time now to explore all the methods and attributes of the classes introduced in :mod:`tofu.geom`. - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/Tutorial_Geom_SynthDiag_Basic.txt b/doc/build/html/_sources/Tutorial_Geom_SynthDiag_Basic.txt deleted file mode 100644 index f3e4c6ceb..000000000 --- a/doc/build/html/_sources/Tutorial_Geom_SynthDiag_Basic.txt +++ /dev/null @@ -1,94 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -How to compute integrated signal from synthetic emissivity -========================================================== - - -We are assuming here that you have access to an existing geometry (i.e. to :class:`~tofu.geom.Detect` or :class:`~tofu.geom.GDetect` objects that you or someone else created or that you can load). -It if is not the case you should first create the geometry you need, by following the basic_ geometry tutorial. - -.. _basic: Tutorial_Geom_HowToCreateGeometry.html - -We are also assuming that you have a code that can produce as output a simulated isotropic emissivity. Either directly or by spacial interpolation, you should be able to write a python function that computes an emissivity value in any arbitrary point inside the vessel volume. - - -As a prerequisite load the necessary modules: - ->>> import numpy as np ->>> import matplotlib.pyplot as plt ->>> plt.ion() ->>> # tofu-specific ->>> import tofu.pathfile as tfpf - - -Writing the input function --------------------------- - -In the following, all is done assuming **gd** is a :class:`~tofu.geom.GDetect` object, but the same would apply if it is just a :class:`~tofu.geom.Detect` object. -If the :class:`~tofu.geom.GDetect` object you want to use is not already existing in your session, you can load it (with its absolute path and file name) using the :meth:`tofu.pathfile.Open()` function or a dedicated plugin function. - -Instances of :class:`~tofu.geom.GDetect` have a method called :meth:`~tofu.geom.GDetect.calc_Sig()`, which takes as input **ff** a python function able to evaluate the emissivity value in any number of points provided in 3D cartesian coordinates. - -This function should obey the following constraints: - * It is a callable with one input argument and optionally keyword arguments - * The input argument is a (3,N) numpy.ndarray, where N is the number of points at which one wants to evaluate the emissivity, provided in 3D cartesian coordinates (X,Y,Z) - -Hence, suppose that we simulate a 2D (i.e.: invariant along the 3rd dimension) gaussian emissivity centered on point (2.,0.), we can define ff as - ->>> def ff(Pts, A=1., DR=1., DZ=1.): ->>> R = np.hypot(Pts[0,:],Pts[1,:]) ->>> Z = Pts[2,:] ->>> Emiss = A*np.exp(-(R-2.)**2/DR**2 - (Z-0.)**2/DZ**2) ->>> return Emiss - -What will happen when we feed ff to :meth:`~tofu.geom.GDetect.calc_Sig()` depends on the choice of method for the integration: - * If we want a volumic integration, the VOS of each detector will be discretized and ff will be called to evaluate the emissivity at each point before perfoming the integration - * If a Line Of Sight integration is desired, only the LOS is discretized for integration and the result is multiplied by the etendue - -By default, the method uses a pre-computed discretization of the VOS (because re-computing the solid angle for each point every time is costly), but this feature can be suppressed by setting PreComp=False if you want to use customized integration parameters. -For example, in both cases, the numerical integration can be done by choosing the resolution of the discretization, or by using an iterative algorithm that only stops when the required relative error on the integral value is reached. -In our case: - ->>> # Compute synthetic signal using a volume approach with resolution-fixed numerical integration method ->>> sigVOS, ldet = gd.calc_Sig(ff, extargs={'A':1.,'DR':1.,'DZ':1.}, Method='Vol', Mode='simps', PreComp=False) ->>> sigLOS, ldet = gd.calc_Sig(ff, extargs={'A':1.}, Method='LOS', Mode='quad', PreComp=False) ->>> print sigVOS, sigLOS -[[ 1.31675917e-06 1.40620027e-06]] [[ 1.31408026e-06 1.39941326e-06]] - -Notice that when using the 'quad' numerical integration method, only one extra argument can be passed on to ff. -Notice the small differences in the volume and LOS approaches, due to the small non-zero second derivative of the emissivity field and to boundary effects (where there is small partial obstruction of the VOS). - - -If your code gives a tabulated emissivity field ------------------------------------------------ - -Then you simply have to include an intermediate function that interpolates your emissivity field to compute it at any point. Like in the following example: - ->>> def ff(Pts): ->>> R = np.hypot(Pts[0,:],Pts[1,:]) ->>> Z = Pts[2,:] ->>> Emiss = ff_interp(R,Z) ->>> return Emiss - -Where ff_interp() is an interpolating function using tabulated output from your code. - -Plotting the result -------------------- - -The :meth:`~tofu.geom.GDetect.plot_Sig()` method provides a way of plotting the result, either by feeding it the output signal of :meth:`~tofu.geom.GDetect.calc_Sig()` or directly **ff** (in which case it simply calls :meth:`~tofu.geom.GDetect.plot_Sig()` for you). -This feature is only available for :class:`~tofu.geom.GDetect` objects since the signal of a single detector is just a single value that does not really require plotting... - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/Tutorial_ITER.txt b/doc/build/html/_sources/Tutorial_ITER.txt deleted file mode 100644 index 35807a420..000000000 --- a/doc/build/html/_sources/Tutorial_ITER.txt +++ /dev/null @@ -1,53 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -ITER-specific tutorial -====================== - -How to access the ToFu library ------------------------------- - -The plugin for ITER is hosted on the theory (Tok) clusters of the Max-Planck Institute for Plasma Physics (IPP) in Garching. -If you have an account in IPP, you can then connect to one of the tok clusters where the library is hosted, via the command: - ->>> ssh toki01 - -Enter your password and then you need to load the module in the terminal - ->>> module load tofu - -You may need to load other modules on which ToFu depends (see the dependencies_). - -.. _dependencies : Dependencies.html - -You can then start a ipython console and load the AUG plugin for ToFu: - ->>> import tofu.plugins.ITER as tfITER - - -How to load existing geometry ------------------------------- - -You can now load the geometry that was already computed and stored for some diagnostics (only the Soft X-Ray diagnostic at this date). -In general loading the geometry means using a method of the plugin that will load and return a list of :class:`tofu.geom.GDetect` instances. -On AUG, each :class:`tofu.geom.GDetect` instance corresponds to a camera head. -Since the geometry (position, aperture size...) of each camera head may change in time (changes are sometimes implemented between experimental campaigns), you can specify a shot number and the plugin will return the latest geometry that was computed before that shot number (only a few have been computed so far, but more will come). - ->>> LGD = tfAUG.SXR.geom.load(shot=31801) - -This command returns a list of :class:`tofu.geom.GDetect` instances with the latest geometry computed before shot 31801. - - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/Versions.txt b/doc/build/html/_sources/Versions.txt deleted file mode 100644 index 65b56bd46..000000000 --- a/doc/build/html/_sources/Versions.txt +++ /dev/null @@ -1,36 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) - -Versions of ToFu: -================= - -Many versions of ToFu have been developped before reaching a stable and somewhat satisfactory state. Several versions were already used for producing physcis results and tomographic inversions before the open-source release, which requires documentation and a certain degree of user-friendlyness, thus more work. - -The versioning convention used by ToFu is semantic_ versioning and the module metadata is implemented according to PEP426_. - -.. _semantic: http://semver.org/ -.. _PEP426: https://www.python.org/dev/peps/pep-0426/ - - -The following only lists the versions advanced enough for release: - -* **1.1.0** (default) - This is the first version released in open-source, it only includes the geometry module (for diagnostic designing and synthetic diagnostic) and the pre-treatment module (for data handling) - - - - - - - -Indices and tables ------------------- -* Homepage_ -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. _Homepage: index.html - diff --git a/doc/build/html/_sources/overview.txt b/doc/build/html/_sources/overview.txt deleted file mode 100644 index 9b56cb6e4..000000000 --- a/doc/build/html/_sources/overview.txt +++ /dev/null @@ -1,86 +0,0 @@ -.. role:: envvar(literal) -.. role:: command(literal) -.. role:: file(literal) -.. role:: ref(title-reference) -.. _overview: - -**Overview** -============ - -(This project is not finalised yet, work in progress...) - - -**ToFu**, which stands for "TOmography for FUsion" is a python package (with parts in C/C++) providing all necessary tools for tomography diagnostics for the Fusion community, it is particularly relevant for X-ray and bolometer diagnostics on Tokamaks. On of the objectoves is to provide a common tool for tomographic inversions, with both accurate methods and enough flexibility to be easily adapted to any Tokamak and to the specific requirements of each user. The main language (Python) has been chosen for its open-source philosophy, for its object-oriented capacities, and for the good performance / flexibility ratio that it offers. The architecture of the **ToFu** package is intended to be modular to allow again for maximum flexibility and to facilitate customisation and evolutivity from the users. - -**ToFu**: provides in particular, but not only, the main following functionnalities : - - Using the 3D geometry of the diagnostic (positions of detectors and apertures are provided as inputs) to compute quantities of interest (e.g.: the optimal line of sight, the exact etendue..). This is done by the module ToFu_Geom. - - Building of a variable grid size mesh for spatial discretisation of the solution (i.e. emissivity field) on which B-splines of any degree can be added to serve as Local Basis Functions. This is done by the module ToFu_Mesh. - - Computing of the geometry matrix associated to a set of detectors and a set of basis functions, both with a full 3D approach or with a Line Of Sight (LOS) approximation. This is done by the module ToFu_MatComp, which uses both ToFu_Geom and ToFu_Mesh. - - Computing tomographic inversions based on the constructed geometry matrix and Phillips-Tikhonov inversion with a choice of objective functionals (among which first order and second order derivatives or Fisher information, and more to come). This is done by the module ToFu_Inv, which uses the matrix computed by ToFu_MatComp. - - Visualizing, exploring and interpreting the resulting inversions using a built-in Graphic User Interface. - -The joint use of a full 3D approach and of regular basis functions (B-splines) allows for advanced functionalities and flexibility, like in particular : - - Accurate computation of etendue and geometry matrix. - - Exact differential operators (provided sufficient degree of the basis function) instead of discretised operators (this feature and the previous one aim at improving the accuracy of tomographic inversions). - - Accurate description of toroidal-viewing detectors with potentially large viewing cones and for which the LOS approximation cannot be used. - - Making possible 3D inversions (provided the geometrical coverage of the plasma volume is sufficient, for example thanks to toroidal-viewing detectors). - - Enabling proper taking into acccount of anisotropic radiation (for example due to fast electrons due to disruptions). - -The **ToFu** package has built-in mesh and B-spline definitions, however, if used alone, it can only create and handle rectangular mesh (with variable grid size though). In order to allow for more optimised mesh and basis functions, the **ToFu** package is fully compatible with **Pigasus** (and **CAID**), which is a another Python package (with a Fortran core), which uses cutting-edge technologies from Computer-Assisted Design (CAD) to create optimised mesh (using Non-Unifrom - Rational B-Splines, or NURBS, curves) on which it can also add several different types of regular basis functions. It is a next-gen solution for optimisation of plasma-physics simulation codes. Hence, the final idea is that the same mesh and tools can be used for running CPU-expensive plasma physics simulations and, from their output, to compute the associated simulated measurements on any radiation diagnostics. This synthetic diagnostic approach is aimed at facilitating direct - comparisons between simulations and experimental measurements and at providing the community with flexible and cross-compatible tools to fit their needs. Plasma physics codes that are planning on using **Pigasus** in a near future include in particuler **JOREK** (in its **Django** version) and **GYSELA** (**SELALIB** in its next version). More information about **Pigasus** (lien), **JOREK** (lien) and **GYSELA** can be found on their respective pages. - -In order to avoid too much dependency issues, the **ToFu** package resorts to widely used Python libraries like scipy, numpy and matplotlib. Whenever it was possible, the idea was either to use a very common and accessible library or to have built-in methods doing the job. It can be run as a stand-alone on an offline computer (i.e.: on a laptop while travelling), in an online mode (using a central database on the internet) and with or without **Pigasus** (keeping in mind that only rectangular mesh can be created without it). - -For faster computation, some modules and/or methods are coded with Cython or Boost.Pyton. It is also intended to be MPI and OpenMP parallelized. - -The general architecture is briefly represented in the following figure: - -.. figure:: /figures_doc/Fig_Tutor_BigPicture_General.png - :height: 700px - :width: 1000px - :scale: 100 % - :alt: ToFu big picture - :align: center - - Modular architecture of ToFu, with its main modules. - -This general overview shows all the **ToFu** modules and their main functionnalities and dependancies. Particularly important are the modules **ToFu_Geom**, **ToFu_Mesh** and **ToFu_MatComp** which provide all necessary tools to pre-calculate the geometry matrix which is a key feature of the two main uses of **ToFu**. - -On the one hand, **ToFu** can be used as a synthetic diagnostic since from a simulated emissivity field it can compute the corresponding synthetic measurements for comparison with experimental measurements. This, as illustrated below, can be done in different ways depending on whether the simualted is used directly as a function, projected on a predefined mesh of the plasma volume, or if the simulated emissivity itself was computed on a mesh using the **Pigasus/CAID** code suite which is directly compatible with **ToFu**. These three possibilities are illustrated in the following figure: - -.. figure:: /figures_doc/Fig_Tutor_BigPicture_SynthDiag.png - :height: 700px - :width: 1000px - :scale: 100 % - :alt: ToFu big picture for synthetic diagnostics - :align: center - - Modular architecture of ToFu, with its main modules for synthetic diagnostics. - -On the other hand, **ToFu** can be used the other way around : use the experimental measurements to compute a reconstructed experimental emissivity field via a tomographic inversion, for comparisopn with a simulated emissivity field or simply for getting an idea of what the emissivity field looks like, which is illustrated in the following figure: - -.. figure:: /figures_doc/Fig_Tutor_BigPicture_Tomo.png - :height: 700px - :width: 1000px - :scale: 100 % - :alt: ToFu big picture for tomography - :align: center - - Modular architecture of ToFu, with its main modules for tomography. - -The following will go into further details regarding each module. - - -ToDo list: - - Rest of documentation, with relevant references (like :cite:Ingesson08FST) and figures - - Tutorial - - ToFu_Inv - - GUI (one for each module) - - Accelerate existing modules with Cython, Boost.Python + Parallelization - - Use it to do some physics at last !!! - - -.. Local Variables: -.. mode: rst -.. End: diff --git a/doc/build/html/_static/ajax-loader.gif b/doc/build/html/_static/ajax-loader.gif deleted file mode 100644 index 61faf8cab23993bd3e1560bff0668bd628642330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN diff --git a/doc/build/html/_static/basic.css b/doc/build/html/_static/basic.css deleted file mode 100644 index c41d718e4..000000000 --- a/doc/build/html/_static/basic.css +++ /dev/null @@ -1,763 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 450px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px 7px 0 7px; - background-color: #ffe; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > p:first-child, -td > p:first-child { - margin-top: 0px; -} - -th > p:last-child, -td > p:last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist td { - vertical-align: top; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -li > p:first-child { - margin-top: 0px; -} - -li > p:last-child { - margin-bottom: 0px; -} - -dl.footnote > dt, -dl.citation > dt { - float: left; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd:after { - content: ""; - clear: both; -} - -dl.field-list { - display: flex; - flex-wrap: wrap; -} - -dl.field-list > dt { - flex-basis: 20%; - font-weight: bold; - word-break: break-word; -} - -dl.field-list > dt:after { - content: ":"; -} - -dl.field-list > dd { - flex-basis: 70%; - padding-left: 1em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > p:first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0.5em; - content: ":"; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -td.linenos pre { - padding: 5px 0px; - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - padding: 0 0.5em 0 0.5em; -} - -div.code-block-caption { - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: relative; - left: 0px; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/doc/build/html/_static/classic.css b/doc/build/html/_static/classic.css deleted file mode 100644 index 8c6dae44c..000000000 --- a/doc/build/html/_static/classic.css +++ /dev/null @@ -1,261 +0,0 @@ -/* - * classic.css_t - * ~~~~~~~~~~~~~ - * - * Sphinx stylesheet -- classic theme. - * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: sans-serif; - font-size: 100%; - background-color: #11303d; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: #1c4e63; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: #ffffff; - color: #000000; - padding: 0 20px 30px 20px; -} - -div.footer { - color: #ffffff; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: #ffffff; - text-decoration: underline; -} - -div.related { - background-color: #133f52; - line-height: 30px; - color: #ffffff; -} - -div.related a { - color: #ffffff; -} - -div.sphinxsidebar { -} - -div.sphinxsidebar h3 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: #ffffff; -} - -div.sphinxsidebar h4 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: #ffffff; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: #ffffff; -} - -div.sphinxsidebar a { - color: #98dbcc; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - - - -/* -- hyperlink styles ------------------------------------------------------ */ - -a { - color: #355f7c; - text-decoration: none; -} - -a:visited { - color: #355f7c; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - - - -/* -- body styles ----------------------------------------------------------- */ - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Trebuchet MS', sans-serif; - background-color: #f2f2f2; - font-weight: normal; - color: #20435c; - border-bottom: 1px solid #ccc; - margin: 20px -20px 10px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c60f0f; - color: white; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.admonition p { - margin-bottom: 5px; -} - -div.admonition pre { - margin-bottom: 5px; -} - -div.admonition ul, div.admonition ol { - margin-bottom: 5px; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - background-color: #eeffcc; - color: #333333; - line-height: 120%; - border: 1px solid #ac9; - border-left: none; - border-right: none; -} - -code { - background-color: #ecf0f3; - padding: 0 1px 0 1px; - font-size: 0.95em; -} - -th { - background-color: #ede; -} - -.warning code { - background: #efc2c2; -} - -.note code { - background: #d6d6d6; -} - -.viewcode-back { - font-family: sans-serif; -} - -div.viewcode-block:target { - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} - -div.code-block-caption { - color: #efefef; - background-color: #1c4e63; -} \ No newline at end of file diff --git a/doc/build/html/_static/comment-bright.png b/doc/build/html/_static/comment-bright.png deleted file mode 100644 index 551517b8c83b76f734ff791f847829a760ad1903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3500 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 A2LJ#7 diff --git a/doc/build/html/_static/comment.png b/doc/build/html/_static/comment.png deleted file mode 100644 index 92feb52b8824c6b0f59b658b1196c61de9162a95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3445 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 Xn!ZpXD%P(H00000NkvXXu0mjf= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { - this.initOnKeyListeners(); - } - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { - $(document).keyup(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { - switch (event.keyCode) { - case 37: // left - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - case 39: // right - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - } - } - }); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/doc/build/html/_static/down-pressed.png b/doc/build/html/_static/down-pressed.png deleted file mode 100644 index 7c30d004b71b32bb2fc06b3bd4dc8278baab0946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~&H|6fVxZ#d zAk65bF}ngN$X?><>&kwMor^(NtW3yF87Slz;1l8sq&LUMQwy<>&kwMol#tg zK_ydLmzem(vK1>2TzUEGl*lj!N<7$PCrdoWV0 z$w0*Ap!bZ4if7h;-yfL#MC0e;t{xY+$l~DX2EWYIPet1cohf^BdG+jXhtuq&W-0|c zKPmlKv-7OTjb}T)7@fTGd9y~u4{g8An;)c2U=w=nwQ7}zVDc>n+a diff --git a/doc/build/html/_static/file.png b/doc/build/html/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/doc/build/html/_static/jquery-1.11.1.js b/doc/build/html/_static/jquery-1.11.1.js deleted file mode 100644 index d4b67f7e6..000000000 --- a/doc/build/html/_static/jquery-1.11.1.js +++ /dev/null @@ -1,10308 +0,0 @@ -/*! - * jQuery JavaScript Library v1.11.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-05-01T17:42Z - */ - -(function( global, factory ) { - - if ( typeof module === "object" && typeof module.exports === "object" ) { - // For CommonJS and CommonJS-like environments where a proper window is present, - // execute the factory and get jQuery - // For environments that do not inherently posses a window with a document - // (such as Node.js), expose a jQuery-making factory as module.exports - // This accentuates the need for the creation of a real window - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -// - -var deletedIds = []; - -var slice = deletedIds.slice; - -var concat = deletedIds.concat; - -var push = deletedIds.push; - -var indexOf = deletedIds.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var support = {}; - - - -var - version = "1.11.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android<4.1, IE<9 - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: deletedIds.sort, - splice: deletedIds.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - /* jshint eqeqeq: false */ - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - isPlainObject: function( obj ) { - var key; - - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Support: IE<9 - // Handle iteration over inherited properties before own properties. - if ( support.ownLast ) { - for ( key in obj ) { - return hasOwn.call( obj, key ); - } - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call(obj) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Support: Android<4.1, IE<9 - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( indexOf ) { - return indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - while ( j < len ) { - first[ i++ ] = second[ j++ ]; - } - - // Support: IE<9 - // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) - if ( len !== len ) { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: function() { - return +( new Date() ); - }, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v1.10.19 - * http://sizzlejs.com/ - * - * Copyright 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-04-18 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + characterEncoding + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( documentIsHTML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document (jQuery #6963) - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = attrs.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); - - // Support: IE>8 - // If iframe document is assigned to "document" variable and if iframe has been reloaded, - // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 - // IE6-8 do not support the defaultView property so parent will be undefined - if ( parent && parent !== parent.top ) { - // IE11 does not have attachEvent, so all must suffer - if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "
"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [ m ] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (oldCache = outerCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - outerCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context !== document && context; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is no seed and only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome<14 -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( div ) { - div.innerHTML = ""; - return div.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - - -var rneedsContext = jQuery.expr.match.needsContext; - -var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; - }); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var i, - ret = [], - self = this, - len = self.length; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -}); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return typeof rootjQuery.ready !== "undefined" ? - rootjQuery.ready( selector ) : - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.extend({ - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -jQuery.fn.extend({ - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.unique( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } while ( cur && cur.nodeType !== 1 ); - - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - ret = jQuery.unique( ret ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - } - - return this.pushStack( ret ); - }; -}); -var rnotwhite = (/\S+/g); - - - -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( list && ( !fired || stack ) ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - - } else if ( !(--remaining) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); - - -// The deferred used on DOM ready -var readyList; - -jQuery.fn.ready = function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; -}; - -jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - jQuery( document ).off( "ready" ); - } - } -}); - -/** - * Clean-up method for dom ready events - */ -function detach() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } -} - -/** - * The ready event handler and self cleanup method - */ -function completed() { - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } -} - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch(e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch(e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); -}; - - -var strundefined = typeof undefined; - - - -// Support: IE<9 -// Iteration over object's inherited properties before its own -var i; -for ( i in jQuery( support ) ) { - break; -} -support.ownLast = i !== "0"; - -// Note: most support tests are defined in their respective modules. -// false until the test is run -support.inlineBlockNeedsLayout = false; - -// Execute ASAP in case we need to set body.style.zoom -jQuery(function() { - // Minified: var a,b,c,d - var val, div, body, container; - - body = document.getElementsByTagName( "body" )[ 0 ]; - if ( !body || !body.style ) { - // Return for frameset docs that don't have a body - return; - } - - // Setup - div = document.createElement( "div" ); - container = document.createElement( "div" ); - container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; - body.appendChild( container ).appendChild( div ); - - if ( typeof div.style.zoom !== strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; - - support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; - if ( val ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); -}); - - - - -(function() { - var div = document.createElement( "div" ); - - // Execute the test only if not already executed in another module. - if (support.deleteExpando == null) { - // Support: IE<9 - support.deleteExpando = true; - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - } - - // Null elements to avoid leaks in IE. - div = null; -})(); - - -/** - * Determines whether an object can have data - */ -jQuery.acceptData = function( elem ) { - var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], - nodeType = +elem.nodeType || 1; - - // Do not set data on non-element DOM nodes because it will not be cleared (#8335). - return nodeType !== 1 && nodeType !== 9 ? - false : - - // Nodes accept data unless otherwise specified; rejection can be conditional - !noData || noData !== true && elem.getAttribute("classid") === noData; -}; - - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /([A-Z])/g; - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - -function internalData( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var ret, thisCache, - internalKey = jQuery.expando, - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - // Avoid exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( typeof name === "string" ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; -} - -function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, i, - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - i = name.length; - while ( i-- ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - /* jshint eqeqeq: false */ - } else if ( support.deleteExpando || cache != cache.window ) { - /* jshint eqeqeq: true */ - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } -} - -jQuery.extend({ - cache: {}, - - // The following elements (space-suffixed to avoid Object.prototype collisions) - // throw uncatchable exceptions if you attempt to set expando properties - noData: { - "applet ": true, - "embed ": true, - // ...but Flash objects (which have this classid) *can* handle expandos - "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var i, name, data, - elem = this[0], - attrs = elem && elem.attributes; - - // Special expections of .data basically thwart jQuery.access, - // so implement the relevant behavior ourselves - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE11+ - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return arguments.length > 1 ? - - // Sets one value - this.each(function() { - jQuery.data( this, key, value ); - }) : - - // Gets one value - // Try to fetch any internally stored data first - elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - - -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHidden = function( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - }; - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; -}; -var rcheckableType = (/^(?:checkbox|radio)$/i); - - - -(function() { - // Minified: var a,b,c - var input = document.createElement( "input" ), - div = document.createElement( "div" ), - fragment = document.createDocumentFragment(); - - // Setup - div.innerHTML = "
a"; - - // IE strips leading whitespace when .innerHTML is used - support.leadingWhitespace = div.firstChild.nodeType === 3; - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - support.tbody = !div.getElementsByTagName( "tbody" ).length; - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - support.html5Clone = - document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav>"; - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - input.type = "checkbox"; - input.checked = true; - fragment.appendChild( input ); - support.appendChecked = input.checked; - - // Make sure textarea (and checkbox) defaultValue is properly cloned - // Support: IE6-IE11+ - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // #11217 - WebKit loses check when the name is after the checked attribute - fragment.appendChild( div ); - div.innerHTML = ""; - - // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 - // old WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - support.noCloneEvent = true; - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Execute the test only if not already executed in another module. - if (support.deleteExpando == null) { - // Support: IE<9 - support.deleteExpando = true; - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - } -})(); - - -(function() { - var i, eventName, - div = document.createElement( "div" ); - - // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) - for ( i in { submit: true, change: true, focusin: true }) { - eventName = "on" + i; - - if ( !(support[ i + "Bubbles" ] = eventName in window) ) { - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) - div.setAttribute( eventName, "t" ); - support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; - } - } - - // Null elements to avoid leaks in IE. - div = null; -})(); - - -var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - /* jshint eqeqeq: false */ - for ( ; cur != this; cur = cur.parentNode || this ) { - /* jshint eqeqeq: true */ - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - // Support: IE < 9, Android < 4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && e.stopImmediatePropagation ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = jQuery._data( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = jQuery._data( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - jQuery._removeData( doc, fix ); - } else { - jQuery._data( doc, fix, attaches ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); - - -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
", "
" ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - col: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; -} - -// Used in buildFragment, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } -} - -// Support: IE<8 -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!support.noCloneEvent || !support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - - // Ensure a safe fragment - safe = createSafeFragment( context ), - - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - - // String was a bare or - wrap[1] === "
" && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - deletedIds.push( id ); - } - } - } - } - } -}); - -jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[i], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - - -var iframe, - elemdisplay = {}; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var style, - elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? - - // Use of this method is a temporary fix (more like optmization) until something better comes along, - // since it was removed from specification and supported only in FF - style.display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( "

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 HsIu@s&9B}( diff --git a/doc/build/doctrees/overview.doctree b/doc/build/doctrees/overview.doctree deleted file mode 100644 index 0a091f8ceac1e28f921630a7cc7f950c2f87923f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34955 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 diff --git a/doc/build/html/.buildinfo b/doc/build/html/.buildinfo deleted file mode 100644 index 12bc105f3..000000000 --- a/doc/build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 87fdf96d8d844dcd1e999145186e8b50 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/build/html/Auto_tofu.geom.html b/doc/build/html/Auto_tofu.geom.html deleted file mode 100644 index 4408d980f..000000000 --- a/doc/build/html/Auto_tofu.geom.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - 1. tofu.geom — tofu v1.1 - - - - - - - - - - - - - - -