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}