Commit last-minute
This commit is contained in:
parent
b4a97a65ab
commit
0ba7189bfc
221 changed files with 139931 additions and 1 deletions
2
hydroshoot/test/data/_reference_time_series.csv
Normal file
2
hydroshoot/test/data/_reference_time_series.csv
Normal file
|
@ -0,0 +1,2 @@
|
|||
Rg;An;E;Tleaf;psi_soil;psi_collar;psi_leaf;theta_soil
|
||||
69.8278284128148;8.038509067043373;183.83694927361498;25.9860765072961;-0.2;-0.22715047303262692;-0.23648594239929285;0.05731273956258906
|
|
663
hydroshoot/test/data/digit_twin_pots.csv
Normal file
663
hydroshoot/test/data/digit_twin_pots.csv
Normal file
|
@ -0,0 +1,663 @@
|
|||
Plant;TRONC;ELMNT;SAR;RAM;RANG;Xabs;Yabs;Zabs;DIAM
|
||||
1;base;0;0;0;0;0;12.5;30.98;0
|
||||
1;0;1;0;0;0;-1.87;3.78;35.63;1.709
|
||||
1;0;2;0;0;0;0.88;5.45;42.91;2.129
|
||||
1;0;2.a;0;0;0;3.47;4.83;44.68;2.642
|
||||
1;0;2.a;1;0;0;4.28;3.73;46.4;1.687
|
||||
1;0;2.a;1;1;0;2.13;5.07;48.12;2.148
|
||||
1;0;2.a;1;1;1;1.49;5.65;49.43;1.921
|
||||
1;0;2.a;1;p;0;3.9;6.16;48.16;0.11
|
||||
1;0;2.a;1;F1;0;5.39;5.21;48.87;0
|
||||
1;0;2.a;1;F2;0;5.48;4.93;47.6;0
|
||||
1;0;2.a;1;F3;0;4.61;5.06;46.97;0
|
||||
1;0;2.a;1;F4;0;4.06;5.58;45.6;0
|
||||
1;0;2.a;1;F5;0;3.63;6.43;46.86;0
|
||||
1;0;2.a;1;1;2;2.24;5.47;49.61;1.661
|
||||
1;0;2.a;1;p;0;-1.24;6.21;45.94;0.213
|
||||
1;0;2.a;1;F1;0;-0.58;11.3;46.67;0
|
||||
1;0;2.a;1;F2;0;0.17;9.02;42.11;0
|
||||
1;0;2.a;1;F3;0;1.72;6.27;42.56;0
|
||||
1;0;2.a;1;F4;0;1.06;3.05;44.22;0
|
||||
1;0;2.a;1;F5;0;-1.81;2.29;46.52;0
|
||||
1;0;2.a;1;1;3;3.77;5.59;51.55;1.18
|
||||
1;0;2.a;1;p;0;5.03;12.07;49.77;0.281
|
||||
1;0;2.a;1;F1;0;11.47;12.18;51.76;0
|
||||
1;0;2.a;1;F2;0;8.27;11.77;45.83;0
|
||||
1;0;2.a;1;F3;0;6.69;9.95;43.24;0
|
||||
1;0;2.a;1;F4;0;1.69;12.52;43.66;0
|
||||
1;0;2.a;1;F5;0;0.41;14.29;48.53;0
|
||||
1;0;2.a;1;1;4;3.57;6.41;55.76;1.2
|
||||
1;0;2.a;1;p;0;-3.77;13.27;55.09;0.323
|
||||
1;0;2.a;1;F1;0;3.19;16.08;57.07;0
|
||||
1;0;2.a;1;F2;0;1.55;17.47;50.13;0
|
||||
1;0;2.a;1;F3;0;-1.07;13.4;46.71;0
|
||||
1;0;2.a;1;F4;0;-3.73;8.19;50.61;0
|
||||
1;0;2.a;1;F5;0;-7.5;11.08;53.77;0
|
||||
1;0;2.a;1;1;5;4.21;7.89;59.6;1.028
|
||||
1;0;2.a;1;p;0;2.33;15.95;60.14;0.28
|
||||
1;0;2.a;1;F1;0;4.78;20.89;61.82;0
|
||||
1;0;2.a;1;F2;0;4.59;22.96;57.63;0
|
||||
1;0;2.a;1;F3;0;3.82;21.59;54.81;0
|
||||
1;0;2.a;1;F4;0;0.81;18.54;53.89;0
|
||||
1;0;2.a;1;F5;0;-2.11;16.76;57.2;0
|
||||
1;0;2.a;1;1;6;1.3;10.27;63.85;1.08
|
||||
1;0;2.a;1;1;7;3.18;10.95;67.41;1.034
|
||||
1;0;2.a;1;p;0;6.31;17.27;68.26;0.283
|
||||
1;0;2.a;1;F1;0;9.24;20.7;72.1;0
|
||||
1;0;2.a;1;F2;0;11.85;23.19;67.51;0
|
||||
1;0;2.a;1;F3;0;9.23;20.65;60.15;0
|
||||
1;0;2.a;1;F4;0;4.43;22.19;61.3;0
|
||||
1;0;2.a;1;F5;0;-1.01;19.54;68.59;0
|
||||
1;0;2.a;1;1;8;2.91;11.67;70.69;1.121
|
||||
1;0;2.a;1;p;0;-1.51;17.56;69.26;0.265
|
||||
1;0;2.a;1;F1;0;-1.13;23.93;69.91;0
|
||||
1;0;2.a;1;F2;0;-3.1;24.23;63.46;0
|
||||
1;0;2.a;1;F3;0;-7.25;24.86;62.4;0
|
||||
1;0;2.a;1;F4;0;-10.99;18.61;69.41;0
|
||||
1;0;2.a;1;F5;0;-7;14.92;71.93;0
|
||||
1;0;2.a;1;1;9;2.05;12.85;73.66;0.999
|
||||
1;0;2.a;1;p;0;8.06;17.1;76.52;0.28
|
||||
1;0;2.a;1;F1;0;7.74;17.47;82.96;0
|
||||
1;0;2.a;1;F2;0;10.45;23.31;78.95;0
|
||||
1;0;2.a;1;F3;0;11.82;22.34;70.11;0
|
||||
1;0;2.a;1;F4;0;8;21.38;69.14;0
|
||||
1;0;2.a;1;F5;0;2.49;18.71;73.22;0
|
||||
1;0;2.a;1;1;10;2.05;14.73;79.11;0.983
|
||||
1;0;2.a;1;p;0;-1.62;21.45;78.35;0.313
|
||||
1;0;2.a;1;F1;0;0.05;29.04;78.71;0
|
||||
1;0;2.a;1;F2;0;0.97;28.58;72.4;0
|
||||
1;0;2.a;1;F3;0;-5.92;27.84;69.06;0
|
||||
1;0;2.a;1;F4;0;-10.82;23.81;74.66;0
|
||||
1;0;2.a;1;F5;0;-6.59;18.08;79.12;0
|
||||
1;0;2.a;1;1;11;2.86;16.17;81.9;1.017
|
||||
1;0;2.a;1;p;0;7.54;22.79;82.3;0.32
|
||||
1;0;2.a;1;F1;0;13.68;27.66;84.95;0
|
||||
1;0;2.a;1;F2;0;12.05;28.54;75.58;0
|
||||
1;0;2.a;1;F3;0;7.03;28.3;73.61;0
|
||||
1;0;2.a;1;F4;0;2.77;29.47;77.24;0
|
||||
1;0;2.a;1;F5;0;1.07;21.81;80.39;0
|
||||
1;0;2.a;1;1;12;2.63;17.92;87.05;1.02
|
||||
1;0;2.a;1;p;0;-2.19;23.78;88.71;0.309
|
||||
1;0;2.a;1;F1;0;0.66;32.01;89.73;0
|
||||
1;0;2.a;1;F2;0;1.07;31.32;82.1;0
|
||||
1;0;2.a;1;F3;0;-1.54;20.46;80.1;0
|
||||
1;0;2.a;1;F4;0;-7.84;25.95;81.16;0
|
||||
1;0;2.a;1;F5;0;-9.77;23.23;89.39;0
|
||||
1;0;2.a;1;1;13;3.67;19.86;92.1;0.993
|
||||
1;0;2.a;1;p;0;8.06;27.88;94.21;0.302
|
||||
1;0;2.a;1;F1;0;9.12;30.61;101.89;0
|
||||
1;0;2.a;1;F2;0;16.82;34.47;95.1;0
|
||||
1;0;2.a;1;F3;0;11.69;37.28;88.39;0
|
||||
1;0;2.a;1;F4;0;5.6;36.2;87.59;0
|
||||
1;0;2.a;1;F5;0;-0.68;28.66;91.45;0
|
||||
1;0;2.a;1;1;14;4.14;21.61;98.34;0.991
|
||||
1;0;2.a;1;p;0;-1.72;28.15;101.51;0.324
|
||||
1;0;2.a;1;F1;0;-1.51;36.65;103.06;0
|
||||
1;0;2.a;1;F2;0;-0.59;38.65;97.72;0
|
||||
1;0;2.a;1;F3;0;-9.04;37.14;93.58;0
|
||||
1;0;2.a;1;F4;0;-13.13;31.19;97.95;0
|
||||
1;0;2.a;1;F5;0;-8.11;24.6;103.19;0
|
||||
1;0;2.a;1;1;15;4.53;22.98;103.8;0.964
|
||||
1;0;2.a;1;p;0;12.58;24.43;107.38;0.327
|
||||
1;0;2.a;1;F1;0;16.19;23.97;113.74;0
|
||||
1;0;2.a;1;F2;0;23.14;26.18;108.73;0
|
||||
1;0;2.a;1;F3;0;24.46;28.85;102.78;0
|
||||
1;0;2.a;1;F4;0;14.22;34.58;100.7;0
|
||||
1;0;2.a;1;F5;0;8.93;33.2;105.76;0
|
||||
1;0;2.a;1;1;16;5.75;24.45;112.76;0.915
|
||||
1;0;2.a;1;p;0;0.6;29.7;116.07;0.371
|
||||
1;0;2.a;1;F1;0;3.16;35.48;118.03;0
|
||||
1;0;2.a;1;F2;0;0.77;39.55;111.04;0
|
||||
1;0;2.a;1;F3;0;-5.42;36.87;111.06;0
|
||||
1;0;2.a;1;F4;0;-9.41;31.43;114.68;0
|
||||
1;0;2.a;1;F5;0;-7.73;26.39;118.9;0
|
||||
1;0;2.a;1;1;17;8.21;26.46;122.04;0.836
|
||||
1;0;2.a;1;p;0;13.39;31.6;125.23;0.346
|
||||
1;0;2.a;1;F1;0;15.9;28.83;130.96;0
|
||||
1;0;2.a;1;F2;0;18.51;37.57;129.88;0
|
||||
1;0;2.a;1;F3;0;22.4;37.89;120.94;0
|
||||
1;0;2.a;1;F4;0;13.05;41.3;119.27;0
|
||||
1;0;2.a;1;F5;0;7.48;38.11;121.6;0
|
||||
1;0;2.a;1;1;18;8.15;28.97;129.63;0.873
|
||||
1;0;2.a;1;p;0;1.87;33.35;134.06;0.332
|
||||
1;0;2.a;1;F1;0;4.33;41.33;137.08;0
|
||||
1;0;2.a;1;F2;0;0.14;43.49;128.34;0
|
||||
1;0;2.a;1;F3;0;-0.97;39;127.4;0
|
||||
1;0;2.a;1;F4;0;-8.62;33.89;131.85;0
|
||||
1;0;2.a;1;F5;0;-2.79;29.85;136.68;0
|
||||
1;0;2.a;1;1;19;6.56;33;138.19;0.938
|
||||
1;0;2.a;1;p;0;11.96;36.89;143.8;0.354
|
||||
1;0;2.a;1;F1;0;16.35;38.52;150.49;0
|
||||
1;0;2.a;1;F2;0;20.97;42.54;141.75;0
|
||||
1;0;2.a;1;F3;0;19.06;44.2;135.1;0
|
||||
1;0;2.a;1;F4;0;14.59;48.13;140.11;0
|
||||
1;0;2.a;1;F5;0;6.33;43.31;141.6;0
|
||||
1;0;2.a;1;1;20;3.94;35.19;144.96;0.904
|
||||
1;0;2.a;1;p;0;-0.16;43.02;147.03;0.473
|
||||
1;0;2.a;1;F1;0;7.28;48.15;150.35;0
|
||||
1;0;2.a;1;F2;0;0.78;53.98;144.06;0
|
||||
1;0;2.a;1;F3;0;-7.64;47.3;139.33;0
|
||||
1;0;2.a;1;F4;0;-11.66;44.2;148.25;0
|
||||
1;0;2.a;1;F5;0;-7.85;40.06;152.57;0
|
||||
1;0;2.a;1;1;21;5.22;37.94;152.5;0.896
|
||||
1;0;2.a;1;p;0;9.59;39.59;158.75;0.562
|
||||
1;0;2.a;1;F1;0;9.79;35.79;164.95;0
|
||||
1;0;2.a;1;F2;0;19.33;39.07;163.67;0
|
||||
1;0;2.a;1;F3;0;21.4;33.81;153.77;0
|
||||
1;0;2.a;1;F4;0;17.95;46.5;154.12;0
|
||||
1;0;2.a;1;F5;0;9.96;45.96;161.31;0
|
||||
1;0;2.a;1;1;22;2.54;41.08;160.76;0.853
|
||||
1;0;2.a;1;p;0;-1.08;49.96;161.72;0.493
|
||||
1;0;2.a;1;F1;0;11.69;48.84;164.94;0
|
||||
1;0;2.a;1;F2;0;10.99;57.55;161.04;0
|
||||
1;0;2.a;1;F3;0;5.74;57.52;154.09;0
|
||||
1;0;2.a;1;F4;0;-5.38;54.89;156.95;0
|
||||
1;0;2.a;1;F5;0;-4.46;53.36;165.08;0
|
||||
1;0;2.a;1;1;23;-2;43.69;166;0.751
|
||||
1;0;2.a;1;p;0;-0.38;42.03;170.52;0.492
|
||||
1;0;2.a;1;F1;0;5.61;37.71;174.29;0
|
||||
1;0;2.a;1;F2;0;3.21;45.56;177.36;0
|
||||
1;0;2.a;1;F3;0;6.96;40.74;177.93;0
|
||||
1;0;2.a;1;F4;0;9.99;48.15;168.53;0
|
||||
1;0;2.a;1;F5;0;-1.4;53.72;169.96;0
|
||||
1;0;2.a;1;1;24;-5.04;48.15;171.19;0.802
|
||||
1;0;2.a;1;p;0;-10.47;48.08;173.2;0.487
|
||||
1;0;2.a;1;F1;0;-14.85;52.27;178.93;0
|
||||
1;0;2.a;1;F2;0;-16.52;56.95;170.79;0
|
||||
1;0;2.a;1;F3;0;-16.98;46.7;162.46;0
|
||||
1;0;2.a;1;F4;0;-14.98;38.11;171.07;0
|
||||
1;0;2.a;1;F5;0;-16.22;44.24;178.45;0
|
||||
1;0;2.a;1;2;0;1.31;3.23;49.83;2.186
|
||||
1;0;2.a;1;2;1;2.38;2.37;49.74;1.97
|
||||
1;0;2.a;1;2;2;0.5;2.65;50.02;1.723
|
||||
1;0;2.a;1;p;0;3.78;0.78;46.36;0.145
|
||||
1;0;2.a;1;F1;0;1.49;-1.63;46.24;0
|
||||
1;0;2.a;1;F2;0;1.7;-0.63;43.58;0
|
||||
1;0;2.a;1;F3;0;0.53;1.54;43.55;0
|
||||
1;0;2.a;1;F4;0;0.49;3.22;43.89;0
|
||||
1;0;2.a;1;F5;0;4.13;3.04;45.57;0
|
||||
1;0;2.a;1;2;3;0.85;1.23;53.29;1.008
|
||||
1;0;2.a;1;p;0;5.26;0.62;53.04;0.217
|
||||
1;0;2.a;1;F1;0;0.15;1.17;51.88;0
|
||||
1;0;2.a;1;F2;0;3.53;-3.2;50.01;0
|
||||
1;0;2.a;1;F3;0;2.86;-3.1;47.92;0
|
||||
1;0;2.a;1;F4;0;3.87;1.54;47.4;0
|
||||
1;0;2.a;1;F5;0;5.8;1.52;48.49;0
|
||||
1;0;2.a;1;2;4;-1.61;0.04;55.54;1.188
|
||||
1;0;2.a;1;p;0;-5.01;-5.54;53.02;0.246
|
||||
1;0;2.a;1;F1;0;-10.38;-6.12;53.79;0
|
||||
1;0;2.a;1;F2;0;-10.44;-4.91;49.68;0
|
||||
1;0;2.a;1;F3;0;-5.36;-1;46.41;0
|
||||
1;0;2.a;1;F4;0;-4.25;-2.09;44.87;0
|
||||
1;0;2.a;1;F5;0;-2.95;-4.82;46.96;0
|
||||
1;0;2.a;1;2;5;-2.42;-1.74;58.3;1.214
|
||||
1;0;2.a;1;p;0;-1.93;-5.62;62.89;0.3
|
||||
1;0;2.a;1;F1;0;-6.32;-8.73;62.3;0
|
||||
1;0;2.a;1;F2;0;-4.01;-10.86;57.03;0
|
||||
1;0;2.a;1;F3;0;0.44;-11.39;53.81;0
|
||||
1;0;2.a;1;F4;0;2.8;-11.1;57.27;0
|
||||
1;0;2.a;1;F5;0;3.15;-11.23;65.07;0
|
||||
1;0;2.a;1;2;6;-5.25;-4.49;61.99;1.017
|
||||
1;0;2.a;1;p;0;-8.85;-10.59;57.08;0.328
|
||||
1;0;2.a;1;F1;0;-18.45;-9.57;57.63;0
|
||||
1;0;2.a;1;F2;0;-14.02;-6.53;50.46;0
|
||||
1;0;2.a;1;F3;0;-8.77;-8;47.74;0
|
||||
1;0;2.a;1;F4;0;-4;-12.31;51.91;0
|
||||
1;0;2.a;1;F5;0;-5.81;-15.58;58.59;0
|
||||
1;0;2.a;1;2;7;-9.92;-4.65;65.78;0.998
|
||||
1;0;2.a;1;p;0;-4.22;-8.55;73.05;0.33
|
||||
1;0;2.a;1;F1;0;-8.86;-12.95;70.57;0
|
||||
1;0;2.a;1;F2;0;-3.35;-15.55;74.91;0
|
||||
1;0;2.a;1;F3;0;3.01;-10.07;73.3;0
|
||||
1;0;2.a;1;F4;0;-0.3;-0.67;76.93;0
|
||||
1;0;2.a;1;F5;0;-5.28;-3.89;81.26;0
|
||||
1;0;2.a;1;2;8;-12.26;-8.56;69.32;0.902
|
||||
1;0;2.a;1;p;0;-17.25;-12.35;67.95;0.363
|
||||
1;0;2.a;1;F1;0;-23.14;-13.98;69.86;0
|
||||
1;0;2.a;1;F2;0;-22.79;-11.54;62.2;0
|
||||
1;0;2.a;1;F3;0;-17.94;-14.56;56.99;0
|
||||
1;0;2.a;1;F4;0;-12.15;-18.35;59.96;0
|
||||
1;0;2.a;1;F5;0;-11.9;-19.09;69.13;0
|
||||
1;0;2.a;1;2;9;-10.75;-11.71;74.27;0.808
|
||||
1;0;2.a;1;p;0;-7.81;-18.11;75.44;0.383
|
||||
1;0;2.a;1;F1;0;-15.03;-17.27;74.93;0
|
||||
1;0;2.a;1;F2;0;-13.72;-23.07;68.88;0
|
||||
1;0;2.a;1;F3;0;-6.71;-22.43;65.48;0
|
||||
1;0;2.a;1;F4;0;-1.65;-23.13;71;0
|
||||
1;0;2.a;1;F5;0;-3.28;-22.99;78.22;0
|
||||
1;0;2.a;1;2;10;-12.57;-14.14;80.11;0.793
|
||||
1;0;2.a;1;p;0;-18.98;-13.75;83.82;0.282
|
||||
1;0;2.a;1;F1;0;-22.41;-9.83;84.85;0
|
||||
1;0;2.a;1;F2;0;-26.33;-13.54;81.25;0
|
||||
1;0;2.a;1;F3;0;-25.81;-17.66;79.17;0
|
||||
1;0;2.a;1;F4;0;-19.81;-21.89;78.91;0
|
||||
1;0;2.a;1;F5;0;-18.23;-20.97;85.63;0
|
||||
1;0;2.a;1;2;11;-10.73;-17.1;85.58;0.865
|
||||
1;0;2.a;1;p;0;-7.89;-23.35;89.79;0.327
|
||||
1;0;2.a;1;F1;0;-13.1;-28.23;85.49;0
|
||||
1;0;2.a;1;F2;0;-7.2;-28.79;80.51;0
|
||||
1;0;2.a;1;F3;0;-1.93;-31.37;83.66;0
|
||||
1;0;2.a;1;F4;0;-5.54;-30.74;93.69;0
|
||||
1;0;2.a;1;F5;0;-5.63;-24.55;94.27;0
|
||||
1;0;2.a;1;2;12;-13.97;-19.25;94.91;0.85
|
||||
1;0;2.a;1;p;0;-19.88;-21.6;96.78;0.295
|
||||
1;0;2.a;1;F1;0;-23.93;-17.23;99.39;0
|
||||
1;0;2.a;1;F2;0;-27.24;-21.72;93.35;0
|
||||
1;0;2.a;1;F3;0;-23.78;-22.91;85.96;0
|
||||
1;0;2.a;1;F4;0;-21.81;-27.3;89.34;0
|
||||
1;0;2.a;1;F5;0;-22.37;-27.53;97.14;0
|
||||
1;0;2.a;1;2;13;-13.48;-22.4;101.21;0.848
|
||||
1;0;2.a;1;p;0;-11.91;-26.87;105.89;0.292
|
||||
1;0;2.a;1;F1;0;-15.3;-31.58;102.11;0
|
||||
1;0;2.a;1;F2;0;-11.51;-36.4;103.85;0
|
||||
1;0;2.a;1;F3;0;-5.08;-35.47;105.69;0
|
||||
1;0;2.a;1;F4;0;-4.15;-29.25;107.2;0
|
||||
1;0;2.a;1;F5;0;-10.33;-28.23;110.93;0
|
||||
1;0;2.a;1;2;14;-16.81;-23.74;106.13;0.755
|
||||
1;0;2.a;1;p;0;-23.41;-21.75;108.91;0.31
|
||||
1;0;2.a;1;F1;0;-27.99;-15.27;113.03;0
|
||||
1;0;2.a;1;F2;0;-29.87;-12.8;107.02;0
|
||||
1;0;2.a;1;F3;0;-32.03;-18.16;100.68;0
|
||||
1;0;2.a;1;F4;0;-34.54;-24.33;106.43;0
|
||||
1;0;2.a;1;F5;0;-28.89;-27.33;107.45;0
|
||||
1;0;2.a;1;2;15;-23.38;-24.14;112.3;0.789
|
||||
1;0;2.a;1;p;0;-25.06;-30.3;114.57;0.398
|
||||
1;0;2.a;1;F1;0;-25.41;-34.61;114.22;0
|
||||
1;0;2.a;1;F2;0;-25.64;-36.94;109.24;0
|
||||
1;0;2.a;1;F3;0;-20.59;-37.37;105.75;0
|
||||
1;0;2.a;1;F4;0;-17.1;-39.24;111.08;0
|
||||
1;0;2.a;1;F5;0;-15.9;-37.04;117.94;0
|
||||
1;0;2.a;1;2;16;-24.15;-25.5;118.19;0.765
|
||||
1;0;2.a;1;p;0;-26.62;-23.13;122.06;0.388
|
||||
1;0;2.a;1;F1;0;-31.48;-19.37;126.23;0
|
||||
1;0;2.a;1;F2;0;-32.9;-14.18;119.93;0
|
||||
1;0;2.a;1;F3;0;-35.05;-16.82;115.69;0
|
||||
1;0;2.a;1;F4;0;-37.67;-21.58;117.41;0
|
||||
1;0;2.a;1;F5;0;-34.22;-27.56;121.54;0
|
||||
1;0;2.a;1;2;17;-22.36;-28.66;124.18;0.792
|
||||
1;0;2.a;1;p;0;-17.29;-33.76;128.12;0.455
|
||||
1;0;2.a;1;F1;0;-21.67;-41.03;128.29;0
|
||||
1;0;2.a;1;F2;0;-14;-42.12;124.45;0
|
||||
1;0;2.a;1;F3;0;-9.46;-39.29;128.12;0
|
||||
1;0;2.a;1;F4;0;-9.3;-29.84;127;0
|
||||
1;0;2.a;1;F5;0;-15.57;-28.79;132.61;0
|
||||
1;0;2.a;1;2;18;-24.91;-30.84;128.66;0.807
|
||||
1;0;2.a;1;p;0;-30.39;-32.05;132;0.367
|
||||
1;0;2.a;1;F1;0;-33.56;-27.17;135.9;0
|
||||
1;0;2.a;1;F2;0;-36.39;-25.63;129.1;0
|
||||
1;0;2.a;1;F3;0;-37.13;-32.02;125.5;0
|
||||
1;0;2.a;1;F4;0;-36.88;-38.76;130.61;0
|
||||
1;0;2.a;1;F5;0;-26.48;-39.86;133.53;0
|
||||
1;0;2.a;1;2;19;-25.68;-34.34;134.78;0.757
|
||||
1;0;2.a;1;p;0;-21.08;-33.95;141.97;0.399
|
||||
1;0;2.a;1;F1;0;-16.7;-43.48;142.99;0
|
||||
1;0;2.a;1;F2;0;-6.82;-41.81;143.91;0
|
||||
1;0;2.a;1;F3;0;-5.02;-36.38;140.98;0
|
||||
1;0;2.a;1;F4;0;-8.56;-26.69;140.56;0
|
||||
1;0;2.a;1;F5;0;-18.9;-26.02;144.62;0
|
||||
1;0;2.a;1;2;20;-23.24;-38.3;139.45;0.833
|
||||
1;0;2.a;1;p;0;-26.35;-36.83;145.22;0.454
|
||||
1;0;2.a;1;F1;0;-22.67;-34.69;147.85;0
|
||||
1;0;2.a;1;F2;0;-30.76;-29.04;148.25;0
|
||||
1;0;2.a;1;F3;0;-33.42;-28.08;139.23;0
|
||||
1;0;2.a;1;F4;0;-39.77;-36.15;139.26;0
|
||||
1;0;2.a;1;F5;0;-38.58;-37.1;149.17;0
|
||||
1;0;2.a;1;2;21;-27.85;-41.41;145.58;0.811
|
||||
1;0;2.a;1;p;0;-32.83;-46.85;147.09;0.442
|
||||
1;0;2.a;1;F1;0;-40.22;-48.76;147.7;0
|
||||
1;0;2.a;1;F2;0;-37.76;-51.65;138.76;0
|
||||
1;0;2.a;1;F3;0;-31.31;-52.63;134.12;0
|
||||
1;0;2.a;1;F4;0;-27.57;-55.92;144.17;0
|
||||
1;0;2.a;1;F5;0;-29.37;-50.96;152.13;0
|
||||
1;0;2.a;1;2;22;-34.45;-43.07;151.79;0.755
|
||||
1;0;2.a;1;p;0;-32.56;-39.49;159.4;0.405
|
||||
1;0;2.a;1;F1;0;-25.15;-39.61;165.76;0
|
||||
1;0;2.a;1;F2;0;-20.3;-35.69;159.5;0
|
||||
1;0;2.a;1;F3;0;-30.28;-30.65;153.95;0
|
||||
1;0;2.a;1;F4;0;-28.39;-34.79;159.91;0
|
||||
1;0;2.a;1;F5;0;-32.35;-43.53;162.03;0
|
||||
1;0;2.a;1;2;23;-29.17;-48.18;156.92;0.724
|
||||
1;0;2.a;1;p;0;-27.56;-54.06;160.29;0.534
|
||||
1;0;2.a;1;F1;0;-28.55;-57.33;163.16;0
|
||||
1;0;2.a;1;F2;0;-35.42;-63.22;155.76;0
|
||||
1;0;2.a;1;F3;0;-27.17;-66.69;155.83;0
|
||||
1;0;2.a;1;F4;0;-20.03;-62.23;154.98;0
|
||||
1;0;2.a;1;F5;0;-32.35;-57.57;163.46;0
|
||||
1;0;2.a;1;2;24;-35.65;-50.13;161.78;0.663
|
||||
1;0;2.a;1;p;0;-43.39;-44.51;166.65;0.541
|
||||
1;0;2.a;1;F1;0;-36.16;-39.33;169.74;0
|
||||
1;0;2.a;1;F2;0;-44.59;-38.7;164.26;0
|
||||
1;0;2.a;1;F3;0;-50.06;-45.82;160.75;0
|
||||
1;0;2.a;1;F4;0;-49.19;-52.23;168.81;0
|
||||
1;0;2.a;1;F5;0;-39.02;-54.2;168.67;0
|
||||
2;base;0;0;0;0;0;-12.5;30.98;0
|
||||
2;0;1;0;0;0;-1.87;-3.78;35.63;1.709
|
||||
2;0;2;0;0;0;0.88;-5.45;42.91;2.129
|
||||
2;0;2.a;0;0;0;3.47;-4.83;44.68;2.642
|
||||
2;0;2.a;1;0;0;4.28;-3.73;46.4;1.687
|
||||
2;0;2.a;1;1;0;2.13;-5.07;48.12;2.148
|
||||
2;0;2.a;1;1;1;1.49;-5.65;49.43;1.921
|
||||
2;0;2.a;1;p;0;3.9;-6.16;48.16;0.11
|
||||
2;0;2.a;1;F1;0;5.39;-5.21;48.87;0
|
||||
2;0;2.a;1;F2;0;5.48;-4.93;47.6;0
|
||||
2;0;2.a;1;F3;0;4.61;-5.06;46.97;0
|
||||
2;0;2.a;1;F4;0;4.06;-5.58;45.6;0
|
||||
2;0;2.a;1;F5;0;3.63;-6.43;46.86;0
|
||||
2;0;2.a;1;1;2;2.24;-5.47;49.61;1.661
|
||||
2;0;2.a;1;p;0;-1.24;-6.21;45.94;0.213
|
||||
2;0;2.a;1;F1;0;-0.58;-11.3;46.67;0
|
||||
2;0;2.a;1;F2;0;0.17;-9.02;42.11;0
|
||||
2;0;2.a;1;F3;0;1.72;-6.27;42.56;0
|
||||
2;0;2.a;1;F4;0;1.06;-3.05;44.22;0
|
||||
2;0;2.a;1;F5;0;-1.81;-2.29;46.52;0
|
||||
2;0;2.a;1;1;3;3.77;-5.59;51.55;1.18
|
||||
2;0;2.a;1;p;0;5.03;-12.07;49.77;0.281
|
||||
2;0;2.a;1;F1;0;11.47;-12.18;51.76;0
|
||||
2;0;2.a;1;F2;0;8.27;-11.77;45.83;0
|
||||
2;0;2.a;1;F3;0;6.69;-9.95;43.24;0
|
||||
2;0;2.a;1;F4;0;1.69;-12.52;43.66;0
|
||||
2;0;2.a;1;F5;0;0.41;-14.29;48.53;0
|
||||
2;0;2.a;1;1;4;3.57;-6.41;55.76;1.2
|
||||
2;0;2.a;1;p;0;-3.77;-13.27;55.09;0.323
|
||||
2;0;2.a;1;F1;0;3.19;-16.08;57.07;0
|
||||
2;0;2.a;1;F2;0;1.55;-17.47;50.13;0
|
||||
2;0;2.a;1;F3;0;-1.07;-13.4;46.71;0
|
||||
2;0;2.a;1;F4;0;-3.73;-8.19;50.61;0
|
||||
2;0;2.a;1;F5;0;-7.5;-11.08;53.77;0
|
||||
2;0;2.a;1;1;5;4.21;-7.89;59.6;1.028
|
||||
2;0;2.a;1;p;0;2.33;-15.95;60.14;0.28
|
||||
2;0;2.a;1;F1;0;4.78;-20.89;61.82;0
|
||||
2;0;2.a;1;F2;0;4.59;-22.96;57.63;0
|
||||
2;0;2.a;1;F3;0;3.82;-21.59;54.81;0
|
||||
2;0;2.a;1;F4;0;0.81;-18.54;53.89;0
|
||||
2;0;2.a;1;F5;0;-2.11;-16.76;57.2;0
|
||||
2;0;2.a;1;1;6;1.3;-10.27;63.85;1.08
|
||||
2;0;2.a;1;1;7;3.18;-10.95;67.41;1.034
|
||||
2;0;2.a;1;p;0;6.31;-17.27;68.26;0.283
|
||||
2;0;2.a;1;F1;0;9.24;-20.7;72.1;0
|
||||
2;0;2.a;1;F2;0;11.85;-23.19;67.51;0
|
||||
2;0;2.a;1;F3;0;9.23;-20.65;60.15;0
|
||||
2;0;2.a;1;F4;0;4.43;-22.19;61.3;0
|
||||
2;0;2.a;1;F5;0;-1.01;-19.54;68.59;0
|
||||
2;0;2.a;1;1;8;2.91;-11.67;70.69;1.121
|
||||
2;0;2.a;1;p;0;-1.51;-17.56;69.26;0.265
|
||||
2;0;2.a;1;F1;0;-1.13;-23.93;69.91;0
|
||||
2;0;2.a;1;F2;0;-3.1;-24.23;63.46;0
|
||||
2;0;2.a;1;F3;0;-7.25;-24.86;62.4;0
|
||||
2;0;2.a;1;F4;0;-10.99;-18.61;69.41;0
|
||||
2;0;2.a;1;F5;0;-7;-14.92;71.93;0
|
||||
2;0;2.a;1;1;9;2.05;-12.85;73.66;0.999
|
||||
2;0;2.a;1;p;0;8.06;-17.1;76.52;0.28
|
||||
2;0;2.a;1;F1;0;7.74;-17.47;82.96;0
|
||||
2;0;2.a;1;F2;0;10.45;-23.31;78.95;0
|
||||
2;0;2.a;1;F3;0;11.82;-22.34;70.11;0
|
||||
2;0;2.a;1;F4;0;8;-21.38;69.14;0
|
||||
2;0;2.a;1;F5;0;2.49;-18.71;73.22;0
|
||||
2;0;2.a;1;1;10;2.05;-14.73;79.11;0.983
|
||||
2;0;2.a;1;p;0;-1.62;-21.45;78.35;0.313
|
||||
2;0;2.a;1;F1;0;0.05;-29.04;78.71;0
|
||||
2;0;2.a;1;F2;0;0.97;-28.58;72.4;0
|
||||
2;0;2.a;1;F3;0;-5.92;-27.84;69.06;0
|
||||
2;0;2.a;1;F4;0;-10.82;-23.81;74.66;0
|
||||
2;0;2.a;1;F5;0;-6.59;-18.08;79.12;0
|
||||
2;0;2.a;1;1;11;2.86;-16.17;81.9;1.017
|
||||
2;0;2.a;1;p;0;7.54;-22.79;82.3;0.32
|
||||
2;0;2.a;1;F1;0;13.68;-27.66;84.95;0
|
||||
2;0;2.a;1;F2;0;12.05;-28.54;75.58;0
|
||||
2;0;2.a;1;F3;0;7.03;-28.3;73.61;0
|
||||
2;0;2.a;1;F4;0;2.77;-29.47;77.24;0
|
||||
2;0;2.a;1;F5;0;1.07;-21.81;80.39;0
|
||||
2;0;2.a;1;1;12;2.63;-17.92;87.05;1.02
|
||||
2;0;2.a;1;p;0;-2.19;-23.78;88.71;0.309
|
||||
2;0;2.a;1;F1;0;0.66;-32.01;89.73;0
|
||||
2;0;2.a;1;F2;0;1.07;-31.32;82.1;0
|
||||
2;0;2.a;1;F3;0;-1.54;-20.46;80.1;0
|
||||
2;0;2.a;1;F4;0;-7.84;-25.95;81.16;0
|
||||
2;0;2.a;1;F5;0;-9.77;-23.23;89.39;0
|
||||
2;0;2.a;1;1;13;3.67;-19.86;92.1;0.993
|
||||
2;0;2.a;1;p;0;8.06;-27.88;94.21;0.302
|
||||
2;0;2.a;1;F1;0;9.12;-30.61;101.89;0
|
||||
2;0;2.a;1;F2;0;16.82;-34.47;95.1;0
|
||||
2;0;2.a;1;F3;0;11.69;-37.28;88.39;0
|
||||
2;0;2.a;1;F4;0;5.6;-36.2;87.59;0
|
||||
2;0;2.a;1;F5;0;-0.68;-28.66;91.45;0
|
||||
2;0;2.a;1;1;14;4.14;-21.61;98.34;0.991
|
||||
2;0;2.a;1;p;0;-1.72;-28.15;101.51;0.324
|
||||
2;0;2.a;1;F1;0;-1.51;-36.65;103.06;0
|
||||
2;0;2.a;1;F2;0;-0.59;-38.65;97.72;0
|
||||
2;0;2.a;1;F3;0;-9.04;-37.14;93.58;0
|
||||
2;0;2.a;1;F4;0;-13.13;-31.19;97.95;0
|
||||
2;0;2.a;1;F5;0;-8.11;-24.6;103.19;0
|
||||
2;0;2.a;1;1;15;4.53;-22.98;103.8;0.964
|
||||
2;0;2.a;1;p;0;12.58;-24.43;107.38;0.327
|
||||
2;0;2.a;1;F1;0;16.19;-23.97;113.74;0
|
||||
2;0;2.a;1;F2;0;23.14;-26.18;108.73;0
|
||||
2;0;2.a;1;F3;0;24.46;-28.85;102.78;0
|
||||
2;0;2.a;1;F4;0;14.22;-34.58;100.7;0
|
||||
2;0;2.a;1;F5;0;8.93;-33.2;105.76;0
|
||||
2;0;2.a;1;1;16;5.75;-24.45;112.76;0.915
|
||||
2;0;2.a;1;p;0;0.6;-29.7;116.07;0.371
|
||||
2;0;2.a;1;F1;0;3.16;-35.48;118.03;0
|
||||
2;0;2.a;1;F2;0;0.77;-39.55;111.04;0
|
||||
2;0;2.a;1;F3;0;-5.42;-36.87;111.06;0
|
||||
2;0;2.a;1;F4;0;-9.41;-31.43;114.68;0
|
||||
2;0;2.a;1;F5;0;-7.73;-26.39;118.9;0
|
||||
2;0;2.a;1;1;17;8.21;-26.46;122.04;0.836
|
||||
2;0;2.a;1;p;0;13.39;-31.6;125.23;0.346
|
||||
2;0;2.a;1;F1;0;15.9;-28.83;130.96;0
|
||||
2;0;2.a;1;F2;0;18.51;-37.57;129.88;0
|
||||
2;0;2.a;1;F3;0;22.4;-37.89;120.94;0
|
||||
2;0;2.a;1;F4;0;13.05;-41.3;119.27;0
|
||||
2;0;2.a;1;F5;0;7.48;-38.11;121.6;0
|
||||
2;0;2.a;1;1;18;8.15;-28.97;129.63;0.873
|
||||
2;0;2.a;1;p;0;1.87;-33.35;134.06;0.332
|
||||
2;0;2.a;1;F1;0;4.33;-41.33;137.08;0
|
||||
2;0;2.a;1;F2;0;0.14;-43.49;128.34;0
|
||||
2;0;2.a;1;F3;0;-0.97;-39;127.4;0
|
||||
2;0;2.a;1;F4;0;-8.62;-33.89;131.85;0
|
||||
2;0;2.a;1;F5;0;-2.79;-29.85;136.68;0
|
||||
2;0;2.a;1;1;19;6.56;-33;138.19;0.938
|
||||
2;0;2.a;1;p;0;11.96;-36.89;143.8;0.354
|
||||
2;0;2.a;1;F1;0;16.35;-38.52;150.49;0
|
||||
2;0;2.a;1;F2;0;20.97;-42.54;141.75;0
|
||||
2;0;2.a;1;F3;0;19.06;-44.2;135.1;0
|
||||
2;0;2.a;1;F4;0;14.59;-48.13;140.11;0
|
||||
2;0;2.a;1;F5;0;6.33;-43.31;141.6;0
|
||||
2;0;2.a;1;1;20;3.94;-35.19;144.96;0.904
|
||||
2;0;2.a;1;p;0;-0.16;-43.02;147.03;0.473
|
||||
2;0;2.a;1;F1;0;7.28;-48.15;150.35;0
|
||||
2;0;2.a;1;F2;0;0.78;-53.98;144.06;0
|
||||
2;0;2.a;1;F3;0;-7.64;-47.3;139.33;0
|
||||
2;0;2.a;1;F4;0;-11.66;-44.2;148.25;0
|
||||
2;0;2.a;1;F5;0;-7.85;-40.06;152.57;0
|
||||
2;0;2.a;1;1;21;5.22;-37.94;152.5;0.896
|
||||
2;0;2.a;1;p;0;9.59;-39.59;158.75;0.562
|
||||
2;0;2.a;1;F1;0;9.79;-35.79;164.95;0
|
||||
2;0;2.a;1;F2;0;19.33;-39.07;163.67;0
|
||||
2;0;2.a;1;F3;0;21.4;-33.81;153.77;0
|
||||
2;0;2.a;1;F4;0;17.95;-46.5;154.12;0
|
||||
2;0;2.a;1;F5;0;9.96;-45.96;161.31;0
|
||||
2;0;2.a;1;1;22;2.54;-41.08;160.76;0.853
|
||||
2;0;2.a;1;p;0;-1.08;-49.96;161.72;0.493
|
||||
2;0;2.a;1;F1;0;11.69;-48.84;164.94;0
|
||||
2;0;2.a;1;F2;0;10.99;-57.55;161.04;0
|
||||
2;0;2.a;1;F3;0;5.74;-57.52;154.09;0
|
||||
2;0;2.a;1;F4;0;-5.38;-54.89;156.95;0
|
||||
2;0;2.a;1;F5;0;-4.46;-53.36;165.08;0
|
||||
2;0;2.a;1;1;23;-2;-43.69;166;0.751
|
||||
2;0;2.a;1;p;0;-0.38;-42.03;170.52;0.492
|
||||
2;0;2.a;1;F1;0;5.61;-37.71;174.29;0
|
||||
2;0;2.a;1;F2;0;3.21;-45.56;177.36;0
|
||||
2;0;2.a;1;F3;0;6.96;-40.74;177.93;0
|
||||
2;0;2.a;1;F4;0;9.99;-48.15;168.53;0
|
||||
2;0;2.a;1;F5;0;-1.4;-53.72;169.96;0
|
||||
2;0;2.a;1;1;24;-5.04;-48.15;171.19;0.802
|
||||
2;0;2.a;1;p;0;-10.47;-48.08;173.2;0.487
|
||||
2;0;2.a;1;F1;0;-14.85;-52.27;178.93;0
|
||||
2;0;2.a;1;F2;0;-16.52;-56.95;170.79;0
|
||||
2;0;2.a;1;F3;0;-16.98;-46.7;162.46;0
|
||||
2;0;2.a;1;F4;0;-14.98;-38.11;171.07;0
|
||||
2;0;2.a;1;F5;0;-16.22;-44.24;178.45;0
|
||||
2;0;2.a;1;2;0;1.31;-3.23;49.83;2.186
|
||||
2;0;2.a;1;2;1;2.38;-2.37;49.74;1.97
|
||||
2;0;2.a;1;2;2;0.5;-2.65;50.02;1.723
|
||||
2;0;2.a;1;p;0;3.78;-0.78;46.36;0.145
|
||||
2;0;2.a;1;F1;0;1.49;1.63;46.24;0
|
||||
2;0;2.a;1;F2;0;1.7;0.63;43.58;0
|
||||
2;0;2.a;1;F3;0;0.53;-1.54;43.55;0
|
||||
2;0;2.a;1;F4;0;0.49;-3.22;43.89;0
|
||||
2;0;2.a;1;F5;0;4.13;-3.04;45.57;0
|
||||
2;0;2.a;1;2;3;0.85;-1.23;53.29;1.008
|
||||
2;0;2.a;1;p;0;5.26;-0.62;53.04;0.217
|
||||
2;0;2.a;1;F1;0;0.15;-1.17;51.88;0
|
||||
2;0;2.a;1;F2;0;3.53;3.2;50.01;0
|
||||
2;0;2.a;1;F3;0;2.86;3.1;47.92;0
|
||||
2;0;2.a;1;F4;0;3.87;-1.54;47.4;0
|
||||
2;0;2.a;1;F5;0;5.8;-1.52;48.49;0
|
||||
2;0;2.a;1;2;4;-1.61;-0.04;55.54;1.188
|
||||
2;0;2.a;1;p;0;-5.01;5.54;53.02;0.246
|
||||
2;0;2.a;1;F1;0;-10.38;6.12;53.79;0
|
||||
2;0;2.a;1;F2;0;-10.44;4.91;49.68;0
|
||||
2;0;2.a;1;F3;0;-5.36;1;46.41;0
|
||||
2;0;2.a;1;F4;0;-4.25;2.09;44.87;0
|
||||
2;0;2.a;1;F5;0;-2.95;4.82;46.96;0
|
||||
2;0;2.a;1;2;5;-2.42;1.74;58.3;1.214
|
||||
2;0;2.a;1;p;0;-1.93;5.62;62.89;0.3
|
||||
2;0;2.a;1;F1;0;-6.32;8.73;62.3;0
|
||||
2;0;2.a;1;F2;0;-4.01;10.86;57.03;0
|
||||
2;0;2.a;1;F3;0;0.44;11.39;53.81;0
|
||||
2;0;2.a;1;F4;0;2.8;11.1;57.27;0
|
||||
2;0;2.a;1;F5;0;3.15;11.23;65.07;0
|
||||
2;0;2.a;1;2;6;-5.25;4.49;61.99;1.017
|
||||
2;0;2.a;1;p;0;-8.85;10.59;57.08;0.328
|
||||
2;0;2.a;1;F1;0;-18.45;9.57;57.63;0
|
||||
2;0;2.a;1;F2;0;-14.02;6.53;50.46;0
|
||||
2;0;2.a;1;F3;0;-8.77;8;47.74;0
|
||||
2;0;2.a;1;F4;0;-4;12.31;51.91;0
|
||||
2;0;2.a;1;F5;0;-5.81;15.58;58.59;0
|
||||
2;0;2.a;1;2;7;-9.92;4.65;65.78;0.998
|
||||
2;0;2.a;1;p;0;-4.22;8.55;73.05;0.33
|
||||
2;0;2.a;1;F1;0;-8.86;12.95;70.57;0
|
||||
2;0;2.a;1;F2;0;-3.35;15.55;74.91;0
|
||||
2;0;2.a;1;F3;0;3.01;10.07;73.3;0
|
||||
2;0;2.a;1;F4;0;-0.3;0.67;76.93;0
|
||||
2;0;2.a;1;F5;0;-5.28;3.89;81.26;0
|
||||
2;0;2.a;1;2;8;-12.26;8.56;69.32;0.902
|
||||
2;0;2.a;1;p;0;-17.25;12.35;67.95;0.363
|
||||
2;0;2.a;1;F1;0;-23.14;13.98;69.86;0
|
||||
2;0;2.a;1;F2;0;-22.79;11.54;62.2;0
|
||||
2;0;2.a;1;F3;0;-17.94;14.56;56.99;0
|
||||
2;0;2.a;1;F4;0;-12.15;18.35;59.96;0
|
||||
2;0;2.a;1;F5;0;-11.9;19.09;69.13;0
|
||||
2;0;2.a;1;2;9;-10.75;11.71;74.27;0.808
|
||||
2;0;2.a;1;p;0;-7.81;18.11;75.44;0.383
|
||||
2;0;2.a;1;F1;0;-15.03;17.27;74.93;0
|
||||
2;0;2.a;1;F2;0;-13.72;23.07;68.88;0
|
||||
2;0;2.a;1;F3;0;-6.71;22.43;65.48;0
|
||||
2;0;2.a;1;F4;0;-1.65;23.13;71;0
|
||||
2;0;2.a;1;F5;0;-3.28;22.99;78.22;0
|
||||
2;0;2.a;1;2;10;-12.57;14.14;80.11;0.793
|
||||
2;0;2.a;1;p;0;-18.98;13.75;83.82;0.282
|
||||
2;0;2.a;1;F1;0;-22.41;9.83;84.85;0
|
||||
2;0;2.a;1;F2;0;-26.33;13.54;81.25;0
|
||||
2;0;2.a;1;F3;0;-25.81;17.66;79.17;0
|
||||
2;0;2.a;1;F4;0;-19.81;21.89;78.91;0
|
||||
2;0;2.a;1;F5;0;-18.23;20.97;85.63;0
|
||||
2;0;2.a;1;2;11;-10.73;17.1;85.58;0.865
|
||||
2;0;2.a;1;p;0;-7.89;23.35;89.79;0.327
|
||||
2;0;2.a;1;F1;0;-13.1;28.23;85.49;0
|
||||
2;0;2.a;1;F2;0;-7.2;28.79;80.51;0
|
||||
2;0;2.a;1;F3;0;-1.93;31.37;83.66;0
|
||||
2;0;2.a;1;F4;0;-5.54;30.74;93.69;0
|
||||
2;0;2.a;1;F5;0;-5.63;24.55;94.27;0
|
||||
2;0;2.a;1;2;12;-13.97;19.25;94.91;0.85
|
||||
2;0;2.a;1;p;0;-19.88;21.6;96.78;0.295
|
||||
2;0;2.a;1;F1;0;-23.93;17.23;99.39;0
|
||||
2;0;2.a;1;F2;0;-27.24;21.72;93.35;0
|
||||
2;0;2.a;1;F3;0;-23.78;22.91;85.96;0
|
||||
2;0;2.a;1;F4;0;-21.81;27.3;89.34;0
|
||||
2;0;2.a;1;F5;0;-22.37;27.53;97.14;0
|
||||
2;0;2.a;1;2;13;-13.48;22.4;101.21;0.848
|
||||
2;0;2.a;1;p;0;-11.91;26.87;105.89;0.292
|
||||
2;0;2.a;1;F1;0;-15.3;31.58;102.11;0
|
||||
2;0;2.a;1;F2;0;-11.51;36.4;103.85;0
|
||||
2;0;2.a;1;F3;0;-5.08;35.47;105.69;0
|
||||
2;0;2.a;1;F4;0;-4.15;29.25;107.2;0
|
||||
2;0;2.a;1;F5;0;-10.33;28.23;110.93;0
|
||||
2;0;2.a;1;2;14;-16.81;23.74;106.13;0.755
|
||||
2;0;2.a;1;p;0;-23.41;21.75;108.91;0.31
|
||||
2;0;2.a;1;F1;0;-27.99;15.27;113.03;0
|
||||
2;0;2.a;1;F2;0;-29.87;12.8;107.02;0
|
||||
2;0;2.a;1;F3;0;-32.03;18.16;100.68;0
|
||||
2;0;2.a;1;F4;0;-34.54;24.33;106.43;0
|
||||
2;0;2.a;1;F5;0;-28.89;27.33;107.45;0
|
||||
2;0;2.a;1;2;15;-23.38;24.14;112.3;0.789
|
||||
2;0;2.a;1;p;0;-25.06;30.3;114.57;0.398
|
||||
2;0;2.a;1;F1;0;-25.41;34.61;114.22;0
|
||||
2;0;2.a;1;F2;0;-25.64;36.94;109.24;0
|
||||
2;0;2.a;1;F3;0;-20.59;37.37;105.75;0
|
||||
2;0;2.a;1;F4;0;-17.1;39.24;111.08;0
|
||||
2;0;2.a;1;F5;0;-15.9;37.04;117.94;0
|
||||
2;0;2.a;1;2;16;-24.15;25.5;118.19;0.765
|
||||
2;0;2.a;1;p;0;-26.62;23.13;122.06;0.388
|
||||
2;0;2.a;1;F1;0;-31.48;19.37;126.23;0
|
||||
2;0;2.a;1;F2;0;-32.9;14.18;119.93;0
|
||||
2;0;2.a;1;F3;0;-35.05;16.82;115.69;0
|
||||
2;0;2.a;1;F4;0;-37.67;21.58;117.41;0
|
||||
2;0;2.a;1;F5;0;-34.22;27.56;121.54;0
|
||||
2;0;2.a;1;2;17;-22.36;28.66;124.18;0.792
|
||||
2;0;2.a;1;p;0;-17.29;33.76;128.12;0.455
|
||||
2;0;2.a;1;F1;0;-21.67;41.03;128.29;0
|
||||
2;0;2.a;1;F2;0;-14;42.12;124.45;0
|
||||
2;0;2.a;1;F3;0;-9.46;39.29;128.12;0
|
||||
2;0;2.a;1;F4;0;-9.3;29.84;127;0
|
||||
2;0;2.a;1;F5;0;-15.57;28.79;132.61;0
|
||||
2;0;2.a;1;2;18;-24.91;30.84;128.66;0.807
|
||||
2;0;2.a;1;p;0;-30.39;32.05;132;0.367
|
||||
2;0;2.a;1;F1;0;-33.56;27.17;135.9;0
|
||||
2;0;2.a;1;F2;0;-36.39;25.63;129.1;0
|
||||
2;0;2.a;1;F3;0;-37.13;32.02;125.5;0
|
||||
2;0;2.a;1;F4;0;-36.88;38.76;130.61;0
|
||||
2;0;2.a;1;F5;0;-26.48;39.86;133.53;0
|
||||
2;0;2.a;1;2;19;-25.68;34.34;134.78;0.757
|
||||
2;0;2.a;1;p;0;-21.08;33.95;141.97;0.399
|
||||
2;0;2.a;1;F1;0;-16.7;43.48;142.99;0
|
||||
2;0;2.a;1;F2;0;-6.82;41.81;143.91;0
|
||||
2;0;2.a;1;F3;0;-5.02;36.38;140.98;0
|
||||
2;0;2.a;1;F4;0;-8.56;26.69;140.56;0
|
||||
2;0;2.a;1;F5;0;-18.9;26.02;144.62;0
|
||||
2;0;2.a;1;2;20;-23.24;38.3;139.45;0.833
|
||||
2;0;2.a;1;p;0;-26.35;36.83;145.22;0.454
|
||||
2;0;2.a;1;F1;0;-22.67;34.69;147.85;0
|
||||
2;0;2.a;1;F2;0;-30.76;29.04;148.25;0
|
||||
2;0;2.a;1;F3;0;-33.42;28.08;139.23;0
|
||||
2;0;2.a;1;F4;0;-39.77;36.15;139.26;0
|
||||
2;0;2.a;1;F5;0;-38.58;37.1;149.17;0
|
||||
2;0;2.a;1;2;21;-27.85;41.41;145.58;0.811
|
||||
2;0;2.a;1;p;0;-32.83;46.85;147.09;0.442
|
||||
2;0;2.a;1;F1;0;-40.22;48.76;147.7;0
|
||||
2;0;2.a;1;F2;0;-37.76;51.65;138.76;0
|
||||
2;0;2.a;1;F3;0;-31.31;52.63;134.12;0
|
||||
2;0;2.a;1;F4;0;-27.57;55.92;144.17;0
|
||||
2;0;2.a;1;F5;0;-29.37;50.96;152.13;0
|
||||
2;0;2.a;1;2;22;-34.45;43.07;151.79;0.755
|
||||
2;0;2.a;1;p;0;-32.56;39.49;159.4;0.405
|
||||
2;0;2.a;1;F1;0;-25.15;39.61;165.76;0
|
||||
2;0;2.a;1;F2;0;-20.3;35.69;159.5;0
|
||||
2;0;2.a;1;F3;0;-30.28;30.65;153.95;0
|
||||
2;0;2.a;1;F4;0;-28.39;34.79;159.91;0
|
||||
2;0;2.a;1;F5;0;-32.35;43.53;162.03;0
|
||||
2;0;2.a;1;2;23;-29.17;48.18;156.92;0.724
|
||||
2;0;2.a;1;p;0;-27.56;54.06;160.29;0.534
|
||||
2;0;2.a;1;F1;0;-28.55;57.33;163.16;0
|
||||
2;0;2.a;1;F2;0;-35.42;63.22;155.76;0
|
||||
2;0;2.a;1;F3;0;-27.17;66.69;155.83;0
|
||||
2;0;2.a;1;F4;0;-20.03;62.23;154.98;0
|
||||
2;0;2.a;1;F5;0;-32.35;57.57;163.46;0
|
||||
2;0;2.a;1;2;24;-35.65;50.13;161.78;0.663
|
||||
2;0;2.a;1;p;0;-43.39;44.51;166.65;0.541
|
||||
2;0;2.a;1;F1;0;-36.16;39.33;169.74;0
|
||||
2;0;2.a;1;F2;0;-44.59;38.7;164.26;0
|
||||
2;0;2.a;1;F3;0;-50.06;45.82;160.75;0
|
||||
2;0;2.a;1;F4;0;-49.19;52.23;168.81;0
|
||||
2;0;2.a;1;F5;0;-39.02;54.2;168.67;0
|
|
163
hydroshoot/test/data/digit_vsp.csv
Normal file
163
hydroshoot/test/data/digit_vsp.csv
Normal file
|
@ -0,0 +1,163 @@
|
|||
Plant_Nb;Tronc;Elmnt;Sar;Rameau;Row;X;Y;Z
|
||||
8;BASE;0;0;0;0;0;0;0
|
||||
8;0;1;0;0;0;0;0;5
|
||||
8;0;2;0;0;0;0;0;10
|
||||
8;0;3;0;0;0;0;0;15
|
||||
8;0;4;0;0;0;0;0;20
|
||||
8;0;5;0;0;0;0;0;25
|
||||
8;0;6;0;0;0;0;0;30
|
||||
8;0;7;0;0;0;0;0;35
|
||||
8;0;8;0;0;0;0;0;40
|
||||
8;0;9;0;0;0;0;0;45
|
||||
8;1;1;0;0;0;4;2;49
|
||||
8;1;1.a;0;0;0;6;5;50
|
||||
8;1;1.a;1;0;0;8;6;52
|
||||
8;1;1.a;1;1;0;8.41;6.2;53.19
|
||||
8;1;1.a;1;1;1;7.42;7.6;55.05
|
||||
8;1;1.a;1;1;2;4.81;8.73;61.1
|
||||
8;1;1.a;1;1;3;1.11;8.87;70.62
|
||||
8;1;1.a;1;1;4;-3.4;9.31;82.33
|
||||
8;1;1.a;1;1;5;-9.59;5.34;94.08
|
||||
8;1;1.a;1;1;6;-19.56;7.1;107.54
|
||||
8;1;1.a;1;1;7;-31.79;7.71;120.16
|
||||
8;1;1.a;1;1;8;-41.64;9.88;130.68
|
||||
8;1;1.a;1;2;0;10.07;7.2;53.27
|
||||
8;1;1.a;1;2;1;10.72;8.11;54.82
|
||||
8;1;1.a;1;2;2;12.45;10.24;58.19
|
||||
8;1;1.a;1;2;3;14.67;9.83;63.16
|
||||
8;1;1.a;1;2;4;18.68;10.23;71.06
|
||||
8;1;1.a;1;2;5;20.41;7.6;81.12
|
||||
8;1;1.a;1;2;6;24.62;6.08;89.86
|
||||
8;1;1.a;1;2;7;26.36;6.67;99.55
|
||||
8;1;1.a;1;2;8;27.95;12.68;111.04
|
||||
8;1;1.a;1;2;9;26.26;18.97;117.65
|
||||
8;1;1.a;1;2;10;25.95;26.82;122.83
|
||||
8;1;1.a;2;0;0;10;4;54
|
||||
8;1;1.a;2;1;0;10.64;4.32;54.52
|
||||
8;1;1.a;2;1;1;11.56;1.67;56.73
|
||||
8;1;1.a;2;1;2;11.22;-2.05;62.4
|
||||
8;1;1.a;2;1;3;11.61;-3.84;71.11
|
||||
8;1;1.a;2;1;4;11.71;-1.8;83.07
|
||||
8;1;1.a;2;1;5;14.28;4.49;96.38
|
||||
8;1;1.a;2;1;6;13.57;4.88;108.18
|
||||
8;1;1.a;2;1;7;15.55;0.48;123.92
|
||||
8;2;1;0;0;0;1;2;49
|
||||
8;2;1.a;0;0;0;1.1;3;50
|
||||
8;2;1.a;1;0;0;1.2;3.8;50.5
|
||||
8;2;1.a;1;1;0;1.29;3.9;50.86
|
||||
8;2;1.a;1;1;1;1.64;5.19;51.5
|
||||
8;2;1.a;1;1;2;2.4;8.52;55.62
|
||||
8;2;1.a;1;1;3;5.57;11.78;62.85
|
||||
8;2;1.a;1;1;4;12.32;13.92;73.82
|
||||
8;2;1.a;1;1;5;18.46;12.2;82.8
|
||||
8;2;1.a;1;1;6;22.11;10.6;89.62
|
||||
8;2;1.a;1;1;7;26.93;3.4;95.42
|
||||
8;2;1.a;1;1;8;31.28;-2.13;99.8
|
||||
8;2;1.a;1;1;9;35.61;-8.04;102.67
|
||||
8;2;1.a;1;1;10;40.84;-15.38;106.71
|
||||
8;2;1.a;1;2;0;1.42;1.92;52.03
|
||||
8;2;1.a;1;2;1;0.93;0.86;53.42
|
||||
8;2;1.a;1;2;2;1.14;-0.09;58.02
|
||||
8;2;1.a;1;2;3;2.4;-1.23;64.43
|
||||
8;2;1.a;1;2;4;4.91;-0.77;72.53
|
||||
8;2;1.a;1;2;5;10.36;0.85;82.74
|
||||
8;2;1.a;1;2;6;13.55;2.52;91.17
|
||||
8;2;1.a;1;2;7;18.58;2.97;100.06
|
||||
8;2;1.a;1;2;8;23.01;2.3;112.8
|
||||
8;2;1.a;1;2;9;26.89;1.14;120.6
|
||||
8;2;1.b;0;0;0;1.43;0;51
|
||||
8;2;1.b;1;0;0;1.44;0.05;51.1
|
||||
8;2;1.b;1;1;0;1.45;0.09;51.12
|
||||
8;2;1.b;1;1;1;1.2;-0.05;51.71
|
||||
8;2;1.b;1;1;2;-0.96;-1.12;56.13
|
||||
8;2;1.b;1;1;3;-4.99;-4.12;65.35
|
||||
8;2;1.b;1;1;4;-7.27;-3.64;79.68
|
||||
8;2;1.b;1;1;5;-6.02;0.34;90.43
|
||||
8;2;1.b;1;1;6;1.81;4.48;97.34
|
||||
8;2;1.b;1;1;7;12.38;3.8;103.99
|
||||
8;2;1.b;1;1;8;20.76;0.75;107.55
|
||||
8;2;1.b;1;1;9;25.75;-4.11;110.52
|
||||
8;2;2;0;0;0;-10;3.5;55
|
||||
8;2;2.a;0;0;0;-11;3.8;55
|
||||
8;2;2.a;1;0;0;-12;4;56
|
||||
8;2;2.a;1;1;0;-12.71;4.01;56.81
|
||||
8;2;2.a;1;1;1;-12.44;3.94;57.24
|
||||
8;2;2.a;1;1;2;-11.81;3.88;59.65
|
||||
8;2;2.a;1;1;3;-11.14;3.39;63.92
|
||||
8;2;2.a;1;1;4;-10.28;3.23;70.07
|
||||
8;2;2.a;1;1;5;-9.07;2.25;78.1
|
||||
8;2;2.a;1;1;6;-5.95;3.49;89
|
||||
8;2;2.a;1;1;7;-1.99;3.14;96.79
|
||||
8;2;2.a;1;1;8;2.52;4.39;104.47
|
||||
8;2;2.a;1;1;9;7.52;4.97;112.43
|
||||
8;2;2.a;1;1;10;11.92;7.53;119.88
|
||||
8;2;2.a;1;1;11;17.75;7.5;129.67
|
||||
8;2;2.a;1;2;0;-12.72;6.24;55.56
|
||||
8;2;2.a;1;2;1;-12.47;6.84;55.83
|
||||
8;2;2.a;1;2;2;-11.67;9.06;57.38
|
||||
8;2;2.a;1;2;3;-11.02;11.72;61.48
|
||||
8;2;2.a;1;2;4;-9.75;12.17;67.31
|
||||
8;2;2.a;1;2;5;-9.43;10.83;75.81
|
||||
8;2;2.a;1;2;6;-6.44;6.43;87.13
|
||||
8;2;2.a;1;2;7;-6.27;6.43;87.24
|
||||
8;2;2.a;1;2;8;-0.52;5.56;95.39
|
||||
8;2;2.a;1;2;9;5.08;5.72;103.16
|
||||
8;2;2.a;1;2;10;14.45;10.9;109.95
|
||||
8;2;2.a;1;2;11;20.55;14.27;115.06
|
||||
8;2;2.a;1;2;12;27.62;19.03;119.15
|
||||
8;2;2.a;1;2;13;33.66;20.31;128.17
|
||||
8;2;2.b;0;0;0;-11;4.2;53
|
||||
8;2;2.b;1;0;0;-12;4.3;54
|
||||
8;2;2.b;1;1;0;-13.87;4.34;55.75
|
||||
8;2;2.b;1;1;1;-14.77;4.56;56.35
|
||||
8;2;2.b;1;1;2;-17.41;5.09;59.75
|
||||
8;2;2.b;1;1;3;-20.84;4.78;66.59
|
||||
8;2;2.b;1;1;4;-22.8;5.33;76.34
|
||||
8;2;2.b;1;1;5;-24.51;2.17;88.02
|
||||
8;2;2.b;1;1;6;-24.97;3.48;103.43
|
||||
8;2;2.b;1;1;7;-26.4;5.54;115.4
|
||||
8;2;2.b;1;1;8;-26.26;10.75;125.42
|
||||
8;2;2.b;1;1;9;-26.48;15.88;135.85
|
||||
8;2;2.b;1;2;0;-13.28;4.55;56.22
|
||||
8;2;2.b;1;2;1;-13.49;5.42;57.1
|
||||
8;2;2.b;1;2;2;-15.07;6.53;60.95
|
||||
8;2;2.b;1;2;3;-16.58;6.09;67.12
|
||||
8;2;2.b;1;2;4;-19.99;5.51;76.32
|
||||
8;2;2.b;1;2;5;-21.61;4.35;87.53
|
||||
8;2;2.b;1;2;6;-22.63;5.47;96.02
|
||||
8;2;2.b;1;2;7;-20.21;6.61;104.14
|
||||
8;2;3;0;0;0;-13;1;52
|
||||
8;2;3.a;0;0;0;-14;1.4;53
|
||||
8;2;3.a;1;0;0;-14.2;1.42;53.01
|
||||
8;2;3.a;1;1M;0;-14.5;1.46;53.06
|
||||
8;2;3.a;1;1M;1;-15.06;1.67;52.89
|
||||
8;2;3.a;1;1M;2;-17.62;2.85;54.07
|
||||
8;2;3.a;1;1M;3;-21.45;4.78;61.73
|
||||
8;2;3.a;1;1M;4;-23.42;5.37;72.15
|
||||
8;2;3.a;1;1M;5;-24.31;3.66;88.31
|
||||
8;2;3.a;1;1M;6;-26.05;4.82;106.56
|
||||
8;2;3.a;1;1M;7;-32.94;5.75;118.25
|
||||
8;2;3.a;1;1M;8;-39.95;8.39;126.33
|
||||
8;2;3.a;1;2M;0;-11.66;-2.19;51.82
|
||||
8;2;3.a;1;2M;1;-12.67;-2.36;51.32
|
||||
8;2;3.a;1;2M;2;-17.15;-4.37;54.34
|
||||
8;2;3.a;1;2M;3;-23.34;-5.71;60.41
|
||||
8;2;3.a;1;2M;4;-26.53;-4.29;70.49
|
||||
8;2;3.a;1;2M;5;-28.16;-3.28;80.44
|
||||
8;2;3.a;1;2M;6;-26.14;2.79;92.16
|
||||
8;2;3.a;1;2M;7;-26.05;3.81;105.94
|
||||
8;2;3.a;1;2M;8;-28.22;2.27;117.94
|
||||
8;2;3.a;1;2M;9;-27.55;-0.76;126.93
|
||||
8;2;3.a;1;2M;10;-24.66;-4.67;138.72
|
||||
8;2;3.a;1;3;0;-12.69;-1.02;52.08
|
||||
8;2;3.a;1;3;1;-14.2;-0.78;52.25
|
||||
8;2;3.a;1;3;2;-20.72;-2.23;53.55
|
||||
8;2;3.a;1;3;3;-27.49;-2.94;56.65
|
||||
8;2;3.a;1;3;4;-36.07;-4.89;61.05
|
||||
8;2;3.a;1;3;5;-41.12;-5.23;69.88
|
||||
8;2;3.a;1;3;6;-42.22;-8.11;82.63
|
||||
8;2;3.a;1;3;7;-37.93;-7.57;96.29
|
||||
8;2;3.a;1;3;8;-33;-7.67;108.67
|
||||
8;2;3.a;1;3;9;-24.07;-4.13;119.04
|
||||
8;2;3.a;1;3;10;-20.9;-2.33;128.29
|
||||
8;2;3.a;1;3;11;-18.5;0.01;136.76
|
|
332
hydroshoot/test/data/grapevine_pot.csv
Normal file
332
hydroshoot/test/data/grapevine_pot.csv
Normal file
|
@ -0,0 +1,332 @@
|
|||
Plant;TRONC;ELMNT;SAR;RAM;RANG;Xabs;Yabs;Zabs;DIAM
|
||||
101;base;0;0;0;0;0;0;30.98;0
|
||||
101;0;1;0;0;0;-1.87;-8.72;35.63;1.709
|
||||
101;0;2;0;0;0;0.88;-7.05;42.91;2.129
|
||||
101;0;2.a;0;0;0;3.47;-7.67;44.68;2.642
|
||||
101;0;2.a;1;0;0;4.28;-8.77;46.4;1.687
|
||||
101;0;2.a;1;1;0;2.13;-7.43;48.12;2.148
|
||||
101;0;2.a;1;1;1;1.49;-6.85;49.43;1.921
|
||||
101;0;2.a;1;p;0;3.9;-6.34;48.16;0.11
|
||||
101;0;2.a;1;F1;0;5.39;-7.29;48.87;0
|
||||
101;0;2.a;1;F2;0;5.48;-7.57;47.6;0
|
||||
101;0;2.a;1;F3;0;4.61;-7.44;46.97;0
|
||||
101;0;2.a;1;F4;0;4.06;-6.92;45.6;0
|
||||
101;0;2.a;1;F5;0;3.63;-6.07;46.86;0
|
||||
101;0;2.a;1;1;2;2.24;-7.03;49.61;1.661
|
||||
101;0;2.a;1;p;0;-1.24;-6.29;45.94;0.213
|
||||
101;0;2.a;1;F1;0;-0.58;-1.2;46.67;0
|
||||
101;0;2.a;1;F2;0;0.17;-3.48;42.11;0
|
||||
101;0;2.a;1;F3;0;1.72;-6.23;42.56;0
|
||||
101;0;2.a;1;F4;0;1.06;-9.45;44.22;0
|
||||
101;0;2.a;1;F5;0;-1.81;-10.21;46.52;0
|
||||
101;0;2.a;1;1;3;3.77;-6.91;51.55;1.18
|
||||
101;0;2.a;1;p;0;5.03;-0.43;49.77;0.281
|
||||
101;0;2.a;1;F1;0;11.47;-0.32;51.76;0
|
||||
101;0;2.a;1;F2;0;8.27;-0.73;45.83;0
|
||||
101;0;2.a;1;F3;0;6.69;-2.55;43.24;0
|
||||
101;0;2.a;1;F4;0;1.69;0.02;43.66;0
|
||||
101;0;2.a;1;F5;0;0.41;1.79;48.53;0
|
||||
101;0;2.a;1;1;4;3.57;-6.09;55.76;1.2
|
||||
101;0;2.a;1;p;0;-3.77;0.77;55.09;0.323
|
||||
101;0;2.a;1;F1;0;3.19;3.58;57.07;0
|
||||
101;0;2.a;1;F2;0;1.55;4.97;50.13;0
|
||||
101;0;2.a;1;F3;0;-1.07;0.9;46.71;0
|
||||
101;0;2.a;1;F4;0;-3.73;-4.31;50.61;0
|
||||
101;0;2.a;1;F5;0;-7.5;-1.42;53.77;0
|
||||
101;0;2.a;1;1;5;4.21;-4.61;59.6;1.028
|
||||
101;0;2.a;1;p;0;2.33;3.45;60.14;0.28
|
||||
101;0;2.a;1;F1;0;4.78;8.39;61.82;0
|
||||
101;0;2.a;1;F2;0;4.59;10.46;57.63;0
|
||||
101;0;2.a;1;F3;0;3.82;9.09;54.81;0
|
||||
101;0;2.a;1;F4;0;0.81;6.04;53.89;0
|
||||
101;0;2.a;1;F5;0;-2.11;4.26;57.2;0
|
||||
101;0;2.a;1;1;6;1.3;-2.23;63.85;1.08
|
||||
101;0;2.a;1;1;7;3.18;-1.55;67.41;1.034
|
||||
101;0;2.a;1;p;0;6.31;4.77;68.26;0.283
|
||||
101;0;2.a;1;F1;0;9.24;8.2;72.1;0
|
||||
101;0;2.a;1;F2;0;11.85;10.69;67.51;0
|
||||
101;0;2.a;1;F3;0;9.23;8.15;60.15;0
|
||||
101;0;2.a;1;F4;0;4.43;9.69;61.3;0
|
||||
101;0;2.a;1;F5;0;-1.01;7.04;68.59;0
|
||||
101;0;2.a;1;1;8;2.91;-0.83;70.69;1.121
|
||||
101;0;2.a;1;p;0;-1.51;5.06;69.26;0.265
|
||||
101;0;2.a;1;F1;0;-1.13;11.43;69.91;0
|
||||
101;0;2.a;1;F2;0;-3.1;11.73;63.46;0
|
||||
101;0;2.a;1;F3;0;-7.25;12.36;62.4;0
|
||||
101;0;2.a;1;F4;0;-10.99;6.11;69.41;0
|
||||
101;0;2.a;1;F5;0;-7;2.42;71.93;0
|
||||
101;0;2.a;1;1;9;2.05;0.35;73.66;0.999
|
||||
101;0;2.a;1;p;0;8.06;4.6;76.52;0.28
|
||||
101;0;2.a;1;F1;0;7.74;4.97;82.96;0
|
||||
101;0;2.a;1;F2;0;10.45;10.81;78.95;0
|
||||
101;0;2.a;1;F3;0;11.82;9.84;70.11;0
|
||||
101;0;2.a;1;F4;0;8;8.88;69.14;0
|
||||
101;0;2.a;1;F5;0;2.49;6.21;73.22;0
|
||||
101;0;2.a;1;1;10;2.05;2.23;79.11;0.983
|
||||
101;0;2.a;1;p;0;-1.62;8.95;78.35;0.313
|
||||
101;0;2.a;1;F1;0;0.05;16.54;78.71;0
|
||||
101;0;2.a;1;F2;0;0.97;16.08;72.4;0
|
||||
101;0;2.a;1;F3;0;-5.92;15.34;69.06;0
|
||||
101;0;2.a;1;F4;0;-10.82;11.31;74.66;0
|
||||
101;0;2.a;1;F5;0;-6.59;5.58;79.12;0
|
||||
101;0;2.a;1;1;11;2.86;3.67;81.9;1.017
|
||||
101;0;2.a;1;p;0;7.54;10.29;82.3;0.32
|
||||
101;0;2.a;1;F1;0;13.68;15.16;84.95;0
|
||||
101;0;2.a;1;F2;0;12.05;16.04;75.58;0
|
||||
101;0;2.a;1;F3;0;7.03;15.8;73.61;0
|
||||
101;0;2.a;1;F4;0;2.77;16.97;77.24;0
|
||||
101;0;2.a;1;F5;0;1.07;9.31;80.39;0
|
||||
101;0;2.a;1;1;12;2.63;5.42;87.05;1.02
|
||||
101;0;2.a;1;p;0;-2.19;11.28;88.71;0.309
|
||||
101;0;2.a;1;F1;0;0.66;19.51;89.73;0
|
||||
101;0;2.a;1;F2;0;1.07;18.82;82.1;0
|
||||
101;0;2.a;1;F3;0;-1.54;7.96;80.1;0
|
||||
101;0;2.a;1;F4;0;-7.84;13.45;81.16;0
|
||||
101;0;2.a;1;F5;0;-9.77;10.73;89.39;0
|
||||
101;0;2.a;1;1;13;3.67;7.36;92.1;0.993
|
||||
101;0;2.a;1;p;0;8.06;15.38;94.21;0.302
|
||||
101;0;2.a;1;F1;0;9.12;18.11;101.89;0
|
||||
101;0;2.a;1;F2;0;16.82;21.97;95.1;0
|
||||
101;0;2.a;1;F3;0;11.69;24.78;88.39;0
|
||||
101;0;2.a;1;F4;0;5.6;23.7;87.59;0
|
||||
101;0;2.a;1;F5;0;-0.68;16.16;91.45;0
|
||||
101;0;2.a;1;1;14;4.14;9.11;98.34;0.991
|
||||
101;0;2.a;1;p;0;-1.72;15.65;101.51;0.324
|
||||
101;0;2.a;1;F1;0;-1.51;24.15;103.06;0
|
||||
101;0;2.a;1;F2;0;-0.59;26.15;97.72;0
|
||||
101;0;2.a;1;F3;0;-9.04;24.64;93.58;0
|
||||
101;0;2.a;1;F4;0;-13.13;18.69;97.95;0
|
||||
101;0;2.a;1;F5;0;-8.11;12.1;103.19;0
|
||||
101;0;2.a;1;1;15;4.53;10.48;103.8;0.964
|
||||
101;0;2.a;1;p;0;12.58;11.93;107.38;0.327
|
||||
101;0;2.a;1;F1;0;16.19;11.47;113.74;0
|
||||
101;0;2.a;1;F2;0;23.14;13.68;108.73;0
|
||||
101;0;2.a;1;F3;0;24.46;16.35;102.78;0
|
||||
101;0;2.a;1;F4;0;14.22;22.08;100.7;0
|
||||
101;0;2.a;1;F5;0;8.93;20.7;105.76;0
|
||||
101;0;2.a;1;1;16;5.75;11.95;112.76;0.915
|
||||
101;0;2.a;1;p;0;0.6;17.2;116.07;0.371
|
||||
101;0;2.a;1;F1;0;3.16;22.98;118.03;0
|
||||
101;0;2.a;1;F2;0;0.77;27.05;111.04;0
|
||||
101;0;2.a;1;F3;0;-5.42;24.37;111.06;0
|
||||
101;0;2.a;1;F4;0;-9.41;18.93;114.68;0
|
||||
101;0;2.a;1;F5;0;-7.73;13.89;118.9;0
|
||||
101;0;2.a;1;1;17;8.21;13.96;122.04;0.836
|
||||
101;0;2.a;1;p;0;13.39;19.1;125.23;0.346
|
||||
101;0;2.a;1;F1;0;15.9;16.33;130.96;0
|
||||
101;0;2.a;1;F2;0;18.51;25.07;129.88;0
|
||||
101;0;2.a;1;F3;0;22.4;25.39;120.94;0
|
||||
101;0;2.a;1;F4;0;13.05;28.8;119.27;0
|
||||
101;0;2.a;1;F5;0;7.48;25.61;121.6;0
|
||||
101;0;2.a;1;1;18;8.15;16.47;129.63;0.873
|
||||
101;0;2.a;1;p;0;1.87;20.85;134.06;0.332
|
||||
101;0;2.a;1;F1;0;4.33;28.83;137.08;0
|
||||
101;0;2.a;1;F2;0;0.14;30.99;128.34;0
|
||||
101;0;2.a;1;F3;0;-0.97;26.5;127.4;0
|
||||
101;0;2.a;1;F4;0;-8.62;21.39;131.85;0
|
||||
101;0;2.a;1;F5;0;-2.79;17.35;136.68;0
|
||||
101;0;2.a;1;1;19;6.56;20.5;138.19;0.938
|
||||
101;0;2.a;1;p;0;11.96;24.39;143.8;0.354
|
||||
101;0;2.a;1;F1;0;16.35;26.02;150.49;0
|
||||
101;0;2.a;1;F2;0;20.97;30.04;141.75;0
|
||||
101;0;2.a;1;F3;0;19.06;31.7;135.1;0
|
||||
101;0;2.a;1;F4;0;14.59;35.63;140.11;0
|
||||
101;0;2.a;1;F5;0;6.33;30.81;141.6;0
|
||||
101;0;2.a;1;1;20;3.94;22.69;144.96;0.904
|
||||
101;0;2.a;1;p;0;-0.16;30.52;147.03;0.473
|
||||
101;0;2.a;1;F1;0;7.28;35.65;150.35;0
|
||||
101;0;2.a;1;F2;0;0.78;41.48;144.06;0
|
||||
101;0;2.a;1;F3;0;-7.64;34.8;139.33;0
|
||||
101;0;2.a;1;F4;0;-11.66;31.7;148.25;0
|
||||
101;0;2.a;1;F5;0;-7.85;27.56;152.57;0
|
||||
101;0;2.a;1;1;21;5.22;25.44;152.5;0.896
|
||||
101;0;2.a;1;p;0;9.59;27.09;158.75;0.562
|
||||
101;0;2.a;1;F1;0;9.79;23.29;164.95;0
|
||||
101;0;2.a;1;F2;0;19.33;26.57;163.67;0
|
||||
101;0;2.a;1;F3;0;21.4;21.31;153.77;0
|
||||
101;0;2.a;1;F4;0;17.95;34;154.12;0
|
||||
101;0;2.a;1;F5;0;9.96;33.46;161.31;0
|
||||
101;0;2.a;1;1;22;2.54;28.58;160.76;0.853
|
||||
101;0;2.a;1;p;0;-1.08;37.46;161.72;0.493
|
||||
101;0;2.a;1;F1;0;11.69;36.34;164.94;0
|
||||
101;0;2.a;1;F2;0;10.99;45.05;161.04;0
|
||||
101;0;2.a;1;F3;0;5.74;45.02;154.09;0
|
||||
101;0;2.a;1;F4;0;-5.38;42.39;156.95;0
|
||||
101;0;2.a;1;F5;0;-4.46;40.86;165.08;0
|
||||
101;0;2.a;1;1;23;-2;31.19;166;0.751
|
||||
101;0;2.a;1;p;0;-0.38;29.53;170.52;0.492
|
||||
101;0;2.a;1;F1;0;5.61;25.21;174.29;0
|
||||
101;0;2.a;1;F2;0;3.21;33.06;177.36;0
|
||||
101;0;2.a;1;F3;0;6.96;28.24;177.93;0
|
||||
101;0;2.a;1;F4;0;9.99;35.65;168.53;0
|
||||
101;0;2.a;1;F5;0;-1.4;41.22;169.96;0
|
||||
101;0;2.a;1;1;24;-5.04;35.65;171.19;0.802
|
||||
101;0;2.a;1;p;0;-10.47;35.58;173.2;0.487
|
||||
101;0;2.a;1;F1;0;-14.85;39.77;178.93;0
|
||||
101;0;2.a;1;F2;0;-16.52;44.45;170.79;0
|
||||
101;0;2.a;1;F3;0;-16.98;34.2;162.46;0
|
||||
101;0;2.a;1;F4;0;-14.98;25.61;171.07;0
|
||||
101;0;2.a;1;F5;0;-16.22;31.74;178.45;0
|
||||
101;0;2.a;1;2;0;1.31;-9.27;49.83;2.186
|
||||
101;0;2.a;1;2;1;2.38;-10.13;49.74;1.97
|
||||
101;0;2.a;1;2;2;0.5;-9.85;50.02;1.723
|
||||
101;0;2.a;1;p;0;3.78;-11.72;46.36;0.145
|
||||
101;0;2.a;1;F1;0;1.49;-14.13;46.24;0
|
||||
101;0;2.a;1;F2;0;1.7;-13.13;43.58;0
|
||||
101;0;2.a;1;F3;0;0.53;-10.96;43.55;0
|
||||
101;0;2.a;1;F4;0;0.49;-9.28;43.89;0
|
||||
101;0;2.a;1;F5;0;4.13;-9.46;45.57;0
|
||||
101;0;2.a;1;2;3;0.85;-11.27;53.29;1.008
|
||||
101;0;2.a;1;p;0;5.26;-11.88;53.04;0.217
|
||||
101;0;2.a;1;F1;0;0.15;-11.33;51.88;0
|
||||
101;0;2.a;1;F2;0;3.53;-15.7;50.01;0
|
||||
101;0;2.a;1;F3;0;2.86;-15.6;47.92;0
|
||||
101;0;2.a;1;F4;0;3.87;-10.96;47.4;0
|
||||
101;0;2.a;1;F5;0;5.8;-10.98;48.49;0
|
||||
101;0;2.a;1;2;4;-1.61;-12.46;55.54;1.188
|
||||
101;0;2.a;1;p;0;-5.01;-18.04;53.02;0.246
|
||||
101;0;2.a;1;F1;0;-10.38;-18.62;53.79;0
|
||||
101;0;2.a;1;F2;0;-10.44;-17.41;49.68;0
|
||||
101;0;2.a;1;F3;0;-5.36;-13.5;46.41;0
|
||||
101;0;2.a;1;F4;0;-4.25;-14.59;44.87;0
|
||||
101;0;2.a;1;F5;0;-2.95;-17.32;46.96;0
|
||||
101;0;2.a;1;2;5;-2.42;-14.24;58.3;1.214
|
||||
101;0;2.a;1;p;0;-1.93;-18.12;62.89;0.3
|
||||
101;0;2.a;1;F1;0;-6.32;-21.23;62.3;0
|
||||
101;0;2.a;1;F2;0;-4.01;-23.36;57.03;0
|
||||
101;0;2.a;1;F3;0;0.44;-23.89;53.81;0
|
||||
101;0;2.a;1;F4;0;2.8;-23.6;57.27;0
|
||||
101;0;2.a;1;F5;0;3.15;-23.73;65.07;0
|
||||
101;0;2.a;1;2;6;-5.25;-16.99;61.99;1.017
|
||||
101;0;2.a;1;p;0;-8.85;-23.09;57.08;0.328
|
||||
101;0;2.a;1;F1;0;-18.45;-22.07;57.63;0
|
||||
101;0;2.a;1;F2;0;-14.02;-19.03;50.46;0
|
||||
101;0;2.a;1;F3;0;-8.77;-20.5;47.74;0
|
||||
101;0;2.a;1;F4;0;-4;-24.81;51.91;0
|
||||
101;0;2.a;1;F5;0;-5.81;-28.08;58.59;0
|
||||
101;0;2.a;1;2;7;-9.92;-17.15;65.78;0.998
|
||||
101;0;2.a;1;p;0;-4.22;-21.05;73.05;0.33
|
||||
101;0;2.a;1;F1;0;-8.86;-25.45;70.57;0
|
||||
101;0;2.a;1;F2;0;-3.35;-28.05;74.91;0
|
||||
101;0;2.a;1;F3;0;3.01;-22.57;73.3;0
|
||||
101;0;2.a;1;F4;0;-0.3;-13.17;76.93;0
|
||||
101;0;2.a;1;F5;0;-5.28;-16.39;81.26;0
|
||||
101;0;2.a;1;2;8;-12.26;-21.06;69.32;0.902
|
||||
101;0;2.a;1;p;0;-17.25;-24.85;67.95;0.363
|
||||
101;0;2.a;1;F1;0;-23.14;-26.48;69.86;0
|
||||
101;0;2.a;1;F2;0;-22.79;-24.04;62.2;0
|
||||
101;0;2.a;1;F3;0;-17.94;-27.06;56.99;0
|
||||
101;0;2.a;1;F4;0;-12.15;-30.85;59.96;0
|
||||
101;0;2.a;1;F5;0;-11.9;-31.59;69.13;0
|
||||
101;0;2.a;1;2;9;-10.75;-24.21;74.27;0.808
|
||||
101;0;2.a;1;p;0;-7.81;-30.61;75.44;0.383
|
||||
101;0;2.a;1;F1;0;-15.03;-29.77;74.93;0
|
||||
101;0;2.a;1;F2;0;-13.72;-35.57;68.88;0
|
||||
101;0;2.a;1;F3;0;-6.71;-34.93;65.48;0
|
||||
101;0;2.a;1;F4;0;-1.65;-35.63;71;0
|
||||
101;0;2.a;1;F5;0;-3.28;-35.49;78.22;0
|
||||
101;0;2.a;1;2;10;-12.57;-26.64;80.11;0.793
|
||||
101;0;2.a;1;p;0;-18.98;-26.25;83.82;0.282
|
||||
101;0;2.a;1;F1;0;-22.41;-22.33;84.85;0
|
||||
101;0;2.a;1;F2;0;-26.33;-26.04;81.25;0
|
||||
101;0;2.a;1;F3;0;-25.81;-30.16;79.17;0
|
||||
101;0;2.a;1;F4;0;-19.81;-34.39;78.91;0
|
||||
101;0;2.a;1;F5;0;-18.23;-33.47;85.63;0
|
||||
101;0;2.a;1;2;11;-10.73;-29.6;85.58;0.865
|
||||
101;0;2.a;1;p;0;-7.89;-35.85;89.79;0.327
|
||||
101;0;2.a;1;F1;0;-13.1;-40.73;85.49;0
|
||||
101;0;2.a;1;F2;0;-7.2;-41.29;80.51;0
|
||||
101;0;2.a;1;F3;0;-1.93;-43.87;83.66;0
|
||||
101;0;2.a;1;F4;0;-5.54;-43.24;93.69;0
|
||||
101;0;2.a;1;F5;0;-5.63;-37.05;94.27;0
|
||||
101;0;2.a;1;2;12;-13.97;-31.75;94.91;0.85
|
||||
101;0;2.a;1;p;0;-19.88;-34.1;96.78;0.295
|
||||
101;0;2.a;1;F1;0;-23.93;-29.73;99.39;0
|
||||
101;0;2.a;1;F2;0;-27.24;-34.22;93.35;0
|
||||
101;0;2.a;1;F3;0;-23.78;-35.41;85.96;0
|
||||
101;0;2.a;1;F4;0;-21.81;-39.8;89.34;0
|
||||
101;0;2.a;1;F5;0;-22.37;-40.03;97.14;0
|
||||
101;0;2.a;1;2;13;-13.48;-34.9;101.21;0.848
|
||||
101;0;2.a;1;p;0;-11.91;-39.37;105.89;0.292
|
||||
101;0;2.a;1;F1;0;-15.3;-44.08;102.11;0
|
||||
101;0;2.a;1;F2;0;-11.51;-48.9;103.85;0
|
||||
101;0;2.a;1;F3;0;-5.08;-47.97;105.69;0
|
||||
101;0;2.a;1;F4;0;-4.15;-41.75;107.2;0
|
||||
101;0;2.a;1;F5;0;-10.33;-40.73;110.93;0
|
||||
101;0;2.a;1;2;14;-16.81;-36.24;106.13;0.755
|
||||
101;0;2.a;1;p;0;-23.41;-34.25;108.91;0.31
|
||||
101;0;2.a;1;F1;0;-27.99;-27.77;113.03;0
|
||||
101;0;2.a;1;F2;0;-29.87;-25.3;107.02;0
|
||||
101;0;2.a;1;F3;0;-32.03;-30.66;100.68;0
|
||||
101;0;2.a;1;F4;0;-34.54;-36.83;106.43;0
|
||||
101;0;2.a;1;F5;0;-28.89;-39.83;107.45;0
|
||||
101;0;2.a;1;2;15;-23.38;-36.64;112.3;0.789
|
||||
101;0;2.a;1;p;0;-25.06;-42.8;114.57;0.398
|
||||
101;0;2.a;1;F1;0;-25.41;-47.11;114.22;0
|
||||
101;0;2.a;1;F2;0;-25.64;-49.44;109.24;0
|
||||
101;0;2.a;1;F3;0;-20.59;-49.87;105.75;0
|
||||
101;0;2.a;1;F4;0;-17.1;-51.74;111.08;0
|
||||
101;0;2.a;1;F5;0;-15.9;-49.54;117.94;0
|
||||
101;0;2.a;1;2;16;-24.15;-38;118.19;0.765
|
||||
101;0;2.a;1;p;0;-26.62;-35.63;122.06;0.388
|
||||
101;0;2.a;1;F1;0;-31.48;-31.87;126.23;0
|
||||
101;0;2.a;1;F2;0;-32.9;-26.68;119.93;0
|
||||
101;0;2.a;1;F3;0;-35.05;-29.32;115.69;0
|
||||
101;0;2.a;1;F4;0;-37.67;-34.08;117.41;0
|
||||
101;0;2.a;1;F5;0;-34.22;-40.06;121.54;0
|
||||
101;0;2.a;1;2;17;-22.36;-41.16;124.18;0.792
|
||||
101;0;2.a;1;p;0;-17.29;-46.26;128.12;0.455
|
||||
101;0;2.a;1;F1;0;-21.67;-53.53;128.29;0
|
||||
101;0;2.a;1;F2;0;-14;-54.62;124.45;0
|
||||
101;0;2.a;1;F3;0;-9.46;-51.79;128.12;0
|
||||
101;0;2.a;1;F4;0;-9.3;-42.34;127;0
|
||||
101;0;2.a;1;F5;0;-15.57;-41.29;132.61;0
|
||||
101;0;2.a;1;2;18;-24.91;-43.34;128.66;0.807
|
||||
101;0;2.a;1;p;0;-30.39;-44.55;132;0.367
|
||||
101;0;2.a;1;F1;0;-33.56;-39.67;135.9;0
|
||||
101;0;2.a;1;F2;0;-36.39;-38.13;129.1;0
|
||||
101;0;2.a;1;F3;0;-37.13;-44.52;125.5;0
|
||||
101;0;2.a;1;F4;0;-36.88;-51.26;130.61;0
|
||||
101;0;2.a;1;F5;0;-26.48;-52.36;133.53;0
|
||||
101;0;2.a;1;2;19;-25.68;-46.84;134.78;0.757
|
||||
101;0;2.a;1;p;0;-21.08;-46.45;141.97;0.399
|
||||
101;0;2.a;1;F1;0;-16.7;-55.98;142.99;0
|
||||
101;0;2.a;1;F2;0;-6.82;-54.31;143.91;0
|
||||
101;0;2.a;1;F3;0;-5.02;-48.88;140.98;0
|
||||
101;0;2.a;1;F4;0;-8.56;-39.19;140.56;0
|
||||
101;0;2.a;1;F5;0;-18.9;-38.52;144.62;0
|
||||
101;0;2.a;1;2;20;-23.24;-50.8;139.45;0.833
|
||||
101;0;2.a;1;p;0;-26.35;-49.33;145.22;0.454
|
||||
101;0;2.a;1;F1;0;-22.67;-47.19;147.85;0
|
||||
101;0;2.a;1;F2;0;-30.76;-41.54;148.25;0
|
||||
101;0;2.a;1;F3;0;-33.42;-40.58;139.23;0
|
||||
101;0;2.a;1;F4;0;-39.77;-48.65;139.26;0
|
||||
101;0;2.a;1;F5;0;-38.58;-49.6;149.17;0
|
||||
101;0;2.a;1;2;21;-27.85;-53.91;145.58;0.811
|
||||
101;0;2.a;1;p;0;-32.83;-59.35;147.09;0.442
|
||||
101;0;2.a;1;F1;0;-40.22;-61.26;147.7;0
|
||||
101;0;2.a;1;F2;0;-37.76;-64.15;138.76;0
|
||||
101;0;2.a;1;F3;0;-31.31;-65.13;134.12;0
|
||||
101;0;2.a;1;F4;0;-27.57;-68.42;144.17;0
|
||||
101;0;2.a;1;F5;0;-29.37;-63.46;152.13;0
|
||||
101;0;2.a;1;2;22;-34.45;-55.57;151.79;0.755
|
||||
101;0;2.a;1;p;0;-32.56;-51.99;159.4;0.405
|
||||
101;0;2.a;1;F1;0;-25.15;-52.11;165.76;0
|
||||
101;0;2.a;1;F2;0;-20.3;-48.19;159.5;0
|
||||
101;0;2.a;1;F3;0;-30.28;-43.15;153.95;0
|
||||
101;0;2.a;1;F4;0;-28.39;-47.29;159.91;0
|
||||
101;0;2.a;1;F5;0;-32.35;-56.03;162.03;0
|
||||
101;0;2.a;1;2;23;-29.17;-60.68;156.92;0.724
|
||||
101;0;2.a;1;p;0;-27.56;-66.56;160.29;0.534
|
||||
101;0;2.a;1;F1;0;-28.55;-69.83;163.16;0
|
||||
101;0;2.a;1;F2;0;-35.42;-75.72;155.76;0
|
||||
101;0;2.a;1;F3;0;-27.17;-79.19;155.83;0
|
||||
101;0;2.a;1;F4;0;-20.03;-74.73;154.98;0
|
||||
101;0;2.a;1;F5;0;-32.35;-70.07;163.46;0
|
||||
101;0;2.a;1;2;24;-35.65;-62.63;161.78;0.663
|
||||
101;0;2.a;1;p;0;-43.39;-57.01;166.65;0.541
|
||||
101;0;2.a;1;F1;0;-36.16;-51.83;169.74;0
|
||||
101;0;2.a;1;F2;0;-44.59;-51.2;164.26;0
|
||||
101;0;2.a;1;F3;0;-50.06;-58.32;160.75;0
|
||||
101;0;2.a;1;F4;0;-49.19;-64.73;168.81;0
|
||||
101;0;2.a;1;F5;0;-39.02;-66.7;168.67;0
|
|
1488
hydroshoot/test/data/meteo.csv
Normal file
1488
hydroshoot/test/data/meteo.csv
Normal file
File diff suppressed because it is too large
Load diff
179
hydroshoot/test/data/params.json
Normal file
179
hydroshoot/test/data/params.json
Normal file
|
@ -0,0 +1,179 @@
|
|||
{
|
||||
"simulation": {
|
||||
"sdate": "2012-08-01 11:00:00",
|
||||
"edate": "2012-08-01 11:00:00",
|
||||
"latitude": 43.61,
|
||||
"longitude": 3.87,
|
||||
"elevation": 44.0,
|
||||
"tzone": "Europe/Paris",
|
||||
"output_index": "",
|
||||
"unit_scene_length": "cm",
|
||||
"hydraulic_structure": true,
|
||||
"negligible_shoot_resistance": false,
|
||||
"energy_budget": true
|
||||
},
|
||||
"planting": {
|
||||
"spacing_between_rows": 3.6,
|
||||
"spacing_on_row": 1,
|
||||
"row_angle_with_south": 0.0
|
||||
},
|
||||
"phenology": {
|
||||
"emdate": "2012-03-01 00:00:00",
|
||||
"t_base": 10.0
|
||||
},
|
||||
"mtg_api": {
|
||||
"collar_label": "inT",
|
||||
"leaf_lbl_prefix": "L",
|
||||
"stem_lbl_prefix": [
|
||||
"in",
|
||||
"Pet",
|
||||
"cx"
|
||||
]
|
||||
},
|
||||
"numerical_resolution": {
|
||||
"max_iter": 100,
|
||||
"psi_step": 0.5,
|
||||
"psi_error_threshold": 0.05,
|
||||
"t_step": 0.5,
|
||||
"t_error_threshold": 0.02
|
||||
},
|
||||
"irradiance": {
|
||||
"E_type": "Rg_Watt/m2",
|
||||
"E_type2": "Eabs",
|
||||
"opt_prop": {
|
||||
"SW": {
|
||||
"leaf": [
|
||||
0.06,
|
||||
0.07
|
||||
],
|
||||
"stem": [
|
||||
0.13
|
||||
],
|
||||
"other": [
|
||||
0.06,
|
||||
0.07
|
||||
]
|
||||
},
|
||||
"LW": {
|
||||
"leaf": [
|
||||
0.04,
|
||||
0.07
|
||||
],
|
||||
"stem": [
|
||||
0.13
|
||||
],
|
||||
"other": [
|
||||
0.06,
|
||||
0.07
|
||||
]
|
||||
}
|
||||
},
|
||||
"turtle_format": "soc",
|
||||
"turtle_sectors": "46",
|
||||
"icosphere_level": null
|
||||
},
|
||||
"energy": {
|
||||
"solo": true,
|
||||
"t_cloud": 2.0,
|
||||
"t_sky": -20.0
|
||||
},
|
||||
"hydraulic": {
|
||||
"psi_min": -3.0,
|
||||
"Kx_dict": {
|
||||
"a": 1.6,
|
||||
"b": 2.0,
|
||||
"min_kmax": 0.01
|
||||
},
|
||||
"par_K_vul": {
|
||||
"model": "misson",
|
||||
"fifty_cent": -0.51,
|
||||
"sig_slope": 1.0
|
||||
}
|
||||
},
|
||||
"exchange": {
|
||||
"rbt": 0.6667,
|
||||
"Na_dict": {
|
||||
"aN": -0.0008,
|
||||
"bN": 3.3,
|
||||
"aM": 6.471,
|
||||
"bM": 56.635
|
||||
},
|
||||
"par_gs": {
|
||||
"model": "misson",
|
||||
"g0": 0.02,
|
||||
"m0": 5.278,
|
||||
"psi0": -1.0,
|
||||
"D0": 30.0,
|
||||
"n": 4.0
|
||||
},
|
||||
"par_photo": {
|
||||
"alpha": 0.24,
|
||||
"Kc25": 404.9,
|
||||
"Ko25": 278.4,
|
||||
"Tx25": 42.75,
|
||||
"ds": 0.635,
|
||||
"dHd": 200.0,
|
||||
"RespT_Kc": {
|
||||
"c": 38.05,
|
||||
"deltaHa": 79.43
|
||||
},
|
||||
"RespT_Ko": {
|
||||
"c": 20.30,
|
||||
"deltaHa": 36.38
|
||||
},
|
||||
"RespT_Vcm": {
|
||||
"c": 26.35,
|
||||
"deltaHa": 65.33
|
||||
},
|
||||
"RespT_Jm": {
|
||||
"c": 17.57,
|
||||
"deltaHa": 43.54
|
||||
},
|
||||
"RespT_TPU": {
|
||||
"c": 21.46,
|
||||
"deltaHa": 53.1
|
||||
},
|
||||
"RespT_Rd": {
|
||||
"c": 18.72,
|
||||
"deltaHa": 46.39
|
||||
},
|
||||
"RespT_Tx": {
|
||||
"c": 19.02,
|
||||
"deltaHa": 37.83
|
||||
},
|
||||
"photo_inhibition": {
|
||||
"dhd_inhib_beg": 195,
|
||||
"dHd_inhib_max": 190,
|
||||
"psi_inhib_beg": -1.5,
|
||||
"psi_inhib_max": -3,
|
||||
"temp_inhib_beg": 35,
|
||||
"temp_inhib_max": 40
|
||||
}
|
||||
},
|
||||
"par_photo_N": {
|
||||
"Vcm25_N": [
|
||||
34.02,
|
||||
-3.13
|
||||
],
|
||||
"Jm25_N": [
|
||||
78.27,
|
||||
-17.3
|
||||
],
|
||||
"Rd_N": [
|
||||
0.42,
|
||||
-0.01
|
||||
],
|
||||
"TPU25_N": [
|
||||
6.24,
|
||||
-1.92
|
||||
]
|
||||
}
|
||||
},
|
||||
"soil": {
|
||||
"soil_class": "Loamy_Sand",
|
||||
"soil_dimensions": {
|
||||
"depth": 1.2
|
||||
},
|
||||
"rhyzo_coeff": 0.5
|
||||
}
|
||||
}
|
2
hydroshoot/test/data/reference_time_series.csv
Normal file
2
hydroshoot/test/data/reference_time_series.csv
Normal file
|
@ -0,0 +1,2 @@
|
|||
Rg;An;E;Tleaf;psi_soil;psi_collar;psi_leaf;theta_soil
|
||||
69.8278284128148;8.038509067043373;183.83694927361498;25.9860765072961;-0.2;-0.22715047303262692;-0.23648594239929285;0.05731273956258906
|
|
46
hydroshoot/test/non_regression_data.py
Normal file
46
hydroshoot/test/non_regression_data.py
Normal file
|
@ -0,0 +1,46 @@
|
|||
""" A collection of data objects to be used for testing"""
|
||||
|
||||
from os.path import dirname, join
|
||||
from json import load
|
||||
from pandas import read_csv, DatetimeIndex
|
||||
|
||||
from openalea.mtg import traversal
|
||||
from hydroshoot import architecture
|
||||
|
||||
sources_dir = join(dirname(__file__), 'data')
|
||||
|
||||
|
||||
def potted_syrah():
|
||||
"""Returns an `openalea.mtg` representing a potted syrah grapevine."""
|
||||
digit = join(sources_dir, 'grapevine_pot.csv')
|
||||
g = architecture.vine_mtg(digit)
|
||||
for v in traversal.iter_mtg2(g, g.root):
|
||||
architecture.vine_phyto_modular(g, v)
|
||||
architecture.vine_mtg_properties(g, v)
|
||||
architecture.vine_mtg_geometry(g, v)
|
||||
architecture.vine_transform(g, v)
|
||||
|
||||
return g
|
||||
|
||||
|
||||
def meteo():
|
||||
"""Returns a `pandas.DataFrame` containing meteorological data."""
|
||||
meteo_path = join(sources_dir, 'meteo.csv')
|
||||
df = read_csv(meteo_path, sep=';', decimal='.', header=0)
|
||||
df.time = DatetimeIndex(df.time)
|
||||
df = df.set_index(df.time)
|
||||
return df
|
||||
|
||||
|
||||
def json_parameters():
|
||||
"""Returns `Dict` of hydroshoot parameters."""
|
||||
params_path = join(sources_dir, 'params.json')
|
||||
with open(params_path) as f:
|
||||
pars = load(f)
|
||||
return pars
|
||||
|
||||
|
||||
def reference_time_series_output():
|
||||
"""Returns a `pandas.DataFrame` containing reference hydroshoot time-series output."""
|
||||
path = join(sources_dir, 'reference_time_series.csv')
|
||||
return read_csv(path, sep=';', decimal='.')
|
17
hydroshoot/test/test_architecture.py
Normal file
17
hydroshoot/test/test_architecture.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
from os.path import dirname, join
|
||||
|
||||
from hydroshoot import architecture
|
||||
|
||||
Source_Dir = join(dirname(__file__), 'data')
|
||||
|
||||
|
||||
def test_cordon():
|
||||
g = architecture.vine_mtg(join(Source_Dir, 'digit_vsp.csv'))
|
||||
architecture.cordon_vector(g=g)
|
||||
|
||||
|
||||
def test_multiple_plants_digit():
|
||||
try:
|
||||
architecture.vine_mtg(file_path=join(Source_Dir, 'digit_twin_pots.csv'))
|
||||
except ValueError:
|
||||
pass
|
76
hydroshoot/test/test_energy.py
Normal file
76
hydroshoot/test/test_energy.py
Normal file
|
@ -0,0 +1,76 @@
|
|||
import openalea.plantgl.all as pgl
|
||||
from numpy.testing import assert_almost_equal
|
||||
|
||||
import hydroshoot.energy as energy
|
||||
from hydroshoot.architecture import get_leaves
|
||||
from hydroshoot.energy import set_form_factors_simplified, calc_leaf_temperature, force_soil_temperature
|
||||
from non_regression_data import potted_syrah, meteo
|
||||
|
||||
|
||||
def test_pgl_scene():
|
||||
g = potted_syrah()
|
||||
bc = pgl.BBoxComputer(pgl.Tesselator())
|
||||
|
||||
s = energy.pgl_scene(g)
|
||||
bc.process(s)
|
||||
bbox = bc.boundingbox
|
||||
zmin, zmax = bbox.getZMin(), bbox.getZMax()
|
||||
assert zmax > zmin > 0
|
||||
|
||||
s = energy.pgl_scene(g, flip=True)
|
||||
bc.process(s)
|
||||
bbox = bc.boundingbox
|
||||
zmin, zmax = bbox.getZMin(), bbox.getZMax()
|
||||
assert 0 > zmax > zmin
|
||||
|
||||
# check that original scene is still z >0
|
||||
s = energy.pgl_scene(g)
|
||||
bc.process(s)
|
||||
bbox = bc.boundingbox
|
||||
zmin, zmax = bbox.getZMin(), bbox.getZMax()
|
||||
assert zmax > zmin > 0
|
||||
|
||||
|
||||
def test_get_leaves():
|
||||
g = potted_syrah()
|
||||
leaves = get_leaves(g, leaf_lbl_prefix='L')
|
||||
assert len(leaves) == 46
|
||||
|
||||
|
||||
def test_form_factors_simplified():
|
||||
g = potted_syrah()
|
||||
set_form_factors_simplified(g, icosphere_level=0)
|
||||
# non regression test
|
||||
assert_almost_equal(sum(g.property('ff_leaves').values()), 148.6, 1)
|
||||
|
||||
|
||||
def test_forced_soil_temperature():
|
||||
met = meteo().iloc[[12], :]
|
||||
tsoil = force_soil_temperature(met)
|
||||
assert tsoil == met.Tac.iloc[0] + 20
|
||||
|
||||
|
||||
def test_leaf_temperature():
|
||||
g = potted_syrah()
|
||||
met = meteo().iloc[[12], :]
|
||||
tsoil = 20
|
||||
tsky = 2
|
||||
|
||||
for vid in g.properties()['geometry'].keys():
|
||||
node = g.node(vid)
|
||||
node.Ei = 0
|
||||
node.Rg = 0
|
||||
node.ff_sky = 0.3
|
||||
node.ff_leaves = 0.3
|
||||
node.ff_soil = 0.4
|
||||
node.gbH = 1
|
||||
node.E = 0.
|
||||
node.Tac = met.Tac.values[0]
|
||||
node.Tlc = node.Tac
|
||||
|
||||
tleaf, it = calc_leaf_temperature(g, tsoil, tsky, get_leaves(g=g, leaf_lbl_prefix='L'))
|
||||
assert len(tleaf) == 46
|
||||
first = list(tleaf.keys())[0]
|
||||
for vid in tleaf:
|
||||
assert tleaf[vid] == tleaf[first]
|
||||
assert tleaf[vid] != met.Tac.iloc[0]
|
451
hydroshoot/test/test_exchange.py
Normal file
451
hydroshoot/test/test_exchange.py
Normal file
|
@ -0,0 +1,451 @@
|
|||
from datetime import datetime
|
||||
|
||||
from numpy import arange, linspace, testing
|
||||
from pandas import Series
|
||||
|
||||
from hydroshoot import exchange, utilities, constants
|
||||
|
||||
|
||||
def setup_default_photosynthesis_params():
|
||||
"""
|
||||
Generates a dictionary containing default **25 degrees** paramter values of the Farquhar's model for Vitis vinifera cv. Syrah.
|
||||
|
||||
:Parameters:
|
||||
- **Vcm25**: Maximum RuBP-saturated rate of carboxylation [umol m-2 s-1]
|
||||
- **Jm25**: Maximum of electron transport [umol m-2 s-1]
|
||||
- **cRd**: the coefficient of mitochondrial respiration to `Vcm25`
|
||||
- **TPU25**: the rate of triose phosphate transport [umol m-2 s-1]
|
||||
- **Kc25**: Michaelis-Menten constant for the carboxylase [umol mol-1]
|
||||
- **Ko25**: Michaelis-Menten constant for the oxygenase [mmol mol-1]
|
||||
- **Tx25**: CO2 compensation point in the absence of mitochondrial respiration [umol mol-1]
|
||||
- **c**: empirical parameter defining the temperature response curves of each of Kc, Ko, Vcm, Jm, TPU, Rd and Tx
|
||||
- **deltaHa**: Activation energy of the Arrhenius functions [kJ molCO2-1]
|
||||
- **ds**: float, enthalpy of activation [KJ mol-1]
|
||||
- **dHd**: float, enthalpy of deactivation [KJ mol-1]
|
||||
"""
|
||||
|
||||
res = dict(
|
||||
Vcm25=89.0,
|
||||
Jm25=143.0,
|
||||
cRd=0.008,
|
||||
TPU25=10.0,
|
||||
alpha=0.24,
|
||||
Kc25=404.9,
|
||||
Ko25=278.4,
|
||||
Tx25=42.75,
|
||||
ds=0.635,
|
||||
dHd=200,
|
||||
RespT_Kc={'model': 'Ahrenius', 'c': 38.05, 'deltaHa': 79.43},
|
||||
RespT_Ko={'model': 'Ahrenius', 'c': 20.30, 'deltaHa': 36.38},
|
||||
RespT_Vcm={'model': 'Ahrenius', 'c': 26.35, 'deltaHa': 65.33},
|
||||
RespT_Jm={'model': 'Ahrenius', 'c': 17.57, 'deltaHa': 43.54},
|
||||
RespT_TPU={'model': 'Ahrenius', 'c': 21.46, 'deltaHa': 53.1},
|
||||
RespT_Rd={'model': 'Ahrenius', 'c': 18.72, 'deltaHa': 46.39},
|
||||
RespT_Tx={'model': 'Ahrenius', 'c': 19.02, 'deltaHa': 37.83}
|
||||
)
|
||||
res.update({'Rd': res['cRd'] * res['Vcm25']})
|
||||
return res
|
||||
|
||||
|
||||
def setup_default_stomatal_conductance_params():
|
||||
return dict(model='misson', g0=0.019, m0=5.278, psi0=-0.1, D0=30., n=1.85)
|
||||
|
||||
|
||||
def setup_leaf_local_weather():
|
||||
res = Series({'time': datetime(2012, 8, 1, 11),
|
||||
'Tac': 26.84,
|
||||
'Tlc': 26.84,
|
||||
'hs': 43.77,
|
||||
'Rg': 300.28742,
|
||||
'u': 2.17,
|
||||
'Ca': 400,
|
||||
'Pa': 101.3,
|
||||
'PPFD': 663.035})
|
||||
res['vpd'] = utilities.vapor_pressure_deficit(temp_air=res['Tac'], temp_leaf=res['Tlc'], rh=res['hs'])
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def test_leaf_na_is_as_expected():
|
||||
expected_result = 2.007
|
||||
obtained_result = exchange.leaf_Na(age_gdd=1000., ppfd_10=38.64, a_n=-0.0008, b_n=3.3, a_m=6.471, b_m=56.635)
|
||||
|
||||
testing.assert_almost_equal(obtained_result, expected_result, decimal=3)
|
||||
|
||||
|
||||
def test_leaf_na_reduces_as_age_gdd_increases():
|
||||
assert exchange.leaf_Na(
|
||||
age_gdd=0., ppfd_10=38.64, a_n=-0.0008, b_n=3.3, a_m=6.471, b_m=56.635) > exchange.leaf_Na(
|
||||
age_gdd=1000., ppfd_10=38.64, a_n=-0.0008, b_n=3.3, a_m=6.471, b_m=56.635)
|
||||
|
||||
|
||||
def test_leaf_na_reduces_as_cumulative_ppfd_reduces():
|
||||
assert exchange.leaf_Na(
|
||||
age_gdd=1000., ppfd_10=0.0, a_n=-0.0008, b_n=3.3, a_m=6.471, b_m=56.635) < exchange.leaf_Na(
|
||||
age_gdd=1000., ppfd_10=38.64, a_n=-0.0008, b_n=3.3, a_m=6.471, b_m=56.635)
|
||||
|
||||
|
||||
def test_leaf_na_is_null_when_cumulative_ppfd_and_relationship_intercept_are_null():
|
||||
assert exchange.leaf_Na(age_gdd=1000., ppfd_10=0.0, a_n=-0.0008, b_n=3.3, a_m=6.471, b_m=0.0) == 0.0
|
||||
|
||||
|
||||
def test_leaf_na_is_null_when_age_gdd_and_relationship_intercept_are_null():
|
||||
assert exchange.leaf_Na(age_gdd=0.0, ppfd_10=38.64, a_n=-0.0008, b_n=0.0, a_m=6.471, b_m=56.635) == 0.0
|
||||
|
||||
|
||||
def test_leaf_na_is_greater_or_equal_to_zero():
|
||||
assert exchange.leaf_Na(age_gdd=10000.0, ppfd_10=38.64, a_n=-0.0008, b_n=3.3, a_m=6.471, b_m=56.635) == 0.0
|
||||
|
||||
|
||||
def test_arrhenius_1_increases_as_temperature_increases():
|
||||
param_names = ['Tx', 'Kc', 'Ko']
|
||||
for param_name in param_names:
|
||||
prev_value = exchange.arrhenius_1(param_name, 0, setup_default_photosynthesis_params())
|
||||
for leaf_temperature in range(1, 50):
|
||||
actual_value = exchange.arrhenius_1(param_name, leaf_temperature,
|
||||
setup_default_photosynthesis_params())
|
||||
assert actual_value > prev_value
|
||||
prev_value = actual_value
|
||||
|
||||
|
||||
def test_arrhenius_2_is_maximum_for_vcmax_at_39_degrees_celsius():
|
||||
value_at_low_temperature = exchange.arrhenius_2('Vcmax', 0.0, setup_default_photosynthesis_params())
|
||||
value_at_optimal_temperature = exchange.arrhenius_2('Vcmax', 39.0, setup_default_photosynthesis_params())
|
||||
value_at_high_temperature = exchange.arrhenius_2('Vcmax', 50.0, setup_default_photosynthesis_params())
|
||||
|
||||
assert all([value_at_optimal_temperature > val for val in (value_at_low_temperature, value_at_high_temperature)])
|
||||
|
||||
|
||||
def test_arrhenius_2_is_maximum_for_jmax_at_37_degrees_celsius():
|
||||
value_at_low_temperature = exchange.arrhenius_2('Jmax', 0.0, setup_default_photosynthesis_params())
|
||||
value_at_optimal_temperature = exchange.arrhenius_2('Jmax', 37.0, setup_default_photosynthesis_params())
|
||||
value_at_high_temperature = exchange.arrhenius_2('Jmax', 50.0, setup_default_photosynthesis_params())
|
||||
|
||||
assert all([value_at_optimal_temperature > val for val in (value_at_low_temperature, value_at_high_temperature)])
|
||||
|
||||
|
||||
def test_dhd_sensibility_decreases_as_leaf_water_potential_decreases():
|
||||
prev_value = exchange.dHd_sensibility(psi=0.0,
|
||||
temp=25, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
for psi in arange(0, -3, -0.1):
|
||||
act_value = exchange.dHd_sensibility(psi,
|
||||
temp=25, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
assert act_value <= prev_value
|
||||
prev_value = act_value
|
||||
|
||||
|
||||
def test_dhd_sensibility_is_not_affected_by_leaf_temperature_increases_when_leaf_water_potential_is_optimal():
|
||||
value_at_optimal_psi = exchange.dHd_sensibility(psi=0.0,
|
||||
temp=25, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
for temperature in range(0, 50):
|
||||
assert value_at_optimal_psi == exchange.dHd_sensibility(psi=0.0,
|
||||
temp=temperature, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
|
||||
|
||||
def test_dhd_sensibility_is_affected_by_leaf_temperature_when_leaf_water_potential_is_below_its_minimum_threshold():
|
||||
value_at_optimal_psi = exchange.dHd_sensibility(psi=0.0,
|
||||
temp=25, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
for temperature in range(0, 50):
|
||||
assert value_at_optimal_psi > exchange.dHd_sensibility(psi=-2.0,
|
||||
temp=temperature, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
|
||||
|
||||
def test_dhd_sensibility_is_affected_by_leaf_temperature_only_within_restricted_bounds():
|
||||
low_temperature_bound = 35
|
||||
high_temperature_bound = 40
|
||||
value_at_lowest_bound = exchange.dHd_sensibility(psi=-2.0,
|
||||
temp=low_temperature_bound, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
value_at_highest_bound = exchange.dHd_sensibility(psi=-2.0,
|
||||
temp=high_temperature_bound, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
for temperature in range(0, 50):
|
||||
if temperature < low_temperature_bound:
|
||||
assert value_at_lowest_bound == exchange.dHd_sensibility(psi=-2.0,
|
||||
temp=temperature, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
elif temperature < high_temperature_bound:
|
||||
assert value_at_lowest_bound >= exchange.dHd_sensibility(psi=-2.0,
|
||||
temp=temperature, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
else:
|
||||
assert value_at_highest_bound == exchange.dHd_sensibility(psi=-2.0,
|
||||
temp=temperature, dhd_max=200.,
|
||||
dhd_inhib_beg=195., dHd_inhib_max=190.,
|
||||
psi_inhib_beg=-.75, psi_inhib_max=-2.,
|
||||
temp_inhib_beg=35, temp_inhib_max=40)
|
||||
|
||||
|
||||
def test_compute_an_2par_increases_only_electron_transport_as_ppfd_increases():
|
||||
vcmax = []
|
||||
j_frac = []
|
||||
tpu_triple = []
|
||||
rd = []
|
||||
|
||||
for ppfd in range(0, 2000, 10):
|
||||
res = exchange.compute_an_2par(setup_default_photosynthesis_params(), ppfd, leaf_temp=25.0)
|
||||
vcmax.append(res[0])
|
||||
j_frac.append(res[2])
|
||||
tpu_triple.append(res[4])
|
||||
rd.append(res[6])
|
||||
|
||||
# vcmax is independent from ppfd
|
||||
assert all(x == y for x, y in zip(vcmax, vcmax[1:]))
|
||||
# j increases with ppfd
|
||||
assert all(x < y for x, y in zip(j_frac, j_frac[1:]))
|
||||
# tpu is independent from ppfd
|
||||
assert all(x == y for x, y in zip(tpu_triple, tpu_triple[1:]))
|
||||
# rd is independent from ppfd
|
||||
assert all(x == y for x, y in zip(rd, rd[1:]))
|
||||
|
||||
|
||||
def test_compute_an_2par_affects_all_photosynthetic_parameters_by_temperature():
|
||||
vcmax = []
|
||||
j_frac = []
|
||||
tpu_triple = []
|
||||
rd = []
|
||||
|
||||
for temperature in range(-10, 45):
|
||||
res = exchange.compute_an_2par(setup_default_photosynthesis_params(), ppfd=1800.,
|
||||
leaf_temp=temperature)
|
||||
vcmax.append(res[0])
|
||||
j_frac.append(res[2])
|
||||
tpu_triple.append(res[4])
|
||||
rd.append(res[6])
|
||||
|
||||
# vcmax is dependent on temperature
|
||||
assert all(x != y for x, y in zip(vcmax, vcmax[1:]))
|
||||
# j is dependent on temperature
|
||||
assert all(x != y for x, y in zip(j_frac, j_frac[1:]))
|
||||
# tpu is dependent on temperature
|
||||
assert all(x != y for x, y in zip(tpu_triple, tpu_triple[1:]))
|
||||
# rd is dependent on temperature
|
||||
assert all(x != y for x, y in zip(rd, rd[1:]))
|
||||
|
||||
|
||||
def test_fvpd_3_raises_error_for_unrecognized_model():
|
||||
try:
|
||||
exchange.fvpd_3('any_model', vpd=3., psi=-0., psi_crit=-0.37, m0=5.278, steepness_tuzet=1.85, d0_leuning=30.)
|
||||
except ValueError as err:
|
||||
assert err.args[0] == "The 'model' argument must be one of the following ('misson','tuzet', 'linear' or 'vpd')."
|
||||
|
||||
|
||||
def test_fvpd_3_increases_stress_factor_as_leaf_water_potential_decreases():
|
||||
for model in ('misson', 'tuzet', 'linear', 'vpd'):
|
||||
reduction_factor = []
|
||||
for psi in arange(0, -3, -0.1):
|
||||
reduction_factor.append(
|
||||
exchange.fvpd_3(model, vpd=3., psi=psi, psi_crit=-0.37, m0=5.278, steepness_tuzet=1.85, d0_leuning=30.))
|
||||
assert all(x >= y for x, y in zip(reduction_factor, reduction_factor[1:]))
|
||||
|
||||
|
||||
def test_mesophyll_conductance_changes_with_temperature():
|
||||
gm = [exchange.mesophyll_conductance(t, gm25=0.1025, activation_energy=49600., deactivation_energy=437400.,
|
||||
entropy=1400.) for t in arange(-10, 46)]
|
||||
assert all(x != y for x, y in zip(gm, gm[1:]))
|
||||
|
||||
|
||||
def test_mesophyll_conductance_is_positive():
|
||||
gm = [exchange.mesophyll_conductance(t, gm25=0.1025, activation_energy=49600., deactivation_energy=437400.,
|
||||
entropy=1400.) for t in arange(-10, 46)]
|
||||
assert all(x >= 0 for x in gm)
|
||||
|
||||
|
||||
def test_mesophyll_conductance_is_maximum_at_36_degrees_celsius():
|
||||
gm_max = exchange.mesophyll_conductance(36, gm25=0.1025, activation_energy=49600., deactivation_energy=437400.,
|
||||
entropy=1400.)
|
||||
gm = [exchange.mesophyll_conductance(t, gm25=0.1025, activation_energy=49600., deactivation_energy=437400.,
|
||||
entropy=1400.) for t in arange(-10, 46)]
|
||||
assert all(x <= gm_max for x in gm)
|
||||
|
||||
|
||||
def test_boundary_layer_conductance_decreases_as_leaf_length_increases():
|
||||
gb = [exchange.boundary_layer_conductance(l, wind_speed=2.0, atm_pressure=101.3, air_temp=25.,
|
||||
ideal_gas_cst=constants.ideal_gaz_cst) for l in arange(0.001, 0.25, 0.02)]
|
||||
assert all(x >= y for x, y in zip(gb, gb[1:]))
|
||||
|
||||
|
||||
def test_boundary_layer_conductance_increases_as_wind_speed_increases():
|
||||
gb = [exchange.boundary_layer_conductance(leaf_length=0.1, wind_speed=w, atm_pressure=101.3, air_temp=25.,
|
||||
ideal_gas_cst=constants.ideal_gaz_cst) for w in arange(0.0, 5.0, 0.5)]
|
||||
assert all(x <= y for x, y in zip(gb, gb[1:]))
|
||||
|
||||
|
||||
def test_boundary_layer_conductance_is_weakly_dependent_on_atmospheric_pressure():
|
||||
gb = [exchange.boundary_layer_conductance(leaf_length=0.1, wind_speed=2., atm_pressure=p, air_temp=25.,
|
||||
ideal_gas_cst=constants.ideal_gaz_cst) for p in arange(90.3, 102.3)]
|
||||
assert [testing.assert_almost_equal(x, y, decimal=3) for x, y in zip(gb, gb[1:])]
|
||||
|
||||
|
||||
def test_boundary_layer_conductance_increases_as_air_temperature_increases():
|
||||
gb = [exchange.boundary_layer_conductance(leaf_length=0.1, wind_speed=2.0, atm_pressure=101.3, air_temp=t,
|
||||
ideal_gas_cst=constants.ideal_gaz_cst) for t in range(-10, 46)]
|
||||
assert all(x <= y for x, y in zip(gb, gb[1:]))
|
||||
|
||||
|
||||
def test_an_gs_ci_reduces_gas_exchange_rates_as_leaf_water_potential_decreases(
|
||||
leaf_local_weather=setup_leaf_local_weather()):
|
||||
an, _, _, gs = zip(
|
||||
*[exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=leaf_local_weather['Tac'],
|
||||
leaf_water_potential=psi,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
for psi in arange(0, -3, -0.1)])
|
||||
|
||||
assert all(x >= y for x, y in zip(an, an[1:]))
|
||||
assert all(x >= y for x, y in zip(gs, gs[1:]))
|
||||
|
||||
|
||||
def test_an_gs_ci_changes_gas_exchange_rates_as_leaf_temperature_changes(leaf_local_weather=setup_leaf_local_weather()):
|
||||
an, _, _, gs = zip(
|
||||
*[exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=t,
|
||||
leaf_water_potential=0,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
for t in range(-10, 46)])
|
||||
|
||||
assert all(x != y for x, y in zip(an, an[1:]))
|
||||
assert all(x != y for x, y in zip(gs, gs[1:]))
|
||||
|
||||
|
||||
def test_an_gs_ci_yields_maximum_net_photosynthesis_at_31_degrees_celsius(
|
||||
leaf_local_weather=setup_leaf_local_weather()):
|
||||
an_max, *_ = exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=31,
|
||||
leaf_water_potential=0,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
|
||||
an, *_ = zip(
|
||||
*[exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=t,
|
||||
leaf_water_potential=0,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
for t in range(-10, 46)])
|
||||
|
||||
assert all(x <= an_max for x in an)
|
||||
|
||||
|
||||
def test_an_gs_ci_yields_maximum_stomatal_conductance_at_34_degrees_celsius(
|
||||
leaf_local_weather=setup_leaf_local_weather()):
|
||||
*_, gs_max = exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=34,
|
||||
leaf_water_potential=0,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
|
||||
*_, gs = zip(
|
||||
*[exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=t,
|
||||
leaf_water_potential=0,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
for t in range(-10, 46)])
|
||||
|
||||
assert all(x <= gs_max for x in gs)
|
||||
|
||||
|
||||
def test_an_gs_ci_yields_more_severe_stress_when_temperature_and_water_stresses_are_combined_than_separated(
|
||||
leaf_local_weather=setup_leaf_local_weather()):
|
||||
an_t, *_, gs_t = zip(
|
||||
*[exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=t,
|
||||
leaf_water_potential=0,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
for t in range(-10, 46)])
|
||||
|
||||
an_t_psi, *_, gs_t_psi = zip(
|
||||
*[exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=leaf_local_weather['vpd'],
|
||||
leaf_temperature=t,
|
||||
leaf_water_potential=-2,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
for t in range(-10, 46)])
|
||||
|
||||
assert all(x <= x_t for x, x_t in zip(an_t_psi, an_t))
|
||||
assert all(x <= x_t for x, x_t in zip(gs_t_psi, gs_t))
|
||||
|
||||
|
||||
def test_transpiration_rate_incrases_as_vapor_pressure_deficit_increases(leaf_local_weather=setup_leaf_local_weather()):
|
||||
atmospheric_pressure = leaf_local_weather['Pa']
|
||||
air_temp = leaf_local_weather['Tac']
|
||||
leaf_temp = air_temp
|
||||
gb = exchange.boundary_layer_conductance(leaf_length=0.1, wind_speed=leaf_local_weather['u'],
|
||||
atm_pressure=atmospheric_pressure, air_temp=air_temp,
|
||||
ideal_gas_cst=constants.ideal_gaz_cst)
|
||||
vpd = utilities.vapor_pressure_deficit(temp_air=air_temp, temp_leaf=leaf_temp, rh=leaf_local_weather['hs'])
|
||||
*_, gs = exchange.an_gs_ci(
|
||||
absorbed_ppfd=leaf_local_weather['PPFD'],
|
||||
vapor_pressure_deficit=vpd,
|
||||
leaf_temperature=leaf_temp,
|
||||
leaf_water_potential=0,
|
||||
photo_params=setup_default_photosynthesis_params(),
|
||||
gs_params=setup_default_stomatal_conductance_params(),
|
||||
rbt=2. / 3.,
|
||||
ca=400.)
|
||||
|
||||
transpiration = [exchange.calc_transpiration_rate(vpd=vpd, gs=gs, gb=gb, atm_pressure=atmospheric_pressure)
|
||||
for vpd in linspace(vpd, 0, 10)]
|
||||
assert all(x >= y for x, y in zip(transpiration, transpiration[1:]))
|
56
hydroshoot/test/test_hydraulic.py
Normal file
56
hydroshoot/test/test_hydraulic.py
Normal file
|
@ -0,0 +1,56 @@
|
|||
from numpy import arange
|
||||
from openalea.mtg import traversal
|
||||
|
||||
from hydroshoot import hydraulic, architecture
|
||||
from non_regression_data import potted_syrah
|
||||
|
||||
|
||||
def test_conductivity_max_increases_as_segment_diameter_increases():
|
||||
cond_max = [hydraulic.conductivity_max(diameter, a=2.8, b=0.1, min_kmax=0.) for diameter in arange(0, 0.2, 0.005)]
|
||||
assert all(x < y for x, y in zip(cond_max, cond_max[1:]))
|
||||
|
||||
|
||||
def test_conductivity_max_is_higher_or_equal_to_its_minimal_value():
|
||||
min_kmax = 0.02
|
||||
assert hydraulic.conductivity_max(diameter=0., a=2.8, b=0.1, min_kmax=min_kmax) >= min_kmax
|
||||
|
||||
|
||||
def test_conductivity_max_changes_following_parameters_values():
|
||||
cond_max_a = [hydraulic.conductivity_max(diameter=0.01, a=a, b=0.1, min_kmax=0.) for a in arange(2.5, 2.8, 0.1)]
|
||||
cond_max_b = [hydraulic.conductivity_max(diameter=0.01, a=2.8, b=b, min_kmax=0.) for b in arange(2., 5., 0.5)]
|
||||
assert all(x < y for x, y in zip(cond_max_a, cond_max_a[1:]))
|
||||
assert all(x > y for x, y in zip(cond_max_b, cond_max_b[1:]))
|
||||
|
||||
|
||||
def test_cavitation_factor_raises_error_if_undefined_model():
|
||||
try:
|
||||
hydraulic.cavitation_factor(psi=0.0, model='some_model', fifty_cent=-0.51, sig_slope=3)
|
||||
except ValueError as err:
|
||||
assert err.args[0] == "The 'model' argument must be one of the following ('misson','tuzet', 'linear')."
|
||||
|
||||
|
||||
def test_cavitation_factor_increases_as_segment_water_potential_decreases():
|
||||
for model in ('misson', 'tuzet', 'linear'):
|
||||
cavitation = [hydraulic.cavitation_factor(psi, model, -0.51, 3) for psi in arange(0, -3, -0.1)]
|
||||
assert all(x >= y for x, y in zip(cavitation, cavitation[1:]))
|
||||
|
||||
|
||||
def test_hydraulic_prop_attributes_the_right_properties_to_the_different_organs():
|
||||
simple_shoot = potted_syrah()
|
||||
simple_shoot.node(simple_shoot.root).vid_base = architecture.get_mtg_base(simple_shoot, vtx_label='inT')
|
||||
|
||||
vid_base = simple_shoot.node(simple_shoot.root).vid_base
|
||||
for vtx_id in traversal.post_order2(simple_shoot, vid_base):
|
||||
n = simple_shoot.node(vtx_id)
|
||||
if n.label.startswith('LI'):
|
||||
n.E = 0.
|
||||
n.An = 0.
|
||||
|
||||
hydraulic.hydraulic_prop(simple_shoot, length_conv=1.e-2, a=2.6, b=2.0, min_kmax=0.)
|
||||
|
||||
for vtx_id in traversal.post_order2(simple_shoot, vid_base):
|
||||
n = simple_shoot.node(vtx_id)
|
||||
assert hasattr(n, 'Flux')
|
||||
assert hasattr(n, 'FluxC')
|
||||
if n.label.startswith(('in', 'cx', 'Pet')):
|
||||
assert hasattr(n, 'Kmax')
|
129
hydroshoot/test/test_irradiance.py
Normal file
129
hydroshoot/test/test_irradiance.py
Normal file
|
@ -0,0 +1,129 @@
|
|||
from numpy.testing import assert_almost_equal
|
||||
|
||||
from hydroshoot.irradiance import irradiance_distribution, hsCaribu, set_optical_properties, e_conv_PPFD
|
||||
from non_regression_data import potted_syrah, meteo
|
||||
|
||||
|
||||
def test_irradiance_distribution():
|
||||
# sample values copied from data.json_parameters
|
||||
location = (43.61, 3.87, 44.0)
|
||||
e_type = 'Rg_Watt/m2'
|
||||
conv = e_conv_PPFD(e_type)
|
||||
|
||||
# a cloudy hour
|
||||
met = meteo().iloc[[12], :]
|
||||
rg = met.Rg.sum() * conv
|
||||
|
||||
sources, rdrs = irradiance_distribution(met, location, e_type)
|
||||
assert rdrs == 1
|
||||
assert len(sources) == 46
|
||||
nrj, pos = zip(*sources)
|
||||
assert abs(rg - sum(nrj)) / rg < 0.001
|
||||
|
||||
# Same our but with 16 directions
|
||||
sources, rdrs = irradiance_distribution(met, location, e_type, turtle_sectors='16')
|
||||
assert len(sources) == 16
|
||||
nrj, pos = zip(*sources)
|
||||
assert abs(rg - sum(nrj)) / rg < 0.001
|
||||
|
||||
# a sunny hour
|
||||
met = meteo().iloc[[60], :]
|
||||
rg = met.Rg.sum() * conv
|
||||
|
||||
sources, rdrs = irradiance_distribution(met, location, e_type)
|
||||
assert rdrs < 0.3
|
||||
assert len(sources) == 47
|
||||
nrj, pos = zip(*sources)
|
||||
assert abs(rg - sum(nrj)) / rg < 0.001
|
||||
|
||||
# a night hour
|
||||
met = meteo().iloc[[1], :]
|
||||
sources, rdrs = irradiance_distribution(met, location, e_type)
|
||||
assert rdrs == 1
|
||||
assert len(sources) == 1
|
||||
nrj, pos = zip(*sources)
|
||||
assert_almost_equal(sum(nrj), 0)
|
||||
|
||||
# a particularly overcast day
|
||||
day_met = meteo().iloc[:24, :]
|
||||
rg_total = day_met.Rg.sum() * conv
|
||||
|
||||
sources, rdrs = irradiance_distribution(day_met, location, e_type)
|
||||
assert rdrs > 0.9
|
||||
assert len(sources) == 47
|
||||
nrj, pos = zip(*sources)
|
||||
assert abs(rg_total - sum(nrj)) / rg_total < 0.001
|
||||
|
||||
# Same day but with 16 directions
|
||||
sources, rdrs = irradiance_distribution(day_met, location, e_type, turtle_sectors='16')
|
||||
assert len(sources) == 17
|
||||
nrj, pos = zip(*sources)
|
||||
assert abs(rg_total - sum(nrj)) / rg_total < 0.001
|
||||
|
||||
# a much clearer day
|
||||
day_met = meteo().iloc[48:72, :]
|
||||
rg_total = day_met.Rg.sum() * conv
|
||||
sources, rdrs = irradiance_distribution(day_met, location, e_type)
|
||||
assert rdrs < 0.5
|
||||
assert len(sources) == 58
|
||||
nrj, pos = zip(*sources)
|
||||
assert abs(rg_total - sum(nrj)) / rg_total < 0.001
|
||||
|
||||
|
||||
def test_hsCaribu():
|
||||
args = dict(
|
||||
g=potted_syrah(),
|
||||
wave_band='SW',
|
||||
leaf_lbl_prefix='L',
|
||||
stem_lbl_prefix=('in', 'Pet', 'cx'),
|
||||
opt_prop={'SW': {'leaf': (0.06, 0.07), 'stem': (0.13,), 'other': (0.65, 0.0)},
|
||||
'LW': {'leaf': (0.04, 0.07), 'stem': (0.13,), 'other': (0.65, 0.0)}})
|
||||
# sample values copied from data.json_parameters
|
||||
unit_scene_length = 'cm'
|
||||
# Attaching optical properties to MTG elements
|
||||
g = set_optical_properties(**args)
|
||||
|
||||
# simple run
|
||||
assert 'Ei' not in g.property_names()
|
||||
assert 'Eabs' not in g.property_names()
|
||||
g, cs = hsCaribu(g, unit_scene_length)
|
||||
assert 'Ei' in g.property_names()
|
||||
assert 'Eabs' in g.property_names()
|
||||
assert len(g.property('Ei')) == len(cs.scene)
|
||||
assert len(g.property('Eabs')) == len(cs.scene)
|
||||
assert sum(g.property('Ei').values()) > 0
|
||||
|
||||
# simple run during night
|
||||
g, cs = hsCaribu(g, unit_scene_length, source=[(0, (0, -1, 0))])
|
||||
assert sum(g.property('Ei').values()) == 0
|
||||
|
||||
# reproduce scene filtering as done in model.py
|
||||
args.update({'g': potted_syrah()})
|
||||
g = set_optical_properties(**args)
|
||||
ng = len(g.property('geometry'))
|
||||
label = g.property('label')
|
||||
g.properties()['radiative_geometry'] = {k: v for k, v in g.property('geometry').items() if
|
||||
label[k].startswith(('L', 'other', 'soil'))}
|
||||
assert len(g.property('radiative_geometry')) < ng
|
||||
g, cs = hsCaribu(g, unit_scene_length, geometry='radiative_geometry')
|
||||
assert len(g.property('Ei')) == len(cs.scene)
|
||||
assert len(g.property('Ei')) == len(g.property('radiative_geometry'))
|
||||
assert len(g.property('geometry')) == ng
|
||||
# non regression test
|
||||
ei_sum = sum(g.property('Ei').values())
|
||||
assert_almost_equal(ei_sum, 14.83, 2)
|
||||
|
||||
# test consider option
|
||||
args.update({'g': potted_syrah()})
|
||||
g = set_optical_properties(**args)
|
||||
ng = len(g.property('geometry'))
|
||||
label = g.property('label')
|
||||
consider = [vid for vid in g.property('geometry') if label[vid].startswith(('L', 'other', 'soil'))]
|
||||
assert len(consider) < ng
|
||||
g, cs = hsCaribu(g, unit_scene_length, consider=consider)
|
||||
assert len(g.property('Ei')) == len(cs.scene)
|
||||
assert len(g.property('Ei')) == len(consider)
|
||||
assert len(g.property('geometry')) == ng
|
||||
# non regression test
|
||||
ei_sum = sum(g.property('Ei').values())
|
||||
assert_almost_equal(ei_sum, 14.83, 2)
|
21
hydroshoot/test/test_model.py
Normal file
21
hydroshoot/test/test_model.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
""" A global test of hydroshoot model on potted grapevine, to secure refactoring"""
|
||||
from pathlib import Path
|
||||
|
||||
from numpy.testing import assert_array_almost_equal
|
||||
|
||||
from hydroshoot import model
|
||||
import non_regression_data
|
||||
|
||||
|
||||
def test_potted_grapevine():
|
||||
path_data = Path(__file__).parent / 'data'
|
||||
results = model.run(
|
||||
g=non_regression_data.potted_syrah(),
|
||||
wd=path_data,
|
||||
path_weather=path_data / 'meteo.csv',
|
||||
write_result=False,
|
||||
psi_soil=-0.2,
|
||||
gdd_since_budbreak=100.)
|
||||
ref = non_regression_data.reference_time_series_output()
|
||||
# do not compare date index
|
||||
assert_array_almost_equal(ref.iloc[0, :], results.reset_index(drop=True).iloc[0, :], decimal=0)
|
95
hydroshoot/test/test_soil.py
Normal file
95
hydroshoot/test/test_soil.py
Normal file
|
@ -0,0 +1,95 @@
|
|||
from numpy import linspace, arange
|
||||
|
||||
from hydroshoot import soil
|
||||
|
||||
SOIL_CLASSES = list(soil.SOIL_PROPS.keys())
|
||||
|
||||
|
||||
def test_calc_soil_water_content_from_water_potential():
|
||||
soil_props = dict(
|
||||
theta_res=0.045,
|
||||
theta_sat=0.430,
|
||||
alpha=0.145,
|
||||
n=2.68)
|
||||
assert soil.calc_volumetric_water_content_from_water_potential(psi=0, **soil_props) == soil_props['theta_sat']
|
||||
assert soil.calc_volumetric_water_content_from_water_potential(psi=-1.e12, **soil_props) == soil_props['theta_res']
|
||||
|
||||
|
||||
def test_calc_soil_water_potential():
|
||||
for v in soil.SOIL_PROPS.values():
|
||||
soil_props = {k: v[i] for i, k in enumerate(('theta_res', 'theta_sat', 'alpha', 'n'))}
|
||||
assert 0 == soil.calc_soil_water_potential(theta=soil_props['theta_sat'], **soil_props)
|
||||
assert 1.e-12 > soil.calc_soil_water_potential(theta=soil_props['theta_res'], **soil_props)
|
||||
assert soil.calc_soil_water_potential(theta=0, **soil_props) == soil.calc_soil_water_potential(
|
||||
theta=soil_props['theta_res'], **soil_props)
|
||||
assert soil.calc_soil_water_potential(theta=1, **soil_props) == soil.calc_soil_water_potential(
|
||||
theta=soil_props['theta_sat'], **soil_props)
|
||||
res = []
|
||||
for theta in linspace(soil_props['theta_res'], soil_props['theta_sat'], 10):
|
||||
res.append(soil.calc_soil_water_potential(theta=theta, **soil_props))
|
||||
assert all([x <= y for x, y in zip(res, res[1:])])
|
||||
pass
|
||||
|
||||
|
||||
def test_soil_water_potential_decreases_as_water_withdrawal_increases():
|
||||
for soil_class in SOIL_CLASSES:
|
||||
psi_soil = [soil.update_soil_water_potential(psi_soil_init=0., water_withdrawal=w, soil_class=soil_class,
|
||||
soil_total_volume=1, psi_min=-3.)
|
||||
for w in arange(0, 3, 0.1)]
|
||||
assert all(x >= y for x, y in zip(psi_soil, psi_soil[1:]))
|
||||
|
||||
|
||||
def test_soil_water_potential_drops_faster_for_small_soil_reservoirs_than_bigger_ones():
|
||||
for soil_class in SOIL_CLASSES:
|
||||
psi_soil_small = soil.update_soil_water_potential(psi_soil_init=0., water_withdrawal=1., soil_class=soil_class,
|
||||
soil_total_volume=1., psi_min=-3.)
|
||||
psi_soil_big = soil.update_soil_water_potential(psi_soil_init=0., water_withdrawal=1., soil_class=soil_class,
|
||||
soil_total_volume=2., psi_min=-3.)
|
||||
assert psi_soil_small < psi_soil_big
|
||||
|
||||
|
||||
def test_soil_conductivity_decreases_as_water_potential_decreases():
|
||||
for soil_class in soil.SOIL_PROPS.keys():
|
||||
soil_conductivity = [soil.calc_soil_conductivity(psi, soil_class) for psi in arange(0, -3, -0.1)]
|
||||
assert all(x >= y for x, y in zip(soil_conductivity, soil_conductivity[1:]))
|
||||
|
||||
|
||||
def test_soil_conductivity_maximum_value_is_greater_for_sand_than_clay():
|
||||
soil_conductivity = [soil.calc_soil_conductivity(0., soil_class) for soil_class in ('Clay', 'Sand')]
|
||||
assert all(x <= y for x, y in zip(soil_conductivity, soil_conductivity[1:]))
|
||||
|
||||
|
||||
def test_calc_root_soil_resistance_decreases_as_soil_conductivity_increases():
|
||||
res = [
|
||||
soil.calc_root_soil_resistance(soil_conductivity=v, rhyzosphere_volume=1, root_radius=0.0001, root_length=2000)
|
||||
for v in arange(0, 1, 0.01)]
|
||||
assert all(x >= y for x, y in zip(res, res[1:]))
|
||||
|
||||
|
||||
def test_calc_root_soil_resistance_decreases_as_rhyzosphere_volume_increases():
|
||||
res = [
|
||||
soil.calc_root_soil_resistance(soil_conductivity=1, rhyzosphere_volume=v, root_radius=0.0001, root_length=2000)
|
||||
for v in arange(.1, 5, 0.01)]
|
||||
assert all(x >= y for x, y in zip(res, res[1:]))
|
||||
|
||||
|
||||
def test_calc_root_soil_resistance_decreases_as_root_radius_increases():
|
||||
res = [soil.calc_root_soil_resistance(soil_conductivity=1, rhyzosphere_volume=1, root_radius=v, root_length=2000)
|
||||
for v in arange(0, 0.001, 0.0001)]
|
||||
assert all(x >= y for x, y in zip(res, res[1:]))
|
||||
|
||||
|
||||
def test_calc_root_soil_resistance_decreases_as_root_length_increases():
|
||||
res = [soil.calc_root_soil_resistance(soil_conductivity=1, rhyzosphere_volume=1, root_radius=0.0001, root_length=v)
|
||||
for v in arange(10, 2000, 10)]
|
||||
assert all(x >= y for x, y in zip(res, res[1:]))
|
||||
|
||||
|
||||
def test_calc_collar_water_potential_decreases_as_transpiration_flux_increases():
|
||||
root_params = dict(bulk_soil_water_potential=-0.5, rhyzosphere_volume=0.5, root_radius=0.015)
|
||||
root_params.update(
|
||||
{'root_length': 0.99 * root_params['rhyzosphere_volume'] / (3.14 * (2 * root_params['root_radius']) ** 2)})
|
||||
for soil_class in SOIL_CLASSES:
|
||||
res = [soil.calc_collar_water_potential(transpiration=v, soil_class=soil_class, **root_params)
|
||||
for v in linspace(0, 4 / 3600., 10)] # max transpiration flux assumed to be 4 L/h
|
||||
assert all(x >= y for x, y in zip(res, res[1:]))
|
7
hydroshoot/test/test_utilities.py
Normal file
7
hydroshoot/test/test_utilities.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
from hydroshoot import utilities
|
||||
|
||||
|
||||
def test_calc_effective_daily_temperature():
|
||||
assert (utilities.calc_effective_daily_temperature(temperature_air=10, temperature_base=10) == 0)
|
||||
assert (utilities.calc_effective_daily_temperature(temperature_air=9, temperature_base=10) == 0)
|
||||
assert (utilities.calc_effective_daily_temperature(temperature_air=11, temperature_base=10) == 1)
|
Loading…
Add table
Add a link
Reference in a new issue