5. Output formats and transfer methods

5.1. Content

  • Main light outputs

  • transfer results to l-egume

  • transfer results to CN-Wheat

5.2. Introduction

This notebook will present the different output formats given by the tool.

[1]:
from lightvegemanager.LVM import LightVegeManager
from pgljupyter import SceneWidget
from lightvegemanager.trianglesmesh import random_triangle_generator

5.3. Main light outputs: Pandas dataframe

Outputs are stored in at least two different scales, by triangle or voxel, and by organ. We will use a set of random triangles as an illustration.

[2]:
# random triangles
nb_triangles = 20
spheresize = (1., 0.3) # vertices of triangles are the sphere surface
worldsize = (0., 5.)
triangles = [random_triangle_generator(worldsize=worldsize, spheresize=spheresize) for i in range(nb_triangles)]

We compute one iteration with CARIBU

[3]:
lighting = LightVegeManager(lightmodel="caribu")
lighting.build(geometry=triangles)

energy = 500.
hour = 15
day = 264
lighting.run(energy=energy, hour=hour, day=day)

Results for each triangle

[4]:
print(type(lighting.triangles_outputs),"\n")
print(lighting.triangles_outputs)
<class 'pandas.core.frame.DataFrame'>

    Day  Hour  Triangle  Organ  VegetationType      Area    par Eabs  \
0   264    15         0      0               0  1.967414  288.351468
1   264    15         1      0               0  1.017779  427.574044
2   264    15         2      0               0  0.225532  444.964677
3   264    15         3      0               0  0.451231  299.395544
4   264    15         4      0               0  0.877912  361.866741
5   264    15         5      0               0  0.359110  335.704559
6   264    15         6      0               0  1.099851  425.867529
7   264    15         7      0               0  0.075324  288.560830
8   264    15         8      0               0  0.860340  329.134482
9   264    15         9      0               0  0.771696  354.797841
10  264    15        10      0               0  0.005952  357.027297
11  264    15        11      0               0  0.672767  309.699493
12  264    15        12      0               0  0.016029  285.296894
13  264    15        13      0               0  1.353611  383.250499
14  264    15        14      0               0  0.080793  311.248245
15  264    15        15      0               0  0.345603  326.106865
16  264    15        16      0               0  0.264071  398.326118
17  264    15        17      0               0  0.647551  426.617023
18  264    15        18      0               0  0.719131  388.944346
19  264    15        19      0               0  0.227703  331.553653

        par Ei
0   339.237021
1   503.028288
2   523.487855
3   352.230052
4   425.725578
5   394.946540
6   501.020622
7   339.483330
8   387.217038
9   417.409225
10  420.032114
11  364.352345
12  335.643405
13  450.882940
14  366.174405
15  383.655136
16  468.618962
17  501.902380
18  457.581583
19  390.063122

We can try to group multiple sets of triangles

[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)]
[6]:
scene = {0: triangles1, 1: triangles2, 2: triangles3}

lighting = LightVegeManager(lightmodel="caribu")
lighting.build(geometry={"scenes" : [scene] })

energy = 500.
hour = 15
day = 264
lighting.run(energy=energy, hour=hour, day=day)
[7]:
print(lighting.triangles_outputs)
    Day  Hour  Triangle  Organ  VegetationType      Area    par Eabs  \
0   264    15         0      0               0  0.347893  466.934112
1   264    15         1      0               0  0.230175  343.491693
2   264    15         2      0               0  0.236752  406.441366
3   264    15         3      0               0  0.055911  431.671508
4   264    15         4      0               0  2.047361  349.189980
5   264    15         5      0               0  0.132022  305.537738
6   264    15         6      0               0  0.179736  347.226774
7   264    15         7      0               0  0.353962  391.605479
8   264    15         8      0               0  1.065609  441.957469
9   264    15         9      0               0  0.196493  334.393347
10  264    15        10      1               0  0.014315  335.982872
11  264    15        11      1               0  0.047547  409.832578
12  264    15        12      1               0  0.932423  417.792230
13  264    15        13      1               0  0.078560  330.173348
14  264    15        14      1               0  0.037776  413.308224
15  264    15        15      1               0  1.845328  393.111328
16  264    15        16      1               0  0.212917  402.681041
17  264    15        17      1               0  0.367550  360.846221
18  264    15        18      1               0  0.104118  339.165224
19  264    15        19      2               0  0.051821  481.839430
20  264    15        20      2               0  0.172513  316.689490
21  264    15        21      2               0  0.274700  360.822712
22  264    15        22      2               0  0.150917  274.216253
23  264    15        23      2               0  0.028843  372.272165
24  264    15        24      2               0  0.643578  373.151609
25  264    15        25      2               0  0.094779  340.286767
26  264    15        26      2               0  0.069499  388.224866

        par Ei
0   549.334249
1   404.107874
2   478.166313
3   507.848832
4   410.811741
5   359.456163
6   408.502087
7   460.712328
8   519.949964
9   393.403938
10  395.273967
11  482.155974
12  491.520271
13  388.439233
14  486.244970
15  462.483915
16  473.742402
17  424.524966
18  399.017911
19  566.869918
20  372.575870
21  424.497308
22  322.607357
23  437.967253
24  439.001893
25  400.337373
26  456.735136

And the grouped results

[8]:
print(lighting.elements_outputs)
   Day  Hour  Organ  VegetationType      Area    par Eabs      par Ei
0  264    15      0               0  4.845914  382.756535  450.301806
1  264    15      1               0  3.640534  394.037183  463.573157
2  264    15      2               0  1.486650  356.659092  419.598932

With RATP, you have another output for each voxel

[9]:
scene = {0: triangles1, 1: triangles2, 2: triangles3}

lighting = LightVegeManager(lightmodel="ratp")
lighting.build(geometry={"scenes" : [scene] })

energy = 500.
hour = 15
day = 264
lighting.run(energy=energy, hour=hour, day=day)
[10]:
print(lighting.triangles_outputs)
    Triangle  Organ  Voxel  VegetationType  primitive_area    Day  Hour  Nx  \
0          0      0    1.0               1        0.347893  264.0  15.0   1
1          1      0    1.0               1        0.230175  264.0  15.0   1
2          2      0    1.0               1        0.236752  264.0  15.0   1
3          3      0    1.0               1        0.055911  264.0  15.0   1
4          4      0    1.0               1        2.047361  264.0  15.0   1
5          5      0    1.0               1        0.132022  264.0  15.0   1
6          6      0    1.0               1        0.179736  264.0  15.0   1
7          7      0    1.0               1        0.353962  264.0  15.0   1
8          8      0    1.0               1        1.065609  264.0  15.0   1
9          9      0    1.0               1        0.196493  264.0  15.0   1
10        10      1    1.0               1        0.014315  264.0  15.0   1
11        11      1    1.0               1        0.047547  264.0  15.0   1
12        12      1    1.0               1        0.932423  264.0  15.0   1
13        13      1    1.0               1        0.078560  264.0  15.0   1
14        14      1    1.0               1        0.037776  264.0  15.0   1
15        15      1    1.0               1        1.845328  264.0  15.0   1
16        16      1    1.0               1        0.212917  264.0  15.0   1
17        17      1    1.0               1        0.367550  264.0  15.0   1
18        18      1    1.0               1        0.104118  264.0  15.0   1
19        19      2    1.0               1        0.051821  264.0  15.0   1
20        20      2    1.0               1        0.172513  264.0  15.0   1
21        21      2    1.0               1        0.274700  264.0  15.0   1
22        22      2    1.0               1        0.150917  264.0  15.0   1
23        23      2    1.0               1        0.028843  264.0  15.0   1
24        24      2    1.0               1        0.643578  264.0  15.0   1
25        25      2    1.0               1        0.094779  264.0  15.0   1
26        26      2    1.0               1        0.069499  264.0  15.0   1

    Ny  Nz   ShadedPAR   SunlitPAR  ShadedArea  SunlitArea      Area  \
0    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
1    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
2    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
3    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
4    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
5    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
6    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
7    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
8    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
9    1   1  363.182404  461.736481    0.416941    9.556157  9.973098
10   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
11   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
12   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
13   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
14   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
15   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
16   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
17   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
18   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
19   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
20   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
21   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
22   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
23   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
24   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
25   1   1  363.182404  461.736481    0.416941    9.556157  9.973098
26   1   1  363.182404  461.736481    0.416941    9.556157  9.973098

          PARa  Intercepted  Transmitted
0   457.616241     9.127703    44.626312
1   457.616241     9.127703    44.626312
2   457.616241     9.127703    44.626312
3   457.616241     9.127703    44.626312
4   457.616241     9.127703    44.626312
5   457.616241     9.127703    44.626312
6   457.616241     9.127703    44.626312
7   457.616241     9.127703    44.626312
8   457.616241     9.127703    44.626312
9   457.616241     9.127703    44.626312
10  457.616241     9.127703    44.626312
11  457.616241     9.127703    44.626312
12  457.616241     9.127703    44.626312
13  457.616241     9.127703    44.626312
14  457.616241     9.127703    44.626312
15  457.616241     9.127703    44.626312
16  457.616241     9.127703    44.626312
17  457.616241     9.127703    44.626312
18  457.616241     9.127703    44.626312
19  457.616241     9.127703    44.626312
20  457.616241     9.127703    44.626312
21  457.616241     9.127703    44.626312
22  457.616241     9.127703    44.626312
23  457.616241     9.127703    44.626312
24  457.616241     9.127703    44.626312
25  457.616241     9.127703    44.626312
26  457.616241     9.127703    44.626312
[11]:
print(lighting.voxels_outputs)
   VegetationType    Day  Hour  Voxel  Nx  Ny  Nz   ShadedPAR   SunlitPAR  \
0             1.0  264.0  15.0    1.0   1   1   1  363.182404  461.736481

   ShadedArea  SunlitArea      Area        PARa  Intercepted  Transmitted
0    0.416941    9.556157  9.973098  457.616241     9.127703    44.626312
[12]:
print(lighting.elements_outputs)
     Day  Hour  Organ  VegetationType      Area        PARa  Intercepted  \
0  264.0  15.0      0               1  4.845914  457.616241     9.127703
1  264.0  15.0      1               1  3.640534  457.616241     9.127703
2  264.0  15.0      2               1  1.486650  457.616241     9.127703

   Transmitted   SunlitPAR  SunlitArea   ShadedPAR  ShadedArea
0     9.127703  461.736481    9.556157  363.182404    0.416941
1     9.127703  461.736481    9.556157  363.182404    0.416941
2     9.127703  461.736481    9.556157  363.182404    0.416941

5.4. l-egume results transfer

There are two possible scenarios: - with RATP, the tool reformats the data types. Grid specifications must match with l-egume internal grid instance - with CARIBU, you need to use virtual sensors following the dimensions of l-egume internal grid.

The id argument is used with you several input scenes but you need to transfer only some of them to your l-egume instance.

In both case, it will return two tables, one with intercepted lighting and another with transmitted lighting in each voxel.

[6]:
# grid dimensions
dxyz = [1.] * 3
nxyz = [7, 7, 7]
orig = [-1., -1., 0.]
[8]:
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}

5.4.1. RATP

Input: l-egume intern grid of leaf area

[12]:
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)
[14]:
SceneWidget(lighting.to_plantGL(lighting=True, printtriangles=True, printvoxels=True),
            position=(0., 0., 0.0),
            size_display=(600, 400),
            plane=True,
            size_world = 10,
            axes_helper=True)
[14]:
[17]:
import numpy

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
[18]:
res_abs_i, res_trans = lighting.to_l_egume(m_lais=m_lais)

print("PARa intercepted")
print(res_abs_i)
print("\n")
print("PARa transmitted")
print(res_trans)
PARa intercepted
[[[[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]]

  [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 4.89933714e-02 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 2.93938100e-01 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 2.57237822e-01
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]]

  [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 3.80286694e-01 8.93628836e-01
    6.55927658e-01 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.29318118e-01 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 5.11650145e-01
    3.74495775e-01 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]]

  [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 5.34315050e-01 1.00000000e-14
    4.15218249e-02 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    4.28144723e-01 5.49222976e-02 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 2.89329551e-02]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]]

  [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.69486284e-01 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 8.16469371e-01 1.00000000e-14
    1.00000000e-14 6.63995743e-02 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]]

  [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 2.14309216e-01 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 2.51297981e-01 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 6.85566485e-01
    1.00000000e-14 1.11084175e+00 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]]

  [[1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.67224873e-02 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]
   [1.00000000e-14 1.00000000e-14 1.00000000e-14 1.00000000e-14
    1.00000000e-14 1.00000000e-14 1.00000000e-14]]]]


PARa transmitted
[[[1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]]

 [[1.         0.99966007 0.99862611 0.99862772 0.99882162 1.
   1.        ]
  [0.99937242 0.99652928 0.99643964 0.99913657 0.99951363 0.99987358
   0.9998582 ]
  [0.99661541 0.9750672  0.97824836 0.99296302 0.99881232 0.99979579
   0.9996115 ]
  [0.9968856  0.98334223 0.88385904 0.97908282 0.99741894 0.99954569
   0.99927342]
  [0.99909747 0.99502355 0.98070908 0.97873741 0.99385464 0.99878031
   1.        ]
  [0.99955082 0.99661982 0.98586112 0.89782482 0.98341918 0.99853724
   0.99973792]
  [1.         0.99890536 0.99653733 0.98721927 0.99558949 0.99994254
   0.99992949]]

 [[0.99485987 0.98211366 0.94685709 0.90895796 0.92835289 0.9768011
   0.99335617]
  [0.98958224 0.95989323 0.78321606 0.59019464 0.68427098 0.94649696
   0.98931742]
  [0.99396461 0.97352087 0.89230376 0.90797049 0.93556297 0.97943383
   0.99502289]
  [0.99184281 0.98125339 0.94494903 0.93165594 0.95026821 0.98223406
   0.99335128]
  [0.98969823 0.9849447  0.95014137 0.76321989 0.81169522 0.96606922
   0.98965567]
  [0.99407554 0.99231446 0.976399   0.93636918 0.95371062 0.98325461
   0.99324131]
  [0.99734932 0.99393582 0.9833504  0.97493804 0.9806965  0.99197996
   0.9983626 ]]

 [[0.98496985 0.96739489 0.9302929  0.89807343 0.9174937  0.95895547
   0.98020232]
  [0.98125023 0.94733357 0.86565912 0.84225869 0.8774448  0.95282722
   0.98152596]
  [0.97424239 0.93394589 0.72031593 0.88447887 0.90997893 0.9595657
   0.9761579 ]
  [0.97994757 0.96309948 0.90736842 0.8934654  0.89512074 0.94767475
   0.97867441]
  [0.98629206 0.97525859 0.95201224 0.88435513 0.7504518  0.91819239
   0.98110867]
  [0.98893738 0.98108053 0.96626729 0.94061965 0.93254912 0.95972735
   0.97235537]
  [0.98517865 0.97681737 0.96344769 0.95575136 0.95711577 0.96942037
   0.9815892 ]]

 [[0.97933716 0.97092551 0.94165611 0.94100547 0.94331664 0.95525873
   0.97785884]
  [0.97096044 0.94943368 0.91685653 0.90953714 0.91383499 0.89041752
   0.96821451]
  [0.9826436  0.95704621 0.91028017 0.92085916 0.93676978 0.95857286
   0.97805393]
  [0.97259653 0.94509262 0.87017393 0.89592469 0.91131461 0.94362009
   0.96967971]
  [0.98114228 0.93692589 0.66466349 0.88666028 0.9184655  0.92707497
   0.97069734]
  [0.97923797 0.97428864 0.9446348  0.95074368 0.95068192 0.96627277
   0.9782179 ]
  [0.98016465 0.97797263 0.95464146 0.94952333 0.94629568 0.97018468
   0.980313  ]]

 [[0.95296037 0.95422834 0.94934404 0.93673187 0.93656844 0.93842596
   0.94804531]
  [0.97229284 0.96320361 0.9393397  0.92389566 0.92137164 0.87234128
   0.95597047]
  [0.96675485 0.94391161 0.90375632 0.92214018 0.92659348 0.92107111
   0.96080649]
  [0.95322537 0.92634034 0.80349278 0.84525293 0.90094328 0.86473721
   0.93806767]
  [0.96127474 0.93329871 0.8198998  0.64854169 0.81475776 0.55683774
   0.90463072]
  [0.98215431 0.96413124 0.91450155 0.88721132 0.9184497  0.89321476
   0.96541333]
  [0.98092657 0.96966964 0.9389317  0.95247173 0.94251043 0.95123148
   0.96945715]]

 [[0.94756877 0.95514208 0.94929218 0.94613492 0.92572314 0.9404825
   0.93554872]
  [0.97161055 0.95421797 0.92918479 0.93547511 0.92323899 0.93136919
   0.94081557]
  [0.94040775 0.94937837 0.93365628 0.92724371 0.91473806 0.9428041
   0.93166846]
  [0.94083965 0.92754972 0.9003523  0.89309627 0.89577699 0.90264505
   0.92660093]
  [0.94083911 0.92529798 0.88156152 0.84460795 0.84956956 0.85377795
   0.90978062]
  [0.93541592 0.93342227 0.9089222  0.90135753 0.88972384 0.89331508
   0.92612672]
  [0.96249211 0.96975094 0.94652379 0.9468134  0.93272442 0.94823855
   0.95390475]]]

5.4.2. CARIBU

Input: l-egume intern grid of leaf area

[9]:
caribu_args = { "sensors" : ["grid", dxyz, nxyz, orig] }

lighting = LightVegeManager(lightmodel="caribu", lightmodel_parameters=caribu_args, environment={"infinite":True})
lighting.build(geometry={"scenes" : [scene] })

energy = 500.
hour = 15
day = 264
lighting.run(energy=energy, hour=hour, day=day)
[11]:
scene, sensors = lighting.to_plantGL(lighting=True, virtual_sensors=True)
SceneWidget(scene + sensors,
            position=(-0., -0., 0.0),
            size_display=(600, 400),
            plane=True,
            size_world = 10,
            axes_helper=True)
[11]:
[21]:
# plant parameters, those variables are part of l-egume, here is a simplified version for our example
list_invar = [{"Hplante": [0.0] * 2}]
list_lstring = [
    {
        0: [0, 0, 0, 0, 0, 0, 0, 0, 0, "dev"],
        1: [0, 0, 0, 0, 0, 0, 0, 0, 0, "sen"],
        2: [1, 0, 0, 0, 0, 0, 0, 0, 0, "dev"],
    }
]
list_dicFeuilBilanR = [
    {"surf": [0.5, 1e-8]},
]

import numpy

m_lais = numpy.zeros([1] + nxyz)
[22]:
res_trans = lighting.to_l_egume(m_lais=m_lais,
                                list_lstring=list_lstring,
                                list_dicFeuilBilanR=list_dicFeuilBilanR,
                                list_invar=list_invar)
print("PARa transmitted")
print(res_trans)

print("\n")
print("PARa absorbed per plant")
print(list_invar)
PARa transmitted
[[[1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]
  [1.         1.         1.         1.         1.         1.
   1.        ]]

 [[0.99283465 0.97547655 0.97996241 0.9866237  0.9583532  0.95865713
   0.98694664]
  [0.97774844 0.96530949 0.97812413 0.94335656 0.79359731 0.8288275
   0.97984945]
  [0.95961262 0.96250934 0.97278397 0.91272267 0.7382741  0.79477271
   0.98515375]
  [0.97219276 0.97383604 0.95889506 0.92757533 0.87868432 0.9093107
   0.98973258]
  [0.99499098 0.99379047 0.97594497 0.96094415 0.9626287  0.97785097
   0.9939268 ]
  [0.99696075 0.99603476 0.99520086 0.98950364 0.98841795 0.99438669
   0.99632086]
  [0.99607408 0.99632587 0.99635674 0.99631713 0.99698258 0.99689147
   0.99685284]]

 [[0.97470511 0.94514069 0.93077744 0.93920035 0.9329825  0.92910817
   0.9597604 ]
  [0.93902562 0.84260595 0.83278455 0.88433881 0.86394577 0.88136
   0.94917899]
  [0.92365243 0.80240585 0.77352939 0.81993138 0.7911815  0.84628719
   0.94733873]
  [0.96214209 0.90668456 0.86337504 0.83267538 0.8023391  0.87666842
   0.95844153]
  [0.98205481 0.97935428 0.96394767 0.92029812 0.90199128 0.9400237
   0.97286147]
  [0.98656516 0.98394133 0.96488209 0.9617456  0.97551971 0.97480579
   0.97693207]
  [0.98860163 0.97982773 0.96375513 0.97078053 0.97175977 0.94172195
   0.95478506]]

 [[0.95701018 0.92543249 0.91452955 0.91529581 0.90796187 0.92735326
   0.96004947]
  [0.92750482 0.87879103 0.87139533 0.88794122 0.88021506 0.90711292
   0.94913605]
  [0.91243229 0.85247416 0.84137598 0.83055153 0.82787463 0.8959008
   0.94203007]
  [0.91033121 0.84517546 0.82532049 0.79060523 0.80545506 0.89567693
   0.91514608]
  [0.93257741 0.86079298 0.8449184  0.8523624  0.87150218 0.91578729
   0.9013189 ]
  [0.96779888 0.93102995 0.91071792 0.92115358 0.933688   0.94220112
   0.93189039]
  [0.97735824 0.96935045 0.93242933 0.91134405 0.94099756 0.959761
   0.95889625]]

 [[0.92296813 0.90516463 0.90284731 0.91447234 0.87371474 0.88073977
   0.93560093]
  [0.88270877 0.88940347 0.85396849 0.85397283 0.84917024 0.87384279
   0.91539319]
  [0.87898549 0.8856543  0.83203816 0.82884733 0.86532201 0.89502837
   0.90832493]
  [0.88237416 0.84629472 0.83386876 0.83964468 0.85864715 0.90311898
   0.92454761]
  [0.89126296 0.83400359 0.8388134  0.86334547 0.86850161 0.9055682
   0.93470077]
  [0.92007599 0.8866167  0.88060342 0.90901959 0.91319735 0.91664405
   0.93776939]
  [0.93967084 0.9347306  0.92625581 0.93690253 0.94524498 0.94220458
   0.9435016 ]]

 [[0.85841022 0.74993594 0.76130349 0.85284938 0.86431234 0.87480163
   0.90179267]
  [0.86526185 0.74226062 0.75591914 0.85134443 0.83492443 0.83171408
   0.88010129]
  [0.86923228 0.77258171 0.7676997  0.8318704  0.83804378 0.85347289
   0.87805225]
  [0.87857998 0.816706   0.79000755 0.82842821 0.8698445  0.89948354
   0.90035524]
  [0.89811456 0.86396829 0.85201001 0.87253328 0.90782969 0.91597453
   0.9044806 ]
  [0.92190268 0.89046769 0.8868083  0.91020047 0.92585094 0.88768819
   0.87828466]
  [0.89487078 0.8693884  0.85757664 0.86653003 0.90359564 0.88007679
   0.87716112]]

 [[0.85301056 0.8414348  0.8673805  0.88293181 0.85568144 0.8688417
   0.88986585]
  [0.84806958 0.8108317  0.82544714 0.84720828 0.86359825 0.88581908
   0.90040623]
  [0.85604356 0.81045805 0.8047335  0.83012291 0.86524461 0.89470453
   0.87592102]
  [0.85554426 0.81356764 0.79736908 0.80259271 0.83525448 0.8843983
   0.85818303]
  [0.86421433 0.81436691 0.80029539 0.79579841 0.819411   0.86965378
   0.88410009]
  [0.88160032 0.85434114 0.81889592 0.80924773 0.85369548 0.88390842
   0.9028424 ]
  [0.89895522 0.86912624 0.83433478 0.82886494 0.87638531 0.8954713
   0.89080121]]]


PARa absorbed per plant
[{'Hplante': [0.0, 0.0], 'parap': array([122.57339982, 154.20674688]), 'parip': array([235.25554024, 154.20674688])}]

5.5. CN-Wheat results transfer

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.

[23]:
# load a MTG instance
import os
from alinea.adel.adel_dynamic import AdelDyn
from alinea.adel.echap_leaf import echap_leaves

INPUTS_DIRPATH = os.path.join(os.path.dirname(os.path.abspath("")), "data")
adel_wheat = AdelDyn(seed=1, scene_unit="m", leaves=echap_leaves(xy_model="Soissons_byleafclass"))
g = adel_wheat.load(dir=INPUTS_DIRPATH)
[24]:
lighting = LightVegeManager(lightmodel="caribu")
lighting.build(geometry={"scenes" : [g] })

energy = 500.
hour = 15
day = 264
lighting.run(energy=energy, hour=hour, day=day)
[25]:
lighting.to_MTG(mtg=g)
print(g.property("PARa"))
print(g.property("Erel"))
{19: 183.28839878423275, 34: 88.59510772768847, 813: 458.96763725505764, 814: 392.72942554102866, 51: 350.64417693430573}
{19: 0.3665767975684655, 34: 0.17719021545537694, 813: 0.9179352745101153, 814: 0.7854588510820574, 51: 0.7012883538686114}
[26]:
lighting = LightVegeManager(lightmodel="ratp")
lighting.build(geometry={"scenes" : [g] })

energy = 500.
hour = 15
day = 264
lighting.run(energy=energy, hour=hour, day=day)
[27]:
lighting.to_MTG(mtg=g)
print(g.property("PARa"))
print(g.property("Erel"))
{19: 468.0222778320313, 34: 468.02227783203136, 813: 468.0222778320312, 814: 473.66244791932104, 51: 468.02227783203125}
{19: 0.0007445579394698143, 34: 0.0007445579394698143, 813: 0.0007445579394698141, 814: 0.00030915768207336026, 51: 0.0007445579394698143}