terraref / computing-pipeline

Pipeline to Extract Plant Phenotypes from Reference Data
BSD 3-Clause "New" or "Revised" License
24 stars 13 forks source link

Handle numerical data generated by PlantCV pipeline #31

Closed dlebauer closed 8 years ago

dlebauer commented 8 years ago
yanliu-chn commented 8 years ago

the image analysis scripts do output quite a bit of text info that looks like numerical data. Is that what you are talking about? I can piggyback that info as part of the metadata.

should I do that before or after David's demo? i don't want to interrupt his demo when I debug.

dlebauer commented 8 years ago

It is not sufficiently urgent to risk breaking the demo. Having a working Jupyter analog would be more valuable.

yanliu-chn commented 8 years ago

Here is an example of vis_tv output:

HEADER_SHAPES   area    hull-area   solidity    perimeter   width   height  longest_axis    center-of-mass-x    center-of-mass-y    hull_vertices   in_bounds   ellipse_center_x    ellipse_center_y    ellipse_major_axis  ellipse_minor_axis  ellipse_angle   ellipse_eccentricity
SHAPES_DATA 181008.0    1058060.0   0.171075364346  11704.7172049   1887    1109    1863    828.234149872   866.411694511   19  False   926.676330566   779.074584961   1517.16711426   793.131835938   88.3340530396   0.852472805697
HEADER_HISTOGRAM    bin-number  blue    green   red lightness   green-magenta   blue-yellow hue saturation  value
HISTOGRAM_DATA  256 [26.0, 12.0, 18.0, 15.0, 19.0, 21.0, 32.0, 36.0, 49.0, 70.0, 72.0, 102.0, 144.0, 187.0, 192.0, 223.0, 293.0, 362.0, 477.0, 584.0, 690.0, 915.0, 1218.0, 1680.0, 2226.0, 3019.0, 3818.0, 4701.0, 5120.0, 5335.0, 5702.0, 6099.0, 6218.0, 6549.0, 6852.0, 7663.0, 8260.0, 8759.0, 9359.0, 9526.0, 9118.0, 8821.0, 8141.0, 7085.0, 6391.0, 5258.0, 4107.0, 3168.0, 2439.0, 1855.0, 1597.0, 1326.0, 1018.0, 869.0, 745.0, 599.0, 553.0, 429.0, 396.0, 393.0, 351.0, 327.0, 282.0, 296.0, 278.0, 243.0, 235.0, 214.0, 220.0, 193.0, 167.0, 170.0, 167.0, 160.0, 146.0, 130.0, 132.0, 136.0, 116.0, 111.0, 102.0, 90.0, 115.0, 85.0, 88.0, 83.0, 84.0, 72.0, 66.0, 79.0, 86.0, 83.0, 87.0, 65.0, 84.0, 46.0, 72.0, 53.0, 73.0, 51.0, 50.0, 55.0, 59.0, 54.0, 57.0, 51.0, 62.0, 62.0, 46.0, 66.0, 62.0, 67.0, 58.0, 61.0, 65.0, 65.0, 87.0, 76.0, 95.0, 93.0, 112.0, 117.0, 105.0, 106.0, 119.0, 128.0, 122.0, 124.0, 102.0, 101.0, 91.0, 88.0, 91.0, 85.0, 62.0, 77.0, 58.0, 44.0, 46.0, 46.0, 42.0, 46.0, 46.0, 40.0, 35.0, 44.0, 58.0, 44.0, 33.0, 33.0, 32.0, 32.0, 28.0, 36.0, 40.0, 30.0, 25.0, 20.0, 27.0, 27.0, 25.0, 34.0, 19.0, 24.0, 22.0, 17.0, 32.0, 21.0, 21.0, 26.0, 21.0, 12.0, 16.0, 20.0, 16.0, 23.0, 13.0, 20.0, 8.0, 20.0, 6.0, 9.0, 17.0, 17.0, 19.0, 14.0, 21.0, 13.0, 10.0, 9.0, 5.0, 6.0, 5.0, 4.0, 2.0, 4.0, 4.0, 1.0, 0.0, 3.0, 2.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 7.0, 1.0, 10.0, 5.0, 8.0, 16.0, 14.0, 20.0, 22.0, 33.0, 37.0, 27.0, 36.0, 51.0, 60.0, 79.0, 77.0, 87.0, 114.0, 145.0, 223.0, 264.0, 317.0, 453.0, 489.0, 500.0, 618.0, 637.0, 788.0, 855.0, 844.0, 893.0, 985.0, 1032.0, 1045.0, 1044.0, 985.0, 810.0, 805.0, 761.0, 744.0, 748.0, 805.0, 897.0, 1191.0, 1395.0, 1721.0, 1705.0, 1779.0, 2062.0, 2067.0, 2270.0, 2319.0, 2129.0, 2350.0, 2623.0, 2653.0, 2687.0, 2379.0, 2412.0, 2454.0, 2778.0, 3548.0, 4024.0, 4638.0, 5290.0, 4908.0, 4414.0, 3955.0, 3508.0, 3080.0, 2886.0, 2696.0, 2763.0, 3194.0, 3071.0, 3110.0, 3141.0, 3205.0, 3103.0, 3136.0, 3450.0, 3778.0, 4060.0, 4003.0, 3838.0, 3586.0, 3411.0, 2962.0, 2560.0, 2044.0, 1897.0, 1596.0, 1549.0, 1277.0, 1221.0, 1159.0, 955.0, 883.0, 749.0, 694.0, 600.0, 478.0, 417.0, 398.0, 315.0, 329.0, 298.0, 266.0, 211.0, 195.0, 178.0, 155.0, 140.0, 135.0, 97.0, 113.0, 98.0, 105.0, 103.0, 102.0, 95.0, 83.0, 72.0, 77.0, 69.0, 62.0, 71.0, 57.0, 57.0, 52.0, 47.0, 38.0, 48.0, 42.0, 44.0, 43.0, 33.0, 40.0, 32.0, 28.0, 53.0, 33.0, 44.0, 43.0, 58.0, 39.0, 50.0, 38.0, 30.0, 30.0, 34.0, 28.0, 36.0, 22.0, 23.0, 31.0, 28.0, 35.0, 45.0, 26.0, 27.0, 27.0, 29.0, 28.0, 32.0, 30.0, 31.0, 24.0, 27.0, 22.0, 34.0, 27.0, 21.0, 24.0, 18.0, 21.0, 19.0, 20.0, 24.0, 25.0, 22.0, 21.0, 19.0, 32.0, 25.0, 26.0, 26.0, 35.0, 30.0, 44.0, 44.0, 42.0, 39.0, 42.0, 45.0, 52.0, 47.0, 50.0, 62.0, 50.0, 62.0, 65.0, 73.0, 63.0, 87.0, 65.0, 72.0, 68.0, 63.0, 76.0, 78.0, 84.0, 97.0, 87.0, 84.0, 91.0, 100.0, 65.0, 81.0, 70.0, 77.0, 81.0, 73.0, 90.0, 98.0, 92.0, 84.0, 0.0]  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 3.0, 4.0, 4.0, 18.0, 13.0, 20.0, 24.0, 21.0, 30.0, 31.0, 44.0, 48.0, 57.0, 55.0, 89.0, 125.0, 199.0, 298.0, 399.0, 486.0, 588.0, 863.0, 1034.0, 1156.0, 1282.0, 1327.0, 1414.0, 1458.0, 1503.0, 1485.0, 1522.0, 1716.0, 1935.0, 2181.0, 2633.0, 3090.0, 3281.0, 3339.0, 3438.0, 3962.0, 4386.0, 4526.0, 5013.0, 4914.0, 5226.0, 5527.0, 5933.0, 5859.0, 5726.0, 6217.0, 5525.0, 5588.0, 5456.0, 5474.0, 5234.0, 4956.0, 4419.0, 3898.0, 3479.0, 3135.0, 2856.0, 2558.0, 2267.0, 1965.0, 1978.0, 1804.0, 1563.0, 1598.0, 1410.0, 1328.0, 1291.0, 1146.0, 1106.0, 999.0, 867.0, 840.0, 782.0, 780.0, 706.0, 643.0, 555.0, 493.0, 419.0, 324.0, 267.0, 230.0, 214.0, 189.0, 167.0, 141.0, 135.0, 136.0, 124.0, 99.0, 139.0, 106.0, 92.0, 67.0, 98.0, 99.0, 83.0, 94.0, 93.0, 101.0, 76.0, 87.0, 80.0, 86.0, 80.0, 73.0, 64.0, 53.0, 87.0, 78.0, 69.0, 66.0, 73.0, 68.0, 61.0, 41.0, 55.0, 51.0, 49.0, 43.0, 48.0, 55.0, 44.0, 40.0, 39.0, 32.0, 32.0, 36.0, 38.0, 36.0, 30.0, 30.0, 32.0, 26.0, 30.0, 32.0, 25.0, 27.0, 33.0, 36.0, 18.0, 36.0, 14.0, 27.0, 22.0, 36.0, 32.0, 43.0, 22.0, 26.0, 29.0, 30.0, 30.0, 21.0, 28.0, 26.0, 34.0, 27.0, 26.0, 22.0, 32.0, 33.0, 35.0, 24.0, 24.0, 35.0, 21.0, 20.0, 23.0, 24.0, 20.0, 24.0, 25.0, 20.0, 24.0, 17.0, 25.0, 18.0, 14.0, 18.0, 15.0, 19.0, 14.0, 18.0, 16.0, 18.0, 15.0, 18.0, 14.0, 21.0, 24.0, 19.0, 16.0, 14.0, 21.0, 15.0, 29.0, 13.0, 20.0, 12.0, 12.0, 15.0, 14.0, 17.0, 15.0, 9.0, 14.0, 23.0, 10.0, 29.0, 27.0, 22.0, 18.0, 12.0, 14.0, 13.0, 17.0, 17.0, 19.0, 26.0, 19.0, 24.0, 24.0, 36.0, 35.0, 43.0, 47.0, 57.0, 59.0, 90.0, 113.0, 140.0, 156.0, 198.0, 220.0, 0.0]    [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 4.0, 2.0, 5.0, 0.0, 1.0, 11.0, 6.0, 3.0, 21.0, 10.0, 14.0, 13.0, 14.0, 11.0, 55.0, 16.0, 22.0, 50.0, 31.0, 67.0, 53.0, 91.0, 37.0, 64.0, 164.0, 67.0, 244.0, 271.0, 266.0, 459.0, 196.0, 483.0, 456.0, 618.0, 717.0, 885.0, 847.0, 867.0, 743.0, 1213.0, 970.0, 751.0, 1427.0, 351.0, 978.0, 605.0, 788.0, 843.0, 629.0, 788.0, 1004.0, 1136.0, 1485.0, 1565.0, 1538.0, 1821.0, 2095.0, 2074.0, 2361.0, 2148.0, 1809.0, 2690.0, 2499.0, 2906.0, 2938.0, 2048.0, 2563.0, 2677.0, 2907.0, 3464.0, 4700.0, 5381.0, 5252.0, 4983.0, 3684.0, 3578.0, 3731.0, 3221.0, 3199.0, 2685.0, 3607.0, 2665.0, 3184.0, 3412.0, 3457.0, 3280.0, 3324.0, 3734.0, 3654.0, 3732.0, 4430.0, 3882.0, 3473.0, 3466.0, 2613.0, 2478.0, 2269.0, 1885.0, 1544.0, 1348.0, 1328.0, 1373.0, 1077.0, 1005.0, 944.0, 909.0, 703.0, 664.0, 488.0, 457.0, 436.0, 362.0, 292.0, 327.0, 242.0, 208.0, 244.0, 174.0, 171.0, 145.0, 128.0, 110.0, 116.0, 120.0, 121.0, 99.0, 98.0, 89.0, 101.0, 82.0, 94.0, 83.0, 65.0, 84.0, 58.0, 68.0, 49.0, 78.0, 64.0, 43.0, 54.0, 41.0, 44.0, 40.0, 48.0, 39.0, 31.0, 36.0, 39.0, 46.0, 46.0, 45.0, 36.0, 45.0, 43.0, 50.0, 33.0, 38.0, 38.0, 29.0, 30.0, 45.0, 23.0, 23.0, 32.0, 29.0, 28.0, 37.0, 29.0, 37.0, 48.0, 28.0, 30.0, 20.0, 28.0, 35.0, 24.0, 25.0, 31.0, 32.0, 31.0, 22.0, 23.0, 20.0, 19.0, 26.0, 26.0, 24.0, 23.0, 22.0, 24.0, 24.0, 29.0, 28.0, 21.0, 35.0, 36.0, 16.0, 22.0, 21.0, 22.0, 23.0, 29.0, 24.0, 39.0, 34.0, 51.0, 47.0, 54.0, 88.0, 49.0, 82.0, 90.0, 90.0, 109.0, 93.0, 92.0, 96.0, 101.0, 107.0, 109.0, 134.0, 123.0, 124.0, 91.0, 107.0, 114.0, 105.0, 108.0, 135.0, 205.0, 212.0, 62.0, 25.0, 1.0, 0.0, 0.0]  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 12.0, 40.0, 107.0, 288.0, 988.0, 3879.0, 11656.0, 10992.0, 11993.0, 19268.0, 14662.0, 10466.0, 8415.0, 11198.0, 20460.0, 14044.0, 9555.0, 5631.0, 5661.0, 4108.0, 3829.0, 3715.0, 3207.0, 2998.0, 1815.0, 584.0, 330.0, 232.0, 185.0, 131.0, 116.0, 112.0, 81.0, 94.0, 85.0, 36.0, 18.0, 6.0, 4.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]    [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 4.0, 2.0, 1.0, 11.0, 5.0, 12.0, 16.0, 17.0, 25.0, 45.0, 86.0, 341.0, 509.0, 829.0, 1944.0, 2449.0, 2897.0, 2519.0, 2993.0, 3068.0, 4980.0, 6588.0, 8857.0, 10009.0, 10921.0, 9038.0, 4040.0, 3637.0, 3870.0, 4149.0, 11870.0, 10313.0, 12701.0, 11273.0, 10488.0, 7799.0, 7242.0, 5151.0, 4414.0, 3019.0, 3054.0, 2082.0, 1758.0, 1138.0, 887.0, 658.0, 217.0, 196.0, 156.0, 150.0, 178.0, 205.0, 236.0, 160.0, 348.0, 176.0, 377.0, 388.0, 166.0, 138.0, 158.0, 22.0, 9.0, 4.0, 3.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]   [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 4.0, 5.0, 9.0, 110.0, 212.0, 207.0, 292.0, 305.0, 455.0, 326.0, 366.0, 631.0, 419.0, 503.0, 499.0, 424.0, 778.0, 615.0, 639.0, 954.0, 1949.0, 2793.0, 5174.0, 7703.0, 10616.0, 16848.0, 16137.0, 25735.0, 32759.0, 26281.0, 17092.0, 5838.0, 1638.0, 738.0, 625.0, 216.0, 283.0, 132.0, 91.0, 61.0, 71.0, 26.0, 53.0, 64.0, 49.0, 59.0, 35.0, 39.0, 30.0, 34.0, 18.0, 8.0, 14.0, 3.0, 6.0, 3.0, 5.0, 4.0, 3.0, 3.0, 0.0, 1.0, 0.0, 1.0, 2.0, 2.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]    [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 3.0, 2.0, 1.0, 3.0, 2.0, 1.0, 1.0, 6.0, 3.0, 3.0, 3.0, 2.0, 2.0, 1.0, 3.0, 6.0, 9.0, 8.0, 5.0, 7.0, 12.0, 29.0, 22.0, 24.0, 38.0, 31.0, 38.0, 47.0, 36.0, 43.0, 35.0, 51.0, 52.0, 54.0, 70.0, 65.0, 62.0, 61.0, 90.0, 87.0, 76.0, 86.0, 85.0, 89.0, 94.0, 75.0, 99.0, 103.0, 87.0, 107.0, 87.0, 112.0, 123.0, 105.0, 125.0, 154.0, 121.0, 134.0, 156.0, 157.0, 138.0, 165.0, 173.0, 170.0, 173.0, 189.0, 183.0, 232.0, 181.0, 215.0, 197.0, 249.0, 244.0, 229.0, 261.0, 268.0, 253.0, 276.0, 290.0, 301.0, 430.0, 320.0, 380.0, 419.0, 464.0, 501.0, 485.0, 571.0, 633.0, 580.0, 637.0, 739.0, 747.0, 760.0, 1206.0, 797.0, 1324.0, 1387.0, 1565.0, 1111.0, 2311.0, 2455.0, 1619.0, 3617.0, 2976.0, 3230.0, 3247.0, 3536.0, 2641.0, 3214.0, 2670.0, 2576.0, 2505.0, 2472.0, 2201.0, 2254.0, 2267.0, 2300.0, 2429.0, 2322.0, 2567.0, 2151.0, 3097.0, 2094.0, 2967.0, 3089.0, 3422.0, 2563.0, 3798.0, 4128.0, 3201.0, 3720.0, 3502.0, 4020.0, 3294.0, 3490.0, 3514.0, 2651.0, 3070.0, 3116.0, 2431.0, 2512.0, 2067.0, 2567.0, 2061.0, 2592.0, 2331.0, 1946.0, 2336.0, 1957.0, 1974.0, 1642.0, 1920.0, 1327.0, 1562.0, 1300.0, 1293.0, 1084.0, 870.0, 980.0, 646.0, 584.0, 678.0, 454.0, 428.0, 317.0, 276.0, 252.0, 190.0, 185.0, 150.0, 112.0, 134.0, 100.0, 85.0, 80.0, 63.0, 55.0, 45.0, 42.0, 45.0, 28.0, 30.0, 25.0, 27.0, 29.0, 23.0, 11.0, 19.0, 14.0, 11.0, 19.0, 10.0, 5.0, 10.0, 9.0, 8.0, 5.0, 11.0, 9.0, 6.0, 4.0, 3.0, 4.0, 5.0, 4.0, 5.0, 1.0, 5.0, 0.0, 3.0, 4.0, 3.0, 3.0, 3.0, 3.0, 1.0, 0.0, 3.0, 4.0, 2.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0] [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 6.0, 1.0, 10.0, 5.0, 8.0, 16.0, 14.0, 20.0, 21.0, 33.0, 34.0, 28.0, 36.0, 54.0, 60.0, 78.0, 76.0, 85.0, 115.0, 145.0, 224.0, 265.0, 317.0, 453.0, 490.0, 501.0, 618.0, 636.0, 788.0, 854.0, 845.0, 893.0, 986.0, 1032.0, 1045.0, 1043.0, 984.0, 811.0, 806.0, 760.0, 744.0, 748.0, 806.0, 897.0, 1190.0, 1395.0, 1721.0, 1706.0, 1778.0, 2062.0, 2067.0, 2271.0, 2319.0, 2129.0, 2350.0, 2623.0, 2653.0, 2687.0, 2379.0, 2410.0, 2454.0, 2779.0, 3548.0, 4024.0, 4637.0, 5290.0, 4907.0, 4415.0, 3956.0, 3509.0, 3080.0, 2886.0, 2696.0, 2762.0, 3195.0, 3070.0, 3111.0, 3141.0, 3205.0, 3102.0, 3135.0, 3450.0, 3778.0, 4060.0, 4001.0, 3838.0, 3585.0, 3410.0, 2962.0, 2560.0, 2047.0, 1898.0, 1596.0, 1546.0, 1276.0, 1220.0, 1157.0, 956.0, 883.0, 748.0, 694.0, 603.0, 479.0, 419.0, 396.0, 314.0, 329.0, 297.0, 266.0, 208.0, 192.0, 182.0, 156.0, 138.0, 136.0, 99.0, 111.0, 95.0, 104.0, 104.0, 101.0, 95.0, 81.0, 71.0, 74.0, 68.0, 61.0, 72.0, 57.0, 53.0, 48.0, 44.0, 37.0, 47.0, 42.0, 42.0, 41.0, 35.0, 37.0, 32.0, 30.0, 52.0, 33.0, 44.0, 42.0, 59.0, 38.0, 48.0, 40.0, 26.0, 29.0, 29.0, 27.0, 38.0, 28.0, 23.0, 33.0, 27.0, 39.0, 45.0, 26.0, 30.0, 30.0, 24.0, 28.0, 30.0, 31.0, 28.0, 22.0, 26.0, 21.0, 28.0, 23.0, 17.0, 21.0, 16.0, 22.0, 17.0, 15.0, 19.0, 23.0, 18.0, 20.0, 9.0, 27.0, 21.0, 23.0, 18.0, 23.0, 28.0, 20.0, 29.0, 14.0, 18.0, 14.0, 12.0, 17.0, 28.0, 14.0, 15.0, 17.0, 14.0, 25.0, 26.0, 25.0, 22.0, 19.0, 17.0, 17.0, 16.0, 21.0, 24.0, 28.0, 24.0, 24.0, 20.0, 32.0, 34.0, 32.0, 48.0, 45.0, 40.0, 84.0, 84.0, 112.0, 151.0, 178.0, 225.0, 0.0]
nfahlgren commented 8 years ago

Yep, that's the sort of output I mean. This is the raw output from an individual analysis script, which I think is what is integrated into the demo. Alternatively we have a script that parallelizes the processing of individual images and aggregates/reformats the results, but that might not work in the computing-pipeline framework?

yanliu-chn commented 8 years ago

If the script you mentioned works in parallel computing environment, we will take it and deploy on our supercomputers. I believe this is part of the pipeline framework. The current extractor does not work on cluster yet. But it is a work ongoing.

could you share a pointer to that script?

nfahlgren commented 8 years ago

It's currently here: plantcv/scripts/dev/image_analysis.py

We will be working on cleaning up the PlantCV repository soon to make everything clearer and less cluttered. Right now this script only uses multiprocessing but I plan on adding support for batching systems in the near future. We can add support for whatever methods are useful for the system at UIUC if that's helpful.

yanliu-chn commented 8 years ago

ah, I see. for batch processing images, we have quite a few options to achieve automation and max performance on cluster nodes. using your script is one option too. the decision depends on the data pipeline design, e.g., the granularity of image batches, how often to process them, data movement b/w cluster and data storage.

we can have a discussion as next step for these design decisions.

dlebauer commented 8 years ago

the normalization/calibration step will be integrated into the plantcv pipeline by danforthcenter/plantcv#19

nfahlgren commented 8 years ago

@dlebauer @gsrohde @robkooper @max-zilla I have a script setup now that can be run by the Clowder extractor (in theory). It takes an RGB and NIR image as inputs and also needs the "perspective" metadata value from Clowder (side-view or top-view). It currently spits out a table-like raw output, but it would be easy for me to reformat it. What is the best way I can output data for both Clowder and BETYdb? I was thinking JSON to put the results in Clowder so that @gsrohde could grab the data from there but we had talked about a table last time we spoke. Would the table be a file added to the dataset or something else?

dlebauer commented 8 years ago

I think we decided to put the data in tabular (csv?) format. @gsrohde is writing the data importer that will convert the table to the xml format required by BETYdb. BETYdb will then be able to export as json, xml, or a table.

Lets running this on the same Clowder instance as the field scanner (terraref.ncsa.illinois.edu/clowder). The next question is if we should put the data on Roger at /projects/arpae/terraref/raw_data/danforth/ or use the clowder API? Should we keep copies of the original and derived data on Roger or import to the database?

nfahlgren commented 8 years ago

If the script output a CSV file, would it need to be explicitly added to Clowder? Or I guess in other words I'm not necessarily certain how Clowder captures the output or whether I need to post it.

yanliu-chn commented 8 years ago

@nfahlgren , could you give some details about the new script? the git branch version, script location, sample run commands, sample data, etc.? that way, @caicai89- can pick it up and start working on integrating into plantcv extractor.

nfahlgren commented 8 years ago

@yanliu-chn the new script relies on the latest development version of PlantCV: https://github.com/danforthcenter/plantcv/commit/ead12f2b97deb082e2d5d7181463b34f78cc9a89. I just pushed the draft version of the script to the computing-pipeline repository here: https://github.com/terraref/computing-pipeline/blob/master/scripts/plantcv/PlantcvClowderIndoorAnalysis.py. In addition to needing the PlantCV library it relies on a hard-coded image mask file from PlantCV (mask_brass_tv_z1_L1.png). We probably need to reference it differently, but I may be able to bypass the need for the image altogether.

dlebauer commented 8 years ago

If the script output a CSV file, would it need to be explicitly added to Clowder?

@robkooper can you address this? I think that the csv file should be explicitly added to Clowder, and that the code that inserts into BETYdb will need to find the csv file and the metadata file.

yanliu-chn commented 8 years ago

@nfahlgren @dlebauer how do I know if an NIR or VIS image is a top or side view?

@caicai89- Yaping, on ROGER, please check out Noah's plantcv version and the script mentioned above. We have a few sample images in /gpfs/largeblockFS/scratch/arpae/plantcv-input/samples/ . To set up opencv and plantcv environment, please refer to /gpfs/largeblockFS/projects/arpae/sw/extractors-plantcv/bin/extract.sh and the following bash setup:

module purge
module load git mpich gdal2-stack anaconda parallel
export PLANTCV_HOME=/projects/arpae/sw/plantcv
export PYTHONPATH=/projects/arpae/sw/opencv/lib/python2.7/site-packages:/project
s/arpae/sw/plantcv/lib:$PYTHONPATH
export PLANTCV_VENV=/projects/arpae/sw/pyenv.plantiv
export PLANTCV_EX=/projects/arpae/sw/extractors-plantcv
yanliu-chn commented 8 years ago

in image metadata:

Rule to pair two images as input to Noah's script: camera_type is different; rotation_angle must be the same; perspective must be the same. Each snapshot currently contains 10 images. The pairing process should create 5 pairs and call Noah's script 5 times.

e.g.: http://141.142.209.122/clowder/files/56d48457e4b0c7e3b16ea709

yanliu-chn commented 8 years ago

Summary for the discussion with Noah and Luigi:

Inside of file extractor, we can access dataset metadata. We can leverage this feature to implement dataset-level plantcv extractor.

We define field in dataset metadata, say plantcv_file_info, as an array. Each element in the array has the following info:

{ "fileid": "$fileId", "camera_type": "NIR|VIS", "perspective":  "side|top-view", rotation_angle: number (0-360) }

We also have a dataset metadata field called plantcv_processed to record files that have been processed at dataset level.

The update to these two fields is add only, no override.

Then the logic of a file-based extractor would be:

@robkooper please check if it works.

nfahlgren commented 8 years ago

@dlebauer @yanliu-chn I just thought of one more thing, do we want to populate BETYdb with data for a plant or the individual images? If we need to aggregate the data from a snapshot (all one plant) then we will need to process the whole Clowder dataset and not just an image pair. We would then post only one result file back to Clowder.

yanliu-chn commented 8 years ago

Either way i guess we have to append the tabular output of each pair to dataset metadata since there is no dataset-level extractor.

dlebauer commented 8 years ago

@nfahlgren the general idea is that BETYdb will hold the 'trait vectors' that could be used in GWAS. It can store data at the subsample, replicate plant / plot, or site level. I think it would make sense to aggregate to the plant level for each time point.

nfahlgren commented 8 years ago

@dlebauer makes sense. I wonder if the extractor could just provide the script with the dataset key? Then I can query out the files with the API.

The general format of the output would looks similar to this (but with more traits):

plant_id,datetime,treatment,genotype,group,date,dap,solidity,outlier,sv_area,tv_area,extent_x,extent_y,height_above_bound,fw_biomass,dw_biomass,height_width_ratio,tiller_count,wue
Dp2AB000127,1386431350,0,B100,B100-0,2013-12-07 09:49:10,11.4091435185185,0.478404862032,False,2086.72707778917,2955.32688355849,1.98029381595354,1.26862572584524,1.26862572584524,-0.192056152391855,-0.0399180898450307,0.640625,3.81555081933358,11.465533394446
yanliu-chn commented 8 years ago

that is possible. @nfahlgren so this output is generated by looking at all 10 images or just 2?

nfahlgren commented 8 years ago

@yanliu-chn that's right, the output would be the result of looking at all 10 images instead of only two. Internally the image pairs would be analyzed together, but the overall results would be aggregated.

yanliu-chn commented 8 years ago

@nfahlgren So does it mean you will have a separate script to look at all 10 images? the current script takes one NIR and one VIS as input.

nfahlgren commented 8 years ago

@yanliu-chn I will modify the current script to read all image files in a given dataset.

yanliu-chn commented 8 years ago

Cool. Where should we do the pairing, inside or outside of your script? That's equivalent to ask what should be the new input parameters the script takes. They can be either paired NIR/VIS array or an array of image files, each element in the array having filepath, perspective, camera_type, and rotation_angle as attributes.

nfahlgren commented 8 years ago

@yanliu-chn I am not sure what is the best method, from a Clowder point of view. I suppose it is partly a matter of where we want to put more or less computation, what is most robust as far as flexibility across experiments, what is more likely to need updating later, etc.

All of the following would work I think:

  1. The extractor would input the Dataset key to the PlantCV script, the script would get the images and metadata it needs using the API.
  2. The extractor would input a list of all files in the Dataset, the script would need to use the API to query metadata from Clowder and would do the image pairing.
  3. The extractor would pair the files and input them as a sorted list(s) and would provide any metadata needed by the script.
robkooper commented 8 years ago

@nfahlgren that looks good. Yes you can get all files in a dataset, and this allows us to put more generic metadata at the dataset level, and file specific information at the file level.

As for the CSV files, we can create those and add them to the dataset so we have them there. One of the things we are looking at is the ability to add relation ships, so this could be a good use case for this.

@lmarini also have some code that allows you to create a mapping from a CSV file to a JSON-LD context. This mapping can be uploaded with the CSV file so we can do a correct parsing of the file. This mapping can be constant and would be easy for somebody to update if the CSV output is changed.

nfahlgren commented 8 years ago

@max-zilla @robkooper I'm not sure how to access file metadata using the Clowder API. I can retrieve basic metadata with something like /clowder/api/files/{id}/metadata but how do you retrieve extractor metadata?

max-zilla commented 8 years ago

@nfahlgren you should be able to use this to get extracted metadata:

http://141.142.168.72/clowder/api/datasets/57296731e4b03269d7087fb7/metadata.jsonld
nfahlgren commented 8 years ago

@max-zilla thanks, that worked!

caicai89- commented 8 years ago

I have two questions. One is that how to get dataset ID based on a file ID. Another one is that we may have several extractors working on the same dataset, so how does one of them know the data are ready for running PlandCV script?

yanliu-chn commented 8 years ago

I want to clarify what @caicai89- mentioned above: the problem arises when multiple extractors are used in processing the images in the same dataset (snapshot):

suppose Noah's script is invoked when we see 5 pairs (10 NIR|VIS images) of images. Without dataset-level extractor, we can only, in file-level extractor, scan dataset metadata which stores the info on how many images have been seen. however, suppose previous 8 images are already scanned and its perspective, file id, rotation angle, and camera type info have been written into dataset metadata. Now extractor 1 took the 9th image and extractor 2 took the 10th simultaneously. Each of them, after they scan the 9th and 10th image, respectively, will see that there are only 8 images registered in dataset metadata. So any of them won't trigger Noah's script. These 10 images end up with unprocessed.

@robkooper @max-zilla do you have a solution to this problem?

nfahlgren commented 8 years ago

Summarizing our conversation:

I will add additional metadata to each dataset to document the number/type of raw data expected to be in the dataset. The extractors, triggered each time the dataset is updated, will check to see if all the expected files are present. Only when all the files are present will the PlantCV script be executed.

yanliu-chn commented 8 years ago

There will be dataset extractor with *.dataset.image.# MIME type. Also, in each <dataset, file_added> message, there will be an attribute num_files to denote how many files the dataset has at the time the message is created. This attribute will determine whether to trigger the plantcv script or just skip.

caicai89- commented 8 years ago

@robkooper could you help to add me to the extractors-plantcv repository? I do not have an account yet. https://opensource.ncsa.illinois.edu/bitbucket/projects/CATS/repos/extractors-plantcv/browse

robkooper commented 8 years ago

you will need to sign up for an account at opensource.ncsa.illinois.edu, once that is done let me know and I'll add you.

caicai89- commented 8 years ago

@robkooper OK, I set up one. User name is xxxx, and email is xxxx@illinois.edu

robkooper commented 8 years ago

Added you to the repository. Please keep in mind that all code changes need to be done with pull requests. Only Yan and I have permission to write into the repository.

@caicai89- no need to show your email and username, will generate less spam for you.

caicai89- commented 8 years ago

Hi, when I go through the plantCV-extracror, I met the following error. Any idea about this?

2016-05-11 10:45:12,007 INFO : terra.plantcv - RABBITMQ_URI=amqp://xxxx:xxxxxx@rabbitmq.ncsa.illinois.edu:15672 PLANTCV_HOME=/projects/arpae/test/plantcv PLANTCV_JOBID= RABBITMQ_URI=amqp://xxxx:xxxxxx@rabbitmq.ncsa.illinois.edu:15672 PLANTCV_HOME=/projects/arpae/test/plantcv PLANTCV_JOBID= 2016-05-11 10:45:12,013 INFO : pika.adapters.base_connection - Connecting to 141.142.227.65:15672 2016-05-11 10:50:12,015 ERROR : pika.adapters.base_connection - Read empty data, calling disconnect 2016-05-11 10:50:12,016 ERROR : pika.adapters.base_connection - Incompatible Protocol Versions Traceback (most recent call last): File "./ex-plantcv.py", line 91, in main() File "./ex-plantcv.py", line 28, in main rabbitmqURL=rabbitmqURL) File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pyclowder/extractors.py", line 41, in connect_message_bus connection = pika.BlockingConnection(parameters) File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 339, in init self._process_io_for_connection_setup() File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup self._open_error_result.is_ready) File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 410, in _flush_output self._impl.ioloop.poll() File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/select_connection.py", line 602, in poll self._process_fd_events(fd_event_map, write_only) File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/select_connection.py", line 443, in _process_fd_events handler(fileno, events, write_only=write_only) File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/base_connection.py", line 364, in _handle_events self._handle_read() File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/base_connection.py", line 412, in _handle_read return self._handle_disconnect() File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/base_connection.py", line 288, in _handle_disconnect self._adapter_disconnect() File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/select_connection.py", line 95, in _adapter_disconnect super(SelectConnection, self)._adapter_disconnect() File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/base_connection.py", line 154, in _adapter_disconnect self._check_state_on_disconnect() File "/gpfs/largeblockFS/projects/arpae/sw/pyenv.plantiv/lib/python2.7/site-packages/pika/adapters/base_connection.py", line 169, in _check_state_on_disconnect raise exceptions.IncompatibleProtocolError pika.exceptions.IncompatibleProtocolError

max-zilla commented 8 years ago

@robkooper does this pika IncompatibleProtocolError look familiar? I've not encountered this before.

2016-05-11 10:50:12,015 ERROR : pika.adapters.base_connection - Read empty data, calling disconnect 2016-05-11 10:50:12,016 ERROR : pika.adapters.base_connection - Incompatible Protocol Versions

robkooper commented 8 years ago

I think this might be related to an older version of pika, try and see if you can upgrade it.

max-zilla commented 8 years ago

2 other pieces that @caicai89- is waiting for:

caicai89- commented 8 years ago

@robkooper I tried and it did not work. My configuration is the following.

import os

# name to show in rabbitmq queue list
extractorName = os.getenv('RABBITMQ_QUEUE', "terra.plantcv")

# URL to be used for connecting to rabbitmq
rabbitmqURL = os.getenv('RABBITMQ_URI', "amqp://xxx:xxxxxxx@rabbitmq.ncsa.illinois.edu:15672")

# name of rabbitmq exchange
rabbitmqExchange = os.getenv('RABBITMQ_EXCHANGE', "terra")

# type of files to process
messageType = "*.file.image.#"

# trust certificates, set this to false for self signed certificates
sslVerify = os.getenv('RABBITMQ_SSLVERIFY', False)
robkooper commented 8 years ago

you will need to specify the host in the rabbitmq url, in our case that should be clowder-dev for now. so set your environment variable RABBITMQ_URI="amqp://xxx:xxxxxxx@rabbitmq.ncsa.illinois.edu:15672/clowder-dev"

caicai89- commented 8 years ago

@robkooper same error...

caicai89- commented 8 years ago

@robkooper currently, the pika version is 0.10.0

nfahlgren commented 8 years ago

@max-zilla @robkooper I'm finishing up the PlantCV extractor code and am running into an issue when I try to post results back to the files in Clowder. I might just be using the wrong API call. I have the PlantCV results encoded in a JSON string and am using a call like:

r = sess.post('http://141.142.209.122/clowder/api/files/57452ef3e4b0efbe2dc3d862/metadata.jsonld',
                     headers={"Content-Type": "application/json"}, data=json.dumps(metadata))

I get an error 500 when I do this.

max-zilla commented 8 years ago

@nfahlgren can you share the metadata object you're sending? I'll look into it.

I know that the metadata we had for a while had a field name that was something like "other metadata here..." and the three periods in the name were causing errors with the JSON parsing in Clowder - I had a little "clean_json" method to change those periods to underscores.

nfahlgren commented 8 years ago

@max-zilla they are a bit different, depending on the image, but it definitely dies on the first one which looks like this:

{"hull_vertices": 39, "in_bounds": true, "ellipse_center_x": 1688.764404296875, "ellipse_angle": 145.23851013183594, "ellipse_eccentricity": 0.87339119634271944, "height": 2005, "ellipse_minor_axis": 1185.1163330078125, "below_bound_area": 6364, "green-magenta": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 5.0, 11.0, 5.0, 21.0, 17.0, 24.0, 42.0, 55.0, 80.0, 130.0, 217.0, 272.0, 398.0, 611.0, 989.0, 1567.0, 2468.0, 3658.0, 5789.0, 9052.0, 12873.0, 15612.0, 16416.0, 14682.0, 11728.0, 8782.0, 6832.0, 4894.0, 3708.0, 2822.0, 2097.0, 1737.0, 1372.0, 1132.0, 896.0, 719.0, 570.0, 465.0, 410.0, 346.0, 277.0, 212.0, 161.0, 111.0, 74.0, 50.0, 39.0, 18.0, 12.0, 9.0, 5.0, 6.0, 1.0, 0.0, 1.0, 3.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "longest_axis": 1943, "blue": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 18.0, 54.0, 57.0, 132.0, 139.0, 152.0, 189.0, 208.0, 238.0, 297.0, 348.0, 372.0, 533.0, 743.0, 1035.0, 1331.0, 1674.0, 2212.0, 2215.0, 2556.0, 2574.0, 2967.0, 3133.0, 3340.0, 3329.0, 3401.0, 3401.0, 3634.0, 3665.0, 3440.0, 3370.0, 3226.0, 3127.0, 3085.0, 3001.0, 2986.0, 3018.0, 2817.0, 2797.0, 2641.0, 2601.0, 2411.0, 2346.0, 2111.0, 2020.0, 1776.0, 1640.0, 1589.0, 1366.0, 1445.0, 1287.0, 1234.0, 1151.0, 1087.0, 1005.0, 959.0, 887.0, 824.0, 797.0, 709.0, 671.0, 610.0, 582.0, 589.0, 556.0, 539.0, 497.0, 493.0, 501.0, 460.0, 464.0, 456.0, 427.0, 401.0, 423.0, 397.0, 372.0, 350.0, 364.0, 330.0, 292.0, 287.0, 336.0, 321.0, 300.0, 296.0, 250.0, 274.0, 267.0, 280.0, 240.0, 222.0, 257.0, 217.0, 226.0, 222.0, 217.0, 224.0, 242.0, 212.0, 191.0, 218.0, 174.0, 191.0, 205.0, 203.0, 201.0, 145.0, 156.0, 191.0, 152.0, 180.0, 142.0, 174.0, 153.0, 156.0, 150.0, 148.0, 153.0, 170.0, 132.0, 137.0, 161.0, 133.0, 156.0, 143.0, 127.0, 135.0, 138.0, 124.0, 136.0, 142.0, 122.0, 116.0, 135.0, 122.0, 128.0, 143.0, 115.0, 121.0, 135.0, 131.0, 122.0, 121.0, 112.0, 129.0, 140.0, 100.0, 115.0, 128.0, 137.0, 124.0, 129.0, 130.0, 114.0, 133.0, 118.0, 134.0, 134.0, 135.0, 116.0, 113.0, 110.0, 135.0, 134.0, 113.0, 109.0, 122.0, 117.0, 125.0, 127.0, 101.0, 111.0, 118.0, 115.0, 110.0, 86.0, 114.0, 100.0, 100.0, 84.0, 75.0, 89.0, 91.0, 94.0, 75.0, 85.0, 77.0, 64.0, 66.0, 81.0, 80.0, 60.0, 71.0, 71.0, 61.0, 69.0, 56.0, 61.0, 43.0, 40.0, 52.0, 41.0, 41.0, 37.0, 27.0, 26.0, 26.0, 17.0, 20.0, 20.0, 15.0, 17.0, 21.0, 10.0, 19.0, 16.0, 17.0, 14.0, 12.0, 12.0, 11.0, 7.0, 16.0, 8.0, 3.0, 4.0, 6.0, 3.0, 9.0, 3.0, 6.0, 5.0, 3.0, 7.0, 3.0, 5.0, 9.0, 4.0, 5.0, 0.0], "height_above_bound": 1657, "area": 134488.0, "lightness": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.0, 1.0, 3.0, 2.0, 4.0, 4.0, 0.0, 6.0, 7.0, 4.0, 4.0, 7.0, 4.0, 11.0, 4.0, 21.0, 10.0, 30.0, 43.0, 21.0, 81.0, 119.0, 111.0, 137.0, 78.0, 165.0, 210.0, 209.0, 281.0, 487.0, 433.0, 562.0, 627.0, 1098.0, 737.0, 796.0, 1367.0, 1043.0, 1578.0, 1112.0, 1836.0, 1894.0, 1240.0, 2195.0, 2545.0, 2450.0, 2382.0, 2570.0, 2614.0, 2310.0, 2222.0, 2251.0, 2979.0, 2008.0, 1774.0, 2165.0, 1685.0, 2233.0, 2194.0, 1608.0, 1915.0, 1934.0, 1904.0, 1879.0, 1857.0, 1616.0, 1635.0, 1713.0, 1709.0, 1713.0, 2207.0, 1576.0, 1902.0, 1471.0, 1859.0, 1422.0, 1651.0, 1617.0, 1587.0, 1568.0, 1469.0, 1430.0, 1402.0, 1268.0, 1358.0, 1090.0, 1014.0, 1148.0, 876.0, 997.0, 906.0, 901.0, 844.0, 668.0, 755.0, 808.0, 628.0, 597.0, 557.0, 587.0, 494.0, 588.0, 461.0, 525.0, 496.0, 435.0, 414.0, 438.0, 440.0, 387.0, 406.0, 373.0, 364.0, 379.0, 382.0, 296.0, 345.0, 337.0, 338.0, 336.0, 304.0, 305.0, 333.0, 265.0, 314.0, 254.0, 254.0, 258.0, 247.0, 248.0, 222.0, 241.0, 243.0, 220.0, 251.0, 199.0, 222.0, 161.0, 204.0, 182.0, 205.0, 180.0, 180.0, 192.0, 177.0, 184.0, 159.0, 150.0, 173.0, 154.0, 135.0, 170.0, 134.0, 180.0, 141.0, 153.0, 166.0, 152.0, 149.0, 153.0, 147.0, 129.0, 167.0, 147.0, 153.0, 150.0, 162.0, 162.0, 131.0, 164.0, 134.0, 161.0, 126.0, 129.0, 159.0, 148.0, 127.0, 160.0, 132.0, 123.0, 133.0, 133.0, 133.0, 141.0, 132.0, 125.0, 134.0, 146.0, 114.0, 140.0, 147.0, 137.0, 140.0, 149.0, 125.0, 150.0, 142.0, 163.0, 166.0, 138.0, 126.0, 144.0, 129.0, 133.0, 122.0, 128.0, 130.0, 124.0, 122.0, 121.0, 119.0, 110.0, 108.0, 94.0, 130.0, 97.0, 125.0, 104.0, 111.0, 126.0, 119.0, 137.0, 166.0, 169.0, 128.0, 115.0, 125.0, 159.0, 78.0, 36.0, 0.0], "ellipse_major_axis": 2433.4072265625, "hull-area": 1590643.5, "width": 1518, "height_below_bound": 348, "above_bound_area": 128124, "perimeter": 20545.774775624275, "hue": [74.0, 1.0, 1.0, 2.0, 5.0, 5.0, 5.0, 18.0, 25.0, 24.0, 47.0, 50.0, 80.0, 106.0, 163.0, 239.0, 351.0, 374.0, 537.0, 520.0, 646.0, 774.0, 868.0, 1053.0, 1096.0, 1151.0, 1306.0, 1373.0, 1571.0, 1677.0, 1751.0, 1892.0, 2197.0, 2550.0, 2903.0, 3528.0, 4169.0, 4740.0, 7038.0, 8206.0, 10060.0, 11952.0, 12326.0, 11516.0, 9951.0, 8058.0, 5184.0, 3539.0, 2167.0, 1329.0, 866.0, 571.0, 344.0, 320.0, 254.0, 222.0, 206.0, 158.0, 139.0, 121.0, 202.0, 124.0, 163.0, 129.0, 133.0, 138.0, 130.0, 88.0, 99.0, 97.0, 89.0, 64.0, 65.0, 45.0, 46.0, 46.0, 26.0, 32.0, 30.0, 23.0, 23.0, 17.0, 10.0, 16.0, 12.0, 9.0, 15.0, 8.0, 7.0, 7.0, 48.0, 6.0, 4.0, 10.0, 10.0, 7.0, 13.0, 5.0, 9.0, 7.0, 9.0, 5.0, 6.0, 10.0, 10.0, 4.0, 7.0, 3.0, 4.0, 1.0, 1.0, 4.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "saturation": [69.0, 3.0, 3.0, 8.0, 9.0, 11.0, 15.0, 19.0, 19.0, 23.0, 24.0, 29.0, 25.0, 40.0, 48.0, 45.0, 52.0, 44.0, 54.0, 61.0, 52.0, 54.0, 73.0, 58.0, 75.0, 80.0, 76.0, 68.0, 78.0, 85.0, 86.0, 108.0, 102.0, 108.0, 108.0, 136.0, 167.0, 185.0, 169.0, 186.0, 159.0, 202.0, 205.0, 197.0, 241.0, 255.0, 254.0, 248.0, 252.0, 251.0, 287.0, 306.0, 283.0, 327.0, 293.0, 302.0, 367.0, 386.0, 406.0, 449.0, 471.0, 481.0, 516.0, 588.0, 561.0, 621.0, 619.0, 636.0, 772.0, 689.0, 787.0, 775.0, 776.0, 836.0, 828.0, 802.0, 822.0, 884.0, 977.0, 916.0, 959.0, 1119.0, 993.0, 1104.0, 1179.0, 1154.0, 1290.0, 1285.0, 1405.0, 1464.0, 1615.0, 1447.0, 1682.0, 1787.0, 1825.0, 1799.0, 2077.0, 1922.0, 2114.0, 2164.0, 2296.0, 2607.0, 1847.0, 2702.0, 2370.0, 2443.0, 2506.0, 2342.0, 2600.0, 2497.0, 2539.0, 2324.0, 2444.0, 2492.0, 2389.0, 2352.0, 2254.0, 2159.0, 1997.0, 2079.0, 2001.0, 1773.0, 1817.0, 1610.0, 1916.0, 1129.0, 2006.0, 1228.0, 1260.0, 1690.0, 877.0, 1466.0, 882.0, 1065.0, 922.0, 1040.0, 857.0, 741.0, 882.0, 711.0, 677.0, 557.0, 569.0, 609.0, 482.0, 437.0, 400.0, 360.0, 331.0, 288.0, 265.0, 228.0, 248.0, 165.0, 239.0, 178.0, 139.0, 128.0, 144.0, 175.0, 131.0, 119.0, 100.0, 124.0, 105.0, 112.0, 87.0, 82.0, 54.0, 88.0, 96.0, 70.0, 33.0, 82.0, 54.0, 59.0, 43.0, 46.0, 33.0, 22.0, 20.0, 19.0, 24.0, 18.0, 9.0, 10.0, 13.0, 4.0, 9.0, 10.0, 0.0, 5.0, 4.0, 0.0, 0.0, 2.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "percent_above_bound_area": 95.26797929926833, "solidity": 0.08454942920899623, "blue-yellow": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 2.0, 2.0, 3.0, 4.0, 3.0, 3.0, 4.0, 6.0, 3.0, 11.0, 7.0, 12.0, 23.0, 37.0, 39.0, 66.0, 132.0, 83.0, 108.0, 129.0, 172.0, 191.0, 274.0, 329.0, 474.0, 766.0, 1479.0, 2191.0, 2848.0, 3914.0, 5071.0, 7094.0, 9362.0, 10723.0, 12053.0, 11641.0, 10961.0, 9888.0, 8566.0, 7568.0, 5844.0, 4691.0, 3452.0, 2808.0, 2160.0, 1726.0, 1490.0, 1362.0, 1152.0, 848.0, 640.0, 459.0, 375.0, 285.0, 270.0, 197.0, 158.0, 108.0, 68.0, 41.0, 23.0, 22.0, 11.0, 14.0, 10.0, 10.0, 6.0, 2.0, 6.0, 4.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "percent_below_bound_area": 4.732020700731663, "center-of-mass-y": 769.3754610076735, "center-of-mass-x": 1303.4009577062639, "ellipse_center_y": 1190.86962890625, "value": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 3.0, 2.0, 3.0, 3.0, 5.0, 3.0, 4.0, 5.0, 11.0, 6.0, 10.0, 20.0, 23.0, 37.0, 57.0, 79.0, 96.0, 120.0, 124.0, 191.0, 232.0, 262.0, 359.0, 423.0, 515.0, 604.0, 775.0, 909.0, 876.0, 1053.0, 1155.0, 1378.0, 1612.0, 1705.0, 1765.0, 1965.0, 2062.0, 2437.0, 2474.0, 2711.0, 2812.0, 2640.0, 2816.0, 2555.0, 2596.0, 2342.0, 2286.0, 2119.0, 2036.0, 2095.0, 1926.0, 2090.0, 2046.0, 2016.0, 1971.0, 2029.0, 1955.0, 1848.0, 1689.0, 1775.0, 1904.0, 1818.0, 1952.0, 1825.0, 1795.0, 1807.0, 1782.0, 1712.0, 1650.0, 1552.0, 1486.0, 1478.0, 1480.0, 1354.0, 1316.0, 1175.0, 1216.0, 1075.0, 1015.0, 904.0, 939.0, 933.0, 924.0, 822.0, 783.0, 803.0, 671.0, 648.0, 610.0, 615.0, 559.0, 512.0, 559.0, 460.0, 462.0, 413.0, 440.0, 415.0, 395.0, 399.0, 395.0, 368.0, 361.0, 330.0, 350.0, 348.0, 310.0, 323.0, 314.0, 329.0, 318.0, 319.0, 334.0, 307.0, 271.0, 285.0, 230.0, 269.0, 230.0, 236.0, 243.0, 230.0, 220.0, 265.0, 246.0, 214.0, 205.0, 179.0, 190.0, 186.0, 179.0, 187.0, 173.0, 185.0, 177.0, 183.0, 171.0, 153.0, 188.0, 175.0, 172.0, 165.0, 158.0, 154.0, 136.0, 152.0, 148.0, 154.0, 144.0, 162.0, 134.0, 144.0, 158.0, 143.0, 150.0, 175.0, 175.0, 140.0, 155.0, 149.0, 161.0, 137.0, 157.0, 154.0, 140.0, 138.0, 141.0, 140.0, 139.0, 126.0, 133.0, 129.0, 119.0, 137.0, 118.0, 150.0, 122.0, 138.0, 120.0, 112.0, 115.0, 147.0, 110.0, 111.0, 130.0, 135.0, 138.0, 128.0, 120.0, 129.0, 127.0, 143.0, 126.0, 127.0, 120.0, 132.0, 121.0, 136.0, 131.0, 106.0, 106.0, 118.0, 107.0, 95.0, 89.0, 109.0, 104.0, 86.0, 100.0, 94.0, 96.0, 77.0, 63.0, 60.0, 76.0, 74.0, 78.0, 62.0, 67.0, 68.0, 73.0, 74.0, 80.0, 62.0, 0.0], "green": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 2.0, 3.0, 2.0, 0.0, 3.0, 7.0, 3.0, 7.0, 2.0, 7.0, 5.0, 6.0, 11.0, 15.0, 12.0, 15.0, 25.0, 27.0, 36.0, 54.0, 84.0, 92.0, 120.0, 129.0, 189.0, 236.0, 274.0, 360.0, 416.0, 514.0, 604.0, 783.0, 919.0, 874.0, 1051.0, 1165.0, 1387.0, 1609.0, 1709.0, 1767.0, 1981.0, 2070.0, 2448.0, 2475.0, 2698.0, 2814.0, 2653.0, 2809.0, 2555.0, 2601.0, 2355.0, 2293.0, 2117.0, 2033.0, 2109.0, 1948.0, 2109.0, 2066.0, 2022.0, 2007.0, 2056.0, 1971.0, 1861.0, 1717.0, 1774.0, 1915.0, 1847.0, 1994.0, 1863.0, 1848.0, 1865.0, 1820.0, 1747.0, 1682.0, 1583.0, 1515.0, 1534.0, 1495.0, 1398.0, 1362.0, 1244.0, 1235.0, 1119.0, 1044.0, 954.0, 970.0, 964.0, 924.0, 886.0, 830.0, 812.0, 678.0, 664.0, 629.0, 631.0, 563.0, 557.0, 569.0, 467.0, 475.0, 407.0, 460.0, 429.0, 405.0, 414.0, 420.0, 359.0, 370.0, 325.0, 341.0, 357.0, 330.0, 311.0, 314.0, 333.0, 292.0, 320.0, 321.0, 280.0, 268.0, 257.0, 241.0, 256.0, 219.0, 241.0, 251.0, 201.0, 211.0, 230.0, 214.0, 197.0, 201.0, 193.0, 162.0, 183.0, 178.0, 158.0, 177.0, 176.0, 147.0, 158.0, 167.0, 145.0, 149.0, 162.0, 159.0, 127.0, 148.0, 128.0, 146.0, 137.0, 143.0, 155.0, 127.0, 145.0, 119.0, 130.0, 123.0, 152.0, 134.0, 162.0, 137.0, 125.0, 144.0, 136.0, 134.0, 123.0, 135.0, 115.0, 131.0, 138.0, 147.0, 124.0, 127.0, 125.0, 129.0, 130.0, 119.0, 117.0, 130.0, 138.0, 104.0, 117.0, 106.0, 111.0, 136.0, 136.0, 120.0, 130.0, 131.0, 122.0, 142.0, 121.0, 123.0, 114.0, 126.0, 145.0, 135.0, 118.0, 134.0, 135.0, 125.0, 134.0, 126.0, 96.0, 116.0, 117.0, 96.0, 96.0, 90.0, 109.0, 93.0, 91.0, 91.0, 106.0, 104.0, 70.0, 80.0, 54.0, 76.0, 75.0, 72.0, 57.0, 61.0, 58.0, 51.0, 60.0, 50.0, 44.0, 0.0], "red": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 7.0, 4.0, 5.0, 9.0, 14.0, 17.0, 30.0, 53.0, 62.0, 125.0, 154.0, 219.0, 251.0, 338.0, 426.0, 565.0, 671.0, 824.0, 955.0, 1225.0, 1306.0, 1553.0, 1731.0, 1840.0, 1888.0, 2026.0, 2359.0, 2438.0, 2661.0, 2734.0, 2871.0, 2805.0, 2819.0, 2772.0, 2555.0, 2369.0, 2375.0, 2383.0, 2247.0, 2082.0, 1988.0, 1807.0, 1919.0, 1881.0, 2103.0, 1875.0, 1904.0, 1927.0, 1816.0, 1925.0, 1730.0, 1697.0, 1727.0, 1678.0, 1707.0, 1569.0, 1648.0, 1617.0, 1524.0, 1548.0, 1426.0, 1449.0, 1356.0, 1321.0, 1219.0, 1077.0, 1034.0, 1103.0, 934.0, 900.0, 842.0, 834.0, 812.0, 758.0, 685.0, 714.0, 608.0, 565.0, 603.0, 537.0, 518.0, 506.0, 481.0, 476.0, 519.0, 455.0, 417.0, 414.0, 416.0, 420.0, 429.0, 396.0, 379.0, 380.0, 343.0, 362.0, 368.0, 326.0, 335.0, 300.0, 315.0, 291.0, 331.0, 289.0, 298.0, 282.0, 280.0, 286.0, 253.0, 257.0, 256.0, 272.0, 236.0, 259.0, 217.0, 258.0, 226.0, 215.0, 231.0, 201.0, 217.0, 217.0, 185.0, 176.0, 199.0, 200.0, 197.0, 208.0, 193.0, 173.0, 175.0, 187.0, 147.0, 151.0, 183.0, 143.0, 169.0, 154.0, 184.0, 165.0, 147.0, 166.0, 166.0, 144.0, 166.0, 160.0, 162.0, 133.0, 158.0, 122.0, 141.0, 154.0, 153.0, 141.0, 152.0, 150.0, 134.0, 155.0, 175.0, 186.0, 150.0, 166.0, 142.0, 164.0, 156.0, 171.0, 172.0, 162.0, 129.0, 151.0, 148.0, 150.0, 169.0, 153.0, 136.0, 144.0, 162.0, 132.0, 158.0, 137.0, 141.0, 167.0, 140.0, 141.0, 161.0, 134.0, 133.0, 127.0, 124.0, 128.0, 125.0, 126.0, 129.0, 132.0, 124.0, 130.0, 122.0, 99.0, 88.0, 102.0, 114.0, 118.0, 97.0, 79.0, 95.0, 77.0, 76.0, 53.0, 66.0, 72.0, 60.0, 58.0, 53.0, 55.0, 59.0, 42.0, 61.0, 46.0, 55.0, 59.0, 48.0, 49.0, 36.0, 46.0, 51.0, 54.0, 38.0, 0.0]}