From cd11a857f16f2609d727aae0c7f7703b9010b636 Mon Sep 17 00:00:00 2001 From: mwoussen Date: Mon, 18 Sep 2023 11:59:15 +0200 Subject: [PATCH] Adding Jupyter Notebooks as tutorials: - new pictures in doc - plantGL visualization feature - adds s2v and s5 (there were lost ?) - new examples (mainly for debugging notebooks) - debugging src --- .gitignore | 4 - doc/_img/paraview_example.png | Bin 0 -> 191691 bytes doc/_img/tesselation_voxels.png | Bin 0 -> 11809 bytes doc/_img/transform_geo.png | Bin 0 -> 42588 bytes examples/plaque_ratp-caribu.py | 8 +- examples/quick_test.py | 16 +- examples/quick_test2.py | 34 + examples/quick_test3.py | 33 + examples/quick_test4.py | 67 + examples/quick_test5.py | 28 + examples/quick_test6.py | 44 + notebooks/environment_parameters.ipynb | 301 ++++ notebooks/example_canopy.ipynb | 245 ++++ notebooks/input_scenes.ipynb | 983 +++++++++++++ notebooks/lightmodels_functionnalities.ipynb | 802 +++++++++++ notebooks/misc_functionnalities.ipynb | 730 ++++++++++ .../outputs_and_plantmodels_transfer.ipynb | 1077 +++++++++++++++ notebooks/tool_basics.ipynb | 777 +++++++++++ s2v/SORTIES_s2v | 24 + s2v/fort.51 | 5 + s2v/leafarea | 2 + s2v/out.dang | 2 + s2v/s2v++.exe | Bin 0 -> 246848 bytes s2v/s2v.area | 5 + s2v/s2v.can | 5 + s2v/s2v.cpp | 1224 +++++++++++++++++ s2v/s2v.par | 4 + s5/SORTIES_s5f | 18 + s5/fort.51 | 5 + s5/fort.60 | 66 + s5/leafarea | 18 + s5/lecpol.c | 51 + s5/lecpol.o | Bin 0 -> 2002 bytes s5/s5.exe | Bin 0 -> 158817 bytes s5/s5.f | 610 ++++++++ s5/s5.par | 3 + src/lightvegemanager/CARIBUinputs.py | 18 +- src/lightvegemanager/buildRATPscene.py | 38 +- src/lightvegemanager/defaultvalues.py | 1 + src/lightvegemanager/plantGL.py | 95 +- src/lightvegemanager/stems.py | 3 + src/lightvegemanager/tool.py | 152 +- src/lightvegemanager/trianglesmesh.py | 31 + tests/test_buildRATPscene.py | 7 +- 44 files changed, 7493 insertions(+), 43 deletions(-) create mode 100644 doc/_img/paraview_example.png create mode 100644 doc/_img/tesselation_voxels.png create mode 100644 doc/_img/transform_geo.png create mode 100644 examples/quick_test2.py create mode 100644 examples/quick_test3.py create mode 100644 examples/quick_test4.py create mode 100644 examples/quick_test5.py create mode 100644 examples/quick_test6.py create mode 100644 notebooks/environment_parameters.ipynb create mode 100644 notebooks/example_canopy.ipynb create mode 100644 notebooks/input_scenes.ipynb create mode 100644 notebooks/lightmodels_functionnalities.ipynb create mode 100644 notebooks/misc_functionnalities.ipynb create mode 100644 notebooks/outputs_and_plantmodels_transfer.ipynb create mode 100644 notebooks/tool_basics.ipynb create mode 100644 s2v/SORTIES_s2v create mode 100644 s2v/fort.51 create mode 100644 s2v/leafarea create mode 100644 s2v/out.dang create mode 100644 s2v/s2v++.exe create mode 100644 s2v/s2v.area create mode 100644 s2v/s2v.can create mode 100644 s2v/s2v.cpp create mode 100644 s2v/s2v.par create mode 100644 s5/SORTIES_s5f create mode 100644 s5/fort.51 create mode 100644 s5/fort.60 create mode 100644 s5/leafarea create mode 100644 s5/lecpol.c create mode 100644 s5/lecpol.o create mode 100644 s5/s5.exe create mode 100644 s5/s5.f create mode 100644 s5/s5.par diff --git a/.gitignore b/.gitignore index 66d447b..14e513d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -s2v/* -s5/* PyRATP/pyratp_wralea/* PyRATP/__pycache__/* PyRATP/__init__.py @@ -26,8 +24,6 @@ LightVegeManager_Singularity.egg-info build dist PyRATP/pyratp/pyratp.pyd -s2v -s5 .vscode runscripts/legume/debug_tests.py Run-tmp diff --git a/doc/_img/paraview_example.png b/doc/_img/paraview_example.png new file mode 100644 index 0000000000000000000000000000000000000000..773f79808f5236258b3f3c21bda98ec93b0f9eb0 GIT binary patch literal 191691 zcmce-Rajiv)-H?$NN^`mSRlB&LvVL@Yuw%4JtVlh1`BS5OK^86B)ApsaH>yt@BQt4 zzMKE%zu;lkthrW=HP?`Lykm|iB?UBe}9-G|{9g+UM#7;#Df5H89gvi6D`3BIm+E#VimTbHW4=|7a zz9fw-JvJuCy5j*Vq?2_2L-(hd)T7`__8{J8BK?`peF399CF-`GkEXFKgC9+IlsxVl z6X^W*QP`^vZ~8be&wqUcqy+^9J*U2wby_mhjo^|K2$^&Vmri{I8)tp6iEq-!BL)cS)H|cgQ1G42fN{ zC;t)Q141DFU(zgw^#qqJ>Y}Hya5jZw{@#UR{%iikyBpdFA}!=@OKy^x-HZqU_@*J# zlzF4VhJR1rgu{0K^<#C%3tI2IcxuO%?peO|Xrn%}{-v9lb zJvISsHwOpD(nEw$Pj9zU4(z*)dW=>M@kkn}ulrCb41@RUSWMfkpspx;ELktcT4Vc< z8ua>~7607BKc%`!2pNryGbHTz`{C;<+2I4xPM1C$r@o>|T*9gu`v6K#SA%lxAFzI| zRSfX6whN*sjJ04@zPe+=myAF;dib!pzj>nWjpb03{Jk9~68+G|gM+9DzJE;s-j0rr z9KoBy)Yyn#6YB2n?rFSkw9hXuyF81f4!{R^Hj4?uYoFi0f0HsYq5`<=llEijC<6RL^QBnM* z%`Z=Pg=J+@IVu_KR+t5ag}XE_`6yn8GZg%n!{nD)8^G5`8&5B9mzPUPNp-J#fEXqZ?P_=Zracm(qX{m~NB>rV zzg`^6ATWRc08lnGWKz7*(9((=O=U8@*dADPLr;TgFIC7LeD=C}d?8->QRpDi^?Fld znD}<)bgNj?TU9Qe1CxRP9F z4!>K~k010)D=XU*eCODSen?12dM%F7L_|bnA1f8F{Vy&q2tb)ICCkgpWMG+5YNm;a ziOZQp(Vp{)3R-?}H|#bW4GM1P%Rym+l9Cc>@KIu7;^kT;yl!x+*MAEjIx zGc73nZ{_&sA^n8dIXFI1P{1W8CtF%twos<0ryFngN0Irbrlf>}!Hy5fizEmL2umwV zkx)!8va?5nWcRYwsF!r3lampC(&_wguI?Uv#uM~e403@%7xVK(IJn^J>;8um00MwwXIVO5BliMs<6QBnXjKshzHMvUcPho` zi|i*GjPZX2{70D`m6|6H4-css80ORBi3Mo46E`+C3NjCliQwF6x@Ch55brBu)xoKH zSWrOUBX-JOS?*TlOvw{?K=4V-PXn|(EEH*ZFYJQ$Vah-cEq}vq#nW7V>8+%DTtCN75qN%>X>CzWjuH(lp&lewM zSlo%U2rNx+kE#yG0*ji>I!G7()Rj_|P@t@fW!EVyGdXNho>RX)+E8!W zSXnJs{_+Ib=OG-wrU$pp6|?#Y<_B2$d1uq+{Xl%4;XevaZ`07ohhpN;T@2OPstBG> zq9z>^{@eThOJ2Y#nm-se8`D&Do(?K2D+`%PJcJ*v!QHLL45FTN@<%vJHyn;(b#*L^ zsZGN!Nj*DZi7RpCvOQYrNLtp~vO!AfwaH3f)Ecvb%dtPJmjbI1g~zcpTx~JbAP(oDgOJz4=46bgO{#)d9YZ*>r-iKSe)fpL*OmH+F}m?x3lY_q9gY z6b^SXhf)zGR%f=NIapmeZs7R$@40$84h4q*>P?xN56H+TUMO%z^W{2lsy3!F*Uc3a z4gqC!R`XBgGZpHU{j4KGZdY;-99&#@Jq8dn#>T~s?goFUig}vhRQfw={uR#t3>b0! z3kw>r$BzphV<4a@OhOYx$VZpX_5jWd>`yvC4PCBZE`ew9jAOU)y%(c!%*-v1&O(_A z5XT~%LqLF-r_!C;CarO}`q<2*-mUJ(Z)gp@hF3)nly$qwgVsSjs?fQ&7Fp+;eNytL z(UPYIu_wUvF)}im&^5>ic%z2WPLN$9b;%O4bzN&7Al45Lc$d*gvW& z<6dvEHMi@+?EVuH4YT3m(f|Ta85aR~;?~4h8k$G?9J%~nDyGcMOg9%Ecjq9cw|M}Z z*_)MUqGWNrv;K9w!t$?K@IT`2Vd~(~kg~!)ukr9T{gTCM=5v34|8)mbiagU6ELiq59&?e`}roWQk&Kd}!!9-@A2>#UlN7_b4bQN5|TZ+nc!XoKvRz$^t}~ zp~1ls7m1u8k^F-aAq8UI(3wtzemND;dRWBUErI{rhK(h=UFtrJi(g6aP!AHxsQ}X? zbQ_=UMJgU~XlG|9f5d<74n&_Uk3T^Dms5c(Y6sr9LjSja|7d#hIQS2q`o~=UTrBJe zmG=MK*&h90u<765)dAl93$*=v3r^sB{y*FnzOk`!{Sx%=%l{cwo36q9|0styA`~9E z{gZn?PUWj$FngF5vqIUvv_MUv)ephc8;1^(W?SDD<#-gq!5X2Ce?aSBvK~(4H8nNq zzUm^WeI$w@^NL;yXX=|#0(eDF@s`)>H(__0AI~>Fe02^6`wP`~@gFkP3^=VS|869n z&bdTR-sZMty6kMW?Dekmsr( zVi6HfY*G%aPMjTg3Ioaj_$QAJsQLU3+&gwN{qcTmj>4huf%tI^{@P%sj(^H6qB^rK zS~&jvSU6x+e)Y6`@^s>VylvByCzJOKfiwpV#K((ts^_FDmPgqMH^)Owforp)NaEs) zoaYRTw85#1o=C4UUMj2ZqqaCL7XZqH)E#&3!9^A!|0Pn_a_h{o(9}nF0(Y=SgHql( zb96__FOaCrsBM0Wv7(&r60ORU)pErboeG$yrpwR&@_+wV5Lc7y?HDE?*;^GHT(l~k zG43Xs1)EpOm!24IcF*Z&;IUF=Qzv(FTJ+qU$;U{y{+RImE?+%y24}RPX^WDArEXmF zWJE7No|;=bDc+<=nT7&ZNgYMw80H$|&}duayhyrW;j~np?(&c2PJx>23rKuzR(*R= zJqqy3y(0|r#Tz1$sPo9xI5eMd)R4Dck^EYX;KM;!`EoW{2`Xf;;@c)r+b;+;z*@}n z>hk0uRhZpJPR~NKAZ?#H$+%M~%9g08YLJgnTeP(@?*d65uGq*WYb+Mp#D@Sue*F`x zz^kWrU|G%LKL3m^@!$EzUrN1hdCd;*_(oluXu_syKfM=L(83;j?HG;?6{8+%n!fgp zkwDz9Z6aAK%%t4grpMSL=;Q-a4OvkImlYjjFd4s`DPHx9U8(^?6wVBxZeE$zLk{BM zixJ;gfj@vISE^@=JmXFjWXCltp`&>m6my*T4N+{?W;Z3Z6Xby3`}^cBKo6Uo5jTw{ z;Pp|sy?egiKRzZXVFw8EaqS9`w`A`v_RElImre|C!3KP;PO%!T_(lxC-I$qn_Un@gl{oVFOmlz4?Po2D4QJ@=SzCWdZL zD*^*q1JQ}A=)qK+`Exq==2BCRXP$G;B}eCBr@UYNUoOS8xWAHFGg8ycs3`x& zStzx+$|o-LOW?7)y^`|11MV|W++1|HJ!GG}WcNGh`UM>SooxT*gr0x|w;#JhxZqWp zo&{r*yuEH~Zzd$q7j!slTXl|vy!rdkt7%&_v1J3i^4~n|gjS17!G=NGWB|`F8Ibrp zYHF#xu5&Z2HZ@x=Gg7V2u)LDVj|xgfUHo?*dY)w7ejkr^&D!9s5ekl-R#O>=E)IMn z42C-7se5fzz6PiB25?#9ls_9J&B3aQt(qzHFda=VpRGKR^c!aqj zqZSP!@D`%+Di3CVByU4&N`@54J@vCy&d>61P5ngxgke-E0xP=G8A1sbU__} zAWooyV*pm^Kf-OHjqlqctEpT+Ho!_da(KJpNZK)HZ=N=Kn5B4ooZy1Hn49bogkP7m zcGc3HU+34av@NokS1)WetZsr?SbNkgXf{nkZps}xT49@m_zjN&f9^$#|HxLj3NTQi zRKY)ins~Y7=PQ%+@qm_rEWzc-_l~qG;?K=pDi1-;NO0!Z<>gAlJ1^ee%cK;X#fo3e zBcpd5i!{|jVBR-fPW3ti=LU1JSF5SOazPc3m8O`g-4f69xj>L=kjaIPT>{eXemROd zuSCOm4Q1g45w=v!_xOZbOR-UXVYHha@AKK$TSLPTBCZhp!#@o?JR`twcNIS0*nm3v zboNLsF`OMGVr_GOT^+VsR-cA0y2vIOWnO*S$aO-B8u_Ji@ip` zudDBicTMT4*MB_g$y4va0G^?*I3&g+VwY<4(sz?gm|xNh`}v={*>>3GN5+WjS<|Y} z-~hTuLHL~p)ohQkwtwsopVLr<*?sJ=Jz(oJ`s$8YikWui9s4Flj(yLA_hB_`Ak3#k}0*sH7H6?e%<>z@1X)t^BulG*WJvVfZw2%^+u#S!YcF8~z>v@7SaK3r za=y7E%=caOlwO^NvMN>hq}B{|D~zE>VT@e7Zfo zH0+#C3o9(|^8GqJ5i|0|i_A2+1~|CW1VEc>9=&NI8XWcFNvYo7@gA!tie@L|(Mzbk znJ!!j0~>*wYmOhd7xvn%-(LPjiT(v{dGW7DKc@k~?LuCF9aZmqu zpdEhM^$!OAx4_jd@DTp&e?`Pl@TaGz|0_BV6t=OU`(F`yx9R_zCM=-@|3jYskBxN? z+59iD|Fn#CQe+(+9Z%%{A_O4UwL?21{V%h^u}`?&RaFcvu7~`P+z0^{7S@XqfTFLT zO-)B9VOl7X1MBJi*gZ3&lQV$YZM@yw;4(5Z`y1-&KIrMK4gBZM*%R&vLUni@TSW4Cyz>BEy(^IzPuY); z>*$cf#@YR)s+pda77f*yzctKWR$W!qo9XaE($>cNo2S#w1F+eHkRxnl)WUCZFC&X| z@jB#?pWlc=M9FEAqwK<=!DtY*JL-Tj+qTjbfP|VY7|+P&!(umMfTk;p#D5ERadf*u zzZ&et)AiU)^f~Kq=DQ{R+>N%?6Lk44QBzfw{MF6T5&aFdsJ0f}-rj!ZVz7r`a8O2E z9PajXl}g{k?d?#n)4S2N$|bo}LQ-F!gVBILuBhJyvRiPwD?JO4#eG#LNP2pD zELNBFVv zP(^DgW7H*SgmvU1#_$;j6?Nj0@P(FfVkjc_8Aq57LM(Ug=F$v~Ja`x#&GB4jZ5yfyp`*#)^P#6B83!RaKQqPJIlL z2EAeY)RYp7JTEV=XnT%5PzP-AjdRxB(6Dk(d? zTuxzj!<-tuZWHo%O8IXPmi@@d`0lL6@nHr|?B2&zCJ$ka@YKlE_*3?(W=-RGmEAB? zrHHRN%QqJ!7QYp}ADxHxY3V3-Pt1c$Uj*N_?Zz@%wc45^zwR@;&A8yt%+5kcaFD9> z*ElBEH#-Lhrn8|#;P-!Q6HtQ;(flDZsFtcKoSM#8K)?2cNYE*^m>N+JS*Zp@2iZ(< zseR8wG>y6QVJDzFVIA-U+e34o?-R&zp%`gsx+Qa8h%f*m5Op^r`8D({{rCnKs$`+d zq2r48_JN-w*c$iLjrrv0i`1#r8Xvi%7W5_)rcB~KGps)Rpe3tYAaq+D?NjdkL&6(c zd_3c2Mqy=D6$&33@qk}5UDsk=nv11_!%(m`TmSVJL_|cfz$C;Ic#$fPuBS6TZKdP4j@yp`ELNxz)jsU=AZ%kN6hhQRCh>7Ss zg-JVvVek3%OZsQ;d!sc|@-i}r3OW2y4@kJfE)6c1{U63MxzG|5$u(QWc1Mz9mfCj7 z#U6c()m^#i$K-Y?U@Pq`d(Y}qm9?}J5Qu$=4Ge&nn1df@6Ck+bUC9iG)#dMWEsxoC zX0GO>RAy&L1;&YFk81s{?t+erO7i+$!E2`f?g-A@{Cs{}n@$d!J0TH~IO1&G&kW#n zy@-=j-JpesH!4A;LENAX@bADP2a;fiTAP^(ee-)%boH=4YvX43<;7*vrc%6V@*C3R zcI5$-u5(3`7Abomq+t6-K5^OhC;ghf)DabBuztJB6^h0!%NWaU$F^~3lgw#5dcuU7 z7?T@p2l+;c=AgxFp7)+K8=DxD6MtK*S&g)s-5aqv+IxQZzSQW@e&1f4k2@5cBUzb9 zp@9pGC?$Es@b!i1|2Zud#+B<^j{|VfN1|%PZFKq|P0h&AS1|yK;MIU)>36$qQBWHR z)1_J}AJX3b#1V#yJtrTTAgQdJn8wM$F>u1;!tRbQE4*6N-=70@3UL5+Mm;dfmSr(j zy3NtO60`?-{BRMWk%85SaG^Ac*kJYi1yn&G@O|K;=6)grV%W-*!_v@ zN|zk9gO)dNVZi2s?wP1qKRcn|Pgp92ldx4Wix$bYo+aDOyHm?kvBPBNBm)T1JudS@ z%YXH2o7Fy4?Q3j*lkK6Un6W6lb;hXDx?1qaB_hU&x*B_aT?NMYJOgtbdr%CR%jB^AEW-=Q%3>G$C8|4hUj6v-;i#6oH#R8!77mpk=;aT%OA#e9rkF{t_83zAg<|_(OhrWnL_{QjWC+UCM_&`2#MeM5 zjhCh-CiK?Uw7caS^z`(_PZ8px{^$95P>yriiPS)?@RCd1HLoGl_b5c!IT+OlrHZ+@ zo#M3@=isfrZI5gvaB6kBD^nGd+ScXmszYk2tH)L^+{F`%j7j=Q&OL6F{@qeY#(xw?ICW_AH6BLy^l%_{% zZR)Pnn~rn9lDnu(-9QiXI|3#^8&xjQ(lfjvcDx#g;*+bO!PfZX)U zS}xCVR^4h@O1~J;+!?l!wAl_AIEM2Oa~I~jA#C$`@`DO6lq&k$uri-Y!Z!X zKd5bZLSdjZx9d|i8l^v3Yole<{bhn$PNG+N9aLck5g zD_Wo(9wjGtQAY+Lz@=jK+z@7%M#h}*&1 zo@8&5poeciyB>P0#v8sIxjDtghou^L6HW-nGqWD*Cl=OsA|(PjbaY5GahND8Gj4bv-#I!v_2_#DGOnY=ZfHIK zCVBJzkd0f#ton4SL?d6`JsEI|=akUwbH_FF&_$xGYOw`zFRA`WRlgf0;Ncv)9*>AT zpYFHL;uO1=weLpoy54qNYHu3?>#WW}$<>U9?G&loXaSy@@5Eijllk9n1|7s?dG#U1 zWwOU0>O+1`5jT5=%SmiwlY92Hjxz&{udl$>MjO1dmK{{D=r{{VX>_p7Z6tb(g@q+e z(68-Y*ASJMpZfA(BNQ6=_Qq$nZhKiUk%H(uGAtbV)u+6 zm4Kqs0D>R<)GyC*yuT^kINZWiL;nYy2Zzq`>T2vNt9YX2aQrj3v=h7ccz_UtU$YZX zsWQmZc2Z&4@C6*m6tqUK*D-frf7hbV<94>^+OpJzctya-!$qa>iZ^R?&lS6h^zuw^ zQ&R4cF36n(cNRm(7Vm$#`NPIOFqG_&Z;nF-l>ZJ6Zdrhajt_3Hx}?^%_A5xeoVy&^ zWuG2U7ffeuhnb5Fy9lmiV4I)+J=X)GlXD2`o1e#t>~cg*nQ3yjnh3YEU`V0YA!nK= z5|Ep{_?npsEh%Y%vBvA{%0<6&ytR@An^{68rkG17@W*k0oUWVv_&B#K8GPM^G&N04 z{}DwDv&A6$(uy9+4`M<55OS5audevQ{(>#vQi7znG>3LiV-V5H2I%3Y;6--AIXO7H z7Z-`n&f*V_&ct-Ac@ZzK#4C;HY;2~(SmUr{Ou;K!+T_C^lA9SI7w4IT%C^}Y-I2KP zJGXYZ^-*P{O}bPj^3T*-*eXgr;g27CSMq!tn>auD7LZtKO~uC2|Ng_GZ*5JaBbWB$ z(#8U%4xqBFoKjmmT}80Mh;CQf54j;c9DW)x?Uf@xups|aZ(rYT@k$}Ctd(}udqccP z`yIynvD@%+IJcX%xQq_o-#PRm#=alqbQrcQ_dbl;Bd{lPkYDNH9w8AJ*&2Utdnyjh zQ~fF+Q!o3K(GNuP-6Bea#LlWc!A*EyRPV&;WaIfm)A=)^WWuSi?-)xKuNxFqQCCcn z%fQC6`U;4gEu2N2Ft4|^rGJ}bc;f+Akx|HqcTm{l_)Ocz< z8?4v{X7q1a?{v`sX{#B1Q};)}2_Zw|W=A}^D}7`vayGAOds;fWM5gTKIYa}z z2QM%1#l`eefguSk-6(iq-(f3Xy?*QP$AgXzXeCnK3L)R%xbjCi!FPR8Bddb7MRsCv zrf!1t>I4el%oF?0-uEL`2c;1R$e>lfrx3f_k}Vm3A_jI2;C@`~n^oQ36g4Yg*TX8pH`X)6^~hn zHgnon?ByILJWHJMs<~aKR<~F%)|t~g%;3K?{h*0)PJ$f!d1jL4P1i0D18jsw0XE(EKUYprSjAM|MEK z!28jxL1&>bzY13p?IbLw9zjo!|F_4q5U+&nk+aeEAAx=C?y_CwC27o`^7fmx0T7oM za<13L$b0)};2K9SL*Fw~%!Ovf$0c*eK2+q>TI(jf&84yWn`4=Xa&IIrCajYuDFiheZkeE&?A?xNYk-Ca z8crdKb*q7nPITn3l&6nZR3Ht7;h{m)nO~W%8I^?vx9nXY7Ns2el_h=^Ic=ZJ-R^~o z!QrxKCsn}~!T$*ICf75vOjgKHxdJ{K{7{g}@XezS^RHhY?(h4$$WBMJT^qTKZp2_e zT17TS{;WJx=>J@_yI7zm7vD|nbh zd`(Ew7R}IZG-*blC>nzdq)BQ+PV@CL>QPBiFPR!OWzai1#daH*ZtO zBN*mShhu@zMnaQHhsJIPJ6RQlxC|u{@M+t|A<{YVX{=V^3q59t6UwAyKWJq7}nqwboUUA~mXa1?YD1%&j8-vy8>Ppz)3gp-#}Zl4Ui!%j{y z{q?+@#^nM}CK6(7zrY9O%5oU}-nUA>N$Q;+Q*nv$S*+FKk5UDksREI!Af->r5T-?E zQ2~2RM_aplJUiHDT}p8j8_pj)(#6TOcLk@C*ZUf?4y93zFk zgoZgTA`&7xF=n`~gHFUSII1P<8?p;h%qO@&abQ;Q&dP}1?_XNH#%yf$iOI=vj8*|E zU((tVT^j0#GIr^<=y&UCTi$=CL?|e)`;f}0j{z;d;?ADpWG(^U8zSm>ypow{s0C#M z$ozyOs0?*4a|G9-;EG$tiGqUCf067*PojRjrQ%xbqJQ9R>wak^rX>`oBC!ayqF;TBK~L8WD!Ej#9hDbTH=_v-Cck#K zSK3T&!!8PzLHw=SgXb0{xg+i4=^1&kU54W*E*{3sY1uX7Ifad^A-NiyGV4A~fu4Wd zG#6gk$fcuKsg$7-y%6rcq^Q)ia!^^{i3R5*{yqyUP--#X?M=>d6`2D{E-Z!|1FGa| zyZ)^+2)`#MjWF+-$nuC?#6FW}r5(lCZjNSezL{eyR_E9-nR*d@DP6m;r~>!=oHuUx z0LP@mkL2*4G?OcUjMh>B+|6dnu+oGi1 zdh{Ho%Itm+9_Dxcgrt(ALJ?d`zJ8hEZTJA*>B`qrj{KVJUwidaTwEvF6^$9d$w>}? zs;;RK-`=eU8*ajuLizmhxp-^rmnr!6+a-$#j`3VJkHx=WRHKn8E-uC|HAU_5XlnL!u=}o@n=-5> zJ=C*^DzP`i^SbUoJ)>iYLlEIJj*o;tBY=$%ScB$DBG#FKzTyCREyVVB;}8N?z>9E9 zX%g>foK%-G)Hs z&b~p<5c>EcgXwQ_4j})Ma$h#cPIeT4R#MB1FiYvW^)Qg_>21s<=ab5HgL!I0y`ZW% zDiTDKqpvmX1@pZkVc3RNo(2@+W-p&c$f3xecUS;y!o;vA(!!(Z^jPYKj&byeyrEWS zcO`A?&@T!vQNRd28l4)3a(KH-xWB3t8mz2&k;5)9m@G?1YAn)eI>AjWQC#eJD_6?Y zL877haQR}?t6Ph63Zy6 zWK5h9%@sA{-=v_6yryT39k`s~&aUwp8E@10DU?=H^jq9cc@x+4^psU~3z1EJ$=^Uu z(QWM=@z4l9i~Y<~N|?e|C; z9dq^DW40?en2?aC4JjA+M4+RatWPxC>U=%r;dw>E)OWk-)B#?Hv*k{Y1s4!3H8k`| z=_ni=nShp}y)+Ro3I#68`1}b;UhdRgZ`tD87%hdexSd2Awo9U6=GyWdkPH#8Rp?x- zp)oKpKEVtkpc0~+u1ZSfLrN zZdBof5K(roO5i8Gf`YW(NsJAgHm{)|HIkyJpCBU5b^`8ze|i-~_KD-nw^yNlectG( z=Fo1_Z{WfeWrb7}qsEI6| zneSy^eLhc#Uey)yU2Hvd4Uzc2eSW=KsBwC|*Zs1Lkha@|Fv-Xhj;Be~8&a=es_n_y z%TH@;vk|?mqwDDvt0&Bd6FfLbwH?F2SL+A*6dLhvXZq=^w+KC;<>BL`{mN5>vc{mptDb9p$M|N zZ1(K_#AekUs3$Dc^McrKkqFgW2mt}0rITTL^qZ!(u4%CNH{DX(RlAK~3``GWHR?>) zU}Ofn_B*WjY~CmryoqBDX8D8qb+T-uKguco?8!hpeAKyYiqCy_whPf&1S(DC$~I`v4|#iZ?PcuFz=4 znL}Q_y(0RSuvV!%{d}qM_Q-(F2LMZKzo)6K`MWnbtW7=;R%Ww*Bopwl<^bqjq*P2> zQ-1c|5G(Y1-4pmWARyuL64UE&X_PxHra^xhw&ePS=ip4`HAi{$X>As6m`^(tg-a+D zfy7gz?R=`*te$i5GNW%vDxcWn0Qdt!(Lc-1KIWZYh0%U!YG~>eYul%H_?lA>Q(DMl ziMvAR`&CnE%_V?m1xNeee6#K6Ye05>b*>tR`TQGkbWs5#q1@pd4F$G)Z%ZTbCmcy{ zOx{(;lO_9;)n@z%R6nY=YNCn>`^`+GY|pprZkpx_!0EW1QW95WH9iMUY=%xo^ckTn zQ)=JBAny3M{N=a&{N9e!RiVCLF+PraBha7maw1HP-gb6Y9<>Uk62n|*A{=i=gin?p z!mc+nD4FJ&9$&T7QVai}0(VXc7 z@ZpYU3Kg9J8pR(T53b&}Z1sK|*n8(KebE-@*?8R)P+L?ZA2#Gs*m8tT4c#cD?83!I zaCY?aArSGU+*!5=plb^%U6`F?&c%GGiWdynAxg;atOhi~jjTMg50a~=Txqn&J)F5=<4aw zw~;R3G-8(6qgb7+{&}nwM%bI=h#;XYl9)#R^d^#SJ)!F2e0#OZ(BzJa%4uuWH%Z@G zc%e?`ZQh8rSZ8K(TiRFZKk0lrMqor|3M^Iv2S&%rJcDx z%x=ykN#>3a2%XP-l^YuARoVZQz*Ujw+ub+6xPONzsl#S56~pzCMt4_J8(%79TRB&m ziL(+d%;|Upza5{M0&3H=hQYkb*Y_&lZ&B$;Rq_uc{N=ec7-|Wbs|=`%m(8go8N@0J z-Ut@FSm3~S%%SPRjqe#zB$cMb;6i9rf#Y<(jGpyABnVJX zNj(C=qP<`hr#}u0c$nN2c!6DA zFd8?{15TxF8>2+sJ;~c(=%?mqqG+&sFLs**EE`VNc~=)ZFzU@GzIbbJ!uZ~>?X4*( ze=*tpW=73GH)H|wFGkK88GUqiavwawpXT=3YmmYo{U~Fcz)4L4SXd9{TXgsmb1;(z zLzN*EGl<}S{ffY1CxcCpNibj&p-R2Ju@JOf#HzQE6+Lq`pT=Ru{I3 zZd$7%yU9^`_C@>KPtu4%64y%?5o_y$w1wv2XF|_8_UO%1hSG0!?3}P@gmR%~F?&u9 z#|-jLw7q~#4Y92NuJP{I1JXGy1G{v~jg6p8h2qVrjd4-yIN?QHR+4P;Ri0qZh8&sWTqRbBDBE85o9!{OnMU?V0xY`onO zmk0&JJDimQVjfiDmGC#tk72%)&@~fZvmb^eiC2!z&uq@Mro7O`S*6mLmkrAJV=5F?khsrYS2c)9=WK%a}84 zXFWtT(|Pw@?v0s&G$Jscjf(W z-4)9z-ts`=L6w}O#@t4EKYRf6YYt^di8jVw8qYMcSE&mJP!Yn+XN(>@EwajL>3r0` zY891k-f$K=LIj8-eX!$zRG+!?u|3uwxRH^OIe;~Sm~eB%o(C2OtO?zV`-R0`&hU@I zqeztuo4dQK$9}HzcBiNJ_s0ywW8*_10Ea&P=8e#nY(DUiu0tPHOzKWZ*E1YK0+B?k zCLMBYb<-K^sKbyx*LskwHpL7EsNH8t$pHalOa+dH!|&{iwD>IRO%cjSU#X#Ay!&Ab z&~044pjOe_Vz*b&`RYo{W9-%cHBG>@gk5rZMq{xE!t`{y;BA9n-vout+!|R8Upg8L zloN=aZjDNlsJqJ`Wpf8j83>Q>;)f-7Y+HA6O9hU}eZjffuL*5!6|cE@R52`(+1gT_ z)|w4$k}#t{mDO}9ve27pu?H0uSZRaAs#q#BalmDE*flIksFjDyyR}oyjCK);pHStl z`uMoyAxABn$&M~8Y7Z{L`NPg`{rH8;c8PRv)?&({oC!dUgS*$W+Uf!R?bS?npGKoA zy@Kzysk|T59x0HX1}*Lau(cxsuj2&_l$>*J^`RLK0UVx5DB8@$6! zR!IXOf)?L7iWMV(iT#|5L!IRwJg<3CA;p(xGmkU>G~216 zprD{Q3Iay$&0YfU{x~{k(VE%wJ!HBmZc8{hIKiGQ%5UoQq0E0$F+KG9X0TfBKDm77 z7m@i$!1Ms=*Mt-fA*uSGgVJf4mlTB@K9B0s#0cCbL)W^0eLgC(+2SeVol3#*|rj%_)2 zg%asdcoj-P!5)$;EW3fJ?G2j=DpTnDgT{5iLt(O;kGW{fZ_c#*89K~Px3(ujJ|88j zaWCnTC_lDH<(`IKW18W03-IbN3yk4Gs?fH-yJxft>>jU86*o(gE4Pf!NfAFi?(FZx zSdau@LKHnPs)6L7(G@us+e4F!|6v%d&b5auvF26q*VNSeSxU*Ra!C?Nr7wBT>!0>) zdPAW)o-YBOzqfKpxw#8Kr_)o890!YQGxU(AFT27Ig3y*_N=>m1?oD6J)YI>Eb0JiT z5y%W`bOF^X-W(AL%eT#);0SlTk4@+m*1l`sNiK&luC|s&%j5XP6I_>TvVUTP%}X;R zQsh9Kq#rwWJ!+zZH+QKfaK8#U>J=OeGnOkvq6#6lcb*^b?~V4x(nmH+LWBEW8sRna zP2+=;A#FvFLu`e9XIqD%!_q-zRh9iY>+Mb#+i({|2Q3BX8swTXj!y2vl_FkMMVk&I z8_1rDS7M#68>Pg0UE-U$fiw0R+=MK|)054`!rO9dCZiYb)^~``=ky77%~v z-l3n^oj6{s85b29436MqwD@SVJIm5-ot;s2nH)&$0E216PglF(&i%jyw!vfK%r4R;nri`|*@F4=jZV<^Vwe99O(iJQ=7AHM;4?xMZ(g;gCrP_2}jq$t?r&))$ePNc! zsN`!)K>6@NSWHZ;D=KByTeNr*WI2MM?pl~*imU_JGG1=~sca#M(8jAH?!bEM?tZzJ z$YpRf@b|eT@?sDa7-iZngE;*oU^AWqcUVX>uxYST-(fd*T(m5KMZ_=SwR=4`GSUis zg(BM1+S7hrco89wLSO4St>ZN@oDXx$B>0B6a{LY4{ln#eigB^9WrAQM$G%|Gotv6; zcW;{>Mkr##6N%0SyY^cMb@~LVR*MPT&m+X7X;zM&cp$g)^XJQz(_J2!rtvV(&G<~G zqcyLw3{LSJzNWblkr2BY;BmYf)RL07!_myL4(hiU- zk7V%9&|M@;*VPqAf{>27dVIk*6S-U3A#8`k^8y%1N6KlhMs{Zvn+_nUiY!hpPW;aP zQ9~^WVUpJD81#zGr?pksILmUg&<^g#5{mdf+o+HE^b}$8D_Ymdc4Z#ZVyKN$4G(Wb zb)~YV2CvFTy-eKE(z48Qd=(ETTG=QqMb#sCt`|Zl3WB8)5+#PdhK1q7z;-fI(0+`I zYg}sfU~)fQi|W6BCl(&I^FWmod>;CN?0o^^>*M(CV1sr&%fp`Zf$ec%atzK%ILj-O zTfX0QRlV_2H2|OR>;3{VqjwxH}P0hXd@$KOl15HDBNtg7b1S(A?_3PX79a>}@ zA0rb!&AMfU)tU4P%#vAB5l0YZV;W!4Gh-eHV?H4g&#$2@CCcJb}q>YQC; zvec+$PmtiOfTiEAugoOzSBvjIn(Ka?^T&~4%-Fn39+lds>|TthU@uZ@>0Xx3ad!@v z6)#qRHfn1oQJ4u63@AL@V4$XcKR9#s#mt}AI;IAdTzE3kNz&sJE2~PI16yb*>K%U{ z$A4NwZN+gZFd!gTxp{WBPcG3zW*NuT&47qN_Q>hV_w@fzc9ubLv~jk_ArRa>K!R&< zPjGi9g9i8D9^4_g1$T$wI=Cg+;O_43a69k5yLa!_ez{*Ls+bwNdU~dx|8vgy9psx3 zqn--%?1oQ%3*9d$y=hjuN(oBTEj}~#*C~~i2)@|jXS2QLXEQ@VoGxcSF@OLxdDQCH zi8=m3Q>-<_AQ8W((Qoe2DrP3^N%Ejj(h!Bb$x_#Brooj@k!Cs|RTRX>bIsqngyxAf z2%kUefKWVw!!HVsX;3-!C8Li&$?Us-o$04yV@EJEjv1EqU}tAfzA%CkkDxn9m!FuQ zMpd0$si2q+v!Q3>_=wRZ;?3|!E=Y2|b91Bcp05Wo@n)hnp`zrG-Mb%VYe8mJdbG$w z5}$A3kvybL_+S%3)k>UC@jv(%xdQNTaG`6qs}7crMEefk;p=+_{`?UeZl!?4$oU zqF5)JnkhO$3tl}w?_lN%+doX!6XW^ibJ=Ar{nS5O62d+`@}<<_8V=l`*Z8h#Lby)F zG^9CSp5|@0W}Ma}6+7Vg`4R8c|GAEbC#89hdd=BBa>NPQIaRicPBT@;;YcYdtV(%w zO!BuW@uG@^ z{5k)Lrd6*P{(BIz+5rZ1p=bK~d(hsa*ZK9OsD=jKPZH7}SvUa|r_Z?jLJu@(Uiai~ zeDm*s`Blv=Por609(9mmPz20M*g=9pz?h+Eg8~k77z*Guf(Ova?&(NKK^#5}l@`Uf zxTPEf#KfKgw|^K?u(;5Z!LpLtG6g&cbp`vtd;@qL-JU{Nj3$=SV>^TqgYad>r*nD` zWz$QG9Q-a4SOax7WJ%jsz$mWp0X^r7PrqDNNbMNk4Pr3;)3a^9HoZ5G!vV``$4Dj?k zeS*I6y+gvTO6~A>B4XijWNG;64F`6U>3Bue3PPK=U_zTHQ2Lk=M#I@>{Z*HLI! zN*=q&5;5g-B1iI%dLQ*DUr>sLdyxfG50&&fmGn@+^BkTosc%rjnFd?%?x{OjzLIQ93p^g z*$T0!u<&obx>J(eJD)9sKN*S&)^V#(Z}FJ{K3Df(AvQ}BI4220k4NmieSKl1LTXbN zx4&6dK1qVQv%6N4T(F&-8S=QUV#TNN&ThzF?qaQyn7e0|AC*+}{00D0!A&!N1mZ2n zKCRxbbA_K{(t)w+r_bwl+jRXXBjrcSB9*NrL<~D(6f|HAA8d(^h^inIe53n|?ZF|s z&oVO13kwJ=--|wdN%qP`D-^9rEMmrE(s|zwhThnmRMO|RUsDlZsoi)DfKY^1jCOSq zR$LEf7bMogBVRc7-Hd;I@#l2A-)=mMOW66N%{+D-rKkHN3zeAL1Z8xmMMK$8B&+yZ z#735C$qK=?`IF$q$~QhjJZZYSRZm}hTn3JkV%nhQy84mrPQ#L96t4g(z!IBXnW+v~ zhOctJvpSxRrcs8?@{} zM|!<_B5GzM$X9l#bUC5nbj#}-&R`V_`U0&;yj}CT$ilsrX=hA7Y|+*e2@`X2eXn@c z!ANqmqkC|W;CJ$JIE~L8CDAXP*aj99rfX3viV9S|6W~;Yn`PaTMp`ocXrqEf#a#f& zO2%jDS0jzWd&>7G9$U~V63xKuHN~(SK!9JfxmosYL)neH(Xb3Bey6Hm&qVw{jpwVLle04= zg%B(%YFevuc}YcAayt04-scX2S{Y5JCBfIH%M=`5!jh8a!BJ)jGqYFthHGSaX6g?z zvjL-@b=g%jk&#ivekf_K=O`=TFu<0W&X`tzs}qxvX-k<2)S)CKzSSoT(6chJgI8_# z|0Jr6{p1zALRwAD@ls`61kJcm)vnP%Oqe@9MC9OSJI5>h_OvoWqBMe&i1;vD$^68W zcfH#pFqytM9brl*jZ%LB0h>l*NVZ;bc@E&?+`{=CA07S3%3^sri9jBtO_4QzHU0WE z^qL-E{L~ftdm&>?z7%M58t0VflB9PmhA;4$bWY9vAz;RPKs_o`a-BOrA2zNAwKROy zXxK|=sgDd8H+wsC-N5Jj$~r}#rlju6xi^=#^r*AC%y>L|MCmSLF|Z$DUuzj(xjXFG z)Y6B8Q0Su7a)iewh$V5^(cNPVlj;3{D~F>0eJg{IR-QSTE3nNTPKjZkTJsK!}gO^Wh2R zszqA~Q+ZFK&AvU`H6GJfDykyD&mf`d%&y{Mn%mxsp(uDy%=o3rV|Vk%00F7)It(axsB7GiHHfZCT&CsCQ_ayo`#|i9>D!xC^zx&!)2kh9 z-^Q_TSsY+_oQOq&>Cwx5y<5Fb7C&5d?g^!1EvHX-Ys<*U{4;Hr&c1busT=}~Of4%w zI!4linRcKgp2p#6uEt8`sV{<-nOVYJJ9Utz!u4p+kVL3WmN6zQ?DN%>wwqxv_7icO zk`ZaRopIcjB0*Ztj;uHDHUq%XYK!UqgL}P0rt(cRgu)g5U*1fs(3P$T4l(f}dvx-{ zsvO;)v8}YqtPp=PzLLTk-%n6W%gc}QLP9<%{GPbq6!5ZZLGuN+H|H>cia-6*rub2l$m(*#k`RTHyq z8qp)gck5));p$3TjgII%1jK*VjsGg@A;BlZ_*j?5VBUZH+pcfu4u>G++SVQW$n=BG zSEcoS^XT)hCMH3TC#{MLWWltw#hnGR+U6F@4GMYQX>pmszTj81xVS2VO_1xlneZd; z(=)8SwhjwRRUHjd5i%C|aY%A6LGSht``9~1Yx7OUNiI;WDe6i4t&p0=RQQ^c&B$~( zLLjoMvC-HDn7kvTFv)b{#Y8)H}zoU=uJPu9w=iYW5OqXqcSU^EZ z_fPX*$h37_rsg#q>#!?0t?;b&*Q>RAHEoillU*t{(U3P}qLvTGn|x4FOF*fzgy)NV ztGs0%bm><)$IFd#x`Y)4uFUcywKC29x+#C=c86K+d$H?w-)OgSum7SB7yXbcpf3On zMi7(B~AfUG81 z@g0cqIow~ElCF~YrSwG3 zGRqguo@<@ZB!V6|78Vwi<7HORHu_G_xlog-44MHQ!7fBPM5W@{?8v{BG(afaR@?PO z?UPUi@-q<5-E(LLmAA9ztC~u;iL%Knlsd57+fI}=cB7$<2${T&n3=vexCFA`kfBwR z>>RJBdW4(vH@zrh&ty5+h2cqcCMAh~1*g&2i#nMvD@nnuSr%?5sjt|phHW{kWlO4n z^FcilwNW6l_0;2AukJJ6hXhJzMZBG{FF`a}ZqhATN1%Bdj)Vl9wTedlt{{d1Odm%i z0h;D8$1YocCVCxY2R;j5aLIHNG}j4LV^sf@w(0hzo6U@*+wpPP>`r-Omgv~mnMEz? zRU#^K{S_nq(H}>{IuMcO9dxB9n^lelOLWP;@w0fo|300Es#g$|vn4B7av|Ox!TKLQM1W)hY^0^Qq~8dNpzq=sD9^6KwpQuWe#vMT z`9tdF z!cYjFAG>F5pOn6;fIK0~bEZmEMuM98J;*N$3^re%vzU8)bf>k(;B-fZAbYyT$oTyT z6B?xqEzPQ~JK5uJJL^WVuXe>^^3v5^tUf)XI9g~#1X6z3OhI(!l8?tg3~V3(T_|)R z4I%&iZg}Ui?kP9`CG1VEfqxQeL86WR6j90rr}x9#{DNI7_B;#@E_(-yH!qj#o;yDlmGfN9&ZPmLKkkyue7 z=R@7#nSKbtQdtgRVfA{D+9f)C2e%k%7q zFZ})ypr?iM<}!VMoL{Z817&~=Y)n3k5en`=>WvG-Y=`PZ3GIt!c!6MDf1!N(*^I8; zde-Yx(VZvHvN?<1FSK1%M`fB@9D{lTzR2ZDJT_u}{!R{i|GRXq-O9;x`&#SZ94F}f z{U;Auxl93KY-+erXNh60Wlbg5(=mZ-UAdS9U08j>`I*kCpl5XQXCMTz^iBtMH;X~U zY~aok)!N929+Y*8$7ErpO8mp;9b!fJ`7BXWeGV?*S5c0Kd?y!pGG3~?sXPZn+ibMt z#=@@oKZwHa>thg3*HR#e#i7m_agy1}Ab0j>65Q41&QR5yOk&}LD)j9u;)>_1x)x%} zJ12Q4#-qv;Vnls@IK~??9;Q?%;@Q~N;F#lDxp$dDZMc}=pOikXbn^2=;nRGxAgut` z0vq{7AU6uK2nPxOWWAkO{9aMDF|Aophud^K(JYD#rJC!>UYauNYOR-6c;EBpC2l>F zr4X2+$YMP*C#dfq?s6e~Na-?vVq@c}1p}Z~NqGZpn6Sl9l_8UHP9WlyGg7fxFXfM% zoMPJAWEYo{u_(sCXGay@d_2>ub0CE^Rm zW)mbL4r(8KUOq_&>CBS}IU(sbT4Qd)Sbg-Ip`Y5C%31Szvon^rmUhD#$LZbB5QZE< z4k*OtoMC`M?1|{7-nIJS_i6W^RN3AKH6(}CXW`FUcN~Gi@~u11SFtlp`u;5s9!I=h zZ-moY=Xcl;-qoo7erghaXROa%T}_Ug8I-j0hd`t|+^QQON`@j`BqeG@ zcx8q~;QD<<#!{7?>^QBG)v3QgO8`}3E&He#EcoW2e~Xwro8~^1%9<`c=R63Tx!+m5 z{h|324Sc_{A-IsfP;gt`nKn(#*&(5-GEpZd$fVVRb}RG%<8uuWKATK_^=l>5fcF#? zuhyKj;wb2sfL9<{4B*v7u5ovOlPOZ@eHMNyp@o~Q>);B5fxX-r!A?XhzGgY5vhJ;3^ceonx~|dd(3<(bWhWpVik>uM?A*aVhj17em_QHc z%j~X+9vZry%G-OKvk?pmlJ=Ty)RQ#-0WA!u_vMK9i9R6N=WP)pKyQ9>@*~hc6blcPW-2Qj!5&dBd(x z==ochNj+_T;eC0W-gV=jg|6=(Ra3<)SZ?5P+^O!LjRt&DQUg_^oSUg|0C!D;9oI%; zc(?(88}OKS6q^wiq{t?7cA)>4%=`D3DCZ64?15N7f1D8c-h$NeP5b`cd~$R12Rz0m zLg1YXtgZd^A+tmIwpLoYMoNl@K}A6!Ek*J38Y1}%yiO$5*$BJ|hL+$Rzm>+RtyT%E z(I!Zd^4;13UZ=J;U1*Fj6_$6uQp?SUh}}{Dpj0}pj)J6l8X;#LMkn<+5<59U#FKQor|pX=aw2T;Uv8e_vKL^Kg|wqfv8=me1qJVUBi8Eb)*1V63XUBBuz~yj__$|FOH25s`0Agi za>IS=$Ul+(J_EnWbfMwFC=SdkER468iyM z1eS@!dnrQnTU=XPy}!Xo%f+>L{H2^e6DUc3Us7BxdP}}3FYm*|Y$qF(9>n7F z^hBP&dO-)^VJ5Vu0~r9VT;23_Ch8c% zRXRz>Ijg5jXUub_9Sl0%yDhQH-AvJWf;=}ACV>y6@$ z?qkDpp||k-;$lP%XACJnH4Oc8eIbCJ7S-Bwa+i56CN8sU^a)l(&+IgNMBl8fT8U5o zf(pY;EWUQ>IPr|&i+I_`O}^oa7_&LqQ&eN}xJ%1O;xSIaXZi7|P4IkZHvPOR`8E8} zI=Sb?n)syIoht5E1a#g?{YFpQk!OqIq*+AbdhQd6pgWRnZKQ#%860ps)$%0hp>Bhf zj3$qpB?3j@F=1`Ck*%JS&V1nsu4WIZdEG>>zFMOA!{`Pdd3VDrQC*qAf z-Wq*6`^8nQ&dtw1+7rgo&AJ&Dh}`cBj7Y4f-R8X~*klqhB_iB4`F|eLJIfS;hL7bI z+wB_n0B#9{t*w9tNdPA|IT$fZ)XVe@TBhQJmR8yi<##saXmcqpGQa&cBpBr0+ysF` z*eRdeYYbE{MteyTW@o_X-}FCM?Bg@(1dt29VCfXd$2HIpk2q8DbDdr7U!FhJz9L@Y z>Av?(j(&hx>B7cvmiAs8u~)tO$V#NyU>5p4b76dfDmq%4XvM$(LnaOf_L$If_~4}5 zC^hjGNC+icZsD~ekc&IKZ4Ji$BTxY21yV`g4mf=s=t3poC{2;9q4OcDUKCd z0lqzfyp?C^`-}HU(ql2p-bp31K8F9YARK!4W&vb8!^LX*xMHWf$B$x%vfd4Fg{Pl5UrIQkqYg`DrXI9%iY4WZu|>iiF;o(mkWCciG6T-sQN+tc zrdymCC&5$nTI96$AK3(uwJl0$rA9+4iZ~~xvXihLJL`H8p!s&T~C6`qXkTD)e^R!5# zpyeKU0pg=|%tR?t&hG{e4%Wc*0+u#G8Yt{iWo4xp|0Cr67W4Pp^BD4wnBR3n%0Nan z(yr0wv${N|K#>kbHw}^LH*Rk#zZPLdg?2biax0z(BC8A?<&g1egQn(YX>j~}ZZ}+1 zhTLKx;EatpbkfqA`=NWSY?XEvrs}ZQ%k~vFnQFX;u#kFqGXvQlEIXP$o z2uD6c!_9ugi-4F;n1u-pm(kCqLYCWG*MWN7A+kMJvkY;!32q4Hs++36$}ddAo01+F zi2J}jWMw%pJS+ic+Pc^p>qd{31i30tjR0U+z!#NYF`c7K61R| zjihv7MAf5)3V(x^pyt>TK{OR(?k8;&_TM8!saJSdD(q?BiG(l35Zk<|J!j$N)n1as zT(IMi3m2Mb@3vowuf)~X*8Ur^)XHFCW{>q&usa zNbx(oNhKAtMAgIyNRC1@vlXDn*4EZC-$irLVu-?vdj}XyVO`2W9Nb0@Nuf?o5;`;^ zp-mM}y(62NnnGs+A4L52S-?*!#*M=nq@;U{Ox>jTF|q@nx#=s8?B5yTF)lAv(S_#t zQ`?aqjH#$N8o7EX2H|qppV%hc@qYf1EVS|}t#&w= zqFZuVw8@1Du4J;>6UcE4sFWQU8KFc{e1-68>gdo{!Pj`(f}d{;;lG+c9WJ+mB`y+C zv~Y0!_mqTjG}Jb0y^Ao{bz*j0sJ_l>t%qI9t{rcLR-Q2bY>o>M-BmrCL-&Ptb+xlz zY18K0eK>VD0EEb<&1n9ul8Mj89aA`i@ckaQ8B+&Tgu8A<8MSMD5)eXT~Pt3 z0Ov-d%L0c9Lz(e_D;1NV^3yUt>EZ3tH5FzxnLJ0o)t4n{%=fcqig0P6E9j$HSY4*Z zo3YP~@;BsjkxOk(?xozSs*X#pW0MfDX>P<-VW9+OC@E^`=2rl#CyM4_z4$^m%n-g+ zvQo}y<8Ugdh}sMZqppkUSbl;oEu-%{t!%j6m)l=zcGPOHP8I0uuk8szHwJcLH|!Sd zfE_;!-^1Ts0f>Ee$4cY8^0#yxy@B*Gv+=dN(VJQ4$X|73W_9it@Wj|`A&c*W4z8r6u{pEYqL z)Hlhyk<9x?tARcAt*!i? zt^u?eGQ4X0>hEFAVNRTf5}uAB=F?LEreooW@9qx4=pKUF!`E=t9s?c=Ze_C4`E8%G zg;YsGD<&&X^HbyxrqCij#m$6$%~{ec5uv-gJLS6vpc!V^@hZT-Q{VeqT@fQiXKYey z;lX@e<;%|yV@X#^1_s<6>V8)4;*bavVn|s9tCi!2*^q$|c z^RjTywq92glA#e1*pml)u3NE^WD~Lgt(!YDI@;x@K(oGD@K08XPno~#VlyktLs`8a z_S7T{MMeG8A5h=EQP%ia5Ni5UFfcLsptHK_JPW$O$_8@(Sw0UX z0tMFYm%so$s48>Xeydk?o^;xJDm1r1?-{KG?^hxY?(hd6l$J4^?GS^-Lycj7S&bN) zTQg@cGypl;polX3?(U+{Px7mH7fvU@x7#A5If-%%8kpwKfoRU*QX-#mWKEZHV=Ina z{yK+w3KZ814-ZeM8S=rjX!`{-{Hc|d)j*$*>h`(E+n3UD@8{IHcsKSAwE3BDr>e^! zw?1}wtKGV__$nNVFm(z9P>I8@;=*ze7y}av*vt;l|GcxY1Ctb?5 z8wk3fHFfK~@3tGYYMm&oD-u_&+HwR`@SAbo=Y5)#a&0d`MTR?mdXSY%Z-f%^@!@Ik z#4kTS!e}?hX+tpP=Hg?q_~SzVv&f1*Bb^>+uE2yIr_pUn>bXVo(u9i`-zV7n`+I=?1B3@IuqSdu|K9hl z-%kk6HeVKJ#fTJ(T{LJF8SU?H{j=Fi{2?Ns?5epiWYXtqnMxL?@NK%}ibbb(`FY)k_KHZ=`slp&)> zZX$``4M}V9z|^uh-RsPqpRjjyNSZZ>tRW_kI?jm0iUG0%2Lk={>Js-r*yB8a{OMDR zZOjQz-QRKL@#Wy;M8wpE@8h@H^~3$3FvEDs{9h#helahHz6Dyq{s(mUpDBkM>i7}v ze|8~7vT;=chyU-&=iiwgc=-QUt%so!Aj>el{x3x$eEm%SS>E=~G5qu62*I%0ZdJ$@ z`hT{}5Eyeq1>D@Y{MWVke~)JlwG*&{B>rz4V%Rmd|LuSL?_DErTT%A%^WRSaL{N^T zqvPZCt*yY&P$YM>e^1}v6S0YyoL6%QPhJKb?cDW9c0qy3AmGBqG`F@6tg2#pi#pK2 z=AfyGe{pdEysZI)gHrCy|Ly6 zaBM7QOKU5D!wG`_3jzIaFnD6mFVX##_+I6IVfeFPL-qAs=1;|Vb6TrN7{jpJCgrUk z{+(I>9%(rXv!wAXijW5I3N?qT)jCk8OU>956BB!Tdp~v~nT(B%0qfTKPP$#vu6c-M zEKp(B+1ZH!m=1GYh>hiZlCMO>xEp}$a6u!JodbYbnOj-)1-^m4AUVdt`Pu{EF)AxFFMh^~FV+^*YCg1A zVTS2g&Mojs&Dxl`x!;HHPbg_o1w z_8(SfaB&N0Sy+-fE;-ysuYo%NW-4J=(|r=+Hg8_QjkvTlG_Vo$eFNgf!Oh({H;2PK zN`~|%`p4+xP@aqTY$E+Bkoo;&>w~AGlh#|$J1+d?OKV%(Q-A)^t^}Q=F}IL6X_>gV zcy(=U{7G2IEq~7dJ#di}wko4Sxw^PWaj#zlChhqw4GwB$5~VP6!(Ore$n+tkQ8*S? za6xD(K=ep6vor;2--fi>%t-|Vs0XcLqJS>FUj4RE)W&7%G3e6L(zAoCm%wg+5rFO2 zH8FuHo5a!si!LzW8A&HfDZ^OGme5&%eE_6FN$xH8RE zy5&vYylPhb)Am>TFG~VvN2=iXS;#1{-7}tgV&dHdHcR*9B;xdRB9FZRgKg_EMLWFO z-U=_xV%|G$R8l+zbG91s06)&R6K@VHB~lvIdzxzDDRSbg?N3wyV%cC7nGiCc z-TXyOUHi$8hU5q&l8(!hGJB_Q{eW7p*YdiTa8kq`o904jl89SeqKW__Jvv(7Iifs% zl)Afz?*dXucJ0r|^bEu2cj&$p{xF=J>JW!t@WfmKv@rV%!((FufaNhz*S1+)Zj#6O zuYhNlI5njPyw5<5lx_P!XJH`&%f*?W7V zGJ{&aAN|BhNWcsCB!t};c9cbFlHJu(`V@Gj%L6)13_=in%&c@so!1oGuHGr6mYR?A znH*U=If?r88U|_R0I6vZGaca4f4gK?($=QWP|Q&2XescTlfA#_>aC{BHR^LKHqWmz zzFzAJFd|w1@nd}%_S-+Vp2>{Qj*gcn?T*4UF`@E*w5*t8pgfBwgzCrjJ7JeI2FaCm7mWGKK@Cq z#j(<`!C8)s3`&_SI$zM&>vL^&3Evlm$WIFE`;xjhyBq2Bb$63Y0*(mZmq)b7$N{rs z-J54;K(uq1H3|Z)0=kahe687URZZm)BYLH(s;cB&R$N_OT`e7*?n%{GCTLX^m8KwJ zVlH(QU(0PCA_#=paPsDMoqYiNS{#`+Jbheg5{i8FlUSglsMO$lV6H~jNdbXC6flN# z7UzSbG6AUtgw_HThPyUVkbIf)FK&o{9?wuE*aQsTEOBug26m@^uT%6@TMzOR<dzg3S}`-qV(I(&rgJv;k(}SdGF?fh z9U>;i43P4oygz&d75!Wnkd<ccZSX-fnmFJUgQsyMoExhr#@Q^6;;Db6!Jm3eq4^4hH8{H78tovA4S zDXcxP+mM?Dx82RTnoSf7PjyOqORkfSM~8cCM1Z)p-0HeHM3a@U`<7hYXZX*bgquYP z_tCjr4JTjUXHEO`gTT06APMIjqcCv)sble+_hUGgcy)jAD3-9tljbI6v6{AaF!!nl z{0j=ryWOusWS(2Qd1M?A?iPioXL1%`_Z&57SJvUNLKx$7T8+f+GWg}*%KE1dW;%<+ zdJg#$j1RCR=lOQliT721KHMOgGJon%PrTx*o*ES4X~*4@KC6v@ztk9|b#zu(*2|F{ z)r!&M)qcQSs~vk=k!L68lr~&35Rn;QnPP@1(NIWYEV1*;Eq=o(?u>+thJQ~q zgz(PkZDAp`%>6>(LW|{`Vs$`N$OpL!IpEXdUm49@Cw*^O9(N*H;Kez^AwAYATmAK% zZ~seU+^Wgd{-M^iE0or(apK=Ks1R{Il)Z}!GKASH!h)0#xTk+%Mf<#0w+JkBD8}}) zxVT}}%ASNzpP-j#j?YrJ;i*(d(7h_cHMTP81Ct%!owV+jD7zD6r*|_XSH1hDlAppn zI5uEa)e-Ldx+^>fw#!07NKQ`dTAmbLIALEuS&w!!8>PIL`K9&Rfq2q0=6f%Dek&y- zE!`QNp}&@cn1#2`V;eoFL_OG=@snog+K9PXIeQoa;ikL-q&V9anNn>6oKu5CAH#HF7_r65|^hx#m z&GW53c7-!))Z2C8F+}Dr1*z5efb^u*GUw!iu&|mrUn6W0jmI3y3an-`6mb-6%MXut zn_vv+$(-EBY0(hZjlnS3rlTeTahLcB)MI*CBG-C~>YKMPmMj}9tz?8Q)c}5%2pB~* z)zlMj7xa=FX!1(u(cUnZDVyz32%cX#lCyZ@x6WXRsUHQziwja$pi7E-;C>s!2|X5H z)||Y_^{odSmlUM<_|+cQmhPix6W6VB9tbJyX3+v>);0@I6v&nk%<4JB@LvdDNk{Q3 zoJ+1D_P}1s=BDCn*dS^SD;K-SaI_qwejRkJDO1uc0r3_8ZIHxm}Gd?cUJpdz&TIlxJ%3|&s^SRh%J4Q~cWH|*tBFeD}2jQ;o zhmN@pOq6T8t<(6Dx>)fXP^`7PzI-pj&+^YOL0J*zM2}@Z>Cf%kw4V8x89zHNd~o3Pn!|(yI!0GzV8@|JkecncBp@Q_TIqt8kBZ7| z^)wTfluOx%7R9E@KmHxqDEsaNe45Hu_DL~1Yc4`{_lCkewdxK;t3WGiqQNOQ@~2?c zn3#k1U;+Yx+5IHxrs#+d-Bl-;s>N!?gvX*+<`s|0r2@GPp-x zUS7S=>b_2>r4zd(e08Wa3S{4Po7e@YTV-aC{5+4X>}(~63Xl_uG^7^qsTo1vYOhFQ zLrM9C@wYJp5*aK4D#-!1Zg(tI>l)t9+uI>#$~EC1(KBdt`rEX!CB0AX4AtNIY;uiO zUHOH21YL#cZ1|UhSH}bC7rpMUeU;UIQauMZb!)dM5|(?_G#3)~oo}1dTHz$#`3F!r z9NpPk2xt5_VR~h*;=K5eX%qAsspoUQt+@quPRh(g`%7VmKkU%HGu_oRtG@498SDw^~{@w?H^>cVdr*?up+_Q_Rb1Y%y{5b2r zRG$+HCWw(F_aSiH9SJE*XDBZ(7qg!o9wq|2?|)E};=Ta-Al!gU+Tk(7H5AXjaoK?% zYhyDuIh|p7Yj*9#^MtSlv2tfeLV3+`V@jy5o|DRGcUkCP7rDSEXmqj4WB9Bh*aG*wqhA;=%1nZgs)QPuT z!NiK5Q^wkfN2-wWY^rzFr5dY{4ijRP=2S}@%(jApDEiYC0GKGK;p8$FU0+|P@L`v1 zfx*dH7ynorH!-vPUWYBromyh!6kzy2bR(3v?%QIr9>-Kf31Y>Mc5y=9R8ow#BMTo! z92kxp1dF500+kWQhK6)Pmym6qyOE4{E6H^n4Y|!NxY#}QW!4T?a|%xLjh+1?L>i+> zxz5twH88HL*P;{c=Ss@!2mGh6sQAo%oBoF$3G+(TdXF-3AOwkGc4tIEUYv|qG^P=G z$n_WPa|c>rg|W7=5u7jUAlRiZ()F~2V74_svL}2en{P5jKi5%!@flLlQPEo0o^SkJ z=Z&(-_b6AP!b^6jH2|tLE_5D5Me%_inb1u+!RwLP=32=gsU9S*3NazEhTKaw#6LiWA&>*K zeH}J&Jz3YO>&pSa(sK!mg?XeSUL@p2%22bfg-w}nM!~=^(vFX@;8O>F*a7K3+P(uG zO9OGQp*Rp&vL@~m@ZGgM0-K}J;P0pHetgQrdB`%{eNSjUYOXvQ+ z#PiqMG0uC?Z{N`LnUxRQ-gI~}?nTCJwEXB6W|Qk{#wfcOG`*w(DCoCufcrXj6{&Pf zLS6|2qm-nf9?X{|4?BH&*ST6VbfMQLN4Bq8#(Akug7%3!vjC(xjvzU+avSISq?(0z z`Ztcmn;R~G0U{im>G@{e3U+<(bX>Kvuw1I>Q-%|GLTQCozOidgtp!2$Rx{zK&3bLk zDn_SeXHJo;fO^M)?1ATn z$@|@i3)@`_s^J&rEcxElNlAM)3Ix&&8zj_BMvnkOv;)D7Rl8R*P*MdF2p7r7WRj!su&mwjq;bD2 znaMS9kRuw>YZp~!^=i`Kw4`hTcfI=A*(vMusc07acx@^3KZAXLf&?ej7g=b7A_Rgo zBJ&JnVw?57+$^Z-yxa7xE$%nhU>$o&?ijVfI`2iUebY9O$FhvFRKA^>)LECL zuVkxuJP=1Q`hn65^iJj?+}`Px>^!@)DnwoWK8?fS?E8+?ZbWoX zo@7k;^XBd@4YFI^8z|LvDGQ5|xuUBxiOpS=5fE|u3(5y4HoU)!AyJDFai)Yu>w7gP z_pPI)$F7LcZI+I^m|}U)c31F#QxP51&*Ws9Q8q4COL2+MT;9@BQUr-JX-AI%I?yp1 zISRE`#3D>+q)(O6(wZ5XG#=mG&-}~^RyV>fzKodv;nCTh8-- z3@!7M`CvXpOi$x!C)fKg(t&IXYZE`-f*;(p>eVCg)R_9Y_PCmEUKXH0)ppF?fe&J0 zGbAEX_sVWsQ`xmOgz)0=d*oN7y z@bN_`W`_Zul4i2$LRUi1PY#vVMC&wuz65Pr?A=cF)2H^0_4QJ1xEeL?Yoh z9r^alQT`^c`(Nhb;#CC(sM{=bbZ=@+MtEs{_9(dcHllgSj1j| zX-A}GVc&PhlB@2S?UlMXy|Vo22>3LvdwCHq&T4c?7vEl{gdbB%VZobEtUz(avpT9*rqf*=3>5BhNIE>yn+$iAjzpdrsBG_#rDp|bbs zxDefdtqTdQ!)1`?M})NDM6Nmu>F&W|C_Q6PkV0@-ElsqyD@HUlTJ?3E#8DS}3cu@p zXmZAtIM`d?>zeB)&0-g%3u}m2f18V}^!Bo|2i zi+M`oVQm~&8}+F?9cadcg}>zxdd`=Q&-Zq{ZlhU1n5LDI1UFA*Q>M@(N!=18upk@k zWYK^2`9hJ+>K71p<+)%QmiENA)w>PqfSXs^*~BaTK*|Fk>5Zu%xr4_v1oc$|OFRwUHhB z{u|!CrDUfUIY$Bq1&4jOlkdkXDAwzPi&fVbxDX8DJE>bboVnwJBdm%jM@5`$%65dA z<>>0<22Dv2_wXdc4^JWTih3K?T2&WR8)h4JM1UToLtxPTRuM;^p41iE01$S60&VV3 zN!R#r4Yjqztaq|Zfp3<5i|M~vbVL7b_>*&$U}?XK>xW{ET9oF5+YixuwsQtL-gQ=+ zAg~~Bc`WMrqMmN49Oq%ntHAbnTWG+QVBoG`N272enyxNd<=@ezRN-=fJU%+?-a9}~ zkqNo^(qxYL?U$q2r@6UaxMUWP1fck@xSx98mB9O|7dPDAR4nE@M>#AWH_D>-_Z<4j zgH%;v0d-tRp^qf+^b5M1+&A3%_Y9Mk)C8 zPiV~IV!T3zP-N}~7T_{79EwYqc%sONBCo3|`P6vooJp@R&O3l0!SsE3xt?Kg{6^?I zY^PinN5<;�~*zXlg320txRsAME`F6ZbGu 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\n", + "\n", + "You only need to precise how many times you want to subdivide the triangles." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b110d224", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a4d4919bf69441cebd10a56c2a976bde", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'gV833JQsWfuarucHtF2W2o3IM', 'data': b'x\\xda\\x95[\\x0bX\\x15\\xd5\\x1…" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ratp_parameters = { \"tesselation level\" : 7 }\n", + "\n", + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "\n", + "# build the scene\n", + "lighting.build(geometry=triangles)\n", + "\n", + "SceneWidget(lighting.plantGL_nolight(printtriangles=True, printvoxels=False), \n", + " position=(-2.5, -2.5, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "f6c2c03b", + "metadata": {}, + "source": [ + "### Other parameters\n", + "\n", + "By default, the number of voxels is dynamically computed following the voxel size and mesh limits, but you can force its number. \n", + "\n", + "Voxel size can also be dynamically computed and is based on 3 times the longest triangle." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/misc_functionnalities.ipynb b/notebooks/misc_functionnalities.ipynb new file mode 100644 index 0000000..022a86e --- /dev/null +++ b/notebooks/misc_functionnalities.ipynb @@ -0,0 +1,730 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "75226374", + "metadata": {}, + "source": [ + "# Misc functionnalities\n", + "\n", + "## Content\n", + "\n", + "- Subdivision of all triangles in the scene\n", + "- Visualisation with VTK\n", + "- External tools for analysing leaf angle distribution from a mesh\n", + "\n", + "## Introduction\n", + "\n", + "We provide more useful tools to help the lighting management" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "8fb624d3", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from lightvegemanager.tool import LightVegeManager\n", + "from pgljupyter import SceneWidget\n", + "from lightvegemanager.trianglesmesh import random_triangle_generator" + ] + }, + { + "cell_type": "markdown", + "id": "e73d0291", + "metadata": {}, + "source": [ + "## Simple mesh subdivision\n", + "\n", + "If you want to refine the shadowing process in your mesh, you can subdivide all triangles." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4e549342", + "metadata": {}, + "outputs": [], + "source": [ + "# random triangles\n", + "nb_triangles = 50\n", + "spheresize = (1., 0.3) # vertices of triangles are the sphere surface\n", + "worldsize = (0., 5.)\n", + "triangles = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1ee0c915", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6d6d7a0ffa0142ccb3ceb5f63d3d7024", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'oSXyv6iz2DTQz0KoxvgBXntAb', 'data': b'x\\xda\\x8d\\x9a\\tx\\x8c\\xd7\\x…" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=triangles)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(-2.5, -2.5, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "63792b47", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "97d974ceb68348e8a7dedae8cce7ab06", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': '8r1yEjQBEvJuGRFlSzojGn4je', 'data': b'x\\xda\\x94]\\x07x^\\xb5\\xd5\\x…" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "global_scene_tesselate_level = 5\n", + "lighting.build(geometry=triangles, global_scene_tesselate_level=global_scene_tesselate_level)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(-2.5, -2.5, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "attachments": { + "paraview_example.png": { + "image/png": "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GD9unDzxyCKZ/YlPdlX8atN12/KnHjf7OdnXO+/ij3eFvjZd1/5I10uXSy++SP77gf+Kq+l18sLmJ2XhKdfIlfal1a2evtkrXu9c+Z213penl4W+CmOHwPal3Q8AAAAAAAAAAFIryQDYOdfuOrl99QIrJK2TW5YtlGm3Te8aEnn64smh4ZITEu/xwuYAXrhM7Gl4e5stC1bfLsErWPs774dO2zsveLhVZvhn2+y51we7pvWYN9h522qnL5Z5Zm7fVD8OQG644Ss3S319fY/q3/C2c9cus59TotfrSyAQSKil5br6X6/+p+Qmrwaq3e2mp7R/kyw4zyvnLdjUve9TN4n3vAWySZc3LZDzuq5znizYZO1jjhdpXY+noe2r8reT9Do3yVP2cZ1Nz6HHnPS38urv5nZfOo55xT1+8fufkK9EvD+hZj8Gd/76P8yyclYCa79zv2Raymz7nVx11e+EmmQAAAAAAAAAQC7zNDQ0JPjp+XKZX3uHTF7dV7gKANmzfPly+dSnPmWtxWfmrPNk3rXXyN//3fesntj8689/IYsfeVRef+0Vq8f2tNzs+5lM3bBCvj3B6opk851y/uT18n3/vTLxzvNl8sLrZMOKb4te5embffKzqRtkxbc3BY91lcgTfrlXS3OfvllCq/fKlb3O41yP8TYEPX3z+bLxuytk0i9Dl7337/tY3/7m13qEv7puC+93rifi4YcflksuuUT8fr/VkyANgL8p8usnvirJ1Jj7fD5599135cwzz7R6AAAAAAAAAADInBTOAQwASIyGqT4THPomf0dek7WycbPIhG9/X77y2kJ50syz+7Q8et8suW7uhODio3KffEWuscdlvvKa4Np98mjviXoTFDzX2utk7oTNslH00upOkDP8VeHrAAAAAAAAAAAgdQiAASCrNPy9Stb+aoOpYA0NrWy7Uq75ymuyUBNgDX1nOcLYWVNlorUowaWps6zFpNhB9FVy32vfkcm+yfKd+/TSJzcnGC73VfnrClr1O3y4DNd2zg/kjTd+IOfY68O/K89auwEAAAAAAAAAkCuSCIBny4IGhn8GgKRY1bzfjzIm85XXfEVeW/ik3PnofTLrurlmKGjjtfWyyVqU4NL616zFpFwp9/r9suFXs+QrT3RfajBthppOwJVzQpOl2+GvfWn3Z924r8oT+/bJPm0rfypnn/1TWWmv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" + } + }, + "cell_type": "markdown", + "id": "729e225e", + "metadata": {}, + "source": [ + "## Visualisation with VTK\n", + "\n", + "PlantGL offers a good first approach to visualizing scene geometry, but software such as Paraview can take this visualization even further. LightVegeManager lets you export the scene in VTK format for further processing in ParaView.\n", + "\n", + "![paraview_example.png](attachment:paraview_example.png)\n", + "\n", + "There are three method to export VTK files:\n", + "- `VTK_nolight`: exports only the geometric information, organ ID and specy ID\n", + "- `VTK_light`: adds all the information about the scene's sunlight\n", + "- `VTK_sun`: exports sun direction of the current iteration\n" + ] + }, + { + "cell_type": "markdown", + "id": "66a1619c", + "metadata": {}, + "source": [ + "### Triangles exportation" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "605afb2d", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=triangles)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "4052f157", + "metadata": {}, + "outputs": [], + "source": [ + "pathfile = \"random_scene\"" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "ef74a956", + "metadata": {}, + "outputs": [], + "source": [ + "lighting.VTK_nolight(pathfile)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "1d1c669b", + "metadata": {}, + "outputs": [], + "source": [ + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e0cf96cc", + "metadata": {}, + "outputs": [], + "source": [ + "lighting.VTK_light(pathfile)" + ] + }, + { + "cell_type": "markdown", + "id": "c883e837", + "metadata": {}, + "source": [ + "### Voxels exportation\n", + "\n", + "If you use voxels grid, you exports them too. In our example, it will exports the triangles mesh and the voxels mesh specified in the inputs." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9fe64784", + "metadata": {}, + "outputs": [], + "source": [ + "ratp_parameters = {\"voxel size\" : [1., 1., 1.] }\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "lighting.build(geometry=triangles)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "a2df84da", + "metadata": {}, + "outputs": [], + "source": [ + "pathfile = \"random_scene_ratp\"" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "db2dce38", + "metadata": {}, + "outputs": [], + "source": [ + "lighting.VTK_nolight(pathfile, printtriangles=True, printvoxels=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b29d2a7f", + "metadata": {}, + "outputs": [], + "source": [ + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "23d31506", + "metadata": {}, + "outputs": [], + "source": [ + "lighting.VTK_light(pathfile, printtriangles=True, printvoxels=True)" + ] + }, + { + "cell_type": "markdown", + "id": "2d372d91", + "metadata": {}, + "source": [ + "## Analyze with s2v and s5\n", + "\n", + "We added the possibility to call s2v and s5, two analysis tools which returns informations in order to convert the triangle mesh in a RATP grid format. Depending on the grid dimensions you specify, it will return leaf area in each voxel (depending on the barycenter position of each triangle in the grid) and leaf angle distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "20ac8017", + "metadata": {}, + "outputs": [], + "source": [ + "# random triangles\n", + "nb_triangles = 5\n", + "spheresize = (1., 0.3) # vertices of triangles are the sphere surface\n", + "worldsize = (0., 5.)\n", + "triangles = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]" + ] + }, + { + "cell_type": "markdown", + "id": "ba5ca7ce", + "metadata": {}, + "source": [ + "### s5 (fortran)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0a249600", + "metadata": {}, + "outputs": [], + "source": [ + "ratp_parameters = {\"voxel size\" : [1., 1., 1.] }\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "lighting.build(geometry=triangles)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4f72e4bf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--- Fin de s5.f\n" + ] + } + ], + "source": [ + "lighting.s5()" + ] + }, + { + "cell_type": "markdown", + "id": "197d6339", + "metadata": {}, + "source": [ + "#### Description of `fort.60`\n", + "\n", + "- xy dimension of the scene\n", + "- statistics per specy\n", + " - Total leaf area\n", + " - Leaf area index\n", + " - Global zenith angle distribution\n", + " - Global azimut angle distribution\n", + "- statistics per voxel\n", + " - #specy #ix #iy ~iz leaf area density\n", + " - zenith angle distribution\n", + " - azimut angle distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a1d0e71b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " dimensions de la maquette (x,y): 7.000 6.000\n", + " nombre de repetitions du motif: 1.0\n", + "\n", + " STATISTIQUES GLOBALES DE CHAQUE ESPECE\n", + "\n", + " espece: 1 surface foliaire: .249D+01 lai : 0.0593\n", + " distribution en zenith: 0.0000 0.0000 0.0000 0.0000 0.6634 0.0905 0.0795 0.1666 0.0000\n", + " distribution en azimuth: 0.3231 0.1666 0.3404 0.0795 0.0000 0.0000 0.0000 0.0905 0.0000\n", + "\n", + "\n", + " STATISTIQUES PAR CELLULE\n", + "\n", + " 1 1 1 1 0.122\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 1 2 1 1 0.003\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 1 5 1 1 0.177\n", + " 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000\n", + " 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 1 6 1 1 0.002\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 2 1 1 1 0.011\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 2 2 1 1 0.088\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 2 5 1 1 0.672\n", + " 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000\n", + " 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 3 2 1 1 0.000\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 3 4 1 1 0.389\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 3 5 1 1 0.010\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 4 2 1 1 0.121\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 4 3 1 1 0.077\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000\n", + " 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 4 4 1 1 0.017\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000\n", + " 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 5 4 1 1 0.017\n", + " 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000\n", + " 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 6 4 1 1 0.402\n", + " 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000\n", + " 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 6 5 1 1 0.168\n", + " 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000\n", + " 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 7 4 1 1 0.122\n", + " 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000\n", + " 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n", + " 7 5 1 1 0.096\n", + " 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000\n", + " 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000\n" + ] + } + ], + "source": [ + "outfile = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"s5\", \"fort.60\")\n", + "with open(outfile, \"r\") as fichier:\n", + " for ligne in fichier:\n", + " print(ligne, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "1fe1e6c3", + "metadata": {}, + "source": [ + "#### Description of `leafarea`\n", + "\n", + "- for each specy\n", + " - for each voxel\n", + " - ix | iy | iz | #specy | LAD | zenith angle distribution | azimut angle distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "7a38079a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 1 2 1 1 0.014 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000\n", + " 2 1 1 1 0.084 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.613 0.000 0.000 0.387 0.000 0.000\n", + " 2 1 2 1 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000\n", + " 2 2 1 1 0.129 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000\n", + " 3 1 1 1 0.027 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000\n", + " 3 1 4 1 0.030 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000\n", + " 3 2 1 1 0.041 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000\n", + " 3 5 4 1 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000\n", + " 3 6 4 1 0.084 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000\n", + " 4 1 4 1 0.203 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000\n", + " 4 2 1 1 0.286 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000\n" + ] + } + ], + "source": [ + "outfile = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"s5\", \"leafarea\")\n", + "with open(outfile, \"r\") as fichier:\n", + " for ligne in fichier:\n", + " print(ligne, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "7433d351", + "metadata": {}, + "source": [ + "#### s2v (c++)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "26f525b9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--- Fin de s2v.cpp\n" + ] + } + ], + "source": [ + "lighting.s2v()" + ] + }, + { + "cell_type": "markdown", + "id": "6f0fffd5", + "metadata": {}, + "source": [ + "#### Description of `s2v.log`\n", + "\n", + "- Program logs\n", + "- global statistic for each specy\n", + " - total leaf area\n", + " - leaf area index\n", + " - global zenith angle distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "61a5827e", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'os' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[1], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m outfile \u001b[38;5;241m=\u001b[39m \u001b[43mos\u001b[49m\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mdirname(os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mabspath(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m)), \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ms2v\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ms2v.log\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mopen\u001b[39m(outfile, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m fichier:\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m ligne \u001b[38;5;129;01min\u001b[39;00m fichier:\n", + "\u001b[1;31mNameError\u001b[0m: name 'os' is not defined" + ] + } + ], + "source": [ + "outfile = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"s2v\", \"s2v.log\")\n", + "with open(outfile, \"r\") as fichier:\n", + " for ligne in fichier:\n", + " print(ligne, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "c2619bfe", + "metadata": {}, + "source": [ + "#### Description of `s2v.can`\n", + "\n", + "Copy of each triangle with the z layer in which the triangle belongs" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "279e1477", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ".\\s2v++.exe \n", + "Lecture du fichier parametre dans fichier : \n", + "nji=9, nja=9, njz=2\n", + "bz[0]=2\n", + "7, 7, 1, 6, 6, 1, 1\n", + "s2v.cpp:530 -> Fin de lecture de fichier\n", + "=> Calcul des distributions\n", + "==> nje rel = 1\n", + "=> Ecriture des resultats : (c|std)err, leafarea, out.dang\n", + "Il y a eu 2583 depassement en z+\n", + "xl=7, yl=6, xymaille=1\n", + "\n", + "STATISTIQUES GLOBALES DE CHAQUE ESPECE\n", + "esp 1 : surfT=2.49261 - Stot=2.49261, LAI=0.0593479 dist d'inclinaison :0 0 0 0 0.66342 0.090495 0.0795048 0.16658 0 \n", + "0.3230560.166580.3403640.07950480000.0904950\n", + "genere le fichier out.dang => entree de sailM pour calculer la BRDF\n", + "\t: xx= 0 ; Uz= 1e-009\n", + "ferrlog stream close() called.\n" + ] + } + ], + "source": [ + "outfile = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"s2v\", \"s2v.can\")\n", + "with open(outfile, \"r\") as fichier:\n", + " for ligne in fichier:\n", + " print(ligne, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "630f9ad0", + "metadata": {}, + "source": [ + "#### Description of `s2v.area`\n", + "\n", + "each line contains: triangle id | z layer | triangle area" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "87a5a603", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100001001000\t 0\t 0.848395\n", + "100001001000\t 0\t 0.198175\n", + "100001001000\t 0\t 0.415219\n", + "100001001000\t 0\t 0.225569\n", + "100001001000\t 0\t 0.805254\n" + ] + } + ], + "source": [ + "outfile = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"s2v\", \"s2v.area\")\n", + "with open(outfile, \"r\") as fichier:\n", + " for ligne in fichier:\n", + " print(ligne, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "5b4abbfc", + "metadata": {}, + "source": [ + "#### Description of `out.dang`\n", + "\n", + "File for SAIL model\n", + "- line 1: global leaf area index for specy 1\n", + "- line 2: global zenith angle distribution for specy 1" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "cba6b513", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.059348\n", + "0.000000 0.000000 0.000000 0.000000 0.663420 0.090495 0.079505 0.166580 0.000000 " + ] + } + ], + "source": [ + "outfile = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"s2v\", \"out.dang\")\n", + "with open(outfile, \"r\") as fichier:\n", + " for ligne in fichier:\n", + " print(ligne, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "6551e156", + "metadata": {}, + "source": [ + "#### Description of `leafarea`\n", + "\n", + "File for SAIL model\n", + "each line:\n", + " - 0 idz \"Leaf area index by layer inclination class\" 0 0 \"total leaf area density on the z layer\"" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b177e1e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0 1 0.000000 0.000000 0.000000 0.000000 0.663420 0.090495 0.079505 0.166580 0.000000 0 0 2.492611\n", + " 0 2 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0.000000\n" + ] + } + ], + "source": [ + "outfile = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"s2v\", \"leafarea\")\n", + "with open(outfile, \"r\") as fichier:\n", + " for ligne in fichier:\n", + " print(ligne, end=\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "500a198e", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/outputs_and_plantmodels_transfer.ipynb b/notebooks/outputs_and_plantmodels_transfer.ipynb new file mode 100644 index 0000000..69b6f1c --- /dev/null +++ b/notebooks/outputs_and_plantmodels_transfer.ipynb @@ -0,0 +1,1077 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7d2ea5d1", + "metadata": {}, + "source": [ + "# Output formats and transfer methods\n", + "\n", + "## Content\n", + "\n", + "- Main light outputs\n", + "- transfer results to l-egume\n", + "- transfer results to CN-Wheat\n", + "\n", + "## Introduction\n", + "\n", + "In this notebook, we will show you which result data you can use for your own purpose. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e5378cea", + "metadata": {}, + "outputs": [], + "source": [ + "from lightvegemanager.tool import LightVegeManager\n", + "from pgljupyter import SceneWidget\n", + "from lightvegemanager.trianglesmesh import random_triangle_generator" + ] + }, + { + "cell_type": "markdown", + "id": "fcb1dbc3", + "metadata": {}, + "source": [ + "## Main light outputs: Pandas dataframe\n", + "\n", + "Outputs are stored in at least two different scales, by element, triangle or voxel, and by organs, a group of elements. We will use a set of random triangles as an illustration." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "634d2ae6", + "metadata": {}, + "outputs": [], + "source": [ + "# random triangles\n", + "nb_triangles = 20\n", + "spheresize = (1., 0.3) # vertices of triangles are the sphere surface\n", + "worldsize = (0., 5.)\n", + "triangles = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]" + ] + }, + { + "cell_type": "markdown", + "id": "832306b2", + "metadata": {}, + "source": [ + "We compute one iteration with CARIBU" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "9ddbcc11", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=triangles)\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "markdown", + "id": "f57bcf31", + "metadata": {}, + "source": [ + "Results for each triangle" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7b2105d4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + "\n", + " Day Hour Triangle Organ VegetationType Area par Eabs \\\n", + "0 264 15 0 0 0 0.887983 333.972320 \n", + "1 264 15 1 0 0 0.064478 359.626762 \n", + "2 264 15 2 0 0 0.453055 467.189797 \n", + "3 264 15 3 0 0 1.221273 357.496425 \n", + "4 264 15 4 0 0 0.458616 475.442657 \n", + "5 264 15 5 0 0 0.280610 247.592121 \n", + "6 264 15 6 0 0 0.566238 352.833692 \n", + "7 264 15 7 0 0 0.058097 423.081287 \n", + "8 264 15 8 0 0 2.767725 334.256459 \n", + "9 264 15 9 0 0 0.374497 451.617079 \n", + "10 264 15 10 0 0 0.379997 336.551922 \n", + "11 264 15 11 0 0 0.606435 363.404537 \n", + "12 264 15 12 0 0 1.029608 342.804865 \n", + "13 264 15 13 0 0 0.418867 440.261801 \n", + "14 264 15 14 0 0 0.368815 308.680462 \n", + "15 264 15 15 0 0 0.583434 463.362150 \n", + "16 264 15 16 0 0 0.026466 276.634522 \n", + "17 264 15 17 0 0 0.456672 305.102063 \n", + "18 264 15 18 0 0 0.155659 345.261097 \n", + "19 264 15 19 0 0 0.105090 423.684444 \n", + "\n", + " par Ei \n", + "0 392.908611 \n", + "1 423.090309 \n", + "2 549.635055 \n", + "3 420.584029 \n", + "4 559.344302 \n", + "5 291.284848 \n", + "6 415.098461 \n", + "7 497.742691 \n", + "8 393.242893 \n", + "9 531.314211 \n", + "10 395.943438 \n", + "11 427.534749 \n", + "12 403.299841 \n", + "13 517.955060 \n", + "14 363.153485 \n", + "15 545.131942 \n", + "16 325.452379 \n", + "17 358.943604 \n", + "18 406.189526 \n", + "19 498.452287 \n" + ] + } + ], + "source": [ + "print(type(lighting.triangles_outputs),\"\\n\")\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "6d8cfd99", + "metadata": {}, + "source": [ + "We can try to group multiple sets of triangles" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b8c92592", + "metadata": {}, + "outputs": [], + "source": [ + "nb_triangles = 10\n", + "triangles1 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]\n", + "\n", + "nb_triangles = 9\n", + "triangles2 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]\n", + "\n", + "nb_triangles = 8\n", + "triangles3 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ad9f5a1c", + "metadata": {}, + "outputs": [], + "source": [ + "scene = {0: triangles1, 1: triangles2, 2: triangles3}\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry={\"scenes\" : [scene] })\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0da3f684", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Day Hour Triangle Organ VegetationType Area par Eabs \\\n", + "0 264 15 0 0 0 0.302826 323.960353 \n", + "1 264 15 1 0 0 0.209539 425.144306 \n", + "2 264 15 2 0 0 0.197166 362.524398 \n", + "3 264 15 3 0 0 0.039327 362.423338 \n", + "4 264 15 4 0 0 0.545166 299.967366 \n", + "5 264 15 5 0 0 0.135091 479.645681 \n", + "6 264 15 6 0 0 0.096901 409.619188 \n", + "7 264 15 7 0 0 0.982999 361.504997 \n", + "8 264 15 8 0 0 0.922692 312.596716 \n", + "9 264 15 9 0 0 0.088453 356.628718 \n", + "10 264 15 10 1 0 0.435957 394.911941 \n", + "11 264 15 11 1 0 0.407852 368.080426 \n", + "12 264 15 12 1 0 0.634457 348.130774 \n", + "13 264 15 13 1 0 0.260217 380.579577 \n", + "14 264 15 14 1 0 0.214000 471.615547 \n", + "15 264 15 15 1 0 0.097946 333.103578 \n", + "16 264 15 16 1 0 0.179120 459.202360 \n", + "17 264 15 17 1 0 0.633404 382.104684 \n", + "18 264 15 18 1 0 0.441117 389.083206 \n", + "19 264 15 19 2 0 0.442670 319.499395 \n", + "20 264 15 20 2 0 0.330172 299.805634 \n", + "21 264 15 21 2 0 1.268324 442.899621 \n", + "22 264 15 22 2 0 0.024006 382.452618 \n", + "23 264 15 23 2 0 0.317721 362.006044 \n", + "24 264 15 24 2 0 1.344187 386.714779 \n", + "25 264 15 25 2 0 0.204554 348.273943 \n", + "26 264 15 26 2 0 0.039401 371.076266 \n", + "\n", + " par Ei \n", + "0 381.129827 \n", + "1 500.169772 \n", + "2 426.499292 \n", + "3 426.380398 \n", + "4 352.902784 \n", + "5 564.289036 \n", + "6 481.904927 \n", + "7 425.299996 \n", + "8 367.760842 \n", + "9 419.563197 \n", + "10 464.602284 \n", + "11 433.035796 \n", + "12 409.565616 \n", + "13 447.740678 \n", + "14 554.841820 \n", + "15 391.886563 \n", + "16 540.238071 \n", + "17 449.534922 \n", + "18 457.744948 \n", + "19 375.881641 \n", + "20 352.712511 \n", + "21 521.058377 \n", + "22 449.944257 \n", + "23 425.889463 \n", + "24 454.958564 \n", + "25 409.734051 \n", + "26 436.560313 \n" + ] + } + ], + "source": [ + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "698ce3e4", + "metadata": {}, + "source": [ + "And the grouped results" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "dda3eb15", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Day Hour Organ VegetationType Area par Eabs par Ei\n", + "0 264 15 0 0 3.520159 345.516439 406.489928\n", + "1 264 15 1 0 3.304070 384.875692 452.794932\n", + "2 264 15 2 0 3.971035 385.802957 453.885832\n" + ] + } + ], + "source": [ + "print(lighting.elements_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "0e2874a2", + "metadata": {}, + "source": [ + "With RATP, you have another output for each voxel" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "55fb9462", + "metadata": {}, + "outputs": [], + "source": [ + "scene = {0: triangles1, 1: triangles2, 2: triangles3}\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"ratp\")\n", + "lighting.build(geometry={\"scenes\" : [scene] })\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "662e17d5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Triangle Organ Voxel VegetationType primitive_area Day Hour Nx \\\n", + "0 0 0 1.0 1 0.302826 264.0 15.0 1 \n", + "1 1 0 1.0 1 0.209539 264.0 15.0 1 \n", + "2 2 0 1.0 1 0.197166 264.0 15.0 1 \n", + "3 3 0 1.0 1 0.039327 264.0 15.0 1 \n", + "4 4 0 1.0 1 0.545166 264.0 15.0 1 \n", + "21 5 0 2.0 1 0.135091 264.0 15.0 2 \n", + "5 6 0 1.0 1 0.096901 264.0 15.0 1 \n", + "6 7 0 1.0 1 0.982999 264.0 15.0 1 \n", + "7 8 0 1.0 1 0.922692 264.0 15.0 1 \n", + "22 9 0 2.0 1 0.088453 264.0 15.0 2 \n", + "8 10 1 1.0 1 0.435957 264.0 15.0 1 \n", + "23 11 1 2.0 1 0.407852 264.0 15.0 2 \n", + "9 12 1 1.0 1 0.634457 264.0 15.0 1 \n", + "10 13 1 1.0 1 0.260217 264.0 15.0 1 \n", + "11 14 1 1.0 1 0.214000 264.0 15.0 1 \n", + "24 15 1 2.0 1 0.097946 264.0 15.0 2 \n", + "12 16 1 1.0 1 0.179120 264.0 15.0 1 \n", + "25 17 1 2.0 1 0.633404 264.0 15.0 2 \n", + "13 18 1 1.0 1 0.441117 264.0 15.0 1 \n", + "14 19 2 1.0 1 0.442670 264.0 15.0 1 \n", + "15 20 2 1.0 1 0.330172 264.0 15.0 1 \n", + "26 21 2 2.0 1 1.268324 264.0 15.0 2 \n", + "16 22 2 1.0 1 0.024006 264.0 15.0 1 \n", + "17 23 2 1.0 1 0.317721 264.0 15.0 1 \n", + "18 24 2 1.0 1 1.344187 264.0 15.0 1 \n", + "19 25 2 1.0 1 0.204554 264.0 15.0 1 \n", + "20 26 2 1.0 1 0.039401 264.0 15.0 1 \n", + "\n", + " Ny Nz ShadedPAR SunlitPAR ShadedArea SunlitArea Area \\\n", + "0 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "1 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "2 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "3 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "4 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "21 1 1 369.472687 468.106873 0.06519 2.565879 2.631069 \n", + "5 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "6 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "7 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "22 1 1 369.472687 468.106873 0.06519 2.565879 2.631069 \n", + "8 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "23 1 1 369.472687 468.106873 0.06519 2.565879 2.631069 \n", + "9 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "10 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "11 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "24 1 1 369.472687 468.106873 0.06519 2.565879 2.631069 \n", + "12 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "25 1 1 369.472687 468.106873 0.06519 2.565879 2.631069 \n", + "13 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "14 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "15 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "26 1 1 369.472687 468.106873 0.06519 2.565879 2.631069 \n", + "16 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "17 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "18 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "19 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "20 1 1 357.368713 456.002899 0.45133 7.712864 8.164194 \n", + "\n", + " PARa Intercepted Transmitted \n", + "0 450.550232 7.356759 27.887056 \n", + "1 450.550232 7.356759 27.887056 \n", + "2 450.550232 7.356759 27.887056 \n", + "3 450.550232 7.356759 27.887056 \n", + "4 450.550232 7.356759 27.887056 \n", + "21 465.663025 2.450383 29.358543 \n", + "5 450.550232 7.356759 27.887056 \n", + "6 450.550232 7.356759 27.887056 \n", + "7 450.550232 7.356759 27.887056 \n", + "22 465.663025 2.450383 29.358543 \n", + "8 450.550232 7.356759 27.887056 \n", + "23 465.663025 2.450383 29.358543 \n", + "9 450.550232 7.356759 27.887056 \n", + "10 450.550232 7.356759 27.887056 \n", + "11 450.550232 7.356759 27.887056 \n", + "24 465.663025 2.450383 29.358543 \n", + "12 450.550232 7.356759 27.887056 \n", + "25 465.663025 2.450383 29.358543 \n", + "13 450.550232 7.356759 27.887056 \n", + "14 450.550232 7.356759 27.887056 \n", + "15 450.550232 7.356759 27.887056 \n", + "26 465.663025 2.450383 29.358543 \n", + "16 450.550232 7.356759 27.887056 \n", + "17 450.550232 7.356759 27.887056 \n", + "18 450.550232 7.356759 27.887056 \n", + "19 450.550232 7.356759 27.887056 \n", + "20 450.550232 7.356759 27.887056 \n" + ] + } + ], + "source": [ + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "b75e7015", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " VegetationType Day Hour Voxel Nx Ny Nz ShadedPAR SunlitPAR \\\n", + "0 1.0 264.0 15.0 1.0 1 1 1 357.368713 456.002899 \n", + "1 1.0 264.0 15.0 2.0 2 1 1 369.472687 468.106873 \n", + "\n", + " ShadedArea SunlitArea Area PARa Intercepted Transmitted \n", + "0 0.45133 7.712864 8.164194 450.550232 7.356759 27.887056 \n", + "1 0.06519 2.565879 2.631069 465.663025 2.450383 29.358543 \n" + ] + } + ], + "source": [ + "print(lighting.voxels_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "efbb1e3b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Day Hour Organ VegetationType Area PARa Intercepted \\\n", + "0 264.0 15.0 0 1 3.520159 451.509950 7.045186 \n", + "1 264.0 15.0 1 1 3.304070 455.760934 5.665102 \n", + "2 264.0 15.0 2 1 3.971035 455.377164 5.789693 \n", + "\n", + " Transmitted SunlitPAR SunlitArea ShadedPAR ShadedArea \n", + "0 7.045186 456.771546 7.386012 358.137361 0.426808 \n", + "1 5.665102 460.176198 5.938248 361.542012 0.318194 \n", + "2 5.789693 459.868833 6.068949 361.234647 0.327999 \n" + ] + } + ], + "source": [ + "print(lighting.elements_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "fcc54af5", + "metadata": {}, + "source": [ + "## l-egume results transfer\n", + "\n", + "There are two possible scenarios:\n", + "- with RATP, the tool reformats the data types. Grid specifications must match with l-egume internal grid instance\n", + "- with CARIBU, you need to use virtual sensors following the dimensions of l-egume internal grid.\n", + "\n", + "The id argument is used with you several input scenes but you need to transfer only some of them to your l-egume instance.\n", + "\n", + "In both case, it will return two tables, one with intercepted lighting and another with transmitted lighting in each voxel." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "39bd8bce", + "metadata": {}, + "outputs": [], + "source": [ + "# grid dimensions\n", + "dxyz = [1.] * 3\n", + "nxyz = [7, 7, 7]\n", + "orig = [-1., -1., 0.]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "25b65a64", + "metadata": {}, + "outputs": [], + "source": [ + "spheresize = (1., 0.3) # vertices of triangles are the sphere surface\n", + "worldsize = (0., 5.)\n", + "\n", + "nb_triangles = 10\n", + "triangles1 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]\n", + "\n", + "nb_triangles = 9\n", + "triangles2 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]\n", + "\n", + "nb_triangles = 8\n", + "triangles3 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]\n", + "\n", + "scene = {0: triangles1, 1: triangles2, 2: triangles3}" + ] + }, + { + "cell_type": "markdown", + "id": "ad8f382e", + "metadata": {}, + "source": [ + "#### RATP\n", + "\n", + "Input: l-egume intern grid of leaf area" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2eb81590", + "metadata": {}, + "outputs": [], + "source": [ + "ratp_parameters = { \"voxel size\" : dxyz,\n", + " \"origin\" : orig,\n", + " \"number voxels\" : nxyz,\n", + " \"full grid\" : True}\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "lighting.build(geometry={\"scenes\" : [scene] })\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "9e8d468c", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f650a9774fa542e2bb5e2ba80595e729", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'eVV4F11s33BPVUjNuulHClHso', 'data': b'x\\xda\\x8d}\\x0b\\x94\\xf5Uu\\x…" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_nolight(printtriangles=True, printvoxels=True), \n", + " position=(0., 0., 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e020532a", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy\n", + "\n", + "m_lais = numpy.zeros([1] + nxyz)\n", + "\n", + "for row in lighting.voxels_outputs.itertuples():\n", + " m_lais[int(row.VegetationType)-1][row.Nz-1][row.Nx-1][row.Ny-1] = row.Area" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f4281a0d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PARa intercepted\n", + "[[[[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]]\n", + "\n", + " [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.91255584e-01 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]]\n", + "\n", + " [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 3.62365872e-01 1.22457137e-03 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.95049897e-01 1.00000000e-14\n", + " 4.01137352e-01 4.10260499e-01 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 2.34853730e-01\n", + " 6.89631641e-01 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.05850622e-01\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]]\n", + "\n", + " [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.07698523e-01\n", + " 1.27102673e+00 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 2.34604865e-01 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 2.00332925e-02 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]]\n", + "\n", + " [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 6.13946058e-02 5.03006637e-01\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 3.54082614e-01\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.38437843e+00\n", + " 1.74996093e-01 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 9.02987361e-01 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.18964568e-01 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]]\n", + "\n", + " [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 2.70237744e-01 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 2.15935960e-01 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 3.86473686e-02 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.36857376e-01\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]]\n", + "\n", + " [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 5.66032231e-02\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 5.84830046e-01 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]\n", + " [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14\n", + " 1.00000000e-14 1.00000000e-14 1.00000000e-14]]]]\n", + "\n", + "\n", + "PARa transmitted\n", + "[[[1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]]\n", + "\n", + " [[1. 0.99963057 0.99957138 0.99947673 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 1. 1. 1. 1.\n", + " 1. ]\n", + " [1. 1. 0.99926668 1. 1. 1.\n", + " 1. ]\n", + " [0.99970013 0.99676865 0.98825139 0.99629509 0.99986303 1.\n", + " 1. ]\n", + " [0.99902207 0.99121612 0.919734 0.9877432 0.99918234 1.\n", + " 1. ]\n", + " [1. 0.998151 0.99141204 0.99720836 1. 1.\n", + " 1. ]]\n", + "\n", + " [[0.99686068 0.99802268 0.99410558 0.98673284 0.96794111 0.98563504\n", + " 0.99416107]\n", + " [0.99585605 0.99449784 0.97916114 0.95942354 0.80911517 0.93542254\n", + " 0.98531598]\n", + " [0.99475813 0.98461145 0.90690106 0.92244434 0.73988777 0.78323054\n", + " 0.96694493]\n", + " [0.99632591 0.99120426 0.9665345 0.84882689 0.67848641 0.92360383\n", + " 0.98617125]\n", + " [0.99687183 0.99460918 0.98012727 0.96042752 0.9532088 0.98170686\n", + " 0.99605304]\n", + " [0.99543226 0.99152982 0.97064966 0.94378668 0.98623681 0.99440718\n", + " 0.99580491]\n", + " [0.99548972 0.9954195 0.99088526 0.98755527 0.99215525 0.99616665\n", + " 0.99683207]]\n", + "\n", + " [[0.99154222 0.98986703 0.97595549 0.93902242 0.87979883 0.94595563\n", + " 0.98320436]\n", + " [0.98788708 0.97815615 0.93926233 0.82371432 0.40502387 0.8600387\n", + " 0.96764725]\n", + " [0.98203403 0.96068132 0.84095889 0.87493688 0.78784174 0.86833286\n", + " 0.95500243]\n", + " [0.98539996 0.96764213 0.94185394 0.91136855 0.86435711 0.92827505\n", + " 0.9719072 ]\n", + " [0.98689526 0.98537415 0.96861196 0.95374638 0.94034904 0.96856815\n", + " 0.98217195]\n", + " [0.98805183 0.9888103 0.96952713 0.96083057 0.96848112 0.97835684\n", + " 0.98321474]\n", + " [0.99521863 0.99247658 0.98359537 0.97790587 0.97665089 0.98280752\n", + " 0.98712826]]\n", + "\n", + " [[0.97396404 0.97732759 0.95046979 0.90020192 0.8875643 0.93730801\n", + " 0.96813494]\n", + " [0.97440737 0.96788532 0.87619686 0.65420538 0.77308333 0.88455611\n", + " 0.95573801]\n", + " [0.97905767 0.96105552 0.86347568 0.64449 0.798118 0.89461142\n", + " 0.96182084]\n", + " [0.98428118 0.95343912 0.80644536 0.36933419 0.75600612 0.92658126\n", + " 0.97097325]\n", + " [0.98272175 0.92263758 0.59786361 0.84413874 0.93022043 0.96003735\n", + " 0.98030746]\n", + " [0.98167884 0.92343473 0.92852783 0.95988148 0.95882422 0.98353291\n", + " 0.98981279]\n", + " [0.98821801 0.97827053 0.97353882 0.97693914 0.96563995 0.98353904\n", + " 0.98521316]]\n", + "\n", + " [[0.96288335 0.93929774 0.92631412 0.89874583 0.90402168 0.94615626\n", + " 0.95473844]\n", + " [0.95003837 0.84268683 0.86060578 0.81803173 0.82487935 0.90885699\n", + " 0.94603294]\n", + " [0.94327873 0.91743463 0.85111934 0.76143235 0.747778 0.89120042\n", + " 0.94725478]\n", + " [0.97430396 0.92609513 0.82673693 0.73656482 0.78086466 0.90808272\n", + " 0.94624001]\n", + " [0.96516496 0.93356055 0.83229494 0.79863918 0.88125861 0.94769037\n", + " 0.97597754]\n", + " [0.97860146 0.94880772 0.90524018 0.91579521 0.93609023 0.97752261\n", + " 0.98202926]\n", + " [0.9830606 0.96851254 0.94450408 0.93516695 0.93937171 0.95932865\n", + " 0.9740687 ]]\n", + "\n", + " [[0.93367374 0.91789633 0.91964561 0.9338572 0.90871698 0.94616085\n", + " 0.95534593]\n", + " [0.94012743 0.90739971 0.89350057 0.88228625 0.86454254 0.9217149\n", + " 0.94184065]\n", + " [0.92299747 0.89996201 0.8715623 0.81494373 0.83152366 0.87107247\n", + " 0.93528658]\n", + " [0.94811577 0.91303241 0.86293799 0.79458439 0.64303416 0.88547724\n", + " 0.9305917 ]\n", + " [0.94927919 0.92561966 0.88040262 0.87153274 0.84795934 0.9235304\n", + " 0.94650728]\n", + " [0.96347046 0.94701046 0.90630186 0.91416645 0.91751611 0.95114535\n", + " 0.96184111]\n", + " [0.95411432 0.95206857 0.91245848 0.93170208 0.91695338 0.9464457\n", + " 0.95381296]]]\n" + ] + } + ], + "source": [ + "res_abs_i, res_trans = lighting.to_l_egume(m_lais=m_lais)\n", + "\n", + "print(\"PARa intercepted\")\n", + "print(res_abs_i)\n", + "print(\"\\n\")\n", + "print(\"PARa transmitted\")\n", + "print(res_trans)" + ] + }, + { + "cell_type": "markdown", + "id": "9fcffc57", + "metadata": {}, + "source": [ + "#### CARIBU\n", + "\n", + "Input: l-egume intern grid of leaf area" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "00448c53", + "metadata": {}, + "outputs": [], + "source": [ + "caribu_args = { \"sensors\" : [\"grid\", dxyz, nxyz, orig] }\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", lightmodel_parameters=caribu_args, environment={\"infinite\":True})\n", + "lighting.build(geometry={\"scenes\" : [scene] })\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "59229231", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "807d4e2d53194fff894c9ed93cf720e8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'MwRlXOaT39UuyymKny87RStKz', 'data': b'x\\xda\\x8d\\x9d\\t\\x98\\x1dE\\x…" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_sensors(light=True) + lighting.plantGL_nolight(), \n", + " position=(-0., -0., 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "9e714349", + "metadata": {}, + "outputs": [], + "source": [ + "# plant parameters, those variables are part of l-egume, here is a simplified version for our example\n", + "list_invar = [{\"Hplante\": [0.0] * 2}]\n", + "list_lstring = [\n", + " {\n", + " 0: [0, 0, 0, 0, 0, 0, 0, 0, 0, \"dev\"],\n", + " 1: [0, 0, 0, 0, 0, 0, 0, 0, 0, \"sen\"],\n", + " 2: [1, 0, 0, 0, 0, 0, 0, 0, 0, \"dev\"],\n", + " }\n", + "]\n", + "list_dicFeuilBilanR = [\n", + " {\"surf\": [0.5, 1e-8]},\n", + "]\n", + "\n", + "import numpy\n", + "\n", + "m_lais = numpy.zeros([1] + nxyz)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "635d93e3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "PARa absorbed per plant\n", + "[{'Hplante': [0.0, 0.0], 'parap': array([230.44407642, 98.6702188 ]), 'parip': array([349.22395645, 98.6702188 ])}]\n" + ] + } + ], + "source": [ + "res_trans = lighting.to_l_egume(m_lais=m_lais, \n", + " list_lstring=list_lstring, \n", + " list_dicFeuilBilanR=list_dicFeuilBilanR, \n", + " list_invar=list_invar)\n", + "# print(\"PARa transmitted\")\n", + "# print(res_trans)\n", + "\n", + "print(\"\\n\")\n", + "print(\"PARa absorbed per plant\")\n", + "print(list_invar)" + ] + }, + { + "cell_type": "markdown", + "id": "4f336844", + "metadata": {}, + "source": [ + "## CN-Wheat results transfer\n", + "\n", + "The method `to_MTG` is used to transfer results to Cn-Wheat through a MTG object with the properties `\"PARa\"` and `\"Erel\"`. The `id` argument is used with you several input scenes but you need to transfer only some of them to your MTG instance." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cc377bd4", + "metadata": {}, + "outputs": [], + "source": [ + "# load a MTG instance\n", + "import os\n", + "from alinea.adel.adel_dynamic import AdelDyn\n", + "from alinea.adel.echap_leaf import echap_leaves\n", + "\n", + "INPUTS_DIRPATH = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"data\")\n", + "adel_wheat = AdelDyn(seed=1, scene_unit=\"m\", leaves=echap_leaves(xy_model=\"Soissons_byleafclass\"))\n", + "g = adel_wheat.load(dir=INPUTS_DIRPATH)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "476690b3", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry={\"scenes\" : [g] })\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "2ccd1d03", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{19: 183.28839878423275, 34: 88.59510772768847, 813: 458.96763725505764, 814: 392.72942554102866, 51: 350.64417693430573}\n", + "{19: 0.3665767975684655, 34: 0.17719021545537694, 813: 0.9179352745101153, 814: 0.7854588510820574, 51: 0.7012883538686114}\n" + ] + } + ], + "source": [ + "lighting.to_MTG(mtg=g)\n", + "print(g.property(\"PARa\"))\n", + "print(g.property(\"Erel\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "448e2b39", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"ratp\")\n", + "lighting.build(geometry={\"scenes\" : [g] })\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "177fd272", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{19: 468.0222778320313, 34: 468.02227783203136, 813: 468.0222778320312, 814: 473.66244791932104, 51: 468.02227783203125}\n", + "{19: 0.0007445579394698143, 34: 0.0007445579394698143, 813: 0.0007445579394698141, 814: 0.00030915768207336026, 51: 0.0007445579394698143}\n" + ] + } + ], + "source": [ + "lighting.to_MTG(mtg=g)\n", + "print(g.property(\"PARa\"))\n", + "print(g.property(\"Erel\"))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/tool_basics.ipynb b/notebooks/tool_basics.ipynb new file mode 100644 index 0000000..8eab9cf --- /dev/null +++ b/notebooks/tool_basics.ipynb @@ -0,0 +1,777 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ad713094", + "metadata": {}, + "source": [ + "# Introduction to using the tool\n", + "\n", + "\n", + "## Content:\n", + "- One triangle\n", + " - CARIBU\n", + " - RATP\n", + "- Set of triangles\n", + " - CARIBU\n", + " - RATP \n", + "- The environment variable\n", + "\n", + "## First elements\n", + "The main methods of a LightVegeManager object are :\n", + "- constructor `__init__`: returns an instance and initialize static parameters such as sky and default parameters\n", + "- `build`: build and arrange the geometric scene following the lightmodel input format\n", + "- `run`: compute lighting\n", + "- DataFrame outputs are stored in `triangles_ouputs`, `voxels_ouputs` and `elements_ouputs`\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "9a585293", + "metadata": {}, + "outputs": [], + "source": [ + "# imports the LightVegeManager object and SceneWidget for visual representation\n", + "from lightvegemanager.tool import LightVegeManager\n", + "from pgljupyter import SceneWidget" + ] + }, + { + "cell_type": "markdown", + "id": "bab44821", + "metadata": {}, + "source": [ + "## One triangle\n", + "\n", + "As a first example, we can compute lighting on a single 3D triangle. \n", + "A triangle is reprented with a list of 3 cartesian points (x, y, z)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5ac06352", + "metadata": {}, + "outputs": [], + "source": [ + "t = [(0., 0., 0.), (1., 0., 0.), (1., 1., 1.)]" + ] + }, + { + "cell_type": "markdown", + "id": "7f6b20c9", + "metadata": {}, + "source": [ + "### CARIBU (surfarcic modelling)" + ] + }, + { + "cell_type": "markdown", + "id": "40d0cd3c", + "metadata": {}, + "source": [ + "1) Initialize the instance. The `lightmodel` must be entered, currently you choose between `\"caribu\"`, `\"ratp\"` and `\"riri5\"`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "87148b50", + "metadata": {}, + "outputs": [], + "source": [ + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"caribu\")" + ] + }, + { + "cell_type": "markdown", + "id": "10991ff2", + "metadata": {}, + "source": [ + "2) Build the geometry. The triangle will be save inside the instance." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2ebe3c2e", + "metadata": {}, + "outputs": [], + "source": [ + "# build the scene\n", + "lighting.build(geometry=t)" + ] + }, + { + "cell_type": "markdown", + "id": "d96cab36", + "metadata": {}, + "source": [ + "In order to visualize the scene in the instance, you can give a plantGL Scene in SceneWidget through two methods:\n", + "- `plantGL_nolight`: plots only geometric elements\n", + "- `plantGL_light`: plots geometric elements and colors the scene according to PAR values" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "28e80db8", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "120f766cdfe1445abf514c99eafecb73", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'vc3yVFvaf9yoybmXm2X7TP8BQ', 'data': b'x\\xdaSLrw\\xf5\\xf7e`Pp\\xe0\\…" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_nolight(), size_display=(600, 400), plane=True, size_world = 4, axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "cfdc7935", + "metadata": {}, + "source": [ + "3) Compute the lighting. By default it will compute direct and diffuse lighting." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "2a1e7140", + "metadata": {}, + "outputs": [], + "source": [ + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "markdown", + "id": "75936065", + "metadata": {}, + "source": [ + "Then, you can print the Dataframe outputs" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "a3871c84", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Day Hour Triangle Organ VegetationType Area par Eabs \\\n", + "0 264 15 0 0 0 0.707107 397.268686 \n", + "\n", + " par Ei \n", + "0 467.374925 \n" + ] + } + ], + "source": [ + "# print the outputs\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "eab84abf", + "metadata": {}, + "source": [ + "### RATP" + ] + }, + { + "cell_type": "markdown", + "id": "922d32de", + "metadata": {}, + "source": [ + "To use RATP, you need to create a new instance. The others methods can be used in the same as with CARIBU" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "2f0f6333", + "metadata": {}, + "outputs": [], + "source": [ + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"ratp\")\n", + "\n", + "# build the scene\n", + "lighting.build(geometry=t)" + ] + }, + { + "cell_type": "markdown", + "id": "5d6a943e", + "metadata": {}, + "source": [ + "With `plantGL_nolight` you can precise if you want to plot the voxels. By default, a voxel side is set as 3 times the longest triangle side." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "234a2715", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "72ea5881f13b4c6a85b9beaf89c72eae", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'uajlbqVBofOIFhDuXTLF9qFhF', 'data': b'x\\xdaSLrw\\xf5\\xf7e`Pp\\xe0\\…" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# visualisation\n", + "SceneWidget(lighting.plantGL_nolight(printvoxels=True), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 4, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "068b4b80", + "metadata": {}, + "outputs": [], + "source": [ + "# compute the lighting\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "markdown", + "id": "f905455f", + "metadata": {}, + "source": [ + "You can get the outputs of the voxels or the triangles" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "59e6cfc2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " VegetationType Day Hour Voxel Nx Ny Nz ShadedPAR SunlitPAR \\\n", + "0 1.0 264.0 15.0 1.0 1 1 1 380.635895 473.640411 \n", + "\n", + " ShadedArea SunlitArea Area PARa Intercepted Transmitted \n", + "0 0.010761 0.696346 0.707107 472.225067 0.667827 8.742233 \n" + ] + } + ], + "source": [ + "# print the outputs\n", + "print(lighting.voxels_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "bffa7914", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Triangle Organ Voxel VegetationType primitive_area Day Hour Nx \\\n", + "0 0 0 1.0 1 0.707107 264.0 15.0 1 \n", + "\n", + " Ny Nz ShadedPAR SunlitPAR ShadedArea SunlitArea Area \\\n", + "0 1 1 380.635895 473.640411 0.010761 0.696346 0.707107 \n", + "\n", + " PARa Intercepted Transmitted \n", + "0 472.225067 0.667827 8.742233 \n" + ] + } + ], + "source": [ + "# print the outputs\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "838240ed", + "metadata": {}, + "source": [ + "## Set of triangles" + ] + }, + { + "cell_type": "markdown", + "id": "9ee94e4e", + "metadata": {}, + "source": [ + "For this second example, we will generate a set of random 3D triangles. A function is already implemented in the package." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "5fe1fa60", + "metadata": {}, + "outputs": [], + "source": [ + "from lightvegemanager.trianglesmesh import random_triangle_generator" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "ea867adf", + "metadata": {}, + "outputs": [], + "source": [ + "nb_triangles = 5000\n", + "spheresize = (10., 2.) # vertices of triangles are the sphere surface\n", + "triangles = []\n", + "for i in range(nb_triangles):\n", + " triangles.append(random_triangle_generator(spheresize=spheresize))" + ] + }, + { + "cell_type": "markdown", + "id": "75e9f766", + "metadata": {}, + "source": [ + "### CARIBU\n", + "We repeat the same steps as with one triangle" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "a4987150", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3a2f6d31e46149c8ba6fd65ad34057f4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'Sym0YTEGdGGm7GpHUu3Cubc3i', 'data': b'x\\xda\\x8c]\\x07XUG\\xd3&v\\x8…" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "\n", + "# build the scene\n", + "lighting.build(geometry=triangles)\n", + "\n", + "# visualisation\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(-50.0, -50.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "1b8e873a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Day Hour Triangle Organ VegetationType Area par Eabs \\\n", + "0 264 15 0 0 0 49.393789 47.050303 \n", + "1 264 15 1 0 0 49.078681 23.093771 \n", + "2 264 15 2 0 0 102.945704 9.974392 \n", + "3 264 15 3 0 0 24.126015 338.869465 \n", + "4 264 15 4 0 0 52.326033 203.833217 \n", + "... ... ... ... ... ... ... ... \n", + "4995 264 15 4995 0 0 72.344270 150.857122 \n", + "4996 264 15 4996 0 0 15.049568 4.357494 \n", + "4997 264 15 4997 0 0 28.560917 262.137311 \n", + "4998 264 15 4998 0 0 28.145749 45.033456 \n", + "4999 264 15 4999 0 0 60.040012 115.592509 \n", + "\n", + " par Ei \n", + "0 55.353298 \n", + "1 27.169143 \n", + "2 11.734579 \n", + "3 398.669959 \n", + "4 239.803784 \n", + "... ... \n", + "4995 177.478967 \n", + "4996 5.126463 \n", + "4997 308.396836 \n", + "4998 52.980537 \n", + "4999 135.991187 \n", + "\n", + "[5000 rows x 8 columns]\n" + ] + } + ], + "source": [ + "# compute the lighting\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "\n", + "# print the outputs\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "99b7e8e2", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7fe06f7b118e472688db4e996f2d7bb6", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': '1MLbncOivVoacAyV4ClDvVOBd', 'data': b'x\\xda\\x8c]\\x05x\\x15W\\xd3N\\…" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_light(), \n", + " position=(-50.0, -50.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "4984e0e8", + "metadata": {}, + "source": [ + "### RATP\n", + "Now, we will set the voxels size. It needs to be specified in a dict which stores all RATP parameters. Here, you need to precise the length on each axis of one voxel. " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "e619909c", + "metadata": {}, + "outputs": [], + "source": [ + "ratp_parameters = { \"voxel size\": [20.] * 3 }" + ] + }, + { + "cell_type": "markdown", + "id": "33f72664", + "metadata": {}, + "source": [ + "Then, the dict is an argument in the instance creation." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "0d97938f", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2da2490444464b6dbcc0326b7945ceea", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': '2pJ1SCaVVmz6KABMEDZMVuBtf', 'data': b'x\\xda\\x8c}\\x05|\\x16\\xd7\\xf…" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "\n", + "# build the scene\n", + "lighting.build(geometry=triangles)\n", + "\n", + "# visualisation\n", + "SceneWidget(lighting.plantGL_nolight(printtriangles=True, printvoxels=True), \n", + " position=(-50.0, -50.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "746a5fa0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " VegetationType Day Hour Voxel Nx Ny Nz ShadedPAR SunlitPAR \\\n", + "0 1.0 264.0 15.0 1.0 2 5 3 54.428970 150.400497 \n", + "1 1.0 264.0 15.0 2.0 5 6 3 50.428650 146.400192 \n", + "2 1.0 264.0 15.0 3.0 2 4 4 25.016081 120.987617 \n", + "3 1.0 264.0 15.0 4.0 3 5 2 137.027084 232.998642 \n", + "4 1.0 264.0 15.0 5.0 1 6 4 94.889290 190.860825 \n", + ".. ... ... ... ... .. .. .. ... ... \n", + "210 1.0 264.0 15.0 211.0 4 2 7 81.486168 177.457718 \n", + "211 1.0 264.0 15.0 212.0 1 7 4 171.829315 267.800842 \n", + "212 1.0 264.0 15.0 213.0 1 5 7 66.265411 162.236938 \n", + "213 1.0 264.0 15.0 214.0 6 4 7 81.604439 177.575974 \n", + "214 1.0 264.0 15.0 215.0 3 4 1 377.730652 473.702209 \n", + "\n", + " ShadedArea SunlitArea Area PARa Intercepted \\\n", + "0 940.238770 300.895721 1241.134521 77.695923 192.862198 \n", + "1 1056.413818 256.752136 1313.166016 69.193146 181.724167 \n", + "2 1486.096924 89.238495 1575.335449 30.452608 95.946152 \n", + "3 1048.442871 282.894226 1331.337158 157.419952 419.158112 \n", + "4 328.778809 248.748779 577.527588 136.225494 157.347977 \n", + ".. ... ... ... ... ... \n", + "210 21.034737 22.331879 43.366615 130.907242 11.354008 \n", + "211 30.276852 32.065239 62.342091 221.191635 27.579096 \n", + "212 211.458740 224.413452 435.872192 115.677383 100.841103 \n", + "213 69.074570 45.346554 114.421127 119.639183 27.378498 \n", + "214 0.375681 27.028229 27.403910 472.386536 25.890474 \n", + "\n", + " Transmitted \n", + "0 40.667442 \n", + "1 40.337265 \n", + "2 16.455536 \n", + "3 53.644543 \n", + "4 85.096527 \n", + ".. ... \n", + "210 86.211784 \n", + "211 176.470810 \n", + "212 63.874039 \n", + "213 80.683655 \n", + "214 390.410797 \n", + "\n", + "[215 rows x 15 columns]\n" + ] + } + ], + "source": [ + "# compute the lighting\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "\n", + "# print the outputs\n", + "print(lighting.voxels_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "838bbb57", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Triangle Organ Voxel VegetationType primitive_area Day Hour Nx \\\n", + "0 0 0 1.0 1 49.393789 264.0 15.0 2 \n", + "27 1 0 2.0 1 49.078681 264.0 15.0 5 \n", + "69 2 0 3.0 1 102.945704 264.0 15.0 2 \n", + "109 3 0 4.0 1 24.126015 264.0 15.0 3 \n", + "146 4 0 5.0 1 52.326033 264.0 15.0 1 \n", + "... ... ... ... ... ... ... ... .. \n", + "4924 4995 0 199.0 1 72.344270 264.0 15.0 1 \n", + "336 4996 0 10.0 1 15.049568 264.0 15.0 4 \n", + "4785 4997 0 187.0 1 28.560917 264.0 15.0 3 \n", + "1290 4998 0 43.0 1 28.145749 264.0 15.0 5 \n", + "1775 4999 0 59.0 1 60.040012 264.0 15.0 2 \n", + "\n", + " Ny Nz ShadedPAR SunlitPAR ShadedArea SunlitArea Area \\\n", + "0 5 3 54.428970 150.400497 940.238770 300.895721 1241.134521 \n", + "27 6 3 50.428650 146.400192 1056.413818 256.752136 1313.166016 \n", + "69 4 4 25.016081 120.987617 1486.096924 89.238495 1575.335449 \n", + "109 5 2 137.027084 232.998642 1048.442871 282.894226 1331.337158 \n", + "146 6 4 94.889290 190.860825 328.778809 248.748779 577.527588 \n", + "... .. .. ... ... ... ... ... \n", + "4924 6 5 88.287605 184.259140 684.410645 155.426743 839.837402 \n", + "336 6 3 36.994896 132.966446 1456.751465 284.425629 1741.177124 \n", + "4785 3 2 182.791809 278.763367 473.721069 319.463074 793.184143 \n", + "1290 4 2 159.442474 255.414017 770.785034 269.372406 1040.157471 \n", + "1775 7 4 91.605270 187.576828 648.480042 74.454109 722.934143 \n", + "\n", + " PARa Intercepted Transmitted \n", + "0 77.695923 192.862198 40.667442 \n", + "27 69.193146 181.724167 40.337265 \n", + "69 30.452608 95.946152 16.455536 \n", + "109 157.419952 419.158112 53.644543 \n", + "146 136.225494 157.347977 85.096527 \n", + "... ... ... ... \n", + "4924 106.048828 178.127563 80.731377 \n", + "336 52.672089 183.422882 28.330009 \n", + "4785 221.445343 351.293884 100.292107 \n", + "1290 184.296478 383.394714 73.595093 \n", + "1775 101.489265 146.740112 72.746109 \n", + "\n", + "[5000 rows x 18 columns]\n" + ] + } + ], + "source": [ + "# print the outputs\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "a6786993", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "df4284a48fd44e9d824298c1b13cb2fa", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'gky0cmb03EMHc7bv5AesZLLo4', 'data': b'x\\xda\\x8c]\\x05xUG\\xd3N\\x91…" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# visualisation\n", + "SceneWidget(lighting.plantGL_light(printtriangles=True, printvoxels=True), \n", + " position=(-50.0, -50.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "e4c43fad", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "792d163989d14baa89de66f92cb827c7", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'TXw7QyMuu2rKBBUoxc20FYmoS', 'data': b'x\\xda\\x95]\\xdboo\\xc7U\\xb6\\…" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# visualisation\n", + "SceneWidget(lighting.plantGL_light(printtriangles=False, printvoxels=True), \n", + " position=(-50.0, -50.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/s2v/SORTIES_s2v b/s2v/SORTIES_s2v new file mode 100644 index 0000000..8313705 --- /dev/null +++ b/s2v/SORTIES_s2v @@ -0,0 +1,24 @@ +SORTIES_s2v + + ** s2v.log +* informations sur le déroulement du programme +* statistiques globales pour chaque espèce de la scène : + - LA totale par espèce + - LA totale + - LAI + - distribution zenith globale de l'espèce + + ** s2v.can +copie le triangle en entrée mais avec un attribut en plus : couche en z max auquel appartient le triangle + + ** s2v.area + - chaque ligne : "id du triangle" "couche max en z" "aire du triangle" + + ** out.dang +fichier pour SAIL + - ligne 1 : lai globale pour l'espèce 1 + - ligne 2 : distrib zenith globale pour l'espèce 1 + + ** leafarea +fichier pour SAIL + - chaque ligne : 0 idz "LAI par classe d'inclinaisons dans la couche" 0 0 "LAD sur l'épaisseur" \ No newline at end of file diff --git a/s2v/fort.51 b/s2v/fort.51 new file mode 100644 index 0000000..71ba716 --- /dev/null +++ b/s2v/fort.51 @@ -0,0 +1,5 @@ +p 1 100001001000 3 1.164514 4.472970 4.515880 1.282508 3.524203 4.883970 -0.106773 3.988203 3.570723 +p 1 100001001000 3 2.487949 0.970069 4.303277 2.807932 2.114717 3.015707 2.727567 1.260793 4.176357 +p 1 100001001000 3 2.228481 3.596791 3.425399 2.230021 3.065646 4.904108 2.570435 2.829843 4.365617 +p 1 100001001000 3 0.866265 0.892767 4.264220 -0.190762 -0.629647 4.599549 0.614165 0.780050 4.502412 +p 1 100001001000 3 4.294620 3.054521 4.607150 5.896218 3.271670 3.932476 5.539221 3.942415 3.412786 diff --git a/s2v/leafarea b/s2v/leafarea new file mode 100644 index 0000000..d97b892 --- /dev/null +++ b/s2v/leafarea @@ -0,0 +1,2 @@ + 0 1 0.000000 0.000000 0.000000 0.000000 0.663420 0.090495 0.079505 0.166580 0.000000 0 0 2.492611 + 0 2 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0.000000 diff --git a/s2v/out.dang b/s2v/out.dang new file mode 100644 index 0000000..e38a03b --- /dev/null +++ b/s2v/out.dang @@ -0,0 +1,2 @@ +0.059348 +0.000000 0.000000 0.000000 0.000000 0.663420 0.090495 0.079505 0.166580 0.000000 \ No newline at end of file diff --git a/s2v/s2v++.exe b/s2v/s2v++.exe new file mode 100644 index 0000000000000000000000000000000000000000..640bd2b0b749a41c85e3595f6b3b2ab3a0bc3ca9 GIT binary patch literal 246848 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 N&cLY6?$deO$-jLl+`Iq) literal 0 HcmV?d00001 diff --git a/s2v/s2v.area b/s2v/s2v.area new file mode 100644 index 0000000..b221c45 --- /dev/null +++ b/s2v/s2v.area @@ -0,0 +1,5 @@ +100001001000 0 0.848395 +100001001000 0 0.198175 +100001001000 0 0.415219 +100001001000 0 0.225569 +100001001000 0 0.805254 diff --git a/s2v/s2v.can b/s2v/s2v.can new file mode 100644 index 0000000..f196be9 --- /dev/null +++ b/s2v/s2v.can @@ -0,0 +1,5 @@ +p 2 100001001000 0 3 1.164514 4.472970 4.515880 1.282508 3.524203 4.883970 -0.106773 3.988203 3.570723 +p 2 100001001000 0 3 2.487949 0.970069 4.303277 2.807932 2.114717 3.015707 2.727567 1.260793 4.176357 +p 2 100001001000 0 3 2.228481 3.596791 3.425399 2.230021 3.065646 4.904108 2.570435 2.829843 4.365617 +p 2 100001001000 0 3 0.866265 0.892767 4.264220 -0.190762 -0.629647 4.599549 0.614165 0.780050 4.502412 +p 2 100001001000 0 3 4.294620 3.054521 4.607150 5.896218 3.271670 3.932476 5.539221 3.942415 3.412786 diff --git a/s2v/s2v.cpp b/s2v/s2v.cpp new file mode 100644 index 0000000..8ea6664 --- /dev/null +++ b/s2v/s2v.cpp @@ -0,0 +1,1224 @@ +/* S4 CALCULE LA REPARTITION DANS UNE GRILLE 3D DES SURFACES DES TRIANGLES*/ +/* CONSTITUTIFS D'UNE MAQUETTE, AINSI QUE LA DISTRIBUTION D'ORIENTATION DES*/ +/* NORMALES AUX TRIANGLES. */ +/* Bruno Andrieu */ +/* INRA Bioclimatologie 78850 Thiverval-Grignon */ +/* tel #33 1 30815527 Fax #33 1 30815527 */ +/* Email andrieu@bcgn.inra.fr */ +/* nb1 : Dans la suite on parle indifferement d'inclinaison ou d'angle zenital, ces*/ +/* deux termes represente la meme grandeur. */ +/* nb2 : la maquette peut comprendre plusieurs especes vegetales. */ +/* Dans ce cas l'analyse est faite pour chacune des especes presentes. */ +/* La variable espece est codee via le label associ� a chaque triangle */ +/* (espece= label/10**11) */ +/* nb3 :La structure peut etre de type periodique dans le plan horizontal.*/ +/* (typiquement une periode = un interrang). */ +/* Une maquette periodique est constituee de la repetition d'un motif elementaire.*/ +/* Dans ce cas l'ensemble des triangles est analyse pour calculer les variations*/ +/* moyennes a l'interieur du motif. Dans le plan horizontal, le motif est divise en*/ +/* njx * njy cellules de dimension dx et dy. */ +/* (njx*dx et njy*dy representent la periode en x et y) */ +/* **** **** **** **** */ +/* ****** ****** ****** ****** */ +/* ******** ******** ******** ******** */ +/* ** ** ** ** unite de longueur*/ +/* ** ** ** ** >-----<*/ +/* ** ** ** ** */ +/* ! ! ! ! ! ! ! ! ! ! */ +/* >------------------< ! ! dy = 0.4 et njy = 9*/ +/* longueur = njy*dy */ + +/* >-----------------------------------------------------< */ +/* longueur = yl */ + + +/* nb4 : les dimensions maximales des tableaux sont definis dans le code */ +/* par des commandes parameter. Modifier ces lignes si necessaire pour augmenter*/ +/* le nombre de cellules ou de classes d'angles. */ +/* Donnees en entree: */ +/* ****************** */ +/* Fichier fort.51 contenant les triangles au format can */ +/* (verifier :lecture non formatee ou format libre) */ +/* 1 enregistrement par triangle comprenant */ +/* -type de primitive et attributs. */ +/* On suppose que le premier attribut/1000000 = espece */ +/* -les coordonnees des trois sommets du triangle (reels) */ +/* Fichier de parametres (lecture format libre) */ +/* sur lequel doit etre redirige l'entree standard */ +/* ligne 1 : nji nja */ +/* nji: nombre de classes d'inclinaison */ +/* nja : nombre de classes d'azimuth */ +/* ligne 2 : njz dz(njz) */ +/* njz : nombre de tranches d'altitude */ +/* dz(njz):epaisseur des tranches d'altitude, numerotees du haut */ +/* vers la bas (classe 1= la plus haute) */ +/* ligne 3 : xl,njx,dx,yl,njy,dy,nje */ +/* xl et yl: dimensions totales de la maquette en x et y */ +/* njx njy : nombre de divisions dans un motif en x et en y */ +/* dx, dy : dimensions d'une cellule selon x et y */ +/* nje : nombre d'especes */ +/* ligne 4 : tx, ty, tz */ +/* tx,ty,tz : parametre de translation des sommets tq maq. centree */ +/* Fichier sortie: */ +/* *************** */ +/* Les resultats sont edites dans un fichier fort.60 comprenant */ +/* Dimensions de la maquette */ +/* Nombre de fois ou le motif est repete dans la maquette. */ +/* STATISTIQUES GLOBALES DE CHAQUE ESPECE: */ +/* Statistiques calculees sur toute la maquette: */ +/* Surface foliaire totale et indice foliaire */ +/* Distribution des orientations des normales aux feuilles */ +/* (frequence en zenith et en azimuth ) */ +/* STATISTIQUES PAR CELLULES: */ +/* 1 ligne par cellule et par espece, comprenant: jx,jy,jz,je,u,f(ji) */ +/* jx,jy,jz: numero de cellule en x, y, et z */ +/* je : numero d'espece */ +/* u : densite volumique de surface foliaire */ +/* f(ji) : distribution d'inclinaison dans la cellule */ +/* (c'est a dire frequence en zenith) */ +/* Parametres */ +/* ********** */ +/* levelmax : nombre max de niveaux de subdivision d'un triangle */ +/* njemax */ +/* njxmax */ +/* njymax */ +/* njzmax */ +/* njimax */ +/* njamax */ +/* nattmax */ +/* Compilation et Execution: */ +/* ************************* */ +/* g++ -o s4++ s4.C -I../../bibliotek -I. -lm*/ +/* s4 //.h> +#include //.h> +using namespace std ; + +#include +#include + +#include + + +#include +#ifndef __GNUG__ +#ifndef WIN32 +#include "bool.h" +#endif +#endif + +#include +#include + +#include + +#ifdef WIN32 +#include // Mem partag�e via CerateFileMapping/MapViewOfFile +#endif + +#include + +#define NattMax 10 +#define LevelMax 6 //4:3,6 +// CF 2016 : directly read nje in opt files +//#define NBOPT 10 + +#define max(a,b) ((a>b)?a:b) +#define min(a,b) ((a defini dans transf.h + +/*************** Prototypes ********************/ +double lectri(signed char&,char&,int&,long [],int&,Patch&,FILE *); +int repart(Patch ,char, int); +void calcjp(Patch, int[3][3], char&); +void classe(double, int&); +// BUG multi-specie - MCoct2010 : void affect(Patch,int*); +void affect(Patch,int*, int); +double proscal(double*, double*); +void provec(double*, double*, double*); +void norme(double*, double*); +void normal(Patch&, double&, double&); +double area(Patch &T); +// CF 2016 read number of optical species in opt file +void lect_nopt(int *nopt,char *optname); +void lect_po( Tabdyn &Tpo,int po,char *optname); +int isid(char *name); + +// Secured file close +void Sfclose(FILE ** fic, int line=161) ; // HA nov 2003 + +/**********************************************************/ + +int ji,ja,nbz=0,nbzm=0; +int nbpatc=0; +short je; +int njx,njy,njz; +//int jp[3][3]; +double dx, dy, proscal_to_surf; +double *dz = NULL,*bz = NULL; +int i,j,k,po,npo=0; +Tabdyn xladia; //je, jz, theta, phi +Tabdyn xpo;//je,jz,po,(Rf,Tf) +Tabdyn Tpo; + +double Rs[1000], Stot; +unsigned int nbtt,nbts; +#ifndef WIN32 +extern int errno; +#endif + +#ifndef WIN32 +#ifdef _IPC_SGI +struct shmid_ds info; +#else +// shminfo seginf; +#endif +#else +// AFAIRE ?? +#endif + +// Indice du premier fichier de propri�t�s optiques +#define MIN_ARGC 6 +#define MIN_OPT (MIN_ARGC-1) + +bool segpar=false,genopt=false; + +ferrlog Ferr((char*)"s2v.log") ; + +int s2v(int argc, char **argv){ + //int main(int argc, char **argv){ + int nja,nji,nje, nje_reel=-1, cptr=0; + char ntype,optname[200]; + signed char test; + int natt,nsom; + int jx,jy,jz,il; + double xl,yl,dxdy,zl; + double di,da,xymaille; + Patch *Ts = NULL; + Patch T; // def. Transf.h + long i_att[NattMax]; + FILE *fpar=NULL, *fmlsail=NULL, *fsail=NULL, + *ftri=NULL, *fsurf=NULL ; + Tabdyn xlad;// je, jz + Tabdyn xladi;//jz, jz, ji + Tabdyn disti; + Tabdyn dista; + double *xlai = NULL; + double *surft = NULL, *volume = NULL; + int Nt,it=0, clef; + bool gencan=true; + double id; + +#ifndef WIN32 + int shmid ; // Id du segment de mem. partag�e +#else + char clef_alphanum[12] ; // version char* de la clef numerique + HANDLE hSharedSeg ; // Handle du fichier mapp� + LPVOID lpSharedSeg ; // pointeur LPVOID sur seg. partag� +#endif + + for(i=0;i1 &&argc< MIN_ARGC){ + Ferr<<" Syntax error: "<< argv[0] ; + Ferr<<" [shm_id nz Dz file.8 file_1.opt ... file_n.opt]"<<'\n'; + Ferr << "\t MC2005"<<'\n'; + return -1; + } + + // Initialisation + Stot=nbtt=nbts=0; + fmlsail=fopen("leafarea","w"); + fsail=fopen("out.dang","w"); + if(argc>1){// by shared memory (called by caribu) + genopt=true; + if(isid(argv[1])){//by seg + Ferr<<"Scene coming through a shm_seg"<<'\n'; + clef=atoi(argv[1]); + DecodeClefOut(&Nt, &clef, clef); + /* Nt=clef/100; + clef%=100; */ + segpar=true; +#ifndef WIN32 + shmid=shmget((key_t)clef,SEGSIZE*sizeof(Patch) ,IPC_CREAT|0666); + Ts=(Patch *)shmat(shmid,0,NULL); +#else + sprintf ( clef_alphanum, "%d", clef) ; + assert ((hSharedSeg = OpenFileMapping ( + FILE_MAP_ALL_ACCESS, + FALSE, + clef_alphanum)) != NULL ) ; + + lpSharedSeg = MapViewOfFile ( + hSharedSeg, + FILE_MAP_ALL_ACCESS, + 0, + 0, + SEGSIZE*sizeof(Patch) ) ; + assert ( lpSharedSeg != NULL ) ; + Ts = (Patch *)lpSharedSeg ; +#endif + }else{ + segpar=false; + Ferr<<"Scene coming through the file "< Ouverture de "<=0;i--){ + dz[i]=zl; + if(i==njz-1) + bz[i]=dz[i]; + else + bz[i]=dz[i]+bz[i+1]; + Ferr<<":: bz("< Ouverture de "< Ouverture de fort.51 achoppee..."<<'\n'; + return -2; + }// if ftri + Ferr<<"Lecture du fichier parametre dans fichier : "<<'\n'; + fscanf(fpar,"%d %d %d",&nji,&nja,&njz); + printf("nji=%d, nja=%d, njz=%hd \n",nji,nja,njz); + Ferr <<"nji="< fort.51: old use) + + //alloc des tableaux de resultats + xlai= new double[nje]; + surft=new double[nje]; + for(i=0;i T + T.t=Ts[it].t; + for(char ii=0;ii<3;ii++) + for(char jj=0;jj<3;jj++) + T.P[ii][jj]=Ts[it].P[ii][jj]; + + // Bug MC09: if(T.t<0) + if(T.t > 0) + i_att[0]=1;// Transparent: feuille + else + i_att[0]=0; //Opak: Tige + + if(T.t==0) test=-1; + + je=fabs(double(T.t))-1; + + if(je+1>nje_reel)nje_reel=je+1; + //printf("it=%d/%d :: T.t=%d, je=%d\n",it,Nt,T.t,je); + it++; + + } + else{ + id=lectri(test,ntype,natt,i_att,nsom,T,ftri); + //printf(">dbg apres call lectri, test = %d\n", test); + if(test==1){ + long opak; + nbtri++; + //i_att[0] = label1/1000 + je=(i_att[0]/100000000)-1; //je : de 0 � nje (indice tableau C) + if(je+1>nje_reel)nje_reel=je+1; + // Bug MC09 T.t=je+1; + T.t= - je+1; // default OPak + if(je==-1) test=-2;//Sol + opak= i_att[0] - i_att[0]/1000*1000; + // dbug: printf("i_att=%ld, iatt/1e3=%ld \n",i_att[0],i_att[0]/1000); + // MC09 i_att[0]=i_att[0]%1000; + i_att[0]=T.t=(opak>0)?1:0; + //if(i_att[0]>0) T.t= -T.t; + // i_att[0] = 1 => Transparent: feuille + // i_att[0] = 0 => Opak: Tige + // printf("> s2v: lectri() => id:%.0f, opak=%ld, i_att[0]=%ld, je=%d, T.t=%d\n",id, opak,i_att[0], je, T.t); + } + }//else segpar + + //debug MC2011 + // printf(">>>> Apres lcture fichier fort.51 nje = %d, nje_reel =%d\n", nje, nje_reel) ; + if(test>-1){ + // fprintf(stderr,"label=%d, esp=%d, nbid=%d ,nbs=%d\n",i_att[0],je,natt,nsom); + if((je<0)&&(je>=nje)&&(natt<=0)&&(natt>NattMax)&&(nsom!=3)){ + fprintf(stderr,"*** Incorect data format in fort.51 file -> break\n"); + exit(-1); + } + // feuille ou tige pour le coef de surface + proscal_to_surf=0.5; + if(i_att[0]==0) + proscal_to_surf=0.25; + // Orientation discrete du triangle + double incl,azi; + // for(i=0;i<3;i++)for(j=0;j<3;j++) printf("T(%d,%d) = %lf\n",i,j,T[i][j]); + + normal(T,incl,azi); + ji = (int)(incl/di); + ja = (int)(azi/da); + //ji = min(nji-1,max(0,ji)); + //ja = min(nja-1,max(0,ja)); + ji = min(nji-1, ji); + ja = min(nja-1,ja); + + // printf("inc=%lf, azi=%lf => ji=%d, ja=%d\n",incl,azi,ji,ja); + //calcul recursif des coord discretes du T et du cas cheval + //printf("Repart called 1, je=%d\n", je); + // for(int q=0;q<3;q++) printf("Patch(%d,2)=%g\n",q,T.P[q][2]); + if(je>=0){ + il=repart(T,0, je); + //printf(">>>> apres call repart: je =%d \n",je); + } + if(gencan){ + if(segpar) { + id=(int)T.t; + } + sT=area(T); + fprintf(fsurf,"%.0lf\t %d\t %g\n",id,il,sT); + fprintf(fcan,"p 2 %.0lf %d 3 ",id,il); + + for(char ii=0;ii<3;ii++) + for(char jj=0;jj<3;jj++) + fprintf(fcan,"%lf ", T.P[ii][jj]); + + fprintf(fcan,"\n"); + } + }//if triangle et non sol + + if(test==-2 && gencan){//cas du sol + //printf("==>test=%d\n",test); + sT=area(T); + fprintf(fsurf,"0 \t\t 999\t %g\n",sT); + fprintf(fcan,"p 2 0 999 3 "); + + for(char ii=0;ii<3;ii++) + for(char jj=0;jj<3;jj++) + fprintf(fcan,"%lf ", T.P[ii][jj]); + fprintf(fcan,"\n"); + } + //printf("> dbg: juste avant while(!segpar && feof(ftri): cptr = %d\n", cptr++); + }while((!segpar && !feof(ftri)) || (segpar && (it dbg: juste apres while(!segpar && feof(ftri)\n"); + + printf("\n*** nbtri=%d, nbpatch=%d\n\n",nbtri, nbpatc); + + if(segpar){ +#ifndef WIN32 + shmdt((void*)shmid); //ShMDetach +#else + UnmapViewOfFile(lpSharedSeg) ; // invalidation du ptr sur mem partagee + // Ts = NULL ; // Tester avant + CloseHandle(hSharedSeg) ; // Fermeture du fichier mapp� +#endif + Ferr<< "-> Fin de lecture du segment partage: "< Calcul des distributions"<<'\n'; + }else{ + Sfclose(&ftri,__LINE__); + Ferr<<__FILE__<<":"<<__LINE__<<" -> Fin de lecture de fichier\n"; + Ferr <<"=> Calcul des distributions"<<'\n'; + } + printf(">>>> Apres lcture fichier fort.51 nje = %d, nje_reel =%d\n", nje, nje_reel); + Ferr<<"==> nje rel = "< Error No triangle dealt"<<'\n'; + else{ + for (jz=0; jz debut boucle nje =%d\n\n", nje);fflush(stdout); fflush(stderr); + double tmp; + /* Inversion de l'ordre des boucles en mettant je en 1er pour eviter les cas + ou une couche ne contient pas une espece et pour faire des calculs + especes confondues - MC98 */ + int ii=0; + // bug mai 2011 + jx=jy=0; // jy n'avait pas l'air d'etre init et il n'y a pas de bocle sur x et y + for (jz=0; jz> (jz=%d, je=%d, ji=%d) \n",jz,je,ji); + fflush(stdout);fflush(stderr); + } + tmp=xladia(je,jz,ji,ja); + xladi(je,jz,ji) += tmp; + + disti(je, ji) += tmp; + dista(je, ja) += tmp; + surft[je] += tmp; + }//for ja + xlad(je, jz) +=xladi(je, jz, ji); + // xladi(je, jz, ji)=ii++; //dbug mc 2010 + // dbug: printf(">> xladi(jz=%d, je=%d, ji=%d) =%.0lf\n",jz,je,ji, xladi(je, jz, ji));fflush(stdout);fflush(stderr); + }//for ji + /* passage aux frequences d'angles.... */ + if (xlad(je,jz) > 0) { + tmp=xlad(je, jz); + for (ji=0; ji < nji; ji++) { + xladi(je, jz, ji) /= tmp; //bug fix� - mai 2011 + }//for ji + }//if xlad>0 + }//for je + }//for jz + // dbug: printf("big loop : subT=%lf, surft=%lf\n", nbts/(double)nbtt,surft[0]);fflush(stdout); + + + //dbug + for (jz=0; jz0) + dista(je, ja) /= surft[je]; + } + for (ji=0; ji0) + disti(je, ji) /= surft[je]; + } + }//for je + /* Calcul de l'indice foliaire */ + for (je=0; je Ecriture des resultats : (c|std)err, leafarea, out.dang"<<'\n'; + // stdout + if(nbz>0) + Ferr<<"Il y a eu "<0) + Ferr<<"Il y a eu "< entree de sailM pour calculer la BRDF + Ferr << "genere le fichier out.dang => entree de sailM pour calculer la BRDF"<<'\n' ; + //if (fsail == NULL){Ferr <<"! le FILE *fsail est NULL"<<'\n'; //HA } + + fprintf(fsail,"%lf\n",xlai[0]); + for (ji=0; ji0.){ // -1000 MCoct2010 debug + printf("\n %d %d \t %7.6lf\t ",jz+1,je+1,(xlad(je,jz)/volume[jz])); + for(ji=0;ji-S2EPSILON)) { + Uz = Uz<0 ? -S2EPSILON : S2EPSILON ; + Ferr << "\t: xx= "<< xx<<" ; Uz= "<dbg: genere fichier spectral\n"); + for(po=0;po0){ + xx=xlad(je,jz);// /(double)nje; + x+=xx; + Rf+=xpo(je,jz,po,0); + Tf+=xpo(je,jz,po,1); + //printf("=> po(je=%d/%d)=%g, Rfz=%g, Rft=%g\n",je,nje,xpo(je,0,0,jz,po,0),xpo(je,0,0,jz,po,0)*100./xx, Rf*100./x); + //printf(" => xx=%g,x=%g\n",xx,x); + } + //else printf(" pas de p.o. car lai nul\n"); + }//for je + if(x>0){ + Rf*=100./x; + Tf*=100./x; + } + + fprintf(fpar,"%.3lf %.3lf\n",Rf,Tf); + } + Sfclose(&fpar,__LINE__); + //Genere le fichier CROPCHAR degenere necessaire a MCsail + fpar=fopen("cropchar","w"); + fprintf(fpar,"%d\n %d %lf\n",nji,njz,dz[0]); + Sfclose(&fpar,__LINE__); + }//for po + }//if genopt + }//else pas de triangles a traiter + // Clean up + if(gencan){ + Sfclose(&fcan,__LINE__); + Sfclose(&fsurf,__LINE__); + } + Sfclose(&fsail,__LINE__); + Sfclose(&fmlsail,__LINE__); + + if (xlai!=NULL) + delete [] xlai ; + else + Ferr <<__LINE__<<" : ptr Null"<<'\n'; + + if ( surft != NULL) + delete [] surft; + else + Ferr <<__LINE__<<" : ptr Null"<<'\n'; + + if (dz != NULL) + delete [] dz; + else + Ferr <<__LINE__<<" : ptr Null"<<'\n'; + + if (volume != NULL) + delete [] volume; + else + Ferr <<__LINE__<<" : ptr Null"<<'\n'; + + if (bz != NULL) + delete [] bz; + else + Ferr <<__LINE__<<" : ptr Null"<<'\n'; + + Tpo.free(); + disti.free(); + dista.free(); + xlad.free(); + xladi.free(); + xladia.free(); + xpo.free(); + + Ferr.close(); + return 0; +}//main() + + +/************************* +******* lectri() ******* +**************************/ +double lectri(signed char &test,char &ntype,int &natt,long i_att[],int &nsom,Patch&T,FILE *fichier){ + char fin; + int ent; + double it,p0,p1,p2,lab; + + // Ferr <<"==> lectri() : DEBUT"<<'\n'; + test=fscanf(fichier, "%c",&fin);//ntype); + ntype=fin; + if(ntype!='p') test=-10; + if(test==-10){ return -1;} + fscanf(fichier, "%d", &natt); + for (i=0; i lectri() : FIN"<<'\n'; + return lab; +}// lectri() + +/**************************************************************************/ +int repart(Patch T,char level, int je){ + Patch exT,ssT; + char acv; + int jp[3][3]; + double G[3]; + int il=-10,iln; + //Ferr<<" => repart called"<<'\n'; + // Ferr<<"\t** debut repart "<<'\n'; + //printf(">>> repart(): DEBUT\n"); + level++; + for(i=0;i<3;i++) + for(j=0;j<3;j++){ + exT.P[i][j]=T.P[i][j]; + } + exT.t=T.t; + calcjp(exT,jp,acv); + if (acv==0) { + // T appartient a une seule cell + //printf("Non ACV: T appartient a une seule cell \n"); + + G[2]=(exT.P[0][2]+exT.P[1][2]+exT.P[2][2])/3.; + if(G[2]>=0){ + //printf(">dbg Avant call affect...\n"); + affect(exT,jp[0], je); + il=jp[0][2]; + //printf("Non ACV: level = %d\n",(int)level); + //if(level>1){nbtt++;nbts++;} + }else{ + + nbzm++; + il= -2; + //printf("else Non ACV: il = %d, nbzm=%d\n",(int)il, nbzm); + + } + }else{ + if(level==LevelMax){ + // niveau subdiv max atteint => on stocke dans la cell de G + //printf("ACV mais levalMax: level = %d\n",(int)level); + for(i=0;i<3;i++) + G[i]=(exT.P[0][i]+exT.P[1][i]+exT.P[2][i])/3.; + if(G[2]>=0){ + jp[0][0]=(int)(G[0] / dx); + jp[0][1]=(int)(G[1] / dy); + classe(G[2], jp[0][2]); + affect(exT,jp[0],je); + il=jp[0][2]; + // printf("...> nbt=%d\n",nbtt); + //nbtt++; + } + else{ + nbzm++; + il= -1; + } + } + else{ + //on subdivise le T en 4 + + // calcul les milieux + for (j=0; j<3; j++) + for (i=0; i<3; i++) + ssT.P[j][i]=(exT.P[j][i]+exT.P[(j+1)%3][i])/2.; + + for (i=0; i<3; i++){ + T.P[0][i]=exT.P[0][i]; + T.P[1][i]=ssT.P[0][i]; + T.P[2][i]=ssT.P[2][i]; + } + //for(int q=0;q<3;q++) printf("Sub1(%d,2)=%g\n",q,T.P[q][2]); + iln=repart(T,level,je); + il=max(il,iln); + for (i=0; i<3; i++){ + T.P[0][i]=ssT.P[0][i]; + T.P[1][i]=exT.P[1][i]; + T.P[2][i]=ssT.P[1][i]; + } + // for(int q=0;q<3;q++) printf("Sub2(%d,2)=%g\n",q,T.P[q][2]); + iln=repart(T,level,je); + il=max(il,iln); + for (i=0; i<3; i++){ + T.P[0][i]=ssT.P[1][i]; + T.P[1][i]=ssT.P[2][i]; + T.P[2][i]=exT.P[2][i]; + } + //for(int q=0;q<3;q++) printf("Sub3(%d,2)=%g\n",q,T.P[q][2]); + iln=repart(T,level,je); + il=max(il,iln); + for (i=0; i<3; i++){ + T.P[0][i]=ssT.P[0][i]; + T.P[1][i]=ssT.P[1][i]; + T.P[2][i]=ssT.P[2][i]; + } + // for(int q=0;q<3;q++) printf("Sub4(%d,2)=%g\n",q,T.P[q][2]); + iln=repart(T,level,je); + il=max(il,iln); + } + } + //Ferr<<"\t** sortie repart "<<'\n'; + // printf(">>> repart(): sortie il=%d\n", il); + return il; +}//repart() + + +/**************************************************************************/ +void calcjp(Patch T, int jp[3][3], char &acv){ + /* Calcul des positions en unites dx dy dz */ + /* nb: le mode d'affectation est tel que la position (0,0,1) est centree sur (0, 0, 0.5*bz(njz))*/ + int itest12=0,itest13=0; + + nbtt++; + // Ferr<<"** calcjp() : Debut"<<'\n'; + //Ferr << "dx= "<= bz[0]){ + nbz++; + // printf("=> Depasst en z+: %.3lf >= %.3lf\n",z,bz[0]); + } + if (z <0){ + jz=-10; + }else{ + /* if (z.lt.0.0) print *,"subroutine class : z negatif :",z */ + for (j=1; j bz[j]) { + arret=1; + break; + }//if + }//for + if(arret==1) + jz = j-1; + else + jz = njz-1; + } + // return jz; +}// classe() + +/*******************************************************************/ + // BUG multi-specie - MC oct 2010 + //void affect(Patch T,int *jp){ +void affect(Patch T,int *jp, int je){ + + double a[3], b[3], c[3]; + int jx, jy, jz,po; + double surftri; + + /* mise a jour du tableau xladia avec un triangle dont les 3 sommets appar tiennent a une meme cellule + */ + jz = jp[2]; + /* decalage de 1 et prise en compte de possibles coordonnees negatives */ + + for (i = 0; i < 3; i++) { + a[i] = T.P[1][i] - T.P[0][i]; + b[i] = T.P[2][i] - T.P[0][i]; + } + provec(a, b, c); + surftri = proscal_to_surf * sqrt(proscal(c, c)); + Stot+=surftri; + nbpatc++; + //printf("surftri=%lf\n",surftri); + //printf("affect() je=%d, jx=%d, jy=%d, jz=%d, ji=%d et ja=%d\n",je,jx,jy,jz,ji,ja); + // printf("affect() je=%d, T.t=%d, [%.2lf,%.2lf,%.2lf]\n",je,T.t,Tpo(1,fabs(T.t),0),Tpo(1,fabs(T.t),1),Tpo(1,fabs(T.t),2)); + xladia(je, jz, ji, ja) += surftri; + //printf(">>> affect(): avnt call norme()\n"); + //CF 2016: do not compute norme if triangle area is zero + if (surftri > 0) + norme(c,c); + //printf(">>> affect(): je = %d\n",je); + if(genopt){ + for(po=0;po0 = transparent, T.t<=0 = opak !! + //BUG if(T.t<0){//Transparent + if(T.t>0){//Transparent + xpo(je, jz,po,0)+=surftri*Tpo(po,je,1); //Rf + xpo(je, jz,po,1)+=surftri*Tpo(po,je,2); //Tf + //printf("> affect(): cas transperentt: je=%d, jz=%d :: surftri=%.3g, Tpo(%d,%d,0)=%g\n",je,jz,surftri,po,T.t,Tpo(po,je,0)); + }else{//Opak + printf("> affect() :Cas opak: Tpo(%d,%d,0)=%g\n",po,T.t,Tpo(po,je,0)); + xpo(je, jz,po,0)+=surftri*Tpo(po,je,0); //Rt + } + }//for po + }//if segpar +}// affect() + + +/***********************************/ +double proscal(double *a, double *b){ + double ret_val; + ret_val = 0; + for (i = 0; i < 3; i++) { + ret_val += a[i]*b[i]; + } + return ret_val; +}// proscal() + +/********************************************/ +void provec(double *a, double *b, double *c){ + c[0] = a[1] * b[2] - a[2] * b[1]; + c[1] = -a[0] * b[2] + a[2] * b[0]; + c[2] = a[0] * b[1] - a[1] * b[0]; +}// provec() + +/*****************************************************************/ +void norme(double *x, double *xn){ + double xnor; + + xnor = sqrt(proscal(x, x)); + if (xnor < 1e-20){ + fprintf(stderr, " s2v.cpp: norme() erreur: nombre=%g < 1e-20!! => exit(-1)\n", xnor); + exit(-1); + } + for(i=0; i<3; i++) + xn[i] = x[i] / xnor; +}// norme() + + +/***********************************************************************/ +void normal(Patch &T, double &zen, double &az){ + double u, v, w, r2, r1, p3p2[3]; + + //printf("normal() : Debut\n"); + for (i = 0; i < 3; i++) { + //printf("(%d) :%lf - %lf\n",i,T.P[1][i], T.P[2][i]); + p3p2[i] = T.P[1][i] - T.P[2][i]; + } + u= T.P[0][1]*p3p2[2] - T.P[0][2]*p3p2[1] + T.P[1][1]*T.P[2][2] - T.P[2][1]*T.P[1][2]; + v= -T.P[0][0]*p3p2[2] + T.P[0][2]*p3p2[0] - T.P[1][0]*T.P[2][2] + T.P[2][0]*T.P[1][2]; + w= T.P[0][0]*p3p2[1] - T.P[0][1]*p3p2[0] + T.P[1][0]*T.P[2][1] - T.P[2][0]*T.P[1][1]; + r2 = u*u + v*v; + if (r2 == 0) { + zen = 0; + az = 0; + } + else{ + r1 = sqrt(r2); + zen = acos(fabs(w/sqrt(r2+w*w))) * 57.29577951; + az = atan2(u/r1, v/r1) * 57.29577951; + if (az < 0) { + az += 360; + } + } + // printf("normal() : Fin\n"); +} // normal() +/***********************************************************************/ +double area(Patch &T){ + double a[3], b[3], c[3]; + int i; + for (i = 0; i < 3; i++) { + a[i] = T.P[1][i] - T.P[0][i]; + b[i] = T.P[2][i] - T.P[0][i]; + } + provec(a, b, c); + return proscal_to_surf * sqrt(proscal(c, c)); +} // area() + + +/***********************************************************************/ +void synterr(char * fname,int l){ + Ferr<< " Syntax error in the file "< Error(lect_po) unable to open "<>c; l++; + if(!fopti) break; + switch(c) { + case '#': + case 's': + case 'e': + fopti.getline(line,256); + break; + case 'n': + fopti >> *nopt; + fopti.getline(line,256); + break; + default : + synterr(optname,l); + }//switch c + if (c == 'n') + break; + } while(fopti); + fopti.close(); +}//lect_nopt() + + + +void lect_po( Tabdyn &Tpo,int po,char *optname){ + ifstream fopti(optname,ios::in); + char c, line[256]; + double Rt,Rf,Tf; + int l=0,esp=0; + if (!fopti){ + Ferr << " Error(lect_po) unable to open "<>c; l++; + if(!fopti) break; + switch(c) { + case '#': + case 'n': + fopti.getline(line,256); + break; + case 's': + fopti>>c; if(c!='d') synterr(optname,l); + fopti>>Rs[po]; + fopti.getline(line,256); + break; + case 'e': + //BRDF type : d + fopti>>c; if(c!='d') synterr(optname,l); + Rf=Tf=0; + // stem reflectance + fopti>>Rt; + Tpo(po,esp,0)=Rt; + //BRDF type : d + fopti>>c; if(c!='d') synterr(optname,l); + // upper leaf Rf and Tf + fopti>>Rf>>Tf; + //BRDF type : d + fopti>>c; if(c!='d') synterr(optname,l); + //lower leaf Rf => equivalent Rf + fopti>>Rt; Rf=(Rf+Rt)/2.; + //lower leaf Tf => equivalent Tf + fopti>>Rt; Tf=(Tf+Rt)/2.; + //printf("Rf(%d)=%.4g, Tf=%.4g\n",po,Rf,Tf); + Ferr << "Rf("< +//#include +#include + +FILE *fichier; + +ouvre_(nomfich) +char nomfich[]; +{ fichier=fopen(nomfich, "r"); } + +ferme_() +{ fclose(fichier); } + +lecpol_(test,ntype,natt,i_att,nsom,poly) +char *ntype; +int *natt,*nsom,*test; +double i_att[]; +float poly[]; + +{ +int ib,ic; +char fin; +lecture: + + *test=fscanf(fichier, "%c",ntype); if(*test==-1) return; + + fscanf(fichier, "%d", natt); + for (ib=0; ib<*natt; ib++) fscanf(fichier, "%lf", &i_att[ib]); + fscanf(fichier, "%d", nsom); + ic=0;for (ib=0;ib<*nsom;ib++) {fscanf(fichier, "%f%f%f", &poly[ic],&poly[ic+1],&poly[ic+2]);ic+=3;} + + do { fscanf(fichier, "%c", &fin); } while(fin!='p' && !feof(fichier)); + + if(!feof(fichier)) fseek(fichier,-sizeof(char),SEEK_CUR); + + /* + printf("fichier=%d \n", fichier); + printf("ntype=%c natt=%d\n", *ntype, *natt); + for (ib = 0; ib < *natt; ib++) printf("iatt(%d) = %ld \n",ib, i_att[ib]); + printf("nsom=%d\n", *nsom); + ic=0;for (ib=0;ib<*nsom;ib++) {printf("sommet %d %d %f %f %f\n",ib,ic,poly[ic],&poly[ic+1],&poly[ic+2]);ic+=3;} + */ +} + + + + + + + + diff --git a/s5/lecpol.o b/s5/lecpol.o new file mode 100644 index 0000000000000000000000000000000000000000..5d170da70f56a05bfe11414d0b5069f74c4e5fcb GIT binary patch literal 2002 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 literal 0 HcmV?d00001 diff --git a/s5/s5.f b/s5/s5.f new file mode 100644 index 0000000..30be46d --- /dev/null +++ b/s5/s5.f @@ -0,0 +1,610 @@ +c S5 CALCULE LA REPARTITION DANS UNE GRILLE 3D DES CARACTERISTIQUES D'UNE MAQUETTE INFORMATIQUE +c DENSITE VOLUMIQUE DES SURFACES DES TRIANGLES +c DISTRIBUTION D'ORIENTATION DES NORMALES AUX TRIANGLES +c DENSITE VOLUMIQUE DES VARIABLES SURFACIQUES ASSOCIEES (ATTRIBUTS). + +c AUTEUR: +c Bruno Andrieu +c INRA Bioclimatologie 78850 Thiverval-Grignon +c tel #33 1 30815527 Fax #33 1 30815527 +c Email andrieu@bcgn.inra.fr + +c nb1: la maquette peut comprendre plusieurs especes vegetales. +c Dans ce cas l'analyse est faite pour chacune des especes presentes. +c La variable espece est codee via le label associ� a chaque triangle +c (espece= label/10**11) + +c nb2: La structure peut etre de type periodique dans le plan horizontal. +c (typiquement une periode = un interrang). +c Une maquette periodique est constituee de la repetition d'un motif elementaire. +c Dans ce cas l'ensemble des triangles est analyse pour calculer les variations +c moyennes a l'interieur du motif. Dans le plan horizontal, le motif est divise en +c njx * njy cellules de dimension dx et dy. +c (njx*dx et njy*dy representent la periode en x et y) + +c **** **** **** **** +c ****** ****** ****** ****** +c ******** ******** ******** ******** +c ** ** ** ** unite de longueur +c ** ** ** ** >-----< +c ** ** ** ** +c ! ! ! ! ! ! ! ! ! ! +c >------------------< ! ! dy = 0.4 et njy = 9 +c longueur = njy*dy +c +c >-----------------------------------------------------< +c longueur = yl +c +c +c nb3: Le label est decode pour determiner si le triangle lu appartient a une +c feuille (element surfacique) ou a une tige (element volumique). Dans ce dernier cas, la +c surface du triangle est ponderee par 0.5 pour les calculs de densite de surface foliaire. +c Ainsi la surface foliaire associee a un volume est la moitie de sa surface developpee. +c Ceci est coherent avec le fait que la surface prise en compte pour une feuille est calculee +c pour une seule face de la feuille. +c +c nb4: Pour ce qui est de la densite volumique des attributs (variables associees aux triangles): +c On suppose que les attributs representent des donnees surfaciques. Si les triangles +c representent la surface englobante d'un volume, le traitement d'attributs relatifs a ce volume +c ne peut se faire que si ces attributs sont presentes comme des variables surfaciques +c reparties sur la surface englobante. +c +c nb5: les dimensions maximales des tableaux sont definies dans le code +c par des commandes parameter. Modifier ces lignes si necessaire pour augmenter +c le nombre de cellules ou de classes d'angles. + + +c Donnees en entree: +c ****************** + +c Fichier fort.51 contenant les triangles au format can +c (verifier :lecture non formatee ou format libre) +c 1 enregistrement par triangle comprenant +c -type de primitive, nombre d'attributs, liste des attributs +c -nombre de sommets et coordonnees des trois sommets du triangle (reels) + +c Fichier de parametres (lecture format libre) +c sur lequel doit etre redirige l'entree standard +c ligne 1 : nje nji nja njz njs +c nje : nombre d'especes +c nji : nombre de classes de zenith +c nja : nombre de classes d'azimuth +c njz : nombre de tranches d'altitude +c njs : nombre d'attributs dont on veut calculer la repartition spatiale +c (en plus du calcul de la repartition de la densite volumique) +c ligne 2 : dz(njz) +c dz(njz):epaisseur des tranches d'altitude, numerotees du haut +c vers la bas (classe 1= la plus haute) +c ligne 3 : lisel(njs) +c lisel(njs): liste des numeros d'attributs dont on veut calculer +c la repartition spatiale (le label est le numero 1) +c ligne 4 : xl,njx,dx,yl,njy,dy +c xl et yl: dimensions totales de la maquette en x et y +c njx njy : nombre de divisions dans un motif en x et en y +c dx, dy : dimensions d'une cellule selon x et y + + +c Fichier sortie: +c *************** + +c Les resultats sont edites dans un fichier fort.60 comprenant + +c Dimensions de la maquette +c Nombre de fois ou le motif est repete dans la maquette. + +c STATISTIQUES GLOBALES DE CHAQUE ESPECE: +c Statistiques calculees sur toute la maquette: +c Surface foliaire totale et indice foliaire +c Distribution des orientations des normales aux feuilles +c (frequence en zenith et en azimuth ) + +c STATISTIQUES PAR CELLULES: +c 3 lignes par cellule et par espece: +c l1 -> je,jx,jy,jz,xvol(,,,,i) +c l2 -> f(ji) +c l3 -> f(ja) +c je : numero d'espece +c jx,jy,jz : numero de cellule en x, y, et z +c xvol(,,,,1) : densite volumique de surface foliaire. +c xvol(,,,,i+1): densite volumique du ieme attribut selectionne par lisel(i) +c f(ji) : distribution d'angle zenital dans la cellule +c f(ja) : distribution d'azimuth dans la cellule + + + +c Parametres +c ********** + +c levelmax: nombre max de niveaux de subdivision d'un triangle +c njemax : nombre max d'especes +c njxmax : nombre max de subdivisions spatiales selon x +c njymax : nombre max de subdivisions spatiales selon y +c njzmax : nombre max de subdivisions spatiales selon z +c njimax : nombre max de classes de zenith +c njamax : nombre max de classes d'azimuth +c nattmax : nombre max d'attributs (le label compte pour 1) + + +c Compilation et Execution: +c ************************* + +c f77 -extend_source -O s5.f lecpol.o -o s5 +c s5 0 : + if plt_cmap == "Greens" : + value = ratpgrid.s_vx[k-1] + elif plt_cmap == "seismic" : + value = outputs[outputs.Voxel==k]["PARa"].values[0] + + mat = colormap(value) + mat.transparency = transparency + + vectrans = (float(ratpgrid.xorig + (0.5 + x) * ratpgrid.dx ), + float(ratpgrid.yorig + (0.5 + y) * ratpgrid.dy ), + float(ratpgrid.dz[z:ratpgrid.njz].sum()-ratpgrid.zorig) - 0.5 * ratpgrid.dz[z] ) + shape = pgl.Shape(pgl.Translated(vectrans, pgl.Box(vsize)), mat) + scene.add(shape) + return scene \ No newline at end of file diff --git a/src/lightvegemanager/stems.py b/src/lightvegemanager/stems.py index b95f157..6cc3e25 100644 --- a/src/lightvegemanager/stems.py +++ b/src/lightvegemanager/stems.py @@ -38,6 +38,9 @@ def manage_stems_for_ratp(stems_id, matching_ids, ratp_parameters) : :raises ValueError: if too many stems elements are identified comparing to the total number of elements cumulated over all species """ + if stems_id is None: + return + if len(stems_id) > len(matching_ids) : raise ValueError("Too many stems elements ") diff --git a/src/lightvegemanager/tool.py b/src/lightvegemanager/tool.py index 1c7dd01..059f500 100644 --- a/src/lightvegemanager/tool.py +++ b/src/lightvegemanager/tool.py @@ -214,8 +214,8 @@ def build(self, geometry={}, global_scene_tesselate_level=0): """ # pre-check of scenes input, if it has only one triangle or one list of triangles if isatriangle(geometry) or all(isatriangle(s) for s in geometry): - geometry = {"scenes" : geometry} - + geometry = {"scenes": geometry} + self.__geometry = geometry # First process of the scenes list, it gathers all triangulations @@ -252,11 +252,27 @@ def build(self, geometry={}, global_scene_tesselate_level=0): "Conversion from voxels grid to triangles \ is not possible yet" ) + if "stems id" not in self.__geometry: + self.__geometry["stems id"] = None + + # build sensors + if "sensors" in self.__lightmodel_parameters and self.__lightmodel_parameters["sensors"][0] == "grid": + dxyz = self.__lightmodel_parameters["sensors"][1] + nxyz = self.__lightmodel_parameters["sensors"][2] + orig = self.__lightmodel_parameters["sensors"][3] + arg = (dxyz, nxyz, orig, self.__pmax, self.__complete_trimesh, self.__matching_ids, None, True) + sensors_caribu, sensors_plantgl, Pmax_capt = create_caribu_legume_sensors(*arg) + + self.__sensors_plantgl = sensors_plantgl # Builds voxels grid from input geometry elif self.__lightmodel == "ratp": # number of input species numberofentities = 0 + + # initialize number of empty layers + self.__nb0 = 0 + if legume_grid: numberofentities = self.__geometry["scenes"][id_legume_scene]["LA"].shape[0] @@ -288,11 +304,15 @@ def build(self, geometry={}, global_scene_tesselate_level=0): self.__environment["infinite"], self.__geometry["stems id"], len(self.__geometry["scenes"]), + self.__lightmodel_parameters["full grid"] ) - self.__complete_voxmesh, self.__matching_tri_vox, self.__angle_distrib = build_RATPscene_from_trimesh( - *arg - ) + ( + self.__complete_voxmesh, + self.__matching_tri_vox, + self.__angle_distrib, + self.__complete_trimesh, + ) = build_RATPscene_from_trimesh(*arg) # creates an empty RATP grid of voxels if geometric inputs are empty else: @@ -356,11 +376,10 @@ def run(self, energy=0.0, day=0, hour=0, parunit="micromol.m-2.s-1", truesolarti if self.__complete_voxmesh.nveg > 0: # Run of RATP - print("debut ratp") start = time.time() res = runRATP.DoIrradiation(self.__complete_voxmesh, vegetation, self.__sky, meteo) self.__time_runmodel = time.time() - start - print("fin ratp") + # output management self.__voxels_outputs = out_ratp_voxels(self.__complete_voxmesh, res, parunit) @@ -560,16 +579,29 @@ def to_MTG(self, energy=1.0, mtg=None, id=None): if id is None: for s in self.__elements_outputs["Organ"]: d = self.__elements_outputs[self.__elements_outputs.Organ == s] - para_dic[s] = d["par Eabs"].values[0] * energy - erel_dic[s] = d["par Eabs"].values[0] / self.__energy + + if self.__lightmodel == "caribu": + para_dic[s] = d["par Eabs"].values[0] * energy + erel_dic[s] = d["par Eabs"].values[0] / self.__energy + + elif self.__lightmodel == "ratp": + para_dic[s] = d["PARa"].values[0] + erel_dic[s] = d["Intercepted"].values[0] elif type(id) == list or type(id) == tuple: for esp in id: df_outputs_esp = self.__elements_outputs[self.__elements_outputs.VegetationType == esp] for s in df_outputs_esp["Organ"]: d = df_outputs_esp[df_outputs_esp.Organ == s] - para_dic[s] = d["par Eabs"].values[0] * energy - erel_dic[s] = d["par Eabs"].values[0] / self.__energy + + if self.__lightmodel == "caribu": + para_dic[s] = d["par Eabs"].values[0] * energy + erel_dic[s] = d["par Eabs"].values[0] / self.__energy + + elif self.__lightmodel == "ratp": + para_dic[s] = d["PARa"].values[0] + erel_dic[s] = d["Intercepted"].values[0] + dico_par["PARa"] = para_dic dico_par["Erel"] = erel_dic @@ -646,6 +678,7 @@ def to_l_egume(self, energy=1.0, m_lais=[], list_lstring=[], list_dicFeuilBilanR return transfer_caribu_legume( energy, skylayer, + id, self.__elements_outputs, self.__sensors_outputs, self.__lightmodel_parameters["sensors"][1], @@ -706,7 +739,7 @@ def s5(self): >>> testofs5.s5() # run of s5, creates input and output files """ - currentfolder = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + currentfolder = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) s5folder = os.path.join(currentfolder, os.path.normpath("s5")) fort51 = os.path.join(s5folder, os.path.normpath("fort.51")) s5par = os.path.join(s5folder, os.path.normpath("s5.par")) @@ -716,8 +749,9 @@ def s5(self): c_tr = 1 for id, triangles in self.__complete_trimesh.items(): for t in triangles: - if tuple(self.__matching_ids[id]) in self.__geometry["stems id"]: - stem = "000" + if (self.__geometry["stems id"] is not None) : + if (tuple(self.__matching_ids[id]) in self.__geometry["stems id"]) : + stem = "000" else: stem = "001" label = ( @@ -801,7 +835,7 @@ def s2v(self): >>> testofs2v.s2v() # run of s2v, creates input and output files """ - currentfolder = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + currentfolder = os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) s2vfolder = os.path.join(currentfolder, os.path.normpath("s2v")) fort51 = os.path.join(s2vfolder, os.path.normpath("fort.51")) s2vpar = os.path.join(s2vfolder, os.path.normpath("s2v.par")) @@ -811,8 +845,9 @@ def s2v(self): c_tr = 1 for id, triangles in self.__complete_trimesh.items(): for t in triangles: - if tuple(self.__matching_ids[id]) in self.__geometry["stems id"]: - stem = "000" + if self.__geometry["stems id"] is not None: + if tuple(self.__matching_ids[id]) in self.__geometry["stems id"] : + stem = "000" else: stem = "001" label = ( @@ -849,8 +884,8 @@ def s2v(self): f.close() - # exécution de s5 dans un sous process - subprocess.call(".\s2v.exe", shell=True, cwd=s2vfolder) + # exécution de s2v dans un sous process + subprocess.call(".\s2v++.exe", shell=True, cwd=s2vfolder) print("--- Fin de s2v.cpp") @@ -980,6 +1015,78 @@ def VTK_sun(self, path, scale=2, orig=(0, 0, 0), center=True, i=None): VTKline(start, end, filepath) + def plantGL_sensors(self, light=False): + plantGL_sensors = self.__sensors_plantgl + + if light: + var = [v for v in self.__sensors_outputs["par"].values()] + + plt_cmap = "seismic" + minvalue = numpy.min(var) + maxvalue = numpy.max(var) + colormap = pgl.PglMaterialMap(minvalue, maxvalue, plt_cmap) + + for i, s in enumerate(plantGL_sensors): + s.appearance = colormap(var[i]) + + return plantGL_sensors + + def plantGL_nolight(self, printtriangles=True, printvoxels=False): + plantgl_voxscene = pgl.Scene() + plantgl_triscene = pgl.Scene() + if self.__lightmodel == "ratp" and printvoxels: + transparency = 0.0 + if printtriangles: + transparency = 0.35 + plantgl_voxscene = ratpgrid_to_plantGLScene( + self.__complete_voxmesh, transparency=transparency, plt_cmap="Greens" + ) + + if self.__matching_ids and printtriangles: + plantgl_triscene = cscene_to_plantGLScene_stems( + self.__complete_trimesh, stems_id=self.__geometry["stems id"], matching_ids=self.__matching_ids + ) + plantgl_scene = pgl.Scene() + for s in plantgl_triscene: + plantgl_scene.add(s) + for s in plantgl_voxscene: + plantgl_scene.add(s) + return plantgl_scene + + def plantGL_light(self, printtriangles=True, printvoxels=False): + plantgl_voxscene = pgl.Scene() + plantgl_triscene = pgl.Scene() + if self.__lightmodel == "ratp" and printvoxels: + if printtriangles: + transparency = 0.35 + plantgl_voxscene = ratpgrid_to_plantGLScene( + self.__complete_voxmesh, transparency=transparency, plt_cmap="Greens" + ) + else: + transparency = 0.0 + plantgl_voxscene = ratpgrid_to_plantGLScene( + self.__complete_voxmesh, + outputs=self.__voxels_outputs, + plt_cmap="seismic", + transparency=transparency, + ) + + if self.__matching_ids and printtriangles: + if self.__lightmodel == "caribu": + column_name = "par Ei" + elif self.__lightmodel == "ratp": + column_name = "PARa" + plantgl_triscene = cscene_to_plantGLScene_light( + self.__complete_trimesh, outputs=self.__triangles_outputs, column_name=column_name + ) + + plantgl_scene = pgl.Scene() + for s in plantgl_triscene: + plantgl_scene.add(s) + for s in plantgl_voxscene: + plantgl_scene.add(s) + return plantgl_scene + ## GETTERS ## @property def legume_transmitted_light(self): @@ -1102,3 +1209,10 @@ def modelruntime(self): return self.__time_runmodel except AttributeError: return 0.0 + + @property + def leafangledistribution(self): + try: + return self.__angle_distrib + except AttributeError: + return {} diff --git a/src/lightvegemanager/trianglesmesh.py b/src/lightvegemanager/trianglesmesh.py index 71b9cc7..67bc4d5 100644 --- a/src/lightvegemanager/trianglesmesh.py +++ b/src/lightvegemanager/trianglesmesh.py @@ -30,6 +30,8 @@ import numpy import pandas import bisect +import random +import math import openalea.plantgl.all as pgl from alinea.caribu import plantgl_adaptor @@ -537,3 +539,32 @@ def create_heterogeneous_canopy( position_number += 1 return duplicated_scene, domain + +def random_triangle_generator(worldsize=(0,100), + spheresize=(1.,1.), + sigma_angle=(math.pi, math.pi), + theta_angle=(math.pi/4, math.pi/5)): + """Generate a random based on parameters + + Vertices are generated on a surface of a sphere + + Args: + worldsize (tuple, optional): min and max where sphere center can be generated. Defaults to (0,100). + spheresize (tuple, optional): mean and std of the sphere size. Defaults to (1.,1.). + sigma_angle (tuple, optional): mean and std of the spherical angle on xy plane. Defaults to (math.pi, math.pi). + theta_angle (tuple, optional): mean and std of the zenithal angle. Defaults to (math.pi/4, math.pi/5). + + Returns: + list of 3 3-tuples: triangles defined by 3 xyz points + """ + r = random.gauss(spheresize[0], spheresize[1]) + x0, y0, z0 = [random.uniform(worldsize[0], worldsize[1]) for i in range(3)] + triangle = [] + for i in range(3) : + s = random.gauss(sigma_angle[0], sigma_angle[1]) + t = random.gauss(theta_angle[0], theta_angle[1]) + x = x0 + r * math.cos(s) * math.sin(t) + y = y0 + r * math.sin(s) * math.sin(t) + z = z0 + r * math.cos(t) + triangle.append((x,y,z)) + return triangle \ No newline at end of file diff --git a/tests/test_buildRATPscene.py b/tests/test_buildRATPscene.py index f14190a..be1ef42 100644 --- a/tests/test_buildRATPscene.py +++ b/tests/test_buildRATPscene.py @@ -7,6 +7,7 @@ import pytest import numpy import os +import itertools parameters_empty = {} @@ -135,7 +136,7 @@ def test_legumescene_to_RATPscene(): } more_inputs_4 = (None, 2) expected_4 = {} -expected_4["nxyz"] = (2, 1, 1) +expected_4["nxyz"] = (3, 1, 1) expected_4["nveg"] = 2 expected_4["nent"] = 2 expected_4["area"] = 0.47874045 @@ -179,7 +180,7 @@ def test_build_RATPscene_from_trimesh(test_input_1, test_input_2, test_input_3, infinite = True triLmax = 0.5 - ratpgrid, matching_tri_vox, distrib = build_RATPscene_from_trimesh( + ratpgrid, matching_tri_vox, distrib, trimesh = build_RATPscene_from_trimesh( triangles, minmax, triLmax, @@ -190,6 +191,7 @@ def test_build_RATPscene_from_trimesh(test_input_1, test_input_2, test_input_3, infinite, stems_id=test_input_3[0], nb_input_scenes=test_input_3[1], + fullgrid=False ) # vérifie nb vox créé @@ -218,6 +220,7 @@ def test_build_RATPscene_from_trimesh(test_input_1, test_input_2, test_input_3, # vérifie si la tesselation a eu lieu assert len(matching_tri_vox) == expected["nb triangles"] + assert len(list(itertools.chain(*[v for v in trimesh.values()]))) == expected["nb triangles"] # prise en charge du réfléchi numpy.testing.assert_array_equal(ratpgrid.rs, expected["rs"])

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 literal 0 HcmV?d00001 diff --git a/doc/_img/tesselation_voxels.png b/doc/_img/tesselation_voxels.png new file mode 100644 index 0000000000000000000000000000000000000000..78d72aac052e676355b63e48cf77f71b764d36ac GIT binary patch literal 11809 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 literal 0 HcmV?d00001 diff --git a/doc/_img/transform_geo.png b/doc/_img/transform_geo.png new file mode 100644 index 0000000000000000000000000000000000000000..59a3c149202a9d76f015f4b2c96c32b6e4e41845 GIT binary patch literal 42588 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 literal 0 HcmV?d00001 diff --git a/examples/plaque_ratp-caribu.py b/examples/plaque_ratp-caribu.py index b34e8f1..335e8ca 100644 --- a/examples/plaque_ratp-caribu.py +++ b/examples/plaque_ratp-caribu.py @@ -34,7 +34,7 @@ def simulation(geom, hour, situation, direct, diffus, ratp_mu, dv, folderout): ratp_parameters["soil reflectance"] = [0., 0.] ratp_parameters["reflectance coefficients"] = [[0.1, 0.05]] ratp_parameters["mu"] = ratp_mu - ratp_parameters["tesselation level"] = 7 + ratp_parameters["tesselation level"] = 5 ratp_parameters["angle distrib algo"] = "compute global" ratp_parameters["nb angle classes"] = 45 @@ -53,7 +53,7 @@ def simulation(geom, hour, situation, direct, diffus, ratp_mu, dv, folderout): # VTK de la scène avec x+ = North path_out = folderout+"caribu_"+str(day)+"_"+str(hour)+"h"+"_"+situation - lghtcaribu.VTK_light(path_out) + # lghtcaribu.VTK_light(path_out) # RATP print("\n\t R A T P") @@ -66,11 +66,11 @@ def simulation(geom, hour, situation, direct, diffus, ratp_mu, dv, folderout): # VTK de la scène avec x+ = North path_out = folderout+"ratp_"+str(day)+"_"+str(hour)+"h"+"_"+situation - lghtratp.VTK_light(path_out) + # lghtratp.VTK_light(path_out) # ligne du soleil (rotation de 180° autour de z pour se mettre dans l'espace x+ = North) - lghtcaribu.VTK_sun(folderout+"sun_day"+str(day)+"_"+str(hour)) + # lghtcaribu.VTK_sun(folderout+"sun_day"+str(day)+"_"+str(hour)) print("\n") if __name__ == "__main__": diff --git a/examples/quick_test.py b/examples/quick_test.py index 4e5c576..6066caa 100644 --- a/examples/quick_test.py +++ b/examples/quick_test.py @@ -13,10 +13,22 @@ # compute lighting energy = 500 -hour = 15 +hour = 12 day = 264 # 21st september -lighting.run(energy, hour, day) +lighting.run(energy=energy, hour=hour, day=day) # output print(lighting.elements_outputs) + +# initialize the instance +lighting = LightVegeManager(lightmodel="ratp") + +# build the scene +lighting.build(geometry=triangle_vertices) + +# compute the lighting +lighting.run(energy=energy, hour=hour, day=day) + +# print the outputs +print(lighting.elements_outputs) print("--- END") \ No newline at end of file diff --git a/examples/quick_test2.py b/examples/quick_test2.py new file mode 100644 index 0000000..8d62c7b --- /dev/null +++ b/examples/quick_test2.py @@ -0,0 +1,34 @@ +from lightvegemanager.tool import LightVegeManager +import openalea.plantgl.all as pgl + +print("--- START") + +# one triangle as a geometric element +triangle_vertices_1 = [[(0.,0.,0.), (1.,0.,0.), (1.,1.,1.)]] +triangle_vertices_2 = [[(0.,2.,0.), (1.,2.,0.), (1.,3.,1.)]] +stems = [(0,1)] +geometry = { + "scenes" : [triangle_vertices_1, triangle_vertices_2], + "stems id" : stems +} + +# surfacic lighting with CARIBU +lighting = LightVegeManager(lightmodel="caribu") + +# build the scene +lighting.build(geometry=geometry) + +# compute lighting +energy = 500 +hour = 15 +day = 264 # 21st september +lighting.run(energy, hour, day) + +# output +print(lighting.elements_outputs) + +# visualisation +pglscene = lighting.plantGL_light() +pgl.Viewer.display(pglscene) + +print("--- END") \ No newline at end of file diff --git a/examples/quick_test3.py b/examples/quick_test3.py new file mode 100644 index 0000000..b620f27 --- /dev/null +++ b/examples/quick_test3.py @@ -0,0 +1,33 @@ +# import the class tool +from lightvegemanager.tool import LightVegeManager +from lightvegemanager.trianglesmesh import random_triangle_generator +import openalea.plantgl.all as pgl +import random + +spheres = [] + +for i in range(255): + x, y, z = [random.choice([-1, 1]) * random.randrange(0, int(255/2)) for i in range(3)] + m = pgl.Material(ambient=(x+int(255/2), y+int(255/2), z+int(255/2)), shininess=0.1, diffuse=1) + spheres.append(pgl.Shape(pgl.Translated(x, y, z, pgl.Sphere(random.randrange(1, 20), 20, 20)), m)) + +nb_triangles = 500 +spheresize = (10., 2.) +triangles = [] +for i in range(nb_triangles): + triangles.append(random_triangle_generator(spheresize=spheresize)) + +# initialize the instance +lighting = LightVegeManager(lightmodel="caribu") + +# build the scene +lighting.build(geometry=triangles) + +# compute the lighting +energy = 500. +hour = 15 +day = 264 +lighting.run(energy=energy, hour=hour, day=day) + +pglscene = lighting.plantGL_light() +pgl.Viewer.display(pglscene) \ No newline at end of file diff --git a/examples/quick_test4.py b/examples/quick_test4.py new file mode 100644 index 0000000..31b7adb --- /dev/null +++ b/examples/quick_test4.py @@ -0,0 +1,67 @@ +import os +from lightvegemanager.tool import LightVegeManager +from openalea.plantgl.all import Scene, Viewer + +fet_fgeom = os.path.join(os.path.abspath(""), "data", "Fet-LD-F2.bgeom") +luz_fgeom = os.path.join(os.path.abspath(""), "data", "LD-F1.bgeom") +bgeom_files = [fet_fgeom, luz_fgeom] + +# setup environment +environment = {} +environment["coordinates"] = [48.8 ,2.3 ,1] # latitude, longitude, timezone + +# we compute only sun light in a finite scene +environment["diffus"] = False +environment["direct"] = True +environment["reflected"] = False +environment["infinite"] = False + +# CARIBU parameters +caribu_parameters = {} +caribu_parameters["sun algo"] = "caribu" +caribu_parameters["caribu opt"] = {} +caribu_parameters["caribu opt"]["par"] = (0.10, 0.05) + +# inputs values for lighting +energy=500 +day=264 +hour=15 + +# scene generation parameters +nplants = 10 +plant_density=130 +var_plant_position=110 + +from lightvegemanager.trianglesmesh import create_heterogeneous_canopy + +# Initializing the tool +lighting = LightVegeManager(lightmodel="caribu", + environment=environment, + lightmodel_parameters=caribu_parameters) + +# generate random canopy from plant examples +if not isinstance(bgeom_files, list): bgeom_files = [bgeom_files] +scenes = [] +for f in bgeom_files : + plant_scene = Scene() + plant_scene.read(f, 'BGEOM') + + # multiply a plant with variations + canopy, domain = create_heterogeneous_canopy(plant_scene, + nplants=nplants, + plant_density=plant_density, + var_plant_position=var_plant_position) + + scenes.append(canopy) + +# build the scene +geometry = {"scenes" : scenes } + +lighting.build(geometry) + +# compute lighting +lighting.run(energy=energy, hour=hour, day=day) + +s = lighting.plantGL_light(printtriangles=True, printvoxels=False) + +Viewer.display(s) \ No newline at end of file diff --git a/examples/quick_test5.py b/examples/quick_test5.py new file mode 100644 index 0000000..ac25551 --- /dev/null +++ b/examples/quick_test5.py @@ -0,0 +1,28 @@ +from lightvegemanager.tool import LightVegeManager +from lightvegemanager.trianglesmesh import random_triangle_generator +from openalea.plantgl.all import Viewer + +# grid dimensions +dxyz = [1.] * 3 +nxyz = [5, 5, 7] +orig = [0.] * 3 + +# random triangles +nb_triangles = 50 +spheresize = (1., 0.3) # vertices of triangles are the sphere surface +triangles = [] +for i in range(nb_triangles) : + triangles.append(random_triangle_generator(worldsize=(0., 5.), spheresize=spheresize)) + +caribu_args = { "sensors" : ["grid", dxyz, nxyz, orig] } + +lighting = LightVegeManager(lightmodel="caribu", lightmodel_parameters=caribu_args, environment={"infinite":True}) +lighting.build(geometry={"scenes" : [triangles]}) + +energy = 500. +hour = 15 +day = 264 +lighting.run(energy=energy, hour=hour, day=day) + +s = lighting.plantGL_sensors(light=True) +Viewer.display(s) \ No newline at end of file diff --git a/examples/quick_test6.py b/examples/quick_test6.py new file mode 100644 index 0000000..8779878 --- /dev/null +++ b/examples/quick_test6.py @@ -0,0 +1,44 @@ +from lightvegemanager.tool import LightVegeManager +from lightvegemanager.trianglesmesh import random_triangle_generator +import numpy + +# grid dimensions +dxyz = [1.] * 3 +nxyz = [7, 7, 7] +orig = [-1., -1., 0.] + +spheresize = (1., 0.3) # vertices of triangles are the sphere surface +worldsize = (0., 5.) + +nb_triangles = 10 +triangles1 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)] + +nb_triangles = 9 +triangles2 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)] + +nb_triangles = 8 +triangles3 = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)] + +scene = {0: triangles1, 1: triangles2, 2: triangles3} + + +ratp_parameters = { "voxel size" : dxyz, + "origin" : orig, + "number voxels" : nxyz, + "full grid" : True} + +lighting = LightVegeManager(lightmodel="ratp", lightmodel_parameters=ratp_parameters) +lighting.build(geometry={"scenes" : [scene] }) + +energy = 500. +hour = 15 +day = 264 +lighting.run(energy=energy, hour=hour, day=day) + +m_lais = numpy.zeros([1] + nxyz) +for row in lighting.voxels_outputs.itertuples(): + m_lais[int(row.VegetationType)-1][row.Nz-1][row.Nx-1][row.Ny-1] = row.Area +res_abs_i, res_trans = lighting.to_l_egume(m_lais=m_lais) + +print(res_abs_i[0]) +print(res_trans) \ No newline at end of file diff --git a/notebooks/environment_parameters.ipynb b/notebooks/environment_parameters.ipynb new file mode 100644 index 0000000..fb5d6d0 --- /dev/null +++ b/notebooks/environment_parameters.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "164dd004", + "metadata": {}, + "source": [ + "# Environment parameters\n", + "\n", + "## Content\n", + "- First\n", + "- sky\n", + " - turtle of 46 directions\n", + " - file\n", + " - custom number of sky directions\n", + "\n", + "## Introduction\n", + "Environment parameters are stored in a dict and transferred as an input argument for a LightVegeManager instance. It defines all static parameters during a simulation, such the sky type, radiative options etc...\n", + "\n", + "```python\n", + "environment = {\n", + " \"coordinates\" : [latitude, longitude, timezone] ,\n", + "\n", + " \"sky\" : \"turtle46\" ,\n", + " \"sky\" : [\"file\", filepath] ,\n", + " \"sky\" : [nb_azimut, nb_zenith, \"soc\" or \"uoc\"] ,\n", + "\n", + " \"direct\" : bool, # sun radiations\n", + " \"diffus\" : bool, # sky radiations\n", + " \"reflected\" : bool, # reflected radiation in the canopy\n", + " \"infinite\" : bool, # infinitisation of the scene\n", + " }\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8cabb25", + "metadata": {}, + "outputs": [], + "source": [ + "from lightvegemanager.tool import LightVegeManager\n", + "from pgljupyter import SceneWidget" + ] + }, + { + "cell_type": "markdown", + "id": "a951e939", + "metadata": {}, + "source": [ + "As a geometric example, we will use a random set of 3D triangles" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f37d299", + "metadata": {}, + "outputs": [], + "source": [ + "from lightvegemanager.trianglesmesh import random_triangle_generator\n", + "\n", + "nb_triangles = 50\n", + "spheresize = (10., 2.) # vertices of triangles are the sphere surface\n", + "triangles = []\n", + "for i in range(nb_triangles):\n", + " triangles.append(random_triangle_generator(spheresize=spheresize))" + ] + }, + { + "cell_type": "markdown", + "id": "1eb888dc", + "metadata": {}, + "source": [ + "## First options\n", + "\n", + "- `\"coordinates\"`: sets the coordinates of the simulation, this matters if you want direct radiations\n", + "- `\"infinite\"`: sets if you want an infinite reproduction\n", + "- `\"reflected\"`: activates or not the reflections in the scene\n", + "- `\"direct\"`: activates or not the direct radiations (sun)\n", + "- `\"diffuse\"`: activates or not the diffuse radiations (sky)" + ] + }, + { + "cell_type": "markdown", + "id": "2d74bc78", + "metadata": {}, + "source": [ + "An example of use" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d3ea6e8", + "metadata": {}, + "outputs": [], + "source": [ + "longitude = 2.\n", + "latitude = 46.\n", + "timezone = 1\n", + "coordinates = [latitude, longitude, timezone]\n", + "infinite = False\n", + "reflected = False\n", + "direct = False\n", + "diffuse = True\n", + "\n", + "environment = {\n", + " \"coordinates\": coordinates ,\n", + " \"infinite\": infinite\n", + " \"reflected\": reflected,\n", + " \"direct\": False,\n", + " \"diffuse\": True\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c16d6a23", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=triangles)\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "fdf646c2", + "metadata": {}, + "source": [ + "## Different ways to set a sky" + ] + }, + { + "cell_type": "markdown", + "id": "625b9a25", + "metadata": {}, + "source": [ + "### Turtle46\n", + "This options creates a sky in a turtle of 46 directions. It is the default sky in the tool." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a39681ea", + "metadata": {}, + "outputs": [], + "source": [ + "sky = \"turtle46\" \n", + "environment.update({\"sky\": sky})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "039321e4", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=triangles)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "2a98da17", + "metadata": {}, + "source": [ + "### File\n", + "You can set sky directions in a file. It needs azimut, zenit, weight and solid angle of each direction." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a2c5c662", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "datafile = os.path.join(os.path.join(os.path.dirname(os.path.abspath(\"\")), \"data\"), \"sky_5.data\")\n", + "datafile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86958bd3", + "metadata": {}, + "outputs": [], + "source": [ + "sky = [\"file\", datafile]\n", + "environment.update({\"sky\": sky})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7626d4e9", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=triangles)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "f4e17619", + "metadata": {}, + "source": [ + "### Custom number of directions\n", + "You can directly precise the number of directions for each spherical axis." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1622b9ed", + "metadata": {}, + "outputs": [], + "source": [ + "nazimuts = 5\n", + "nzenits = 5\n", + "skytype = \"soc\"\n", + "sky = [nazimuts, nzenits, skytype]\n", + "environment.update({\"sky\": sky})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "653e163c", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=triangles)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.triangles_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "4ae8f61d", + "metadata": {}, + "source": [ + "### And RATP ?\n", + "All the skies defined above are available with RATP as the light model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a565276b", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"ratp\", environment=environment)\n", + "lighting.build(geometry=triangles)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.triangles_outputs)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/example_canopy.ipynb b/notebooks/example_canopy.ipynb new file mode 100644 index 0000000..618b93b --- /dev/null +++ b/notebooks/example_canopy.ipynb @@ -0,0 +1,245 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "cbde3745", + "metadata": {}, + "source": [ + "# Example of use\n", + "Here is an example with a more \"realistic\" canopy. We start from a single fescue and alfafa in a `.bgeom` file, then we will generate copies and random positions in order to make a canopy." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "a08c5c2f", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from lightvegemanager.tool import LightVegeManager\n", + "from pgljupyter import SceneWidget\n", + "from openalea.plantgl.all import Scene" + ] + }, + { + "cell_type": "markdown", + "id": "9f47c2cf", + "metadata": {}, + "source": [ + "## Canopy generation\n", + "\n", + "Load the `.bgeom` files" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8a256e07", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['C:\\\\Users\\\\mwoussen\\\\cdd\\\\codes\\\\dev\\\\lightvegemanager\\\\data\\\\Fet-LD-F2.bgeom',\n", + " 'C:\\\\Users\\\\mwoussen\\\\cdd\\\\codes\\\\dev\\\\lightvegemanager\\\\data\\\\LD-F1.bgeom']" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fet_fgeom = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"data\", \"Fet-LD-F2.bgeom\")\n", + "luz_fgeom = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"data\", \"LD-F1.bgeom\")\n", + "bgeom_files = [fet_fgeom, luz_fgeom]\n", + "bgeom_files" + ] + }, + { + "cell_type": "markdown", + "id": "1cd43c24", + "metadata": {}, + "source": [ + "Generate copies in random position" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4748bbba", + "metadata": {}, + "outputs": [], + "source": [ + "from lightvegemanager.trianglesmesh import create_heterogeneous_canopy\n", + "\n", + "# scene generation parameters\n", + "nplants = 50\n", + "plant_density=130 \n", + "var_plant_position=110\n", + "\n", + "# generate random canopy from plant examples\n", + "if not isinstance(bgeom_files, list): bgeom_files = [bgeom_files]\n", + "scenes = []\n", + "for f in bgeom_files :\n", + " plant_scene = Scene()\n", + " plant_scene.read(f, 'BGEOM')\n", + "\n", + " # multiply a plant with variations\n", + " canopy, domain = create_heterogeneous_canopy(plant_scene, \n", + " nplants=nplants, \n", + " plant_density=plant_density, \n", + " var_plant_position=var_plant_position)\n", + "\n", + " scenes.append(canopy)" + ] + }, + { + "cell_type": "markdown", + "id": "6d7ebdf6", + "metadata": {}, + "source": [ + "## Lighting simulation\n", + "Set simulation parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6079d47a", + "metadata": {}, + "outputs": [], + "source": [ + "# setup environment\n", + "environment = {}\n", + "environment[\"coordinates\"] = [48.8 ,2.3 ,1] # latitude, longitude, timezone\n", + "\n", + "# we compute only sun light in an infinite scene\n", + "environment[\"diffus\"] = False\n", + "environment[\"direct\"] = True\n", + "environment[\"reflected\"] = False\n", + "environment[\"infinite\"] = True\n", + "\n", + "# CARIBU parameters\n", + "caribu_parameters = {\n", + " \"sun algo\": \"caribu\",\n", + " \"caribu opt\" : { \"par\": (0.10, 0.05) }\n", + "}\n", + "\n", + "# inputs values for lighting\n", + "energy=500\n", + "day=264\n", + "hour=15\n" + ] + }, + { + "cell_type": "markdown", + "id": "7cd1baa4", + "metadata": {}, + "source": [ + "Run the simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d0a11760", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Day Hour Organ VegetationType Area par Eabs par Ei\n", + "0 264 15 825510368 0 83.332180 68.469279 80.552093\n", + "1 264 15 825501440 0 75.958035 174.799148 205.646057\n", + "2 264 15 825503168 0 4.520565 71.441463 84.048780\n", + "3 264 15 825503824 0 57.771363 75.469741 88.787931\n", + "4 264 15 825498448 0 5.711880 113.087842 133.044520\n", + ".. ... ... ... ... ... ... ...\n", + "321 264 15 825485200 1 2.625990 266.464178 313.487268\n", + "322 264 15 825485904 1 18.000312 119.617531 140.726507\n", + "323 264 15 825486976 1 12.152513 93.015484 109.429981\n", + "324 264 15 825488784 1 9.200676 594.787384 699.749863\n", + "325 264 15 825489120 1 9.200676 419.272837 493.262162\n", + "\n", + "[326 rows x 7 columns]\n" + ] + } + ], + "source": [ + "# Initializing the tool\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", \n", + " environment=environment, \n", + " lightmodel_parameters=caribu_parameters) \n", + "\n", + "\n", + "\n", + "# build the scene\n", + "geometry = {\"scenes\" : scenes }\n", + "\n", + "lighting.build(geometry)\n", + "\n", + "# compute lighting\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "\n", + "# print results gathered by elements (Shapes in the plantGL Scene)\n", + "print(lighting.elements_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "89796080", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f0ea148ac54849e680a6906f47acf159", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'iscrYkj7jZcxvvYDWDY2BWYsh', 'data': b'x\\xda\\x94}\\t\\x98%E\\x95n\\xa…" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# visualisation\n", + "SceneWidget(lighting.plantGL_light(printtriangles=True, printvoxels=False), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/input_scenes.ipynb b/notebooks/input_scenes.ipynb new file mode 100644 index 0000000..a17e21c --- /dev/null +++ b/notebooks/input_scenes.ipynb @@ -0,0 +1,983 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2712967b", + "metadata": {}, + "source": [ + "# Geometric inputs\n", + "\n", + "## Content\n", + "- input formats\n", + " - dict\n", + " - plantGL\n", + " - fichier VGX\n", + " - grille de voxels\n", + " - table MTG de adelwheat\n", + "- organization levels: species and organs\n", + "- stems management\n", + "- geometric transformations\n", + "\n", + "## Introduction\n", + "The main purpose of this tool was to merge several geometric scenes in various formats and apply a radiative modelling on it. Here, we will precise the different possiblities to an input geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "533d5d6d", + "metadata": {}, + "outputs": [], + "source": [ + "from lightvegemanager.tool import LightVegeManager\n", + "from pgljupyter import SceneWidget" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d60e30fc", + "metadata": {}, + "outputs": [], + "source": [ + "longitude = 2.\n", + "latitude = 46.\n", + "timezone = 1\n", + "coordinates = [latitude, longitude, timezone]\n", + "infinite = False\n", + "reflected = False\n", + "direct = False\n", + "diffuse = True\n", + "sky = \"turtle46\" \n", + "\n", + "environment = {\n", + " \"coordinates\": coordinates ,\n", + " \"infinite\": infinite\n", + " \"reflected\": reflected,\n", + " \"direct\": False,\n", + " \"diffuse\": True,\n", + " \"sky\": sky\n", + " }" + ] + }, + { + "cell_type": "markdown", + "id": "3b713261", + "metadata": {}, + "source": [ + "## Inputs Formats\n", + "In this section, we won't present single triangle and list of triangles as input geometry, as they were present in the tool_basics notebook. Also, these two formats can be direct inputs of the `geometry` argument of the `build` method, unlike the following formats which needs to be included in a list, such as:\n", + "\n", + "```python\n", + "geometry = { \"scenes\": [scene1, scene2, ...] }\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "id": "8c40dd23", + "metadata": {}, + "source": [ + "### dict of triangles\n", + "A mesh of triangles can be represented as a dict, where each key is an organ ID and its value, a list of triangles belonging to the organ. A triangle is a list of a 3 vertices represented by `(x,y,z)`points.\n", + "\n", + "In this example, we will generate random 3D triangles for 3 differents organs." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1ce4b2f8", + "metadata": {}, + "outputs": [], + "source": [ + "from lightvegemanager.trianglesmesh import random_triangle_generator\n", + "\n", + "spheresize = (10., 2.)\n", + "organized_triangles = {\n", + " 111: [random_triangle_generator(spheresize=spheresize, worldsize=(0,20)) for i in range(20)],\n", + " 222: [random_triangle_generator(spheresize=spheresize, worldsize=(20,50)) for i in range(30)],\n", + " 333: [random_triangle_generator(spheresize=spheresize, worldsize=(50,100)) for i in range(10)],\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "6368552b", + "metadata": {}, + "source": [ + "Input geometry looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c029f0db", + "metadata": {}, + "outputs": [], + "source": [ + "geometry = {\n", + " \"scenes\": [organized_triangles]\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "e8dfb4e6", + "metadata": {}, + "source": [ + "Then, we compute lighting and run a visualization of the scene.\n", + "\n", + "Note: `elements_outputs` method will return a Dataframe where results are integrated on each organ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "458d90b0", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=geometry)\n", + "\n", + "# compute the lighting\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)\n", + "SceneWidget(lighting.plantGL_light(), \n", + " position=(-50.0, -50.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "b26d8e8a", + "metadata": {}, + "source": [ + "### PlantGL scene\n", + "A plantGL Scene is a list of plantGL Shape which can be considered as organ. The ID of the plantGL Shape are stored as organs ID." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51870eda", + "metadata": {}, + "outputs": [], + "source": [ + "import openalea.plantgl.all as pgl\n", + "\n", + "pgl_scene = pgl.Scene([pgl.Shape(pgl.Box(), pgl.Material(), 888), \n", + " pgl.Shape(pgl.Translated((0,0,1), pgl.Cylinder()), pgl.Material(), 999)])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "933b9683", + "metadata": {}, + "outputs": [], + "source": [ + "geometry = {\n", + " \"scenes\": [pgl_scene]\n", + "}\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=geometry)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)\n", + "SceneWidget(lighting.plantGL_light(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 5, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "cc11d7e3", + "metadata": {}, + "source": [ + "### VGX file\n", + "\n", + "The tool can read a VGX file as an input entry. It extracts triangles which are considered as leaves, following its colors, if Red != 42 . All triangles are stored in the same organ, where its ID is set to 0." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e8c9d8fe", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "vgx_path = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"data\", \"NICatObs1P2.vgx\")\n", + "vgx_path" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a3fb580", + "metadata": {}, + "outputs": [], + "source": [ + "geometry = {\n", + " \"scenes\": [vgx_path]\n", + "}\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=geometry)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)\n", + "SceneWidget(lighting.plantGL_light(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 5, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "0f1213f4", + "metadata": {}, + "source": [ + "### Grid of voxels\n", + "\n", + "A voxel grid is represented as a dict of two entries:\n", + "- `\"LA\"` corresponding to leaf area, is a table (`numpy.array`) of dimension $\\text{number of species} \\times \\text{number of z layers} \\times \\text{number of x layers} \\times \\text{number of y layers} $\n", + "- `\"distrib\"` corresponding to leaf angle distribution, is a list of list, where is entered a leaf angle distribution for each specy\n", + "\n", + "Grid dimensions and voxel size are set in the input parameters of RATP." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5baed34", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy\n", + "\n", + "l_scene = {\"LA\": numpy.ones([2, 3, 4, 4]), \"distrib\": [[0.5, 0.5], [0.3, 0.7]]}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "54448444", + "metadata": {}, + "outputs": [], + "source": [ + "geometry = {\n", + " \"scenes\": [vgx_path]\n", + "}\n", + "ratp_parameters = {\n", + " \"voxel size\" : [20.] * 3\n", + "}\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", environment=environment, lightmodel_parameters=ratp_parameters)\n", + "lighting.build(geometry=geometry)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)\n", + "SceneWidget(lighting.plantGL_light(printtriangles=False, printvoxels=True), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 5, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "db5111f0", + "metadata": {}, + "source": [ + "### MTG object from adelwheat\n", + "\n", + "Finally, you can also give a MTG object with a `\"scene\"` property. The package adelwheat offers such objects." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "228bf66a", + "metadata": {}, + "outputs": [], + "source": [ + "from alinea.adel.adel_dynamic import AdelDyn\n", + "from alinea.adel.echap_leaf import echap_leaves\n", + "INPUTS_DIRPATH = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"data\")\n", + "adel_wheat = AdelDyn(seed=1, scene_unit=\"m\", leaves=echap_leaves(xy_model=\"Soissons_byleafclass\"))\n", + "g = adel_wheat.load(dir=INPUTS_DIRPATH)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a73780f", + "metadata": {}, + "outputs": [], + "source": [ + "geometry = {\n", + " \"scenes\": [g]\n", + "}\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", environment=environment)\n", + "lighting.build(geometry=geometry)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)\n", + "SceneWidget(lighting.plantGL_light(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 0.1, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "6530bd77", + "metadata": {}, + "source": [ + "### RATP inputs\n", + "All the above scenes can be geometric inputs if the lightmodel argument is set to `\"ratp\"`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbd0394a", + "metadata": {}, + "outputs": [], + "source": [ + "geometry = {\n", + " \"scenes\": [g]\n", + "}\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", environment=environment)\n", + "lighting.build(geometry=geometry)\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)\n", + "SceneWidget(lighting.plantGL_light(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 0.1, \n", + " axes_helper=True)" + ] + }, + { + "attachments": { + "indices.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcMAAAEjCAYAAABOwmpcAAAAAXNSR0IArs4c6QAAB7F0RVh0bXhmaWxlACUzQ214ZmlsZSUyMGhvc3QlM0QlMjJFbGVjdHJvbiUyMiUyMG1vZGlmaWVkJTNEJTIyMjAyMy0wNC0yNFQxNCUzQTU5JTNBMTUuMTg1WiUyMiUyMGFnZW50JTNEJTIyNS4wJTIwKFdpbmRvd3MlMjBOVCUyMDEwLjAlM0IlMjBXaW42NCUzQiUyMHg2NCklMjBBcHBsZVdlYktpdCUyRjUzNy4zNiUyMChLSFRNTCUyQyUyMGxpa2UlMjBHZWNrbyklMjBkcmF3LmlvJTJGMTYuNS4xJTIwQ2hyb21lJTJGOTYuMC40NjY0LjExMCUyMEVsZWN0cm9uJTJGMTYuMC43JTIwU2FmYXJpJTJGNTM3LjM2JTIyJTIwZXRhZyUzRCUyMmtnVU1MWThiSnNYa3NKZnFYTEpJJTIyJTIwdmVyc2lvbiUzRCUyMjE2LjUuMSUyMiUyMHR5cGUlM0QlMjJkZXZpY2UlMjIlM0UlM0NkaWFncmFtJTIwaWQlM0QlMjJqbUJRSUFFanB0aG1KNWVKTklqLSUyMiUyMG5hbWUlM0QlMjJQYWdlLTElMjIlM0U3VnBiazlvMkZQNDFQTkx4SGZ3WUlOMCUyQk5OTk90OU1tZmVsb3JZT3RpYkFjWVJib3I2OXV4dktGY0JsQzJJa2ZsclUlMkIzYzc1emlkekpESHk1NnZkRTBkRjlvRmhvQ1BQd2J1UnZ4aDUzdFQxeGFjRTlob0k0a0FES1NkWVEyNE5QSlAlMkZ3SUNPUVRjRXc3clJzR1NNbHFSb2dnbkxjMGpLQm9ZNFo5dG1zeVdqelZrTGxFSUhlRTRRN2FKJTJGRTF4bXhpMXZVdU8lMkZBRW16YW1ZM2luWE5DbFdOalNmckRHRzJ0U0QlMkYlMkZjaWZjOFpLJTJGYlRhellGSzdpcGVkTCUyQmZqOVFlRE9PUWwlMkJkMDJIdXpiZkgwQmYlMkJHJTJGdmlIajR1bkdjdGdiRVo1UlhSakhCNTVFUlhqelY2NGVFcmxVMEdSbUVFNFVFQ3lGJTJGJTJCZGJwTUtXUmNvbHkzTHZlRXYlMkJyS1IlMkZzMjJHU2xoTEtvVGdiJTJCVGRuT29hNjFoUnA0Zld3TUtkJTJGU1l1Z0ZRV0lFeVpqcWRQb0laY1d6Q1hjJTJGbGxiQ1RqYkp5UlFYZ1NudEt6ajdEbkZIR0JZSmhpVFpxMkNXaHRFSnpsb00yUFNGNUtvQ3dMdjNKQ2dHTVJZQ05DOCUyRmFnOFZXckRtQnNWZmdTNnJFbFJHTUlSY1laNXNjZzR5OW94eFFZUVl1akR1cUglMkZlZ1NyR2FnYTJnNURMZVZZZllDTm1zWkQ4dzVXMjlMdHhxMldiV21vZ01oc3hTVEE5RDEyb1ZEMGF3RjRqWHUwSzg3aU9vWmhEdjl4WnY0SG5mV2J6JTJCRmVMdGFYSiUyRjFRVGhRMWdSUFlRVjB4OTFBWVhPbVclMkYlMkZ5YmRhUU1IUkJZVEphMiUyRjRaV2pHaUpJMDE5R25zQ3g3dzIlMkJwcUlsMXRkYVNoZ1VySzVybzdRMFRXV2FTQ1kzOFMlMkZCNkpCV3lrSiUyQlRVJTJCYjElMkJ0Rmo4QXRseVdkcEJ2VGF2VUk4SmNabXglMkZvTG5HS25yQkVET1MlMkJNWSUyQkM2a1pKNVZWRWdqSlhZVlhmWjQ1akhEMkxHYmNMWG9ObVgxc0JXaEUlMkZaSTN1UHdobkppMDJwc0huMTlwZWxjUEgxYUIxRmJmNSUyQkRHWWRtMDZWYnMyVjZaTEMlMkJjRGltU3k2Tm9zcVd4eFl2SnhGcjFlTDdzRGlSU3o2dlZvY1dMeU14Y0JtVVdieWtrUnZJUEVpRXNNR2lkRkE0alVrUmcwU0p6YUpBNFBuWlklMkJUMjNQMTFjcmJlSEI2NzlIYVVUZjNzbjA3NE9zMjJ6ZllGZnZWN3JZNkU1MTBqNVVPTzJCN1YlMkJ4JTJCczNPbHFHZGIzQ0lVY3Z4T1hvMklVa0xSZWsyU0pvZE53bUZIeW8lMkJtUmo1JTJGa3ZoUG9Ta3RkbGF6eGI0cTVNS1ZqM1pCOSUyRkxDcWx6M1U2V3FvN1lWY09kU3BoVVI0USUyRmI4QVJPWDIyVVlubERlZW9jb1J0aEs0SmhUd0FyakFORkpYbHRtdHNYVkRQRDc0eW9reU1qb0hEYVBwZHM2VUs3YVhyWnR6dXRnU0slMkZyY1RXUUpxSHprQktZd2UzcjVmZDVKRmxkMGZWZVc5QmRiN2JFa3Q4cGVvQ3B5VmYlMkY3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" + } + }, + "cell_type": "markdown", + "id": "5c4a17a0", + "metadata": {}, + "source": [ + "## Organizing the inputs\n", + "\n", + "They are two levels of possible organization:\n", + "- species\n", + "- organs\n", + "\n", + "Each triangle are bound to a specy ID and a organ ID. Each specy is represented as a input scene. The organs ID are set inside each scene depending on its format.\n", + "\n", + "![indices.png](attachment:indices.png)" + ] + }, + { + "cell_type": "markdown", + "id": "0af94bb6", + "metadata": {}, + "source": [ + "An example with several scenes with the same organs ID and CARIBU." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c5fd41ea", + "metadata": {}, + "outputs": [], + "source": [ + "scene1 = {\n", + " 111: [random_triangle_generator(spheresize=spheresize) for i in range(20)],\n", + " 222: [random_triangle_generator(spheresize=spheresize) for i in range(30)],\n", + " 333: [random_triangle_generator(spheresize=spheresize) for i in range(10)],\n", + "}\n", + "\n", + "scene2 = {\n", + " 111: [random_triangle_generator(spheresize=spheresize) for i in range(20)],\n", + " 222: [random_triangle_generator(spheresize=spheresize) for i in range(30)],\n", + " 333: [random_triangle_generator(spheresize=spheresize) for i in range(10)],\n", + "}\n", + "\n", + "scene3 = {\n", + " 111: [random_triangle_generator(spheresize=spheresize) for i in range(20)],\n", + " 222: [random_triangle_generator(spheresize=spheresize) for i in range(30)],\n", + " 333: [random_triangle_generator(spheresize=spheresize) for i in range(10)],\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "bd4bb72f", + "metadata": {}, + "source": [ + "We have 3 species" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9e07c536", + "metadata": {}, + "outputs": [], + "source": [ + "scenes = [scene1, scene2, scene3]\n", + "geometry = { \"scenes\": scenes }" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3c7fb334", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Day Hour Organ VegetationType Area par Eabs par Ei\n", + "0 264 15 111 0 768.419509 338.824686 398.617277\n", + "1 264 15 222 0 909.148236 356.214248 419.075585\n", + "2 264 15 333 0 516.913303 347.591562 408.931249\n", + "3 264 15 111 1 752.373340 369.581197 434.801409\n", + "4 264 15 222 1 1170.981330 338.908282 398.715625\n", + "5 264 15 333 1 328.802211 367.175307 431.970949\n", + "6 264 15 111 2 455.953087 355.148363 417.821603\n", + "7 264 15 222 2 1058.844077 366.936675 431.690206\n", + "8 264 15 333 2 349.412007 343.960266 404.659136\n" + ] + } + ], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=geometry)\n", + "\n", + "# compute the lighting\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "345141f9", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "de90ddedb48d4aedb4fcc83c6e1d5d1a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'ts5kLc3m4n2jAYkyy7Brmkdi3', 'data': b'x\\xda\\xed\\x9d\\t\\xdcM\\xd5\\x…" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_light(), \n", + " position=(-50.0, -50.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 100, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "b22cca2d", + "metadata": {}, + "source": [ + "The two level organization are also kept with RATP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ceea8138", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"ratp\")\n", + "lighting.build(geometry=geometry)\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "b7aa82d0", + "metadata": {}, + "source": [ + "## Stems\n", + "\n", + "If there are stems elements in the inputs, you can precise their ID and the tool will manage depending on the lightmodel:\n", + "- with CARIBU, the optical parameters associated to the organ won't have a transmission value (rays won't cross the triangle)\n", + "- with RATP, stems are separated in a new specy with its own leaf angle distribution and their leaf area is divied by 2" + ] + }, + { + "cell_type": "markdown", + "id": "7e67a4d7", + "metadata": {}, + "source": [ + "We reuse the wheat geometry given by adelwheat" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "867c73bf", + "metadata": {}, + "outputs": [], + "source": [ + "geometry = {\n", + " \"scenes\": [g]\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "bfef5e1a", + "metadata": {}, + "source": [ + "stems are stored in list where each element is a 2-tuple `(organ ID, specy ID)`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6782b2a5", + "metadata": {}, + "outputs": [], + "source": [ + "stems = [(19, 0), (34, 0)]\n", + "geometry.update({\"stems id\": stems})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3efcb4c", + "metadata": {}, + "outputs": [], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=geometry)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 0.1, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e700495", + "metadata": {}, + "outputs": [], + "source": [ + "lighting.run(energy=energy, hour=hour, day=day)\n", + "print(lighting.elements_outputs)\n", + "SceneWidget(lighting.plantGL_light(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 0.1, \n", + " axes_helper=True)" + ] + }, + { + "attachments": { + "transform_geo.png": { + "image/png": "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A4PljN0UG2+8cdwSzMc999wT/3ZQ+5BO7oUlY6RiyKwiw4p7OjKuiiFDi0wtMrZKIdOLjC9J2UFfhBYtWoRXX301jpnFkKxS7HujR48OXbt2jeMx5391463qXln8F1922WXjDQc3abyZKIT+/PPPx5p2G2ywQbxJIZhA9JtBhKypYois8/OSNCW8JkmSyhVjDnUyH3/88bjoxteldgQsuuiiMWusqlIodHbefffdw5lnnhlrUWKRRRaJAcHqgqb1iYxMxmTKxrBVfscdd0y+M8Gnn34aJ6BuA1RNkWFFphX3d8W6/5OhRaYWGVulcO9HxheZX5LKH+UkmOOxW4GFvIEDBybfmRQJLCx4pIsev/32W5wTUuplySWXjA3qGjduHL+naatswsisaN18882xwDfIbKLJxmGHHRaeeeaZuIIMIuEPPPBA/LrQ4MGDw5prrpk8kqTJ5zVJyqbR40cnX0kNF8E8gnprrbVW2GGHHWJw88orrwzDhw+P21//+eef+MEWdLZn81EM41f37t1j/UnqaabYqk5Qp6rgTX2ioUvnzp3DFltsEf8NBGELvfzyyzFAxZZ0qSbIsCLTimA+mVfc4xUiUE7GVjF8j0wvFrTJ/JJU/kaMGBF34DGm7LfffrGkWLGGQZzXBD1ZRDvnnHNiqbJbbrkl7nCgbEtVNas1dZVNUJM3EQMEdeuKWWmlleIgQ+T83HPPjdtC87FF5q233orbcophkCm24lZuCJa4sifVP69JE3hNUpaM++vXcMyg3skjqWGjVuTVV18dmwetuuqqcZLVrl27WHtz5ZVXjh/bb7993C47yyyzJD81EZ3RyW48+uijK41hadCGsarckCWzyy67xMAujV0I3Bbz6KOPxmBvqe9LxZBpRcYVmVdkYJGJRUYW0iytUs2nuCck6EHGF5lfNhSSyh8LhGT0M1buuuuuYaGFFgonnXRS8t2J5p9//vix0047hddffz2cf/754amnngobbbRR8gzVl7IJanKzxQoxg0BVW2SIiLPd5q677oqdDVMXXnhhvKFj22gxV111VbxpK2esrrOliG2ukuqX1ySvScqe/h/1j5matw6/JTkiNXxt27aNdZ/feeed8Oyzz8aFNupt8nHZZZeFF154IU7S8qXNdGiOcsoppyRHJyLLky3t5VgbjAXFL774ImamFmvYgK+++irulth2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/TQ+lxufYqjXw6oZN0B1jQAAK8dPPvlk7DZZDM1AuEErXEkmCEL9HwrLTo2/TdKU85okZceCcy6YfCU1fFzHCaiQTbLRRhuFV155JflO1WgMt/zyy4eOHTvGupR77713zFBZcMGanT/sQKBDel1km1HTmTGzEMFVMuVYNCQrrir8HYxfjHnXXntt2HbbbWODF8brf/75J3mWVHNkXpGBxQJAVTj3eJ+R2UWGF+cRGV9V/RwZY2SOkUFWjsi44z6XDLxpVVtX2UQfARpnMY5wvaapFsHNYjWR6wvzIhYY2HlHgz3e18VwzrP7gPO3VK3cFMkjNAnj38uuAtWzXJl65513chWDRG7o0KHJkUlVDAK5zz77LNbRqThxchU3RLlWrVrFugbFXHHFFbmNN944eVS3zjvvvNxee+0Va+e1bds21vspVDFw5SpuIJNHE1ADqeKGMnfooYcmRySVK69JkqRyRd3nHXfcMTf33HOXrPFX6Nhjj41jVWFtzeowDs4777y5VVddNdYS++OPP5LvTB7GQ2p5lqpfeMIJJ+SWWWaZ3L///hsfU6O6YtIZj2+zzTa5du3axfG2WbNmsbbbUkstFcdXpjlXXnll/Blpcnz88cfxvcX7rTpbbrllPAcXX3zxKuvrDRkyJJ53fIwcOTI5Wh44x/r165dr3rx57vLLL4/n1/XXX598V6qMuQNjQXr9Ziz63//+l1t44YXL5r1z/vnn53beeef49RZbbJHbZZdd/htPCv3222+5lVdeOffaa68lRyrj/F5ooYVyN910U3JE9a1sg5rgDUiR5qoadKQGDBgQT57rrrsuOTLRDz/8kFtxxRVz9913X3Kkbh188MHxxgp77713bt11182NHTs2Pk5xYqy00krxROHmcf/9949/78UXX5w8Q1K585okSSpXTNL69OkTmwcxcatqUoaBAwfG4MVPP/2UHKkeDVKYzO25555xEY8Azrhx45LvTp633347N8ccc+ReeeWV5Mik3nvvvRhEJcjSpUuX2JylRYsWufXWWy+322675U466aQ41j711FNxPKNpEGPfKqusUrSBn1QbDz/8cHy/Pf/888mR4gjgzDrrrPG8KoVzhSA8i88E3h988MHkO/Xvww8/zG222WZxoSL9t9LE64EHHohfS8WMHj06JkQUNtThPcQC01FHHZUcqT80Cerdu3f8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1bQe5UUXXRQndeuvv378Wer65dczqwm2oLOVnXFu2LBh8RiLEWxfr248IsDDxJQMzdNPPz05KtUvMre4d2NcIqMrv6ZsTREoYaGZjDIyy0ohI43MNDLUyFQjY417SzLYijXzIuONzDcy4BirigVJpamJuv7Uf63tecE4y4IZ89xS9TXJMl5ooYVyBx54YHKkaiysUc6BsYaxi/OWgD/nHeMQ4+IFF1wQSz2Q3XzXXXfFJqski7DDgWMqbzPwPxU3aw3KN998E2688cZw7733hnHjxoWKCU3YcMMNwxprrBFat24dmjRpEm699db4UTE4JD9VOxUDT9hmm23Cs88+G5ZcckmCw+Hbb78Nr7zySqiYPIXnnnsuVJwEoWJCEFZdddXkpzS1VVyUwimnnJI8mr5VTMDi+2/eeedNjqi+eE2S6s4VV1wRRo8eHXr37h3mmGOOeGzs2LHhuOOOCxU3pGHGGWeMx3j/V9zIhoqb11AxqQu9evWKx+tCxSQ2PPjgg2H//fcPjRo1Cvfdd1845phjku8qi5ZYYonwySefJI8mqpgIha5du4bddtutwYynL730Ujj22GPDa6+9FrbYYouwzz77hLXXXjvMOuusyTMm9f3334ell146rLLKKuG0004L7dq1S75TO4xTnKeMSyuvvHJ4/fXXwx133BE6d+6cPKMyxjT+1pEjR4aLLroodO/ePfmOVL+GDx8e1l9//TDTTDOFBRZYII5HXCMaN24cz6XZZpstfr3gggvG84d7vlatWoUZZpgh/vz7778fNt1007DXXnvF93g6dhXDucM5et1114Xdd989Hhs6dGi49NJLwwsvvBBf+8gjj4yfpXJw8MEHx/cn4wXzkpYtW4a55porzD777PG+qWnTpnEOtMwyy4Q555wz/gxjDWNSixYt4s82b948Hs/31VdfhU022SSce+654X//+1+45557wrLLLpt8t7g//vgjdOjQIfz999/xfvGQQw4J2223XTxvq7LrrrvG+dTNN9+cHFG5apBBzRRv3HfffTc89dRTYdCgQWHUqFHhzz//DPPPP388kRgEhgwZEk+02rrhhhviycQkadiwYeG9996LkyyCE0ygdthhhxi4kKaW6WkC1lB4TZLqBgsEjz/+eLzerbbaanGS2Ldv33DxxReHmWeeOd60Hn300WHvvfeON8f9+vULp556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0rTA/RSZw+yCGT58eHK0MnbDLL300rm3334799VXX8UA58ILL1z0/V6IjH/GReZmXbt2jQkogwcPTr5b3Ouvv57bbLPNciuvvHLu1VdfTY4qa8o+qJniAs72SqL07du3jwNAnz594vavKXHHHXfEi3pNcaKxPZSTrBS2A5955plxwDnppJOSo5IaEq9JUv06/fTTc5deemnyaCIy2MiiZHs6wcfCgA83vTvttFPMGCuFLeVp0JRJIiv/nGu//fbbf9sAWdn/8ccf46T0lVdeicekaYGAYPfu3ePCGh9rrbVW7sorr4yZX1MbmTZ77bVX8qj2WBhgwsm5JDVEZHoR2GQBnHGiOmSSkVEGMswYb8g4I/OsFIKe3H+SwZaPABCZblVhUY/zmMw5FuqlaeXvv//OnXrqqTGTmPd8sW3mOP744+M5wNyKEg3skKkN7vM4r0rNpzgHOL+22mqrWH6Bv2VqlBXTtJOZoCYIFjBRoZbIVVddFS/IK620Uu6JJ55InlF7bDEjIFDTG0FOgFK16xi4WKHjRF1iiSXigJNuj5PU8HhNkuoP72UWEsiULjxf2DZeWA8T3FDzvQ033LDKBQgWCY488sjkUS5manLTy7a+iy66KGZTswWe12rTpo11NVUv2Oa6wQYb/Bfc5Dp/2mmnVbnINaU458gE41yaHNttt11uxx13TB5JDRMZX2R+bbrppjETrCpkkpFRRmYZAX8yzWpSY5bMNTLYCGRyzpPZRoZbWve5GDLkyJQjY65UnU1pamNhbsstt4zve4L4Dz74YFyQThcBmAsxd3nppZfi48nBnOyWW26JX7PLgB04LKrx3l9++eVza6yxRlz8npJyKiofM1bcBGUG3YevvPLKUHEzFFv508n06KOPDnvttVfYf//9w08//ZQ8s+boJkfXObo71kTFIBVWXHHF5NFEY8aMiZ2y+KDzFp25unXrFmacMVP/iSXVgtckqf7wXv7f//4XNthgg3DssceGvn37horJYfj8889j1+QWLVokz5yADs48v2KiGdZdd91QMaFLvlMZHc//+eefUDEBjI9btWoVnnzyyfDCCy+EtddeO57fdKJdb731YsfbVVZZJT5PmpZ47z/xxBOxs+s888wTPv7443DuueeGtdZaK5x22mn/dS2vS/xOzrFPP/00OVJzv//+exyz/u///i85Uj3GQsbZ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" + } + }, + "cell_type": "markdown", + "id": "37db8bea", + "metadata": {}, + "source": [ + "## Geometric transformations\n", + "\n", + "You can apply geometric transformations on some of the inputs scenes. We have currently 3 available transformations\n", + "- translation by a vector\n", + "- rescale by a factor or following scenes metric unit\n", + "- rotation on the xy plane\n", + "\n", + "![transform_geo.png](attachment:transform_geo.png)\n", + "\n", + "Transformations are stored in a dict, which is stored at key `\"transformations\"` in the geometry entry. Structure of transformations :\n", + "\n", + "```python\n", + "transformations = {\n", + " \"scenes unit\": { specy ID: \"metric unit\", ...},\n", + " \"rescale\": { specy ID: float, ...},\n", + " \"translate\": { specy ID: 3-tuple (x,y,z), ...},\n", + " \"xyz orientation\": { specy ID: \"x+ = NEWS\", ...},\n", + "}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "589b61d1", + "metadata": {}, + "source": [ + "#### Main scenes" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9c6cf24b", + "metadata": {}, + "outputs": [], + "source": [ + "spheresize = (2., 1.)\n", + "scene1 = {\n", + " 0: [random_triangle_generator(spheresize=spheresize, worldsize=(0,10)) for i in range(20)]\n", + "}\n", + "scene2 = {\n", + " 0: [random_triangle_generator(spheresize=spheresize, worldsize=(10,20)) for i in range(20)]\n", + "}\n", + "\n", + "geometry = {\"scenes\": [scene1, scene2] }" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "83d85602", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d495f93c647d4f9aadd61b9a9baaeb31", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'EUvjRViqmWGdaRiY3dfvYnlbc', 'data': b'x\\xda\\x8d\\x99\\tX\\x95e\\x16\\…" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=geometry)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 50., \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "eeff47a1", + "metadata": {}, + "source": [ + "### Translate\n", + "\n", + "The translation vector is a 3-tuple (x,y,z). Transformations is a dict in the geometry dict." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "49b01ec1", + "metadata": {}, + "outputs": [], + "source": [ + "tvec = (10., -10., 10.)\n", + "transformations = {\n", + " \"translate\": {\n", + " 0: tvec\n", + " }\n", + "}\n", + "geometry = {\"scenes\": [scene1, scene2] , \"transformations\": transformations}" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3217bce8", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "dfe6d3a060484984887d3b760255ceb3", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'XoPLZUSCWYRmPc6rCaQu4rIAG', 'data': b'x\\xda\\x8d\\x99\\x0bXUU\\x1a\\x…" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=geometry)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 50., \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "3b6efd1e", + "metadata": {}, + "source": [ + "### Rescale following metric unit\n", + "\n", + "You can precise the metric unit of each scene from this list: `\"mm\", \"cm\", \"dm\", \"m\", \"dam\", \"hm\", \"km\"`. By default the merged scene is in m but you can change its unit when you create an instance." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "e8a3c8fd", + "metadata": {}, + "outputs": [], + "source": [ + "transformations = {\n", + " \"scenes unit\": {\n", + " 0: \"dm\"\n", + " }\n", + "}\n", + "geometry = {\"scenes\": [scene1, scene2] , \"transformations\": transformations}" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "cb13af72", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6621a63d8bec4d4f92e0ee6932a85c2f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'tzqYZWHLS1bM2sROjizKhZxr5', 'data': b'x\\xda\\x8d\\x99yXWe\\x16\\xc7\\…" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\", main_unit=\"m\")\n", + "lighting.build(geometry=geometry)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 50., \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "e58c7d97", + "metadata": {}, + "source": [ + "### Rescale by a scalar factor" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b50c27e6", + "metadata": {}, + "outputs": [], + "source": [ + "transformations = {\n", + " \"rescale\": {\n", + " 0: 2.,\n", + " }\n", + "}\n", + "geometry = {\"scenes\": [scene1, scene2] , \"transformations\": transformations}" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f1244a12", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cb98511d642046518610b2f0dd5d20dc", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'YOo3Dgy30xLCUA3kFElJWr1wI', 'data': b'x\\xda\\x8d\\x98yT\\x95\\xd5\\x1…" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=geometry)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 50., \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "847e5020", + "metadata": {}, + "source": [ + "### Rotate\n", + "\n", + "Finally, you can also rotate the scene around the z axis, in order to match the x+ convention for each input scene. You have the choice between:\n", + "- `\"x+ = N\"`\n", + "- `\"x+ = S\"`\n", + "- `\"x+ = E\"`\n", + "- `\"x+ = W\"`\n", + "\n", + "The merged scene convention is x+ = N, which the convention in RATP and CARIBU." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f9bdfded", + "metadata": {}, + "outputs": [], + "source": [ + "transformations = {\n", + " \"xyz orientation\": {\n", + " 0: \"x+ = S\",\n", + " 1: \"x+ = E\",\n", + " }\n", + "}\n", + "geometry = {\"scenes\": [scene1, scene2] , \"transformations\": transformations}" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "cce4df98", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "af16b80e950949a6947282a86fc3ff32", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'X2rN4Srd09U9mo3a5w4ruLkfw', 'data': b'x\\xda\\x8d\\x99\\x0bXUU\\x16\\x…" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lighting = LightVegeManager(lightmodel=\"caribu\")\n", + "lighting.build(geometry=geometry)\n", + "SceneWidget(lighting.plantGL_nolight(), \n", + " position=(0.0, 0.0, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 50., \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48962e24", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.17" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/lightmodels_functionnalities.ipynb b/notebooks/lightmodels_functionnalities.ipynb new file mode 100644 index 0000000..e6069e1 --- /dev/null +++ b/notebooks/lightmodels_functionnalities.ipynb @@ -0,0 +1,802 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "971cb814", + "metadata": {}, + "source": [ + "# Light models options\n", + "\n", + "## Content\n", + "\n", + "- CARIBU\n", + " - sun algo\n", + " - virtual sensors\n", + " - autres parametre\n", + "- RATP\n", + " - distribution angles foliaires\n", + " - tesselation sur la grille\n", + " - autre paramètres\n", + " \n", + "## Introduction\n", + "\n", + "During our use of lightvegemanager, we added special features for each known light models. Here is a little introduction to them." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "293a40d2", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from lightvegemanager.tool import LightVegeManager\n", + "from pgljupyter import SceneWidget\n", + "from lightvegemanager.trianglesmesh import random_triangle_generator" + ] + }, + { + "cell_type": "markdown", + "id": "232237fe", + "metadata": {}, + "source": [ + "## CARIBU\n", + "\n", + "You can provide parameters according to the light model. The parameters are stored in a dict. This is the complete parameters you can provide with CARIBU: \n", + "\n", + "```python\n", + "caribu_args = {\n", + " \"sun algo\" : \"ratp\",\n", + " \"sun algo\" : \"caribu\",\n", + "\n", + " \"caribu opt\" : {\n", + " band0 = (reflectance, transmittance),\n", + " band1 = (reflectance, transmittance),\n", + " ...\n", + " },\n", + " \"debug\" : bool,\n", + " \"soil mesh\" : bool,\n", + " \"sensors\" : [\"grid\", dxyz, nxyz, orig, vtkpath, \"vtk\"]\n", + " }\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "7a847443", + "metadata": {}, + "source": [ + "### Computing the sun position\n", + "\n", + "In order to compute the sun position, you can use either the algorithm from RATP or CARIBU. The (x, y, z) output is formatted in CARIBU format." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "00259bc9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0.33506553253259913, -0.8798617206271511, -0.3370080733212115)\n" + ] + } + ], + "source": [ + "caribu_args = { \"sun algo\" : \"caribu\" }\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", lightmodel_parameters=caribu_args)\n", + "lighting.build(geometry=[(0., 0., 0.), (1., 0., 0.), (1., 1., 1.)])\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "\n", + "sun_caribu = lighting.sun\n", + "print(sun_caribu)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "20273c93", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0.33241183146897624, -0.8800565622452903, -0.3391206592769639)\n" + ] + } + ], + "source": [ + "caribu_args = { \"sun algo\" : \"ratp\" }\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", lightmodel_parameters=caribu_args)\n", + "lighting.build(geometry=[(0., 0., 0.), (1., 0., 0.), (1., 1., 1.)])\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "\n", + "sun_ratp = lighting.sun\n", + "print(sun_ratp)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7b0e119e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "euclidean dist = 0.003397515564596359 m\n" + ] + } + ], + "source": [ + "dist = (sum([ (x-y)**2 for x,y in zip(sun_ratp, sun_caribu) ])) ** (1/2)\n", + "print(\"euclidean dist = \",dist,\" m\")" + ] + }, + { + "cell_type": "markdown", + "id": "b1febd05", + "metadata": {}, + "source": [ + "### Grid of virtual sensors\n", + "\n", + "If you can to match a grid of voxels, you can generate a set of virtual sensors following a 3D grid. You need to precise the dimension of the grid:\n", + "- dxyz: `[dx, dy, dz]` size of one voxel\n", + "- nxyz: `[nx, ny, nz]` number of voxels on each xyz axis\n", + "- orig: `[0x, 0y, 0z]` origin point of the grid\n", + "\n", + "Optionnaly, you can write a geometric visualisation of the sensors in VTK format. You need to provide the file path and the flag `\"vtk\"`." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "556e7a16", + "metadata": {}, + "outputs": [], + "source": [ + "# grid dimensions\n", + "dxyz = [1.] * 3\n", + "nxyz = [5, 5, 7]\n", + "orig = [0.] * 3" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "95967c93", + "metadata": {}, + "outputs": [], + "source": [ + "# random triangles\n", + "nb_triangles = 50\n", + "spheresize = (1., 0.3) # vertices of triangles are the sphere surface\n", + "triangles = []\n", + "for i in range(nb_triangles):\n", + " triangles.append(random_triangle_generator(worldsize=(0., 5.), spheresize=spheresize))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "ed022b4c", + "metadata": {}, + "outputs": [], + "source": [ + "caribu_args = { \"sensors\" : [\"grid\", dxyz, nxyz, orig] }\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", lightmodel_parameters=caribu_args, environment={\"infinite\":True})\n", + "lighting.build(geometry=triangles)" + ] + }, + { + "cell_type": "markdown", + "id": "d11f570b", + "metadata": {}, + "source": [ + "You can visualize the grid of sensors with plantGL through the method `plantGL_sensors`" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "8c5f06e2", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3a795783fa724a46b78a59d52fc5677c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'rpNaRspB7H0J2oKjhBfYykU71', 'data': b'x\\xda\\x85\\x9a\\xf9\\xba\\x15G…" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_sensors(), \n", + " position=(-2.5, -2.5, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "c33fec94", + "metadata": {}, + "source": [ + "The lighting results are stored in `sensors_outputs`" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "fcd4be39", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'par': {0: 0.51834194067706, 1: 0.5308753998657116, 2: 0.6356410071880358, 3: 0.6280440745835342, 4: 0.7348723244391282, 5: 0.8377871001112634, 6: 0.4617251984176415, 7: 0.495129715697577, 8: 0.6131363817804785, 9: 0.5687714360698057, 10: 0.7322514236236515, 11: 0.8691497441835251, 12: 0.501409869368752, 13: 0.5802620746019611, 14: 0.5684306740502441, 15: 0.5448581816686048, 16: 0.7425834546380425, 17: 0.9448173795583968, 18: 0.48838057941884705, 19: 0.6124255210438949, 20: 0.5122986569042225, 21: 0.5196097528711219, 22: 0.6537519378903659, 23: 0.97910108961367, 24: 0.45924012286835925, 25: 0.5461410549684866, 26: 0.551527499861868, 27: 0.6180217890182801, 28: 0.6108037693496773, 29: 0.9533450759609043, 30: 0.47920650612455634, 31: 0.48509765917006636, 32: 0.4551374400234053, 33: 0.5855859239206206, 34: 0.7597544084095198, 35: 0.8641678490671126, 36: 0.4860121934865708, 37: 0.43959299789620904, 38: 0.43956593364806973, 39: 0.4036644342974864, 40: 0.7638839031112808, 41: 0.9007351905848812, 42: 0.5251419238192803, 43: 0.46126821372044885, 44: 0.41667205111819017, 45: 0.4968340802165048, 46: 0.7948675260827973, 47: 0.9435643107424596, 48: 0.47906967265823486, 49: 0.49778880474951165, 50: 0.4204373489559713, 51: 0.5677638346661975, 52: 0.8022129525509314, 53: 0.9673922133922965, 54: 0.5283510603735843, 55: 0.44551710610975725, 56: 0.49210113391046634, 57: 0.7146955670558728, 58: 0.7356424071887203, 59: 0.9271045254957095, 60: 0.5120418333114727, 61: 0.3596728014228353, 62: 0.37398690002227297, 63: 0.6034948137913889, 64: 0.7336930328783193, 65: 0.8590324029603247, 66: 0.4834097743681514, 67: 0.3910286540349822, 68: 0.3907557306621735, 69: 0.39198401423947576, 70: 0.508504590642667, 71: 0.9416354297249045, 72: 0.4754397848783006, 73: 0.3771805822156766, 74: 0.48198742477852835, 75: 0.40281836559829853, 76: 0.8028721943895224, 77: 0.9700996640514535, 78: 0.4324765007908733, 79: 0.40286405265932684, 80: 0.4517569674397516, 81: 0.5708668477747182, 82: 0.8710161873157761, 83: 0.9559789002347753, 84: 0.4143262511261377, 85: 0.35189874346231115, 86: 0.4504073473488214, 87: 0.6042034732308468, 88: 0.7670304386890762, 89: 0.8370007349434336, 90: 0.46668495886542527, 91: 0.4854025755573592, 92: 0.5345979721002958, 93: 0.62521366369586, 94: 0.651247522500461, 95: 0.8361066859773177, 96: 0.46501102937511973, 97: 0.4923827085324488, 98: 0.5641887632230667, 99: 0.6244764939935656, 100: 0.6782646532084828, 101: 0.9176886772444335, 102: 0.43231267350112107, 103: 0.43287245502849897, 104: 0.5535162151364506, 105: 0.7375322721560529, 106: 0.8536240714978374, 107: 0.9212006440344006, 108: 0.4145466067128266, 109: 0.4810271968225363, 110: 0.5234041338458567, 111: 0.5822987916276953, 112: 0.7415684051648578, 113: 0.816947437440918, 114: 0.3541767811681498, 115: 0.4250647962523507, 116: 0.4917133187582134, 117: 0.5692356324728592, 118: 0.6023285489385215, 119: 0.4528014905789319, 120: 0.5144710738020222, 121: 0.5368482445866736, 122: 0.6732298585703681, 123: 0.6857984441696575, 124: 0.6038900904068507, 125: 0.8493901265405036, 126: 0.4358880212918314, 127: 0.48329446189795555, 128: 0.6598711427288821, 129: 0.6519413545787534, 130: 0.6073208628736244, 131: 0.930992314691149, 132: 0.5067107970636116, 133: 0.524213064318667, 134: 0.6315028079173408, 135: 0.6370967379539592, 136: 0.6800813165981127, 137: 0.9139708890616902, 138: 0.4376666339795125, 139: 0.5281068049896077, 140: 0.5994199029108521, 141: 0.4977449274533771, 142: 0.4408512805419674, 143: 0.8936171526701367, 144: 0.41178392940457, 145: 0.5055553902936644, 146: 0.6188786457511692, 147: 0.6059780088098925, 148: 0.5696229915527733, 149: 0.8506266556565081}}\n" + ] + } + ], + "source": [ + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "\n", + "print(lighting.sensors_outputs)" + ] + }, + { + "cell_type": "markdown", + "id": "028f5975", + "metadata": {}, + "source": [ + "You can also visualize the results in the plantGL scene" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "3258001b", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "05f30102f14341ecb4653a8ea0141448", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': '5oUEYlG3YRLDXmFUN2Lt207uh', 'data': b'x\\xda\\x8d\\x9by\\x9f\\x16G\\x1…" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_sensors(light=True), \n", + " position=(-2.5, -2.5, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "5f2b40d2", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f9145d6171ca4f0bb5bf8d2deb69d5ed", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'JRXUARzeztEqD2KcWxWb1bEoI', 'data': b'x\\xda\\x8d\\x9c\\t\\x98\\x16\\xc…" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_sensors(light=True) + lighting.plantGL_nolight(), \n", + " position=(-2.5, -2.5, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "cell_type": "markdown", + "id": "7b4fe6e1", + "metadata": {}, + "source": [ + "### Other parameters\n", + "\n", + "In additional features, you can activate the debug mode in CARIBU, which describe the internal steps." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "494b7ef9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Prepare scene 1\n", + "done\n" + ] + }, + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: './caribuscene_3041942304848\\\\cscene.can'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[20], line 9\u001b[0m\n\u001b[0;32m 7\u001b[0m hour \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m15\u001b[39m\n\u001b[0;32m 8\u001b[0m day \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m264\u001b[39m\n\u001b[1;32m----> 9\u001b[0m \u001b[43mlighting\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43menergy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43menergy\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhour\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhour\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mday\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mday\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mc:\\users\\mwoussen\\cdd\\codes\\dev\\lightvegemanager\\src\\lightvegemanager\\tool.py:477\u001b[0m, in \u001b[0;36mLightVegeManager.run\u001b[1;34m(self, energy, day, hour, parunit, truesolartime, id_sensors)\u001b[0m\n\u001b[0;32m 475\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m sun_sky_option \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmix\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m 476\u001b[0m start \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m--> 477\u001b[0m raw_sun, aggregated_sun \u001b[38;5;241m=\u001b[39m \u001b[43mrun_caribu\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43marg\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 478\u001b[0m arg[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m=\u001b[39m c_scene_sky\n\u001b[0;32m 479\u001b[0m raw_sky, aggregated_sky \u001b[38;5;241m=\u001b[39m run_caribu(\u001b[38;5;241m*\u001b[39marg)\n", + "File \u001b[1;32mc:\\users\\mwoussen\\cdd\\codes\\dev\\lightvegemanager\\src\\lightvegemanager\\CARIBUinputs.py:372\u001b[0m, in \u001b[0;36mrun_caribu\u001b[1;34m(c_scene, direct_active, infinite, sensors, energy)\u001b[0m\n\u001b[0;32m 331\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"runs caribu depending on input options\u001b[39;00m\n\u001b[0;32m 332\u001b[0m \n\u001b[0;32m 333\u001b[0m \u001b[38;5;124;03m:param c_scene: instance of CaribuScene containing geometry, light source(s), opt etc...\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 369\u001b[0m \u001b[38;5;124;03m:rtype: dict of dict, dict of dict\u001b[39;00m\n\u001b[0;32m 370\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m \n\u001b[0;32m 371\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m sensors \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m :\n\u001b[1;32m--> 372\u001b[0m raw, aggregated \u001b[38;5;241m=\u001b[39m \u001b[43mc_scene\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdirect\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdirect_active\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minfinite\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minfinite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 373\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m :\n\u001b[0;32m 374\u001b[0m raw, aggregated \u001b[38;5;241m=\u001b[39m c_scene\u001b[38;5;241m.\u001b[39mrun(direct\u001b[38;5;241m=\u001b[39mdirect_active, infinite\u001b[38;5;241m=\u001b[39minfinite, \n\u001b[0;32m 375\u001b[0m sensors\u001b[38;5;241m=\u001b[39msensors)\n", + "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\mobidivpy37\\lib\\site-packages\\alinea.caribu-8.0.7-py3.8.egg\\alinea\\caribu\\CaribuScene.py:568\u001b[0m, in \u001b[0;36mCaribuScene.run\u001b[1;34m(self, direct, infinite, d_sphere, layers, height, screen_size, screen_resolution, sensors, split_face, simplify)\u001b[0m\n\u001b[0;32m 566\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcanfile \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtempdir,\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcscene.can\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 567\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptfile \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtempdir,\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mband0.opt\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m--> 568\u001b[0m \u001b[43mwrite_scene\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtriangles\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmaterials\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcanfile\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcanfile\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moptfile\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptfile\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 570\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 571\u001b[0m \u001b[38;5;66;03m# self.materialvalues is a cache for the computation of the material list\u001b[39;00m\n\u001b[0;32m 572\u001b[0m materials \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmaterialvalues\n", + "File \u001b[1;32m~\\AppData\\Local\\miniconda3\\envs\\mobidivpy37\\lib\\site-packages\\alinea.caribu-8.0.7-py3.8.egg\\alinea\\caribu\\caribu.py:177\u001b[0m, in \u001b[0;36mwrite_scene\u001b[1;34m(triangles, materials, canfile, optfile)\u001b[0m\n\u001b[0;32m 175\u001b[0m o_string, labels \u001b[38;5;241m=\u001b[39m opt_string_and_labels(materials)\n\u001b[0;32m 176\u001b[0m can_string \u001b[38;5;241m=\u001b[39m triangles_string(triangles, labels)\n\u001b[1;32m--> 177\u001b[0m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mcanfile\u001b[49m\u001b[43m,\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mw\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mwrite(can_string)\n\u001b[0;32m 178\u001b[0m \u001b[38;5;28mopen\u001b[39m(optfile,\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;241m.\u001b[39mwrite(o_string)\n", + "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: './caribuscene_3041942304848\\\\cscene.can'" + ] + } + ], + "source": [ + "caribu_args = { \"debug\" : True }\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", lightmodel_parameters=caribu_args)\n", + "lighting.build(geometry=[(0., 0., 0.), (1., 0., 0.), (1., 1., 1.)])\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)" + ] + }, + { + "cell_type": "markdown", + "id": "0d638836", + "metadata": {}, + "source": [ + "You can also use the soilmesh option and get the lighting hitting the soil. The method `soilenergy` get you access to its result." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "bf20d164", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Qi': 0.6750540873627096, 'Einc': 0.6750540873627096}\n" + ] + } + ], + "source": [ + "caribu_args = { \"soil mesh\" : True }\n", + "\n", + "lighting = LightVegeManager(lightmodel=\"caribu\", lightmodel_parameters=caribu_args)\n", + "lighting.build(geometry=[(0., 0., 0.), (1., 0., 0.), (1., 1., 1.)])\n", + "\n", + "energy = 500.\n", + "hour = 15\n", + "day = 264\n", + "lighting.run(energy=energy, hour=hour, day=day)\n", + "\n", + "print(lighting.soilenergy)" + ] + }, + { + "cell_type": "markdown", + "id": "a08a758b", + "metadata": {}, + "source": [ + "## RATP\n", + "\n", + "```python\n", + "ratp_args = {\n", + " # Grid specifications\n", + " \"voxel size\" : [dx, dy, dz],\n", + " \"voxel size\" : \"dynamic\",\n", + " \n", + " \"full grid\" : bool,\n", + "\n", + " \"origin\" : [xorigin, yorigin, zorigin],\n", + " \"origin\" : [xorigin, yorigin],\n", + "\n", + " \"number voxels\" : [nx, ny, nz],\n", + " \"grid slicing\" : \"ground = 0.\"\n", + " \"tesselation level\" : int\n", + "\n", + " # Leaf angle distribution\n", + " \"angle distrib algo\" : \"compute global\",\n", + " \"angle distrib algo\" : \"compute voxel\",\n", + " \"angle distrib algo\" : \"file\",\n", + "\n", + " \"nb angle classes\" : int,\n", + " \"angle distrib file\" : filepath,\n", + "\n", + " # Vegetation type\n", + " \"soil reflectance\" : [reflectance_band0, reflectance_band1, ...],\n", + " \"reflectance coefficients\" : [reflectance_band0, reflectance_band1, ...],\n", + " \"mu\" : [mu_scene0, mu_scene1, ...]\n", + " }\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "063c07d8", + "metadata": {}, + "source": [ + "### Leaf angle distribution\n", + "\n", + "Leaf angle distribution can be generated in 3 ways:\n", + "- from a file, one distribution per specy\n", + "- global and dynamically, it generates a distribution from a triangles mesh for each specy\n", + "- per voxel and dynamically, it generates a distribution from the triangles located in each voxel" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "17d41b51", + "metadata": {}, + "outputs": [], + "source": [ + "# random triangles\n", + "nb_triangles = 50\n", + "spheresize = (1., 0.3) # vertices of triangles are the sphere surface\n", + "worldsize = (0., 5.)\n", + "triangles = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]" + ] + }, + { + "cell_type": "markdown", + "id": "d6755645", + "metadata": {}, + "source": [ + "#### File\n", + "\n", + "You need the flag `\"file\"` and to specify the file path." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "13097ed4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'global': [[0.1382, 0.1664, 0.1972, 0.1925, 0.1507, 0.0903, 0.0425, 0.0172, 0.005]]}\n" + ] + } + ], + "source": [ + "filepath = os.path.join(os.path.dirname(os.path.abspath(\"\")), \"data\", \"luzerne_angle_distrib.data\")\n", + "ratp_parameters = { \"angle distrib algo\" : \"file\", \"angle distrib file\" : filepath }\n", + "\n", + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "\n", + "# build the scene\n", + "lighting.build(geometry=triangles)\n", + "\n", + "print(lighting.leafangledistribution)" + ] + }, + { + "cell_type": "markdown", + "id": "85daaa61", + "metadata": {}, + "source": [ + "#### Global distribution\n", + "\n", + "You need the flag `\"compute global\"` and to specify the number of angle classes you need." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "7c882e53", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'global': [[0.06155178223916461, 0.12499042395940269, 0.06445789476401936, 0.1187479400647726, 0.21074770572428322, 0.12460435598932129, 0.1405535570495526, 0.01797247992923503, 0.13637386028024864]]}\n" + ] + } + ], + "source": [ + "ratp_parameters = { \"angle distrib algo\" : \"compute global\", \"nb angle classes\" : 9 }\n", + "\n", + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "\n", + "# build the scene\n", + "lighting.build(geometry=triangles)\n", + "\n", + "print(lighting.leafangledistribution)" + ] + }, + { + "cell_type": "markdown", + "id": "8a0ea69d", + "metadata": {}, + "source": [ + "#### Local distribution\n", + "\n", + "You need the flag `\"compute voxel\"` and to specify the number of angle classes you need. You will get one distribution for each voxel of your grid and each specy." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "397e12a3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Global\n", + "[[0.09035031695555507, 0.08761577143411951, 0.056255001524189746, 0.0753746859951702, 0.27007435951575953, 0.12360752121946102, 0.1302826782705683, 0.113942659680832, 0.05249700540434461]]\n", + "\n", + "\n", + " Local\n", + "[0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", + "[0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", + "[0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", + "[0.55943496 0. 0.44056504 0. 0. 0.\n", + " 0. 0. 0. ]\n", + "[0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + "[0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", + "[0. 0.81407011 0. 0.18592989 0. 0.\n", + " 0. 0. 0. ]\n", + "[0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", + "[0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", + "[0. 0.00742362 0. 0. 0. 0.\n", + " 0.30061391 0.69196247 0. ]\n", + "[0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", + "[0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", + "[0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", + "[1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", + "[0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", + "[0. 0. 0. 0.60484427 0. 0.39515573\n", + " 0. 0. 0. ]\n", + "[0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", + "[0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", + "[0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", + "[1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", + "[0. 0. 0. 0. 0. 0. 0. 0. 1.]\n" + ] + } + ], + "source": [ + "ratp_parameters = { \n", + " \"voxel size\" : [1., 1., 1.],\n", + " \"angle distrib algo\" : \"compute voxel\", \n", + " \"nb angle classes\" : 9\n", + " }\n", + "\n", + "# initialize the instance\n", + "lighting = LightVegeManager(lightmodel=\"ratp\", lightmodel_parameters=ratp_parameters)\n", + "\n", + "# build the scene\n", + "lighting.build(geometry=triangles)\n", + "\n", + "print(\"Global\")\n", + "print(lighting.leafangledistribution[\"global\"])\n", + "print(\"\\n\\n Local\")\n", + "for a in lighting.leafangledistribution[\"voxel\"]:\n", + " print(a[0])" + ] + }, + { + "cell_type": "markdown", + "id": "00f716c8", + "metadata": {}, + "source": [ + "For visualization of the situation" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "9f6ae1ef", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f959c5e51d6f46a2adf4786f7aac29c6", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "SceneWidget(axes_helper=True, scenes=[{'id': 'VXiNJUbqifCr9iQOhQ9okiBdG', 'data': b'x\\xda\\x8d[\\tx\\x14E\\xda\\x1e…" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SceneWidget(lighting.plantGL_nolight(printtriangles=True, printvoxels=True), \n", + " position=(-2.5, -2.5, 0.0), \n", + " size_display=(600, 400), \n", + " plane=True, \n", + " size_world = 10, \n", + " axes_helper=True)" + ] + }, + { + "attachments": { + "tesselation_voxels.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "5434504e", + "metadata": {}, + "source": [ + "### Triangles tesselation in a grid\n", + "\n", + "You can reduce the error while transferring a triangle mesh to a voxel mesh by subdividing triangles across multiple voxels.\n", + "\n", + "