From 14f3554c7b07bb06399bcdecbe309fa82a36f921 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Mon, 31 Jan 2011 15:22:00 +0100 Subject: [PATCH] =?utf8?q?Mise=20=C3=A0=20jour=20d'avancement=20de=20la=20?= =?utf8?q?doc,=20avec=20un=20premier=20jet=20d'une=20introduction=20m?= =?utf8?q?=C3=A9thodologique?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/advanced.rst | 4 +- doc/conf.py | 2 +- doc/examples.rst | 4 +- doc/index.rst | 42 ++-- doc/ressources/ADAO.png | Bin 11797 -> 5479 bytes doc/ressources/ADAO_small.png | Bin 1123 -> 755 bytes doc/theory.rst | 204 ++++++++++++++++++++ doc/using.rst | 20 +- src/daComposant/daCore/AssimilationStudy.py | 34 +++- src/daComposant/daCore/Persistence.py | 46 ++++- 10 files changed, 316 insertions(+), 40 deletions(-) create mode 100644 doc/theory.rst diff --git a/doc/advanced.rst b/doc/advanced.rst index 5f48310..8dd33bb 100644 --- a/doc/advanced.rst +++ b/doc/advanced.rst @@ -1,3 +1,5 @@ +.. _section_advanced: + ================================================================================ Advanced usage of ADAO ================================================================================ @@ -32,7 +34,7 @@ Running an ADAO calculation scheme in YACS in console mode This section describes how to execute in console mode a YACS calculation scheme, obtained using the ADAO "Export to YACS" function. It uses the standard YACS -console mode, wich will be briefly recall here (see YACS documentation for more +console mode, which will be briefly recall here (see YACS documentation for more information). The way to do that is as follows: diff --git a/doc/conf.py b/doc/conf.py index dc6a04c..f5e458b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -22,7 +22,7 @@ import sys, os # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] +extensions = ["sphinx.ext.pngmath"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/doc/examples.rst b/doc/examples.rst index e040bd6..5ac3096 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -1,3 +1,5 @@ +.. _section_examples: + ================================================================================ Examples on using the ADAO module ================================================================================ @@ -59,7 +61,7 @@ Using the GUI to build the ADAO case First, you have to activate the ADAO module by choosing the appropriate module button or menu of SALOME, and you will see: - .. _adao_activate: + .. _adao_activate2: .. image:: images/adao_activate.png :align: center .. centered:: diff --git a/doc/index.rst b/doc/index.rst index 6816059..0385fcf 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -3,36 +3,37 @@ ADAO module documentation ================================================================================ -The ADAO module provides **data assimilation** features [#]_ in SALOME context. -It is based on an extensible generic underlying data assimilation library, and -on usage on other SALOME modules, namely YACS and EFICAS. +The ADAO module provides **data assimilation** features in SALOME context. It is +based on usage on other SALOME modules, namely YACS and EFICAS, and on an +extensible generic underlying data assimilation library. Briefly stated, Data Assimilation is a methodological framework to compute the -optimal estimate of the inaccesible true value of a system state over time. It +optimal estimate of the inaccessible true value of a system state over time. It uses information coming from experimental measurements or observations, and from numerical *a priori* models, including information about their errors. Parts of the framework are also known as *parameter estimation*, *inverse problems*, -*bayesian estimation*, *optimal interpolation*, etc. - -The documentation of this module is divided in 4 parts, the first one being an -introduction. The second part describes how to use the module ADAO. The third -part focuses on advanced usages of the module, how to get more information, or -how to use it without the graphical user interface (GUI). The last part gives -examples on ADAO usage. - -Users interested in quick use of the module can jump to the last part, but a -valuable use of the module requires to read and come back regularly the second -part. +*bayesian estimation*, *optimal interpolation*, etc. More details can be found +in the section :ref:`section_theory`. + +The documentation of this module is divided in 5 parts, the first one being an +introduction. The second part briefly introduces data assimilation and concepts. +The third part describes how to use the module ADAO. The fourth part focuses on +advanced usages of the module, how to get more information, or how to use it +without the graphical user interface (GUI). The last part gives examples on ADAO +usage. Users interested in quick use of the module can jump to the section +:ref:`section_examples`, but a valuable use of the module requires to read and +come back regularly the section :ref:`section_using`. In all this documentation, we use standard notations of data assimilation. -Vectors are written horizontally or vertically without difference. Matrices are -written either normally, either with a condensed notation, consisting in the -use of a "``;``" to separate the rows in a continuous line. +Moreover, vectors are written horizontally or vertically without difference. +Matrices are written either normally, either with a condensed notation, +consisting in the use of a "``;``" to separate the rows in a continuous line. .. toctree:: :maxdepth: 2 intro + theory using advanced examples @@ -42,8 +43,3 @@ Indices and tables * :ref:`genindex` * :ref:`search` - -.. _ECMWF: http://www.ecmwf.int/newsevents/training/rcourse_notes/DATA_ASSIMILATION/ASSIM_CONCEPTS/Assim_concepts.html -.. _Wikipedia/Data_assimilation: http://en.wikipedia.org/wiki/Data_assimilation - -.. [#] If you are not familiar with data assimilation concepts in general, an introductory on-line training course can be found at ECMWF_, along with other materials coming from geosciences applications. See also for example `Wikipedia/Data_assimilation`_. Note that data assimilation is not restricted to meteorology or geosciences, but is widely used in other scientific domains. diff --git a/doc/ressources/ADAO.png b/doc/ressources/ADAO.png index ff778d9ced35c858e2290596e9de514569664729..6b465d7e9092398da5d82377a68c8843d0e41844 100644 GIT binary patch delta 5454 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 Ef<`1(KmY&$ literal 11797 zcmWk!1ymbL6b2s?Z}484)^q5UK}3Pw*fKSv6$n%NN-!68ag% zNk$t4y?^ol14e=&+Y@?`$n}estE!`gtB0|RIl#ligT>mx7G!GdWX|H~Vwrs=L<|5> z0%WDc)jWUB=XiLk&EMUNTFQAVQKA5K4!iEBu(9p*q@-Y2KbdHD@^pT>3)lJ%|2ZM|PyOut9Y}D;l z03s7CJGzu#X*c$nQSc!gwUYC?2oR&@Lt+%=3|xjSPoxIr@0_9Uz%UrSdyL3LCRiLP zGT#g%qpYDv)+CbgNttybNGfa>MxPs>n2@d{B?Xc( zR{rKe&b8K&`vyYE@qNT!^Bx9(Sd94E7J)oaSw^>xbbxt+{w_k=l2tJ8ikJMLB}m5Q z?O33Nr2Lz(0$!J?NMt@B(3c~ydnBonF6@(jHBt$nj#P?khWKK!g=~N=z-Z(6QY{Y_ z`=oOi6^tn_QFXF-DF2b5TvhnCVxta5suPQHm8L4((D%j}Qwj^HFSg6DqHcuxGn+bc z^+o8VC6TG2h?R|(GQHxt{$~uAooWuRi;88Sx=5}~8z}fz`~(Fs^%*#hd(BDdvFn&v zxr6bi$w!07& z79vCzIdt0Jd<6Zxw$?){BbE8~%gfa307@>mIz65$ImA>LeVp1Xo%G_pb){u8D zQ|eILFY_jbKd%Ayx3J{J=lAh2On7E431e?=*B>`35$R@Tz5c}YA#NKVsOIkY62H;4 za*44aM52Swa$?b0S|=Qll49r9HGpJm`&yg)tdreW;&U!n@UUk2M(y$C6Wtx&WAlD5 zMvEUM#eGX>r|rPqolJq^1d9N94-`_^Lcjo)jQVvDNrGSoE8`P`M0J*0#c_Ql!v6gP zzi>3yBl)yfzNwR(ba)=-Vqhe~CHlsl30-8>#QXaPKt`qbiN~`(?DkinTaM|kn=KEd z>wM`|XP~_}x`bSW*w=uYlRu(mGj3-_4#n-5u4FadV-Pl%FoOf%$g@t-kU8EVI8TX8 z%B&zlg|y+?5&jIc-n^Hn5`Uo&Si|==}!{zb4lSSh!Yflujivm!Zf?FpU89Bv& zIi(Dq<0gBNTPy1A(5e4!`=vuIT%-afa*ZWW8PQ?fK^*T~l;}T*n<(T%Mb)Fq$@ojl1>^OjT?eF`ZnJ+?1*vTHy*`Bwm;OPK@ zTygxpHe2FCi6ZEQj6u>S8q{5h@9na!-#7xku2^!u-WbC<*Ic7K&t|@s*IzaVmtkxx z`bIqH4GGGeLlnZyHsTw70?_jF&?ui&^erudthP}~0M6LuhpXG7g9j={>p4A!px{T; znOH6C-d)rr%;3p&QYjh)tDz)vUC|16km1k=@cK*e^#gI66bUdR#z!l-WNrLf4Vobi zS+Q$g>O9$GL~qez-XHtLPbAu%oMn{yKm=-JLy5*B=_0Qa%cbc#QFEEzSf+$7U(6BN z_6@)>gvUZ^Z!Je!$GeLSoMGe{)jNK>9B*rMA5*KX3HR(zcWAXP8+x-@{Ibmx!moxLknhfihNGg<5Ad5X@A0Wa;~k zgZq~@J35vw4$j!wRxp9f(-1SC0?DNz`fC<-w6qx;9FI!Ty9bfPv#DL0RqMdM z;1JOsY0C#9T_=y6b&qQVnJE9!M?s`E*x8@=WK*r&<=oNI-pqzxJXXXzLDc!IP8!bk zEK^w4-z)%Cu%xr_QVT}$EH-b0D`^6>+>*u^O5d8kb~yZ*~wa#fx7emJuTx(E}`U z#c&`uLPPHLQiT;K3-4SVhG#EO?rN=!glo!Nr%@4Kn$Z=W5y=TW=Xj& zgts2&dbVCZbNYS{w+V+6w3@^V`jUc{XaH*`vNHY`Fw_EbbBo}VPLb=o<(0!z%yAm% zk=yU5Y9+7kUj}dO>9eo9Ux>NCaC2d8DX@z8FGtQv6jNodxGmmV4GXj5Y&4yI?<$aZ z&J0dYN=_ZCQxZgHwq&1l?ZG#NrnT2c5PEI|6Ns=Wj@JXWMhDoy2?rGk*fA$wZ|t}$ zdS1LlcW(0Kh%5*WwIWzm_ZRuXF1BZ)E8wZ5qZFpBo}+`8cP6e8A{YIH_Lyaqq|@?I zwK#G>ah-9UJu40=E3aK`i`$E zc({J{v4g}3y>+Wplz>?R(d2*z&tGXvCUDVvhCQE&gR&DqRBMpGMH06LEQO;@aCd=puz5Z|(O?|%Kh2P%fvGVJ z1I%uO3anGQgH2c+4;n6W#veHy%tlq=QnQycgPj-Q5~#Xr@Fr%v4ThDQ9=AQlZ*jmj zS#Uz-Cg`|h&N93+paZuS{uY|s5%KqR{VUkhJrW(;>4FVUw=x1ry;ei%U2L!_8)C*@ zzzcB_Sq7}Uq_@-ij4AZXgu8S*ZP-m7n0KFMj;)VtXo~(-Dkn~_Ui;cqA#*YJE|)Vo^2%SM_C-msEOI3L_jdLx3`b z=tt#}C2TE9+w(IxD{z^xX>|d)ZO!r0VMP8)Xtr4Vvl9CHzLrz^B_+ikGmQ$1fVDNMWi3`Zwe*%X;(@9>p^?H^E*{ZG((yYNxDaR+h&l--s?((O9 z_UVzXe&25NJzi{~E(qPth!%gkv7(??Y2F=y@Lpr#Rmwpx zLE5o5F8**o7zL+heC85xnqcG+-)AzMPpFSE57Y&D+cq^Y_ctPe^EG*?%`1)pB%Hce zEA>fsp1#C1E2lTZwo~1$O0x?dx2xq@8;EC8h}Oi6&-c!kC}xiaF!iZZ4UL$AOHLAW z_qMxxlC9=vxci%r*a;X0 z6{EcE-}EKzv>ea?ap#C)VejT2W2Vo(mYDHSg?*FtHo~WpRJBi(WnBNLb?`Ke*g)kp zFIb_9>TIljX1o|K&F{q?v{sm5<6G2Wx7Q-9&rpN@xwPrYNY}gPmILd?u)bpwe7V{$10xKm&D?&E~FUMrpd9nItb8z*I z#>?$dMxccBnqL&dN<}c(j~{5a5@28K_l!W*IcJUVAttcC!aI4HB6A`Ki%aUqM@JZi za!>WfXIGe_js+4c$X?m-4QJM~R zr}GKJR{36q9&x{iW6bqFp{=R=nOLcsX0#nT9$fqVxzyu60VT~4O5%!!yl%C@ zpK;4U@&tho7e?O2gG3q#K%tv2Z-D48i`_RRU6!c)s^8JYs{R^*k8Vq}O-1*#4B*G} ze3E8Hj^^oG+*ZGCmT11T(E_}S>82>F*+IMr{&DPph6xIy3l@el_O@VaOVkmfl@+G% zYH_5$dw*gyK}2_G<(P1~R&MP^=X4GT=S*rg+u$?pV$bWuiM|_jzkkL zYIb$?W(ls3I&^rCdmhL%-uQjO*0#O|wj4{D{QIE&HFkoAx^}Wd!hrz zPR5!Co@2b;-+y}VwI^?(~rGv;N z^c1(%Hv>bB@=B&LAX7ej)@mOE!#v1nK7Gu#74`g4wLA{nHWu^MO_83Z6F!hSCM^s? zznqvhRGpH}m#isKJ1iq11>8$>AE|=AZLzm)9iF9%0s8ZM|YZH6Wo-#LL0Cs*ilN{@B&5K=pT)3(;ofsVDTX z=4Pm}EYag@l>|+wfuqRro^&2F`e!`O+CL&9(5&)NB;c^^$Hq7R33iZY;B_k-RUkW> z>NY?h$D!$RU;FLC6hPY6n%Z)<$q1zrHbQe9Qv-a0xknSaaaDi^1E1{P#p+! z`+ntSOE?reeHy3Qy(#={wvkpM5_T8OzyNF-Vuk%RWWh@BKH<^i_+yO~X5h3_@=%1( zV3%K9XV1O>D`gC`#*ef4g#3=f+(zzB*M4bvoz@(RccK1T9@!TsN2O}(v|V0ZA~G8b z&sDSVmb4nZ+;+9WRVFOZt8}((UeL3RCbT{jYze!?P$@)!j+7(&xo~T?L)a4gR%Ovq@-Nk&Ba(L|lD0%4mcu zNBk>Yjj;`3_;*SqBgsh5Y>iC;lOdwc?Z{Ya6CZamh`oc3_920_2kFTPJB?o_h`zZ?A$glrq=WjCGqp5p@<$N?pI04vk$8WZwNz-v;WR_8 zh{6Y})UB%Qo&Ff@*QL?5+dVUUb1=+QsVuB5R^Gj!MWQvaW9&-`WlGD2pMxip{oP;@ zBR&%^wJ4r%rVwpIz>W^KIfsmLPG}&chhqO4D(z!&5z+LWWX;~?O;gWB ze;4P2%_`LbsnFzk!p$w(ZpkmSwU{l}9x| zc?gDDQa<)nV-wee#~V*eEoF={#rR@MBWlFn$y9@U==xh*jbVjL;{T~sTrbz%X35+` zQCqwJT{l>sMBQe3+5SlC z_$secYp^gjMd-5M!9c4sujOqXb29CA`*w30tid9El}tEC9elCn0}ZSMJ1-kbnGeyNUjvcrdwPvnQ2p)43CU4x{nRo(w)MdS4=t#!b_?RvE8VQ**I0`U?w zG&=Vfiuqxm%$|!?e~x&4vp@aTBiTn!D>l{kIRm4-%`j$3Fk)qGA0mM0SyVLqqKaq5 zXk**!{PI70a;h1aV9*P@4@?B$M||H2^5WiwmqM{!gib9h5JLda(w>F{hj^TQOLnx z=BtfbE{wr@D-YsjKJ#y)f{)>df4R-$cTEPhSw zZgj^*Euu^^uX_A&&a=E2Ze!vK`>})pj$=SHG zbvLlS%dd+ti}vf)dc5k$-D>;7;-_EnZ&@Y!@eYQFoC9{G9F6M9Dux!M9g)-d(@g~} zZ-8shWCyIfixzRRK+=z6pqOxmham8JT!krAcnxp+5L0 z->(R{;;@EXcl+I>`EqOS{Qs|q7FXwu+#P`5WSSS6O3{lI9uH{Z(xNSD{^Ash4dR-;XoPihwxm4 zV{_hii||pPQ^Me-YXwDru&bN(xV^sWU%nqocL>}|J3c(^7B$X|q`KjAaq|3$2l1=IRWxOh;wsc;Gl=55~XUO*mL+N;agsUF-sFeNuP zBOkjdBK>y>jzpS5d04A=i*BV|)7ixu24r%(s%fzTt_jT3Hol+$c6_+z5ICDO;Ppuc zF2~*7dP{8kwMc_UtyR;@zQ7EGR=BM+?+`$8Dt>e-XcHXHO074umI7nu6%z)JG@C_r z0#bDa7K`fQ%hk;4X5Mpd*WR=d<39Y>7AzL+5njsXZ}Hfl$i?vTf{6bQ9NX(p<&pF? z){2qKy}C^EkVM^%5~pnwBFOS%`|0R?IT}^gLi~V9(~xZzJ|el%*Kkki-4jf4>oAP@ zLHLWIBs4I$^0(6;MURb2QB?B(iVo5>uAs~=B=o(jlQm79<6%86Rc-07|E++<=0;{? z3CfMVP7L;G^5Z1;_%QS;-Hlx@G{PRe7KzM7#p&RbFzoy214va7gLe8uTB{W}&^YI2 z7TIaTLoDYR;|Edx5rQLTa4ULa(RqmMDqJn2W;-L1H6lbN@qZi>|I>wrc{xp*ZoB~{ z6?KLK#{9XT$n&VkFLxx{(wo_)55I$B<;fOQ91O0TA^UC)5WNJGn6xycxeq*@_8i&q zyNs*QuueAAk@YY4P?k&_7Bf++MNnev50;lJRyjf%n?V))*LT#qzrh*iDifvLe9Gq> z6)#{n*TE>%f{&Im(a4l&d-^sc!2L3)-*yg>l(%&hIGE(GgXAfno>lN z@t`a*Z74{gvez`ZVbFbBUY!5f6_yB2cg|wM^h1(*iyQyJzZ zJ3F}fUM{A%lw?%DVWz57oY@qS%60KX%nVJ5bpu1mtCXJ0xOghzc95|DirZIf7H*~3 zk4t7|=R|JaE!u_MH{6QI2O05I+PpltR8kzRK}0wf8XIobVfr3X=^8TQ`A8+>RBS}^ zh-Qh?fqyERU#TU>b{T?O9pmjr!Ht7!4Mq`H?DwuIRHFtozb4ZrCUqj2 zf@z!#lNbzzlr*;L+yskUCJm7vB~3JppIcnImq=0S3h8fGAqT_)axEX|a5)CUGkoaH@rs)C;ea8_SkHhW(qq>ze zex}4Dc}GKr>RM_kH#SZs{ZD8bnTT$t5>Sjv_EM};(xH=v9A!1T6}j2>>_;VWDI!}! z3~nnKp+Qrq?t*)2Xz-_@=VT|ONqdd$7^{2JD{Bv{lo5uBp>mFy6of1uHeN9HA#e?N zORE~N$xydci>8dMZe+21^4s&M@V+G#Yz>rM@N%=LF;@Yfu`HD+;zHHH;g3AM&1%dZ zNNcb~QP3Z(oBg6yfn@*BdH)w~LVpLKR?gu{sV!#Cq5=U0pKhomvJPFPYWrT=)3-M8 z?~pZW>U-7o!7L})p&idTMk3mkQ8&~mpzS$abLgx&Ju8f_CWOUCK(pIXt<#NRHHj=ZD#{;mhO z`}QK$oz1rWe7R%`$-1J;6|q)}p$0lGfiUB?(@g58-B6a3x&QiPZ!G>*-|=+!4@Yw0 z93C~oo(759Vy4;>>2v)AB#217L{YaT+!>lW7dv@Jyi8Eo`@1d7KN5$y)%LH-%8)gj zJr8_b0T4+P$McQv*{!JxrP-aM5CHFQ$ z4my!wy!X4M-xFvqCHHID`I2<53*9*o{{LP8+{N*=0Vdw&X^dND8BuYq#Heh6vdZtx zq~r7oNWbE=y}0C%HA_m!BxtsR@!64$oVesR;p z?E1K2nDPe>P9-f_(;AfM|JhLUipOGaT9ZDh^}v;CPoo3-k$>36=q*Xt3}wSv;+4I; zZvE&wE&isd97iF$UD>y4)?cAgD!fHuKgsc3r8z`C^fbVj;r?F9eEa1T{byYelruX! z!Rw`Ho=2s^T%Hz;ldKyA_q-+^$XRpoV#wlkf4({-g^4rUTwldiwY8b* z7fRf0(vAxl{+<;*{dbL`?{+##RLS9GC8k>3;aLC<4zY}Jr3Kygf$+@J+}()WwTt~W ze#fTdY`$qe8z~j>(elJX1q)P2$QBp&^ca4k_%*&A(j@Ka8|lI5{@ThWLb92LVrWOh zFED56$;>Yh%6fJ(Qo7SodoNFgB4>scso@z(U2wgY%%Cu(? z{}02FU4NT${chIucJ_i1bW<_^J07VW7M(!kvc`Z$W#u!#iM32qndGTuE3#JEIv0|(Lfe~B5wX2 zbbS76#LT27ydCDyL(}r;2i&Q!s*H8EQNQ5b&+e5OJ(BzlTWV(Z;lW z!9UZk4Ow)sDa!82I!o0N)_*>YSN%~h_gr&!pl0yC4Xs0NGmqeB(P(r)%~QWEv*&9l zTWSdUcO8&0OxOgBPNW zp6A3xzTwkPY$|38ObZFfFsDJ`x&CR3U%!0adHVy=5KGqO!`V*)=nQ@+64!lt+&3Me zw1Af0=?+%opq{g$zuTu0u$}%OU2mTFgZ9kqRELt7nJl`CMNqw&(}fQSA)hH66v(lb zaN4zWhO?QlrXQBgJG-}mP!VQ2t-tO^_fJG8Ae349I`jR!y1k$sQi;h~Z>q0f?&r4L zCkK5dLueU(ak++y=Oehp4a&%a6P8FMYHt*bEMMyU%J0$`ARA9PrQ{1qq{P}v53LrU!kL-;V09fsBb6Gvh3!> z_kW2Z_O9k|z9Gh2zf)-Fao}{kR^{t#$vfz(etxl zr;=i#8Zf@+q0In@)9nOTW0*QFzwCscd4*4|4FnO?%vb&8(=;o1Cb2!t$?ENd z=BVWRnVN>R<>)lpugNjf*MCCw69lGBXm*%LJROwmpF$OHO%I`x3Q8Ksh&)1&1AWWZ z(^*#$!r3HQYa7+F#^2E1hlaCXhd?Ljn-A?I7(vh;jZ^X0=gP*o3%gka)!9Y?x{x2Q z>)_lzUJteBMjA^;s+!i|`Gnh9jCS%7W{Zb01r9=vHiBVpPtgOL>4bpX{kusHsJVoL z<8vG^_V0|Gl582{}OSHKOi`tJ*8(6ii8#( z?A1PSPdyE}P|lxTWL~0P zI5u=s%vmcNd&(9Q&NzC;@~urJLShZc1MFM1C!d$HawdC;NFF@x=+92(rz`_D&xOYQ zV%(E~*kji;I_xF3BkFzyBPLCprfzhs%>2Efxfq!u6aDN$|o6a4n>Bh$DBj#?O z+#~WAb#0m4^FBSSn=~E!e;i@W02qsxkkJS(*!NsipS3qUxeqZ8POc7KMa&SEseU;r zOhzU7A8~WkGyf<1mkW*9BR$sq$vnt3G{VM~Q^z~UhayqAIq%~q&>bKho%<@Pw>I>=OW+&u8eB_-D5!SdmvhCSu>OQ}@juICT8dl8;~ zf5h?SPbT6{UwZ}&&FZc;jy`Ybr$hlcSpTO$sP`#j!@RlKTiM9Zm#RBft(vZt>YUsZ zG09o>#s2I#edPA^=;1X`*1#D73Xd{UwNd6+_tSAA&|V+?>8TrLha@_-#IM_VOEDu@ zt1O;gt116?XBXBK)_jX9(Gk`V!pSU*kYgFq*vj9_I6 zzT2JO$XFcML;;&ffEOn+^*m7zG<;4B11 zo%`|zwN%yb6D$1(!;H1x9hy`%tUF#1LL-fEPLKXTZE3EmW2xh_PVbw=a@hZU7P=5DL(aqnm`xqB~$QAOaqO_Zs4xR!5)+S1gwulAcb!HJ%ocxzs^Lv9>Z@io@=+qfGwftr<2>wSq#$0Y_9c zXk?RRfy_;kUc3-ZnD}tdPH=tST1;ug*rlFe=|!gI+|MzwVS!@rpQFd}2`0M^@+ByLXO2)FpfF1;4SJe7n2uTcHt}5>3-|v^n-z^UyGlE)7^QZQvhJkU-u; z(z-p2?uDP?Vx}FiTU(=M{QCAz^?z+~Mwa6?+k191QXdkZ{)4ovafNIVg=%5mb&UxTM{Krn3EFcRx-c?5 zr^UKKK{fmB9%1yhu+!Oi11QFG4{ww=vpSXvZ&sYC%0do}{;UCQDVUv=*kR@}o0tuG z%O9;~ya}AMdd)y33rPO`)yb=Pom~pK;3>q%AL1BXB;cV(u+#JEDaKOK z$gkCY|CtGEx8CKQKmH(n2HKX8)TQUh_p-P70*`}dL&q^7r55>kb%iV8Z*$+fTv$O< z8VT*9l~WK53R}lzPBp-wU5(H73^=dan&Gkyw%>Qifd z`e+`vLTf|Tr>n(A*y0>|7Iyy)o^N+yGq5r9A~MJY{!H9r?Kb~s+ydj0nbty;vfjzT zP6s0QG~*Rk>d2>4T-{%|+IIhsy1S#O%qc~#IOaj$+vX>(d(J#MJLqsiO2(U4$dpj1 zZhFE$Q0l9*!Eh;5l9}*KK!Kq8)uSdn9%?i4AY3uWzvER2yXHb`!3I5sav{^Yl_C9d zf3<0Kq-&R2~*@wjPy3)x@_c}Ej4)az3fJ*{Jr5j6$|FOo`hQirxy z1l;XWz+GPfvUvFB?0&N3-$Kh4qP*6UwkuYZSDam7aN6@EG&QD2ihU-tf@8z=p+yxu z)qwxI=HkycXEs(Wur+U3Mw}xF7jdkWrZmYk&oWn|n~E47F?TW4XZG!WkI&s{2UaD5ynI}XRR&5>&P>a2;& zFu`2!bYX}642p&tt&nI1>8oI<#LU@CyGsZ>4+TD%g-CAL+3Qx#Kd7QrIWVrnZ9!VWu%7B7sI6#EnJxm9MNF ok|%JO0HiSBk=)ul)vKu1r`4n5;&wLZ7H)v-7e%RR38Ucu0Q$p2xBvhE diff --git a/doc/ressources/ADAO_small.png b/doc/ressources/ADAO_small.png index 0f7bbbd29379eac54e949a1481988e75e9191ff5..7faf4125e5923c38cfa1c36ba8ac81f84a5584bd 100644 GIT binary patch delta 687 zcmV;g0#NPm#VP?T7dDlJ7R_=uKTrCMx|Oj?r`Y7M@iF*z>gP8cqH4L$(_7Vz`AVjbBKufl+t$GfE%$Xe=?NC z_T!QqpTQ2yql6VX%DIE*F^89%=J8;zcNZ{_=kQ(Az~^uZ1-yUMR2#%EIGnH<9Zi71 zzU*}Fx2PHfo>1~B{`Lf zrqVN~XYHLnX=YKNa+P~Z?P;(PyQV|`#_J3$Tbfp6az$G9XAatuWU;L&|k4-eUEpr_RZZM-L=Q5#T5k;laBr= z(Bwm_89l-~X^??c;v~e%kh=ebwW3LLsG8cxqH{ z%?jOD8$2`T(ENhe8V7ptuvhNgYUZN@UYwYWPoAw8%AGbH`M~c{H5XNn_jVcCvE9!X zp0D@cZe;PS@4D5iQFSD$*5^A*>i7YZ2&1^@s6IQ*`uks%rj0=EDF0=EIuHONtsMkjv*;7LS5R5*=& zlwE9-RT#&A=l$s0_U+oew$R~LSU1QRLmkWyaEV6E!U7kP_(8b97`!ksTx}r)6O9RC zB3H&35+jMmJEO!4QKE7|A_l{U$Tq?@#u#j+owQrm_HEaX^?0#%);c}Olk@za=Q+P~ za=rk03S_KeQIJ1@JRpCiq}J-{+W(FtPlJ@J*voZ*do{V02^9Xjy{v0nP#mKn0#$ z6(A*1AXkx%LSWRaWC*xk3;h>B2n3)5bceoq;*H*;p92n{2#kLLfBY}t&1d!u0vf=( zd!}C5+_YtXB~=D~241Y_9d&>u<-|*mecH2r*N4@}YfckAwqZ;+f@x_+{L`G>#X00J&#=Bz>d%O^5VLcSaahQ_HI)diHy_NdCRPB zr1sj5fyk>pYngbEK?q5ISB9I>QF_~h7}{;Tt^o`kc5hYremKgmEkTmGlkDm`lNtEB z@0j-d=4&3yY~ZafiwhHR61Gb3MnAty#M!iVk)3T>vW0&V=SCmU*BRvU)I1>zdfQ8$ zTeFA!n#a&W%P$LDx=OxO#_iBBG==H;EK>=avV^eTWX>*7mXb%CeT>FZYyaJ zvk-#l!XnL$F3M7J_3k{|*ISg!;B)EtTsmtS3?}0l04%qIg7v+-8H{L{S76ClkLNK0S0u8H=UTUtO6#;!u@LB$=bdasx1OKSg=@ z)8yVWu!C+sR0N zMTUJMNj!!|i{&nyJU{XAd*9tS46p(KIM^HBx9{=LJ1=wwyT)hJq;f@s5O|#$o$I`e zL>6MFe!X+_qjTe5RLA@S01ys%d Mise en oeuvre de l'observer" print " var =",var.valueserie(-1) print " info =",info + def obs_bis(var=None,info=None): + print " ---> Mise en oeuvre de l'observer" + print " var =",var.valueserie(-1) + print " info =",info OBJET_DE_TEST = Persistence("My object", unit="", basetype=list) D = OBJET_DE_TEST D.setDataObserver( HookFunction = obs, Scheduler = [2, 4], - HookParameters = "Second observer", + HookParameters = "Premier observer", ) D.setDataObserver( HookFunction = obs, Scheduler = xrange(1,3), + HookParameters = "Second observer", + ) + D.setDataObserver( + HookFunction = obs_bis, + Scheduler = range(1,3)+range(7,9), HookParameters = "Troisième observer", ) for i in range(5): - # print - print "Action de 2 observers sur la variable observée, étape :",i + print "Action de 3 observers sur la variable observée, étape :",i + D.store( [i, i, i] ) + D.removeDataObserver( + HookFunction = obs, + ) + for i in range(5,10): + print "Action d'un seul observer sur la variable observée, étape :",i D.store( [i, i, i] ) del OBJET_DE_TEST print -- 2.39.2