Closed dlebauer closed 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.
It is not sufficiently urgent to risk breaking the demo. Having a working Jupyter analog would be more valuable.
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]
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?
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?
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.
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.
the normalization/calibration step will be integrated into the plantcv pipeline by danforthcenter/plantcv#19
@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?
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?
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.
@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.
@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.
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.
@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
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
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.
@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.
Either way i guess we have to append the tabular output of each pair to dataset metadata since there is no dataset-level extractor.
@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.
@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
that is possible. @nfahlgren so this output is generated by looking at all 10 images or just 2?
@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.
@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.
@yanliu-chn I will modify the current script to read all image files in a given dataset.
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.
@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:
@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.
@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?
@nfahlgren you should be able to use this to get extracted metadata:
http://141.142.168.72/clowder/api/datasets/57296731e4b03269d7087fb7/metadata.jsonld
@max-zilla thanks, that worked!
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?
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?
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.
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.
@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
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.
@robkooper OK, I set up one. User name is xxxx, and email is xxxx@illinois.edu
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.
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
@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
I think this might be related to an older version of pika, try and see if you can upgrade it.
2 other pieces that @caicai89- is waiting for:
@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)
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"
@robkooper same error...
@robkooper currently, the pika version is 0.10.0
@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.
@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.
@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]}