Skip to content

Instantly share code, notes, and snippets.

@ashenfad
Last active June 29, 2017 01:58
Show Gist options
  • Save ashenfad/1b25692812e8d710d3635171bc1617dd to your computer and use it in GitHub Desktop.
Save ashenfad/1b25692812e8d710d3635171bc1617dd to your computer and use it in GitHub Desktop.
t-SNE Layout of Forest Cover Clusters
Set.prototype.union = function(setB) {
var union = new Set(this);
for (var elem of setB) {
union.add(elem);
}
return union;
}
Set.prototype.intersection = function(setB) {
var intersection = new Set();
for (var elem of setB) {
if (this.has(elem)) {
intersection.add(elem);
}
}
return intersection;
}
function termDist(set1, set2) {
if (set1.size == 0 && set2.size == 0) {
return 0;
} else if (set1.size == 0 || set2.size == 0) {
return 1;
} else {
return 1 - set1.intersection(set2).size / Math.sqrt(set1.size * set2.size);
}
}
/*
Given a BigML cluster resource, will return a function that computes
the distance between two clusters (referenced by their index)
*/
function clusterDistFn(resource) {
var clusters = resource.clusters.clusters;
for (var i in clusters) {
var center = clusters[i].center;
for (k in center) {
if (typeof center[k] == 'object') {
center[k] = new Set(center[k]);
}
}
}
var scales = resource.scales;
return function (a, b) {
var sum = 0;
var clusterA = clusters[a];
var clusterB = clusters[b];
for (var k in clusterA.center) {
var aVal = clusterA.center[k];
var bVal = clusterB.center[k];
var diff;
switch (typeof aVal) {
case 'number':
diff = aVal - bVal;
break;
case 'string':
diff = aVal == bVal ? 0 : 1;
break;
case 'object':
diff = termDist(aVal, bVal);
break;
}
diff *= scales[k];
sum += diff * diff;
}
/* console.log(clusterA.center, clusterB.center, a, b, Math.sqrt(sum)); */
return Math.sqrt(sum);
};
}
/*
Given a BigML cluster resource, returns a distance matrix for the
clusters
*/
function distMatrix (resource) {
var clusterCount = Object.keys(resource.clusters.clusters).length;
var distFn = clusterDistFn(resource);
var matrix = new Array(clusterCount);
for (var a = 0; a < clusterCount; a++) {
matrix[a] = new Array(clusterCount);
for (var b = 0; b < clusterCount; b++) {
if (a == b) {
matrix[a][b] = 0;
} else if (a > b) {
matrix[a][b] = matrix[b][a];
} else {
matrix[a][b] = distFn(a, b);
}
}
}
console.log(matrix);
return matrix;
}
{"balance_fields": true, "category": 0, "cluster_datasets": {}, "cluster_models": {}, "cluster_seed": "2c249dda00fbf54ab4cdd850532a584f286af5b6", "clusters": {"between_ss": 259549.60913, "clusters": [{"center": {"000000": 2784.11367, "000001": 83.58594, "000002": 8.78962, "000003": 218.48279, "000004": 19.26321, "000005": 1541.41577, "000006": 227.65007, "000007": 227.65401, "000008": 132.59869, "000009": 1938.91012, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 39564, "distance": {"bins": [[0.10988, 5], [0.1473, 156], [0.17798, 206], [0.20169, 336], [0.22631, 563], [0.24922, 820], [0.27179, 1303], [0.30484, 3719], [0.33307, 2713], [0.35536, 3381], [0.3783, 3910], [0.40066, 3865], [0.42292, 3651], [0.44509, 3896], [0.47576, 5355], [0.51345, 3079], [0.54865, 1485], [0.58199, 697], [0.61704, 264], [0.65167, 60], [0.67741, 26], [0.70679, 18], [0.73283, 3], [0.75459, 6], [0.78119, 6], [0.81538, 6], [0.84654, 9], [0.87611, 6], [0.90528, 9], [0.93964, 4], [0.97651, 3], [1.00945, 4]], "exact_histogram": {"open_max": 167, "populations": [6, 36, 101, 132, 232, 332, 513, 767, 1091, 1496, 2094, 2543, 2837, 3251, 3544, 3347, 3399, 3272, 2827, 2398, 1794, 1309, 872, 571, 342, 199, 92], "start": 0.1, "width": 0.02}, "maximum": 1.01441, "mean": 0.4041, "median": 0.40484, "minimum": 0.1034, "population": 39564, "standard_deviation": 0.0889, "sum": 15987.90936, "sum_squares": 6773.42225, "variance": 0.0079}, "id": "000000", "name": "Cluster 00"}, {"center": {"000000": 2652.79164, "000001": 113.90877, "000002": 15.53796, "000003": 397.74632, "000004": 112.63155, "000005": 1245.24485, "000006": 230.21895, "000007": 227.17422, "000008": 123.34785, "000009": 1243.19894, "00000a": "Comanche Peak", "00000b": "Lower montane", "00000c": "Igneous", "00000d": "Ponderosa Pine"}, "count": 8805, "distance": {"bins": [[0.17694, 5], [0.19804, 12], [0.21897, 19], [0.24562, 61], [0.27277, 116], [0.29992, 148], [0.32217, 166], [0.34533, 216], [0.36734, 216], [0.38818, 297], [0.41075, 356], [0.43452, 525], [0.45839, 660], [0.48742, 1298], [0.51365, 866], [0.5368, 983], [0.56009, 607], [0.58077, 536], [0.60032, 427], [0.62567, 472], [0.65398, 266], [0.67711, 155], [0.70298, 154], [0.72912, 69], [0.75047, 65], [0.77902, 60], [0.80753, 13], [0.83345, 25], [0.87097, 8], [0.90428, 1], [0.93437, 2], [0.95822, 1]], "exact_histogram": {"populations": [13, 64, 206, 401, 587, 965, 1721, 1981, 1360, 772, 403, 190, 92, 38, 8, 3, 1], "start": 0.15, "width": 0.05}, "maximum": 0.95822, "mean": 0.50893, "median": 0.51094, "minimum": 0.16923, "population": 8805, "standard_deviation": 0.10514, "sum": 4481.14822, "sum_squares": 2377.92147, "variance": 0.01105}, "id": "000001", "name": "Cluster 01"}, {"center": {"000000": 2529.70027, "000001": 125.38175, "000002": 12.20472, "000003": 125.61825, "000004": 14.81169, "000005": 1171.08783, "000006": 229.00308, "000007": 234.00342, "000008": 134.28674, "000009": 1106.99111, "00000a": "Comanche Peak", "00000b": "Lower montane", "00000c": "Igneous", "00000d": "Ponderosa Pine"}, "count": 15424, "distance": {"bins": [[0.12304, 10], [0.14991, 34], [0.17273, 88], [0.19824, 185], [0.2227, 268], [0.24681, 300], [0.27028, 365], [0.2927, 346], [0.31633, 446], [0.34287, 692], [0.36831, 665], [0.38908, 830], [0.40946, 1031], [0.43077, 1330], [0.45637, 2128], [0.48268, 1504], [0.51147, 1880], [0.53975, 923], [0.56225, 726], [0.58825, 584], [0.61383, 357], [0.63638, 230], [0.66349, 254], [0.6937, 115], [0.71877, 52], [0.7394, 38], [0.76507, 18], [0.78845, 16], [0.82267, 4], [0.85103, 3], [0.88037, 1], [0.93167, 1]], "exact_histogram": {"open_max": 58, "populations": [5, 6, 39, 67, 114, 190, 225, 260, 320, 306, 353, 428, 508, 624, 823, 1016, 1204, 1411, 1398, 1244, 1097, 947, 759, 509, 443, 301, 250, 177, 134, 108, 52, 48], "start": 0.1, "width": 0.02}, "maximum": 0.93167, "mean": 0.45092, "median": 0.45701, "minimum": 0.11183, "population": 15424, "standard_deviation": 0.10783, "sum": 6955.05672, "sum_squares": 3315.54373, "variance": 0.01163}, "id": "000002", "name": "Cluster 02"}, {"center": {"000000": 3075.51117, "000001": 44.99162, "000002": 7.95505, "000003": 113.85475, "000004": 6.22473, "000005": 1832.89766, "000006": 220.39589, "000007": 223.92128, "000008": 138.33393, "000009": 1708.74505, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Glacial", "00000d": "Spruce-Fur"}, "count": 20245, "distance": {"bins": [[0.06461, 1], [0.08794, 9], [0.11793, 9], [0.14691, 65], [0.17385, 121], [0.20285, 341], [0.23622, 609], [0.26186, 589], [0.28246, 1044], [0.30434, 1462], [0.32844, 2126], [0.3577, 2820], [0.38905, 3280], [0.41868, 2419], [0.4449, 2054], [0.47019, 1221], [0.49528, 806], [0.52368, 632], [0.55598, 270], [0.58242, 111], [0.60684, 73], [0.63642, 33], [0.66374, 29], [0.68842, 19], [0.71282, 18], [0.74041, 16], [0.76778, 14], [0.79837, 17], [0.8353, 16], [0.869, 19], [0.89879, 1], [0.93137, 1]], "exact_histogram": {"open_max": 71, "populations": [9, 45, 290, 797, 2081, 3835, 4877, 4415, 2374, 975, 307, 90, 47, 32], "start": 0.05, "width": 0.05}, "maximum": 0.93137, "mean": 0.38264, "median": 0.38182, "minimum": 0.06461, "population": 20245, "standard_deviation": 0.08713, "sum": 7746.63485, "sum_squares": 3117.88474, "variance": 0.00759}, "id": "000003", "name": "Cluster 03"}, {"center": {"000000": 3117.72701, "000001": 157.28551, "000002": 9.65188, "000003": 128.88157, "000004": 9.41109, "000005": 1749.46404, "000006": 228.32343, "000007": 240.06834, "000008": 142.93953, "000009": 2187.70268, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Glacial", "00000d": "Spruce-Fur"}, "count": 14324, "distance": {"bins": [[0.10332, 5], [0.12111, 30], [0.147, 63], [0.17072, 112], [0.19208, 144], [0.21189, 248], [0.23404, 293], [0.25362, 359], [0.27516, 595], [0.30403, 1331], [0.33221, 868], [0.35261, 1180], [0.37416, 1254], [0.39893, 1537], [0.42217, 1255], [0.44237, 1079], [0.462, 1005], [0.48649, 1074], [0.51304, 723], [0.53899, 457], [0.56171, 239], [0.58597, 181], [0.61185, 113], [0.63911, 74], [0.66643, 45], [0.68891, 24], [0.71978, 20], [0.76024, 8], [0.78406, 1], [0.81229, 5], [0.84285, 1], [0.87047, 1]], "exact_histogram": {"open_max": 59, "populations": [2, 16, 28, 63, 95, 134, 240, 262, 356, 497, 658, 764, 864, 1052, 1166, 1115, 1211, 1153, 1092, 867, 772, 588, 423, 301, 178, 136, 93, 62, 42, 35], "start": 0.08, "width": 0.02}, "maximum": 0.87047, "mean": 0.39577, "median": 0.39751, "minimum": 0.09936, "population": 14324, "standard_deviation": 0.09753, "sum": 5669.02652, "sum_squares": 2379.87412, "variance": 0.00951}, "id": "000004", "name": "Cluster 04"}, {"center": {"000000": 3141.45828, "000001": 67.63175, "000002": 6.56543, "000003": 123.12905, "000004": 8.53962, "000005": 4780.91297, "000006": 222.65246, "000007": 229.003, "000008": 141.09334, "000009": 1653.27551, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Glacial", "00000d": "Spruce-Fur"}, "count": 17605, "distance": {"bins": [[0.10904, 39], [0.13233, 108], [0.15011, 118], [0.16907, 191], [0.19208, 284], [0.21535, 499], [0.23693, 503], [0.25458, 513], [0.27129, 599], [0.29055, 794], [0.31218, 1016], [0.33283, 1224], [0.35249, 1364], [0.37037, 1338], [0.38814, 1435], [0.40606, 1441], [0.42369, 1256], [0.44034, 955], [0.4571, 794], [0.47722, 932], [0.4987, 562], [0.51767, 460], [0.53401, 312], [0.5508, 215], [0.56725, 100], [0.5849, 126], [0.6009, 169], [0.61921, 114], [0.64507, 90], [0.66707, 44], [0.69184, 4], [0.73082, 6]], "exact_histogram": {"populations": [5, 197, 499, 1153, 1766, 2759, 3875, 3491, 1979, 1114, 417, 273, 71, 6], "start": 0.05, "width": 0.05}, "maximum": 0.74235, "mean": 0.3793, "median": 0.38187, "minimum": 0.0901, "population": 17605, "standard_deviation": 0.09929, "sum": 6677.49884, "sum_squares": 2706.2961, "variance": 0.00986}, "id": "000005", "name": "Cluster 05"}, {"center": {"000000": 2991.68249, "000001": 91.25387, "000002": 15.21906, "000003": 176.59212, "000004": 27.63713, "000005": 4184.42862, "000006": 235.8685, "000007": 218.09564, "000008": 108.38959, "000009": 1729.08509, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 15235, "distance": {"bins": [[0.12544, 27], [0.14847, 62], [0.17132, 127], [0.19352, 211], [0.22461, 690], [0.25182, 564], [0.28097, 1325], [0.30628, 846], [0.32927, 1637], [0.36111, 2072], [0.3893, 1457], [0.41321, 1307], [0.44219, 1672], [0.47582, 1016], [0.50174, 524], [0.52513, 600], [0.56051, 574], [0.59662, 158], [0.62634, 188], [0.6584, 77], [0.68561, 54], [0.73213, 8], [0.75735, 2], [0.80009, 8], [0.82356, 2], [0.86276, 4], [0.89844, 11], [0.94338, 2], [0.9776, 2], [1.00379, 2], [1.04337, 5], [1.09541, 1]], "exact_histogram": {"open_max": 53, "populations": [7, 28, 59, 110, 196, 279, 395, 566, 624, 850, 1059, 1096, 1174, 1255, 1234, 1131, 1021, 861, 720, 556, 506, 406, 295, 240, 142, 124, 94, 75, 47, 32], "start": 0.1, "width": 0.02}, "maximum": 1.09541, "mean": 0.38472, "median": 0.37897, "minimum": 0.10569, "population": 15235, "standard_deviation": 0.10382, "sum": 5861.24855, "sum_squares": 2419.14108, "variance": 0.01078}, "id": "000006", "name": "Cluster 06"}, {"center": {"000000": 2833.8188, "000001": 74.22257, "000002": 8.97041, "000003": 168.83032, "000004": 18.55721, "000005": 3082.5614, "000006": 225.35297, "000007": 225.78869, "000008": 133.34171, "000009": 5469.22283, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 19329, "distance": {"bins": [[0.11717, 7], [0.15181, 24], [0.1881, 169], [0.22584, 439], [0.26696, 874], [0.30527, 1383], [0.34295, 2205], [0.37632, 2804], [0.40717, 2638], [0.43541, 2382], [0.46205, 2042], [0.48946, 1569], [0.51672, 1013], [0.54246, 650], [0.56854, 468], [0.59872, 249], [0.63524, 124], [0.68072, 73], [0.72087, 26], [0.7497, 16], [0.77981, 9], [0.80946, 14], [0.83795, 27], [0.87787, 18], [0.9165, 30], [0.96188, 26], [1.00221, 19], [1.0442, 10], [1.07239, 7], [1.10135, 8], [1.15069, 5], [1.22667, 1]], "exact_histogram": {"open_max": 71, "populations": [17, 155, 548, 1285, 2426, 4136, 4436, 3339, 1730, 729, 218, 91, 37, 18, 37, 22, 34], "start": 0.1, "width": 0.05}, "maximum": 1.22667, "mean": 0.41583, "median": 0.41224, "minimum": 0.10478, "population": 19329, "standard_deviation": 0.10081, "sum": 8037.50075, "sum_squares": 3538.62814, "variance": 0.01016}, "id": "000007", "name": "Cluster 07"}, {"center": {"000000": 3091.96834, "000001": 34.60692, "000002": 17.24939, "000003": 291.00828, "000004": 43.47151, "000005": 4094.31223, "000006": 214.42085, "000007": 200.86995, "000008": 116.51388, "000009": 2831.67852, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Spruce-Fur"}, "count": 10479, "distance": {"bins": [[0.13247, 8], [0.17437, 57], [0.20717, 95], [0.23582, 198], [0.27194, 399], [0.30832, 643], [0.34507, 925], [0.37693, 869], [0.40504, 1029], [0.43123, 1059], [0.45775, 1076], [0.4863, 1019], [0.52022, 1046], [0.55602, 581], [0.58712, 425], [0.61759, 342], [0.65731, 303], [0.69719, 169], [0.73476, 89], [0.77152, 53], [0.80713, 30], [0.84356, 21], [0.8736, 7], [0.9024, 4], [0.93257, 9], [0.9886, 3], [1.02211, 4], [1.04727, 3], [1.07169, 4], [1.09825, 5], [1.13283, 3], [1.16858, 1]], "exact_histogram": {"open_max": 49, "populations": [10, 76, 266, 585, 1055, 1517, 2006, 1807, 1269, 806, 477, 305, 147, 68, 36], "start": 0.1, "width": 0.05}, "maximum": 1.16858, "mean": 0.45121, "median": 0.44329, "minimum": 0.11656, "population": 10479, "standard_deviation": 0.11942, "sum": 4728.20701, "sum_squares": 2282.84318, "variance": 0.01426}, "id": "000008", "name": "Cluster 08"}, {"center": {"000000": 3043.56261, "000001": 98.71196, "000002": 17.26053, "000003": 147.1836, "000004": 24.76811, "000005": 3951.42504, "000006": 239.17855, "000007": 216.41437, "000008": 100.8018, "000009": 4010.59124, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Spruce-Fur"}, "count": 9850, "distance": {"bins": [[0.11551, 15], [0.15755, 40], [0.1917, 38], [0.21784, 62], [0.24496, 198], [0.27378, 331], [0.30629, 554], [0.3406, 1182], [0.37233, 981], [0.39812, 989], [0.42118, 965], [0.44432, 843], [0.47056, 807], [0.50178, 677], [0.53335, 515], [0.56602, 410], [0.59739, 369], [0.628, 287], [0.66273, 227], [0.7032, 115], [0.73995, 62], [0.76747, 50], [0.79326, 36], [0.83044, 44], [0.86023, 13], [0.88562, 14], [0.92056, 13], [0.95688, 4], [0.98195, 5], [1.02175, 1], [1.06913, 2], [1.13872, 1]], "exact_histogram": {"open_max": 26, "populations": [1, 24, 62, 197, 548, 1272, 1847, 2029, 1332, 886, 621, 477, 245, 114, 90, 52, 27], "start": 0.05, "width": 0.05}, "maximum": 1.13872, "mean": 0.44024, "median": 0.4226, "minimum": 0.09546, "population": 9850, "standard_deviation": 0.12018, "sum": 4336.32244, "sum_squares": 2051.24424, "variance": 0.01444}, "id": "000009", "name": "Cluster 09"}, {"center": {"000000": 3238.30605, "000001": 108.5295, "000002": 14.68953, "000003": 290.559, "000004": 29.65413, "000005": 1109.2205, "000006": 232.92183, "000007": 225.33923, "000008": 119.53982, "000009": 3738.93068, "00000a": "Neota", "00000b": "Montane + subalpine", "00000c": "Glacial", "00000d": "Spruce-Fur"}, "count": 7281, "distance": {"bins": [[0.21578, 4], [0.24047, 5], [0.25967, 9], [0.2811, 11], [0.30006, 18], [0.32344, 108], [0.34076, 179], [0.36462, 467], [0.39361, 713], [0.41924, 542], [0.44181, 689], [0.46235, 575], [0.48678, 869], [0.51517, 613], [0.53803, 422], [0.5559, 351], [0.57489, 388], [0.60051, 348], [0.62536, 183], [0.65137, 206], [0.67674, 103], [0.69498, 95], [0.71413, 81], [0.73183, 80], [0.75271, 61], [0.7742, 46], [0.79487, 45], [0.81829, 38], [0.83544, 4], [0.85334, 16], [0.87208, 2], [0.89483, 10]], "exact_histogram": {"populations": [9, 28, 303, 975, 1334, 1478, 1161, 849, 455, 286, 206, 115, 60, 19, 3], "start": 0.2, "width": 0.05}, "maximum": 0.90589, "mean": 0.49816, "median": 0.48313, "minimum": 0.20338, "population": 7281, "standard_deviation": 0.10687, "sum": 3627.06821, "sum_squares": 1889.99312, "variance": 0.01142}, "id": "00000a", "name": "Cluster 10"}, {"center": {"000000": 3076.90999, "000001": 22.8405, "000002": 11.82164, "000003": 343.67505, "000004": 44.83819, "000005": 2067.54533, "000006": 211.63005, "000007": 214.77465, "000008": 137.91132, "000009": 1714.59696, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 16474, "distance": {"bins": [[0.12411, 8], [0.16041, 14], [0.18369, 48], [0.2146, 254], [0.23905, 361], [0.26791, 801], [0.30456, 1202], [0.33281, 1029], [0.35394, 1082], [0.37737, 1637], [0.40011, 1808], [0.42298, 1921], [0.44543, 1443], [0.47236, 1930], [0.50601, 1123], [0.53391, 556], [0.55756, 478], [0.58324, 270], [0.60458, 161], [0.62671, 137], [0.65126, 96], [0.68519, 63], [0.72109, 17], [0.74832, 9], [0.77692, 5], [0.7956, 4], [0.82068, 2], [0.84324, 4], [0.8753, 3], [0.91118, 5], [0.98759, 2], [1.01835, 1]], "exact_histogram": {"open_max": 56, "populations": [3, 4, 8, 20, 58, 144, 286, 382, 451, 564, 693, 945, 1019, 1178, 1552, 1661, 1526, 1379, 1151, 866, 679, 529, 417, 275, 222, 145, 107, 82, 36, 36], "start": 0.1, "width": 0.02}, "maximum": 1.01835, "mean": 0.41194, "median": 0.41096, "minimum": 0.11115, "population": 16474, "standard_deviation": 0.09319, "sum": 6786.29754, "sum_squares": 2938.60574, "variance": 0.00868}, "id": "00000b", "name": "Cluster 11"}, {"center": {"000000": 3225.25897, "000001": 81.74759, "000002": 10.23234, "000003": 575.65071, "000004": 57.47665, "000005": 1797.04361, "000006": 228.42918, "000007": 225.71671, "000008": 128.75839, "000009": 2222.15052, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 13329, "distance": {"bins": [[0.11271, 4], [0.14718, 10], [0.18861, 93], [0.22003, 101], [0.24377, 208], [0.27028, 278], [0.29519, 373], [0.3212, 626], [0.34771, 749], [0.37171, 894], [0.403, 1986], [0.44196, 1923], [0.47284, 909], [0.49631, 977], [0.52373, 1087], [0.55199, 728], [0.57605, 566], [0.60035, 444], [0.62734, 375], [0.66143, 406], [0.69855, 159], [0.72386, 115], [0.75407, 91], [0.78576, 78], [0.82456, 58], [0.8638, 34], [0.90788, 30], [0.9326, 11], [0.96324, 4], [0.99055, 4], [1.02532, 5], [1.07796, 3]], "exact_histogram": {"open_max": 53, "populations": [9, 78, 277, 594, 1170, 2026, 2527, 2128, 1713, 1207, 690, 407, 220, 124, 70, 36], "start": 0.1, "width": 0.05}, "maximum": 1.09286, "mean": 0.46208, "median": 0.44964, "minimum": 0.10798, "population": 13329, "standard_deviation": 0.12085, "sum": 6159.02584, "sum_squares": 3040.5955, "variance": 0.0146}, "id": "00000c", "name": "Cluster 12"}, {"center": {"000000": 3083.99163, "000001": 86.17238, "000002": 13.70625, "000003": 138.67879, "000004": 17.31101, "000005": 1854.79362, "000006": 234.51452, "000007": 219.13733, "000008": 112.53257, "000009": 1583.57468, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 19450, "distance": {"bins": [[0.1314, 8], [0.15135, 41], [0.18242, 158], [0.20917, 272], [0.23839, 537], [0.26297, 457], [0.28086, 449], [0.29854, 631], [0.32493, 1567], [0.34881, 1121], [0.36667, 1459], [0.39246, 2954], [0.41815, 1892], [0.44399, 2796], [0.47409, 2010], [0.50019, 1175], [0.52021, 646], [0.5415, 602], [0.56635, 316], [0.58861, 141], [0.60883, 74], [0.6305, 42], [0.65222, 35], [0.67381, 25], [0.70882, 15], [0.7313, 1], [0.75855, 6], [0.80354, 2], [0.83451, 3], [0.85227, 11], [0.87505, 3], [1.1142, 1]], "exact_histogram": {"open_max": 72, "populations": [8, 33, 73, 132, 222, 302, 397, 500, 611, 790, 1077, 1300, 1591, 1840, 1901, 1800, 1750, 1451, 1151, 923, 613, 384, 245, 139, 72, 40, 33], "start": 0.12, "width": 0.02}, "maximum": 1.1142, "mean": 0.40574, "median": 0.409, "minimum": 0.12477, "population": 19450, "standard_deviation": 0.08756, "sum": 7891.6569, "sum_squares": 3351.06613, "variance": 0.00767}, "id": "00000d", "name": "Cluster 13"}, {"center": {"000000": 2308.20569, "000001": 90.60198, "000002": 23.36607, "000003": 159.93492, "000004": 50.26496, "000005": 730.98431, "000006": 239.86984, "000007": 200.61069, "000008": 77.02382, "000009": 816.33701, "00000a": "Cache la Poudre", "00000b": "Lower montane", "00000c": "Igneous", "00000d": "Ponderosa Pine"}, "count": 8844, "distance": {"bins": [[0.14152, 15], [0.17203, 60], [0.21056, 186], [0.24633, 236], [0.27627, 231], [0.30153, 330], [0.32737, 456], [0.35336, 653], [0.38847, 1223], [0.42219, 922], [0.44938, 806], [0.47691, 821], [0.51051, 917], [0.55158, 696], [0.58921, 331], [0.61814, 219], [0.64518, 161], [0.67677, 174], [0.70932, 128], [0.73867, 98], [0.77361, 76], [0.80581, 33], [0.83056, 19], [0.85817, 12], [0.89399, 11], [0.92234, 7], [0.95563, 8], [0.98078, 4], [1.01415, 4], [1.04665, 3], [1.08066, 3], [1.13035, 1]], "exact_histogram": {"open_max": 33, "populations": [13, 106, 278, 470, 901, 1355, 1614, 1410, 1045, 634, 394, 236, 195, 97, 45, 18], "start": 0.1, "width": 0.05}, "maximum": 1.13035, "mean": 0.45108, "median": 0.43982, "minimum": 0.11541, "population": 8844, "standard_deviation": 0.12691, "sum": 3989.33727, "sum_squares": 1941.93824, "variance": 0.01611}, "id": "00000e", "name": "Cluster 14"}, {"center": {"000000": 2729.55391, "000001": 33.70525, "000002": 16.35314, "000003": 167.67785, "000004": 22.59385, "000005": 1335.88118, "000006": 214.11268, "000007": 203.94417, "000008": 120.87196, "000009": 1544.69885, "00000a": "Comanche Peak", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 20551, "distance": {"bins": [[0.12434, 2], [0.16334, 8], [0.1955, 17], [0.21873, 36], [0.24229, 55], [0.26919, 198], [0.29278, 347], [0.31347, 571], [0.33514, 808], [0.35679, 1282], [0.37819, 1784], [0.39955, 2135], [0.42312, 2894], [0.44613, 2109], [0.46451, 1880], [0.48321, 1717], [0.50352, 1465], [0.52419, 997], [0.54425, 632], [0.56229, 471], [0.57991, 342], [0.59675, 230], [0.61741, 169], [0.63879, 156], [0.66062, 82], [0.68632, 72], [0.70769, 36], [0.73059, 21], [0.74997, 9], [0.77262, 9], [0.79676, 15], [0.82028, 2]], "exact_histogram": {"populations": [2, 18, 89, 496, 1700, 3901, 5412, 4738, 2455, 1101, 384, 162, 63, 22, 8], "start": 0.1, "width": 0.05}, "maximum": 0.82535, "mean": 0.44108, "median": 0.43793, "minimum": 0.12428, "population": 20551, "standard_deviation": 0.07922, "sum": 9064.59516, "sum_squares": 4127.14997, "variance": 0.00628}, "id": "00000f", "name": "Cluster 15"}, {"center": {"000000": 3161.77542, "000001": 70.26083, "000002": 21.20339, "000003": 407.29567, "000004": 98.74812, "000005": 2118.42797, "000006": 229.71751, "000007": 199.67985, "000008": 92.17891, "000009": 1865.69115, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 10740, "distance": {"bins": [[0.08982, 1], [0.12891, 3], [0.15186, 4], [0.17701, 3], [0.213, 26], [0.24685, 40], [0.27349, 96], [0.29942, 155], [0.32473, 319], [0.34933, 434], [0.37298, 620], [0.39755, 835], [0.42334, 1152], [0.45073, 1200], [0.47642, 1023], [0.50428, 1124], [0.53134, 772], [0.55403, 557], [0.57692, 519], [0.60798, 582], [0.6477, 430], [0.68782, 306], [0.72147, 156], [0.74622, 120], [0.77203, 87], [0.79812, 112], [0.83465, 37], [0.86236, 14], [0.89192, 5], [0.92991, 5], [0.96645, 2], [1.02892, 1]], "exact_histogram": {"open_max": 30, "populations": [1, 5, 10, 44, 197, 607, 1331, 2050, 2063, 1671, 1079, 657, 418, 301, 202, 74], "start": 0.05, "width": 0.05}, "maximum": 1.02892, "mean": 0.49028, "median": 0.47586, "minimum": 0.08982, "population": 10740, "standard_deviation": 0.11297, "sum": 5265.56094, "sum_squares": 2718.62195, "variance": 0.01276}, "id": "000010", "name": "Cluster 16"}, {"center": {"000000": 2867.10663, "000001": 32.87752, "000002": 24.31628, "000003": 321.96037, "000004": 103.11744, "000005": 1308.1866, "000006": 205.49928, "000007": 181.45677, "000008": 100.39625, "000009": 1532.66138, "00000a": "Comanche Peak", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 7614, "distance": {"bins": [[0.15185, 3], [0.17848, 19], [0.20868, 19], [0.24718, 57], [0.27929, 59], [0.30665, 49], [0.34086, 119], [0.36797, 188], [0.39772, 441], [0.43554, 969], [0.47861, 1287], [0.51387, 1082], [0.54249, 803], [0.57198, 739], [0.60401, 548], [0.63621, 373], [0.66779, 248], [0.70165, 199], [0.73772, 158], [0.77085, 74], [0.80562, 56], [0.84274, 44], [0.87891, 23], [0.90945, 16], [0.95322, 7], [0.99688, 7], [1.03834, 5], [1.08008, 6], [1.1185, 10], [1.15815, 1], [1.18573, 4], [1.23233, 1]], "exact_histogram": {"open_max": 30, "populations": [2, 24, 43, 98, 134, 467, 989, 1513, 1640, 1140, 676, 370, 239, 115, 71, 38, 17, 8], "start": 0.1, "width": 0.05}, "maximum": 1.23233, "mean": 0.52517, "median": 0.51594, "minimum": 0.14541, "population": 7614, "standard_deviation": 0.11487, "sum": 3998.61882, "sum_squares": 2200.38813, "variance": 0.01319}, "id": "000011", "name": "Cluster 17"}, {"center": {"000000": 3037.73427, "000001": 55.20979, "000002": 37.3042, "000003": 256.19231, "000004": 98.12238, "000005": 2006.3986, "000006": 200.78322, "000007": 141.57692, "000008": 47.34266, "000009": 1716.76224, "00000a": "Comanche Peak", "00000b": "Montane + subalpine", "00000c": "", "00000d": "Spruce-Fur"}, "count": 1704, "distance": {"bins": [[0.25677, 1], [0.30167, 10], [0.36407, 35], [0.41355, 43], [0.46126, 77], [0.50239, 116], [0.55032, 137], [0.59166, 179], [0.63163, 197], [0.67338, 202], [0.71765, 157], [0.76258, 151], [0.8144, 154], [0.87624, 69], [0.92274, 42], [0.97499, 30], [1.01639, 15], [1.05409, 10], [1.11512, 16], [1.16436, 6], [1.24088, 12], [1.32217, 12], [1.38127, 8], [1.44324, 10], [1.53875, 1], [1.57763, 2], [1.77648, 2], [1.84284, 1], [1.922, 3], [1.96018, 1], [2.00581, 3], [2.05371, 2]], "exact_histogram": {"populations": [7, 47, 164, 325, 473, 334, 173, 77, 28, 19, 15, 17, 10, 3, 0, 2, 1, 4, 5], "start": 0.2, "width": 0.1}, "maximum": 2.05814, "mean": 0.69592, "median": 0.66394, "minimum": 0.25677, "population": 1704, "standard_deviation": 0.21463, "sum": 1185.84608, "sum_squares": 903.70501, "variance": 0.04607}, "id": "000012", "name": "Cluster 18"}, {"center": {"000000": 2242.02769, "000001": 31.95487, "000002": 30.34564, "000003": 180.5641, "000004": 66.75077, "000005": 698.83385, "000006": 195.15179, "000007": 161.75897, "000008": 84.22974, "000009": 714.34051, "00000a": "Cache la Poudre", "00000b": "Montane", "00000c": "Igneous", "00000d": "Ponderosa Pine"}, "count": 5524, "distance": {"bins": [[0.15583, 8], [0.19224, 35], [0.22688, 66], [0.26377, 104], [0.30025, 235], [0.33437, 264], [0.3663, 356], [0.39881, 452], [0.4334, 517], [0.46626, 497], [0.49727, 469], [0.53478, 673], [0.57211, 406], [0.60275, 332], [0.63361, 256], [0.67036, 240], [0.70961, 147], [0.74641, 113], [0.78391, 70], [0.82203, 67], [0.84952, 57], [0.8922, 66], [0.94285, 30], [0.99143, 24], [1.01941, 1], [1.04684, 14], [1.09581, 13], [1.12825, 2], [1.16243, 2], [1.19273, 4], [1.2993, 2], [1.33561, 2]], "exact_histogram": {"open_max": 16, "populations": [4, 30, 85, 199, 396, 603, 695, 806, 750, 653, 441, 287, 173, 113, 109, 65, 41, 28, 14, 16], "start": 0.1, "width": 0.05}, "maximum": 1.34359, "mean": 0.51173, "median": 0.49578, "minimum": 0.14055, "population": 5524, "standard_deviation": 0.15501, "sum": 2826.82153, "sum_squares": 1579.28747, "variance": 0.02403}, "id": "000013", "name": "Cluster 19"}, {"center": {"000000": 3000.60323, "000001": 96.79825, "000002": 18.64803, "000003": 196.09498, "000004": 24.70529, "000005": 1152.54362, "000006": 241.07511, "000007": 212.46076, "000008": 93.43853, "000009": 1565.97676, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Spruce-Fur"}, "count": 15592, "distance": {"bins": [[0.13514, 11], [0.16371, 43], [0.18665, 69], [0.20896, 160], [0.23234, 287], [0.25896, 429], [0.28508, 578], [0.31061, 795], [0.33423, 1033], [0.3555, 1067], [0.37697, 1218], [0.40035, 1414], [0.42686, 1751], [0.45213, 1258], [0.47375, 1164], [0.50183, 1740], [0.53329, 826], [0.55765, 555], [0.57861, 418], [0.603, 289], [0.6324, 135], [0.66541, 130], [0.69748, 58], [0.72636, 53], [0.75744, 36], [0.78452, 27], [0.81097, 17], [0.8418, 6], [0.8752, 7], [0.91506, 7], [0.95957, 8], [1.00292, 3]], "exact_histogram": {"open_max": 48, "populations": [11, 131, 511, 984, 2031, 2709, 2977, 2711, 1854, 1015, 311, 157, 87, 55], "start": 0.1, "width": 0.05}, "maximum": 1.00469, "mean": 0.42602, "median": 0.42371, "minimum": 0.12136, "population": 15592, "standard_deviation": 0.10414, "sum": 6642.43998, "sum_squares": 2998.86166, "variance": 0.01084}, "id": "000014", "name": "Cluster 20"}, {"center": {"000000": 3220.37625, "000001": 83.73534, "000002": 28.81688, "000003": 249.81259, "000004": 62.66524, "000005": 2739.41345, "000006": 239.89843, "000007": 180.74106, "000008": 48.22604, "000009": 2272.19599, "00000a": "Rawah", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 4367, "distance": {"bins": [[0.19785, 2], [0.23079, 11], [0.26513, 9], [0.28893, 25], [0.30899, 30], [0.3352, 86], [0.36306, 177], [0.39272, 239], [0.42018, 262], [0.44514, 277], [0.46677, 262], [0.48769, 334], [0.51223, 379], [0.53714, 326], [0.56225, 361], [0.58723, 358], [0.61171, 276], [0.6379, 232], [0.66595, 227], [0.69611, 128], [0.72376, 98], [0.75549, 80], [0.78326, 43], [0.80568, 39], [0.83685, 49], [0.85823, 12], [0.88199, 23], [0.91477, 5], [0.94502, 3], [0.98486, 11], [1.03746, 1], [1.13201, 2]], "exact_histogram": {"open_max": 15, "populations": [2, 12, 35, 122, 347, 519, 683, 692, 734, 494, 315, 173, 103, 73, 40, 8], "start": 0.15, "width": 0.05}, "maximum": 1.13658, "mean": 0.53961, "median": 0.53137, "minimum": 0.19596, "population": 4367, "standard_deviation": 0.12159, "sum": 2356.47985, "sum_squares": 1336.12941, "variance": 0.01478}, "id": "000015", "name": "Cluster 21"}, {"center": {"000000": 2812.6775, "000001": 83.5948, "000002": 27.14471, "000003": 171.46249, "000004": 45.12581, "000005": 1142.64087, "000006": 241.4749, "000007": 184.36385, "000008": 53.80685, "000009": 1392.83698, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 9335, "distance": {"bins": [[0.14765, 1], [0.18938, 21], [0.21668, 32], [0.24362, 48], [0.27714, 99], [0.31409, 303], [0.34703, 402], [0.37439, 494], [0.40629, 930], [0.43576, 809], [0.46127, 982], [0.48597, 1037], [0.51064, 1085], [0.5378, 937], [0.57294, 822], [0.60968, 383], [0.63786, 238], [0.66236, 162], [0.6882, 135], [0.71354, 111], [0.73899, 79], [0.77194, 104], [0.81496, 42], [0.84794, 28], [0.874, 13], [0.91084, 14], [0.94958, 4], [0.98514, 3], [1.00349, 9], [1.03757, 1], [1.07704, 6], [1.12759, 1]], "exact_histogram": {"open_max": 35, "populations": [1, 20, 66, 157, 497, 953, 1510, 2029, 1879, 954, 546, 302, 193, 111, 54, 28], "start": 0.1, "width": 0.05}, "maximum": 1.12759, "mean": 0.49233, "median": 0.48661, "minimum": 0.14765, "population": 9335, "standard_deviation": 0.10983, "sum": 4595.91955, "sum_squares": 2375.3132, "variance": 0.01206}, "id": "000016", "name": "Cluster 22"}, {"center": {"000000": 3004.30051, "000001": 241.08754, "000002": 9.55387, "000003": 609.27862, "000004": 82.84343, "000005": 5700.19024, "000006": 204.20202, "000007": 244.27946, "000008": 176.62879, "000009": 4838.02778, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 6185, "distance": {"bins": [[0.12293, 10], [0.14354, 11], [0.16742, 46], [0.19152, 71], [0.21394, 114], [0.23646, 192], [0.25625, 229], [0.2794, 315], [0.30363, 414], [0.32939, 492], [0.35384, 429], [0.37512, 477], [0.39703, 453], [0.41999, 432], [0.4441, 456], [0.46696, 323], [0.48437, 315], [0.50181, 261], [0.52077, 279], [0.54258, 257], [0.56444, 174], [0.59138, 201], [0.62153, 98], [0.64222, 44], [0.66798, 50], [0.70204, 23], [0.73506, 2], [0.7527, 4], [0.78162, 5], [0.80557, 4], [0.85767, 2], [0.91649, 2]], "exact_histogram": {"open_max": 20, "populations": [3, 11, 15, 41, 59, 98, 156, 218, 229, 299, 342, 368, 383, 449, 406, 390, 369, 341, 361, 356, 275, 247, 213, 145, 130, 93, 70, 34, 39, 12, 13], "start": 0.1, "width": 0.02}, "maximum": 0.92072, "mean": 0.4063, "median": 0.40076, "minimum": 0.11491, "population": 6185, "standard_deviation": 0.11208, "sum": 2512.94941, "sum_squares": 1098.68792, "variance": 0.01256}, "id": "000017", "name": "Cluster 23"}, {"center": {"000000": 3195.53116, "000001": 315.74017, "000002": 11.60499, "000003": 481.83988, "000004": 61.47459, "000005": 3828.16203, "000006": 197.46884, "000007": 227.58389, "000008": 167.40364, "000009": 2877.73154, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Spruce-Fur"}, "count": 5533, "distance": {"bins": [[0.17583, 9], [0.20648, 28], [0.23797, 28], [0.2579, 42], [0.27744, 51], [0.29927, 83], [0.32302, 104], [0.34509, 172], [0.36532, 209], [0.39232, 516], [0.41981, 338], [0.44575, 563], [0.47311, 561], [0.49403, 465], [0.5166, 478], [0.54175, 449], [0.5632, 264], [0.58258, 241], [0.60301, 224], [0.62295, 197], [0.64497, 185], [0.66826, 103], [0.6944, 71], [0.71921, 60], [0.73907, 16], [0.76497, 23], [0.78922, 22], [0.81704, 13], [0.846, 10], [0.87701, 3], [0.8964, 4], [1.0268, 1]], "exact_histogram": {"open_max": 12, "populations": [18, 51, 138, 261, 633, 837, 1137, 944, 658, 477, 211, 92, 42, 22], "start": 0.15, "width": 0.05}, "maximum": 1.0268, "mean": 0.49058, "median": 0.48708, "minimum": 0.16887, "population": 5533, "standard_deviation": 0.10762, "sum": 2714.35294, "sum_squares": 1395.67081, "variance": 0.01158}, "id": "000018", "name": "Cluster 24"}, {"center": {"000000": 3038.547, "000001": 62.13462, "000002": 8.96268, "000003": 501.30609, "000004": 56.15966, "000005": 4483.76571, "000006": 223.72036, "000007": 224.41521, "000008": 134.17336, "000009": 4266.66604, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 11086, "distance": {"bins": [[0.10553, 3], [0.12614, 1], [0.15055, 10], [0.18042, 24], [0.20697, 39], [0.22926, 60], [0.25295, 99], [0.27757, 132], [0.29846, 201], [0.31942, 321], [0.34174, 638], [0.36631, 768], [0.38911, 1148], [0.41314, 1125], [0.43584, 1047], [0.45748, 1004], [0.47901, 978], [0.49911, 714], [0.52264, 947], [0.55407, 751], [0.58489, 328], [0.6084, 144], [0.62691, 157], [0.64726, 123], [0.66862, 107], [0.69059, 70], [0.71408, 65], [0.73617, 34], [0.75848, 24], [0.78399, 13], [0.81716, 10], [0.85586, 1]], "exact_histogram": {"populations": [1, 7, 34, 135, 313, 927, 1953, 2371, 2244, 1583, 773, 378, 217, 102, 37, 10, 1], "start": 0.05, "width": 0.05}, "maximum": 0.85586, "mean": 0.4511, "median": 0.44546, "minimum": 0.09508, "population": 11086, "standard_deviation": 0.09582, "sum": 5000.9085, "sum_squares": 2357.68349, "variance": 0.00918}, "id": "000019", "name": "Cluster 25"}, {"center": {"000000": 2891.23303, "000001": 284.06789, "000002": 8.35963, "000003": 182.1737, "000004": 19.20734, "000005": 3726.59817, "000006": 205.63425, "000007": 236.18349, "000008": 167.80428, "000009": 4964.7682, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 8620, "distance": {"bins": [[0.12901, 6], [0.15733, 16], [0.18088, 32], [0.20569, 41], [0.23136, 111], [0.25379, 123], [0.27334, 135], [0.29134, 171], [0.31347, 230], [0.3335, 292], [0.35353, 459], [0.37063, 517], [0.39569, 1292], [0.41955, 638], [0.43748, 738], [0.45654, 738], [0.47677, 685], [0.49659, 579], [0.51709, 447], [0.5369, 383], [0.5563, 233], [0.57344, 147], [0.59131, 139], [0.61429, 185], [0.6377, 88], [0.65881, 57], [0.68132, 56], [0.7101, 43], [0.7335, 15], [0.75819, 13], [0.79085, 6], [0.81775, 5]], "exact_histogram": {"populations": [8, 59, 172, 383, 674, 1654, 1974, 1698, 1032, 492, 278, 117, 57, 17, 5], "start": 0.1, "width": 0.05}, "maximum": 0.82504, "mean": 0.43804, "median": 0.4343, "minimum": 0.12193, "population": 8620, "standard_deviation": 0.09574, "sum": 3775.8723, "sum_squares": 1732.97488, "variance": 0.00917}, "id": "00001a", "name": "Cluster 26"}, {"center": {"000000": 2915.89607, "000001": 320.7823, "000002": 20.28933, "000003": 124.35253, "000004": 38.81601, "000005": 4008.8132, "000006": 168.33708, "000007": 215.51966, "000008": 183.32865, "000009": 4548.53371, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 3590, "distance": {"bins": [[0.17653, 13], [0.2181, 48], [0.25613, 71], [0.29648, 100], [0.33441, 193], [0.37115, 298], [0.4098, 369], [0.448, 448], [0.48851, 446], [0.52713, 412], [0.56035, 306], [0.59376, 232], [0.62391, 168], [0.65529, 127], [0.68608, 86], [0.71812, 56], [0.75355, 54], [0.79303, 43], [0.82785, 36], [0.87012, 16], [0.91196, 19], [0.95224, 11], [0.98555, 10], [1.02294, 3], [1.05744, 5], [1.10533, 6], [1.14248, 4], [1.18929, 3], [1.26009, 3], [1.32825, 1], [1.38567, 2], [1.42321, 1]], "exact_histogram": {"open_max": 11, "populations": [19, 65, 108, 226, 388, 540, 533, 569, 423, 274, 166, 84, 66, 45, 20, 20, 16, 5, 4, 8], "start": 0.15, "width": 0.05}, "maximum": 1.42321, "mean": 0.50356, "median": 0.4914, "minimum": 0.15166, "population": 3590, "standard_deviation": 0.1458, "sum": 1807.79245, "sum_squares": 986.63149, "variance": 0.02126}, "id": "00001b", "name": "Cluster 27"}, {"center": {"000000": 3079.05325, "000001": 124.46938, "000002": 7.99569, "000003": 339.8418, "000004": 36.61065, "000005": 4978.09572, "000006": 225.59926, "000007": 235.735, "000008": 143.14404, "000009": 2066.19637, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 16957, "distance": {"bins": [[0.1576, 16], [0.179, 58], [0.19748, 99], [0.22149, 229], [0.24816, 392], [0.27465, 681], [0.29833, 950], [0.3205, 1257], [0.34291, 1486], [0.37075, 2353], [0.40064, 1841], [0.42644, 1703], [0.44938, 1236], [0.47088, 1398], [0.49503, 1228], [0.51717, 634], [0.53605, 399], [0.55456, 292], [0.57406, 197], [0.5969, 197], [0.62446, 95], [0.65391, 85], [0.68276, 55], [0.70821, 35], [0.72866, 20], [0.76086, 4], [0.77999, 9], [0.8139, 2], [0.83867, 1], [0.89879, 3], [0.92472, 1], [0.94958, 1]], "exact_histogram": {"open_max": 71, "populations": [9, 39, 88, 134, 209, 305, 503, 723, 1000, 1229, 1360, 1365, 1425, 1404, 1302, 1235, 1208, 1046, 753, 516, 335, 224, 163, 103, 67, 57, 46, 38], "start": 0.14, "width": 0.02}, "maximum": 0.94958, "mean": 0.40481, "median": 0.40133, "minimum": 0.14442, "population": 16957, "standard_deviation": 0.09149, "sum": 6864.43729, "sum_squares": 2920.73676, "variance": 0.00837}, "id": "00001c", "name": "Cluster 28"}, {"center": {"000000": 3074.57331, "000001": 262.85902, "000002": 14.98496, "000003": 423.17293, "000004": 71.22995, "000005": 5356.81266, "000006": 186.04762, "000007": 242.74749, "000008": 193.30639, "000009": 1653.55576, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 8837, "distance": {"bins": [[0.12617, 6], [0.15308, 53], [0.18625, 144], [0.21315, 170], [0.23748, 205], [0.26158, 310], [0.29692, 720], [0.33561, 917], [0.36898, 811], [0.40309, 1147], [0.43832, 709], [0.46194, 513], [0.49089, 900], [0.52849, 746], [0.56668, 442], [0.60024, 343], [0.63824, 294], [0.68056, 146], [0.71007, 80], [0.74108, 82], [0.78372, 32], [0.82114, 33], [0.85522, 4], [0.89036, 8], [0.93983, 5], [0.97624, 2], [0.99983, 5], [1.03403, 2], [1.05542, 3], [1.08696, 2], [1.11401, 1], [1.13747, 2]], "exact_histogram": {"open_max": 33, "populations": [24, 166, 418, 672, 1138, 1414, 1313, 1224, 982, 611, 397, 219, 139, 53, 34], "start": 0.1, "width": 0.05}, "maximum": 1.14119, "mean": 0.43168, "median": 0.42126, "minimum": 0.11252, "population": 8837, "standard_deviation": 0.12898, "sum": 3814.72313, "sum_squares": 1793.72663, "variance": 0.01664}, "id": "00001d", "name": "Cluster 29"}, {"center": {"000000": 3097.27115, "000001": 307.72033, "000002": 9.17303, "000003": 126.42156, "000004": 13.45358, "000005": 4331.24295, "000006": 198.93449, "000007": 233.09459, "000008": 172.6369, "000009": 1538.18537, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Spruce-Fur"}, "count": 18011, "distance": {"bins": [[0.08048, 4], [0.09945, 6], [0.12398, 11], [0.14243, 51], [0.1677, 71], [0.18766, 93], [0.20719, 123], [0.22683, 203], [0.24744, 203], [0.26629, 273], [0.28537, 411], [0.30435, 552], [0.32896, 1393], [0.35262, 1189], [0.37209, 1373], [0.39113, 1706], [0.41538, 2503], [0.43935, 1682], [0.45773, 1465], [0.48231, 2194], [0.5095, 833], [0.52814, 667], [0.54694, 296], [0.56497, 173], [0.58412, 182], [0.6049, 108], [0.62786, 71], [0.65658, 65], [0.68431, 62], [0.70603, 29], [0.73177, 16], [0.75119, 3]], "exact_histogram": {"populations": [7, 56, 192, 431, 928, 2205, 3753, 4378, 3524, 1736, 478, 166, 114, 41, 2], "start": 0.05, "width": 0.05}, "maximum": 0.75635, "mean": 0.41385, "median": 0.41631, "minimum": 0.07915, "population": 18011, "standard_deviation": 0.08654, "sum": 7453.82698, "sum_squares": 3219.62811, "variance": 0.00749}, "id": "00001e", "name": "Cluster 30"}, {"center": {"000000": 2982.26728, "000001": 258.9427, "000002": 10.10647, "000003": 85.19224, "000004": 8.24362, "000005": 1865.38558, "000006": 200.64067, "000007": 243.41479, "000008": 179.89168, "000009": 1106.74898, "00000a": "Comanche Peak", "00000b": "Montane + subalpine", "00000c": "", "00000d": "Lodgepole Pine"}, "count": 12610, "distance": {"bins": [[0.26171, 46], [0.27433, 103], [0.28551, 126], [0.29664, 164], [0.31064, 346], [0.325, 500], [0.34011, 642], [0.35442, 670], [0.36701, 674], [0.37914, 747], [0.39114, 744], [0.40282, 764], [0.41478, 842], [0.42693, 938], [0.44034, 966], [0.4557, 961], [0.47091, 818], [0.48515, 647], [0.49747, 439], [0.50968, 421], [0.52339, 362], [0.53763, 230], [0.55494, 206], [0.572, 90], [0.58559, 50], [0.59909, 52], [0.6162, 36], [0.62833, 10], [0.64185, 5], [0.65107, 7], [0.67772, 2], [0.79458, 2]], "exact_histogram": {"open_max": 33, "populations": [14, 136, 265, 454, 734, 948, 1137, 1281, 1361, 1435, 1255, 1109, 889, 652, 405, 233, 143, 73, 53], "start": 0.24, "width": 0.02}, "maximum": 0.79687, "mean": 0.42059, "median": 0.41969, "minimum": 0.25322, "population": 12610, "standard_deviation": 0.06845, "sum": 5303.64831, "sum_squares": 2289.74161, "variance": 0.00469}, "id": "00001f", "name": "Cluster 31"}, {"center": {"000000": 3182.76877, "000001": 281.42787, "000002": 8.64394, "000003": 399.79513, "000004": 41.41798, "000005": 2027.51252, "000006": 202.28096, "000007": 238.99901, "000008": 174.58696, "000009": 1546.88834, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 16213, "distance": {"bins": [[0.13408, 2], [0.17364, 29], [0.2028, 99], [0.23895, 400], [0.26805, 360], [0.29994, 1146], [0.3302, 999], [0.35288, 1632], [0.37708, 2058], [0.40377, 2026], [0.42966, 1741], [0.45491, 1565], [0.48097, 1127], [0.51322, 1224], [0.54927, 395], [0.57562, 439], [0.6047, 244], [0.63665, 172], [0.66753, 195], [0.7009, 88], [0.73368, 85], [0.77051, 55], [0.80526, 35], [0.8409, 26], [0.86849, 15], [0.89975, 14], [0.92669, 12], [0.96181, 10], [1.00017, 10], [1.03026, 6], [1.06546, 2], [1.0969, 2]], "exact_histogram": {"open_max": 75, "populations": [2, 63, 370, 998, 2191, 3858, 3526, 2382, 1226, 711, 332, 236, 122, 77, 44], "start": 0.1, "width": 0.05}, "maximum": 1.10626, "mean": 0.42136, "median": 0.40871, "minimum": 0.1282, "population": 16213, "standard_deviation": 0.10484, "sum": 6831.451, "sum_squares": 3056.65931, "variance": 0.01099}, "id": "000020", "name": "Cluster 32"}, {"center": {"000000": 3137.27677, "000001": 293.97794, "000002": 9.67188, "000003": 327.35419, "000004": 28.25311, "000005": 1141.04693, "000006": 198.52387, "000007": 235.97754, "000008": 175.63137, "000009": 1279.31448, "00000a": "Comanche Peak", "00000b": "Montane + subalpine", "00000c": "Glacial", "00000d": "Spruce-Fur"}, "count": 14195, "distance": {"bins": [[0.06864, 1], [0.09194, 3], [0.11847, 8], [0.15214, 44], [0.18606, 125], [0.22567, 208], [0.25321, 204], [0.28171, 530], [0.30766, 474], [0.32818, 682], [0.35062, 1063], [0.37472, 1247], [0.40023, 1759], [0.42858, 1922], [0.45629, 1594], [0.48304, 1300], [0.50858, 906], [0.53013, 558], [0.55015, 400], [0.57042, 318], [0.59177, 234], [0.61253, 171], [0.63562, 125], [0.66496, 104], [0.6926, 71], [0.71849, 71], [0.74688, 38], [0.77805, 22], [0.80182, 8], [0.83285, 2], [0.85992, 1], [0.88228, 2]], "exact_histogram": {"populations": [4, 26, 139, 288, 712, 1621, 2640, 3278, 2583, 1540, 722, 320, 164, 110, 38, 7, 3], "start": 0.05, "width": 0.05}, "maximum": 0.88458, "mean": 0.42818, "median": 0.4254, "minimum": 0.06864, "population": 14195, "standard_deviation": 0.09758, "sum": 6078.04787, "sum_squares": 2737.65245, "variance": 0.00952}, "id": "000021", "name": "Cluster 33"}, {"center": {"000000": 3098.7504, "000001": 173.17429, "000002": 11.94217, "000003": 276.24099, "000004": 38.47364, "000005": 2141.94244, "000006": 222.73023, "000007": 244.51157, "000008": 152.2496, "000009": 1440.6993, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Lodgepole Pine"}, "count": 19211, "distance": {"bins": [[0.06533, 2], [0.09583, 17], [0.12594, 41], [0.15227, 63], [0.18027, 171], [0.21432, 388], [0.24357, 332], [0.26827, 641], [0.29396, 736], [0.32627, 1709], [0.35855, 1764], [0.38643, 2058], [0.4106, 1531], [0.43856, 2818], [0.4743, 2542], [0.50199, 1130], [0.52471, 1135], [0.5524, 853], [0.57758, 429], [0.60152, 314], [0.62601, 208], [0.65735, 177], [0.701, 102], [0.73867, 19], [0.76127, 12], [0.79586, 8], [0.82405, 3], [0.85161, 2], [0.87893, 2], [0.92199, 1], [0.94559, 1], [0.97578, 2]], "exact_histogram": {"open_max": 32, "populations": [12, 75, 262, 605, 1266, 2214, 3425, 3863, 3540, 2195, 1044, 439, 172, 67], "start": 0.05, "width": 0.05}, "maximum": 0.98223, "mean": 0.42076, "median": 0.42223, "minimum": 0.06489, "population": 19211, "standard_deviation": 0.10087, "sum": 8083.19447, "sum_squares": 3596.51471, "variance": 0.01017}, "id": "000022", "name": "Cluster 34"}, {"center": {"000000": 3111.4545, "000001": 64.0593, "000002": 13.77773, "000003": 609.73382, "000004": 164.09642, "000005": 1704.76415, "000006": 225.41105, "000007": 216.76958, "000008": 121.30512, "000009": 1724.07515, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Lodgepole Pine"}, "count": 11903, "distance": {"bins": [[0.15621, 1], [0.1904, 23], [0.21372, 73], [0.23933, 61], [0.26108, 66], [0.28301, 150], [0.30563, 194], [0.32806, 244], [0.34912, 320], [0.37042, 439], [0.39216, 488], [0.41315, 566], [0.43458, 754], [0.45621, 786], [0.47797, 814], [0.49942, 897], [0.52011, 939], [0.54101, 990], [0.56372, 1049], [0.58713, 948], [0.61203, 725], [0.63685, 394], [0.66006, 250], [0.68848, 320], [0.71903, 144], [0.74019, 91], [0.76285, 77], [0.78699, 43], [0.80866, 29], [0.83868, 16], [0.86227, 9], [0.89402, 3]], "exact_histogram": {"populations": [23, 136, 264, 563, 1013, 1549, 1900, 2297, 2070, 1105, 513, 289, 124, 44, 12, 1], "start": 0.15, "width": 0.05}, "maximum": 0.90001, "mean": 0.5057, "median": 0.51154, "minimum": 0.15621, "population": 11903, "standard_deviation": 0.1093, "sum": 6019.2933, "sum_squares": 3186.11297, "variance": 0.01195}, "id": "000023", "name": "Cluster 35"}, {"center": {"000000": 3236.83472, "000001": 55.14744, "000002": 18.93341, "000003": 866.0761, "000004": 252.25327, "000005": 2301.45541, "000006": 222.31629, "000007": 202.75505, "000008": 106.46136, "000009": 1774.26873, "00000a": "Rawah", "00000b": "", "00000c": "", "00000d": "Lodgepole Pine"}, "count": 4586, "distance": {"bins": [[0.354, 35], [0.37855, 55], [0.40643, 86], [0.4325, 165], [0.45912, 182], [0.48179, 255], [0.50418, 277], [0.5298, 320], [0.55378, 359], [0.57692, 330], [0.59765, 310], [0.62539, 439], [0.65409, 240], [0.67368, 218], [0.69495, 184], [0.71528, 177], [0.73426, 144], [0.7594, 151], [0.78527, 98], [0.80924, 114], [0.83117, 84], [0.85274, 74], [0.87947, 79], [0.90173, 44], [0.92263, 53], [0.94553, 38], [0.96805, 28], [0.99451, 20], [1.02606, 13], [1.05625, 10], [1.08684, 3], [1.11907, 1]], "exact_histogram": {"populations": [10, 100, 257, 499, 634, 762, 626, 524, 388, 233, 219, 145, 103, 53, 21, 11, 1], "start": 0.3, "width": 0.05}, "maximum": 1.11907, "mean": 0.62238, "median": 0.6028, "minimum": 0.3367, "population": 4586, "standard_deviation": 0.13644, "sum": 2854.25736, "sum_squares": 1861.79599, "variance": 0.01861}, "id": "000024", "name": "Cluster 36"}, {"center": {"000000": 3200.89823, "000001": 180.57901, "000002": 13.28635, "000003": 766.69406, "000004": 141.81606, "000005": 2445.92794, "000006": 221.30657, "000007": 245.43047, "000008": 153.83628, "000009": 1779.96903, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Lodgepole Pine"}, "count": 8569, "distance": {"bins": [[0.18535, 8], [0.20837, 8], [0.23232, 38], [0.25507, 38], [0.27982, 85], [0.30724, 169], [0.33455, 319], [0.36102, 461], [0.38371, 390], [0.41161, 795], [0.43928, 520], [0.45968, 606], [0.47949, 577], [0.49806, 566], [0.51692, 565], [0.54395, 926], [0.5718, 401], [0.59125, 403], [0.61333, 410], [0.63723, 359], [0.66116, 288], [0.68474, 216], [0.70676, 154], [0.7308, 124], [0.75511, 50], [0.78311, 36], [0.8089, 30], [0.83774, 10], [0.86619, 9], [0.90758, 5], [0.95431, 1], [0.97195, 2]], "exact_histogram": {"open_max": 17, "populations": [10, 53, 147, 488, 962, 1197, 1513, 1412, 1063, 798, 521, 278, 74, 36], "start": 0.15, "width": 0.05}, "maximum": 0.97644, "mean": 0.50276, "median": 0.49754, "minimum": 0.17407, "population": 8569, "standard_deviation": 0.11297, "sum": 4308.12249, "sum_squares": 2275.28935, "variance": 0.01276}, "id": "000025", "name": "Cluster 37"}, {"center": {"000000": 3278.79075, "000001": 298.87255, "000002": 13.23533, "000003": 683.39004, "000004": 129.10551, "000005": 2027.64197, "000006": 189.47718, "000007": 232.64197, "000008": 181.00533, "000009": 1696.39538, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 9376, "distance": {"bins": [[0.16458, 4], [0.18833, 14], [0.21343, 29], [0.23438, 61], [0.25884, 94], [0.28494, 207], [0.30994, 265], [0.33042, 232], [0.34978, 348], [0.37245, 467], [0.39603, 626], [0.4225, 878], [0.4486, 646], [0.46899, 616], [0.48817, 659], [0.50831, 743], [0.53143, 699], [0.55444, 583], [0.58191, 773], [0.61196, 438], [0.63641, 251], [0.65857, 184], [0.68468, 179], [0.70756, 117], [0.73288, 107], [0.75792, 75], [0.78924, 34], [0.81785, 26], [0.85152, 12], [0.88321, 7], [0.90724, 1], [0.94822, 1]], "exact_histogram": {"populations": [18, 106, 311, 650, 1051, 1455, 1626, 1554, 1180, 700, 359, 224, 93, 33, 14, 2], "start": 0.15, "width": 0.05}, "maximum": 0.94822, "mean": 0.48623, "median": 0.48409, "minimum": 0.15171, "population": 9376, "standard_deviation": 0.11343, "sum": 4558.92346, "sum_squares": 2337.31587, "variance": 0.01287}, "id": "000026", "name": "Cluster 38"}, {"center": {"000000": 3216.51527, "000001": 278.41752, "000002": 18.28106, "000003": 849.2057, "000004": 316.7943, "000005": 2687.389, "000006": 175.78615, "000007": 232.84929, "000008": 192.50713, "000009": 2028.68432, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Lodgepole Pine"}, "count": 2903, "distance": {"bins": [[0.34032, 34], [0.37685, 48], [0.41349, 62], [0.44424, 95], [0.47668, 228], [0.51512, 322], [0.5574, 469], [0.59663, 381], [0.63067, 318], [0.66362, 205], [0.703, 155], [0.7382, 114], [0.77306, 95], [0.815, 82], [0.85401, 40], [0.90045, 26], [0.94208, 41], [0.98562, 14], [1.02962, 9], [1.06925, 6], [1.1181, 18], [1.1546, 24], [1.18735, 16], [1.22306, 21], [1.25708, 16], [1.29642, 14], [1.33499, 20], [1.37258, 9], [1.40911, 10], [1.46038, 5], [1.50991, 4], [1.54387, 2]], "exact_histogram": {"populations": [28, 63, 120, 295, 430, 545, 489, 251, 191, 124, 89, 34, 43, 24, 12, 7, 25, 31, 26, 22, 20, 17, 7, 4, 6], "start": 0.3, "width": 0.05}, "maximum": 1.54681, "mean": 0.63962, "median": 0.59702, "minimum": 0.31182, "population": 2903, "standard_deviation": 0.19355, "sum": 1856.80559, "sum_squares": 1296.35117, "variance": 0.03746}, "id": "000027", "name": "Cluster 39"}, {"center": {"000000": 3063.57467, "000001": 276.57733, "000002": 27.49867, "000003": 450.18, "000004": 186.27867, "000005": 2012.65333, "000006": 143.46, "000007": 229.49467, "000008": 217.32133, "000009": 1345.18533, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 4245, "distance": {"bins": [[0.16559, 10], [0.19315, 21], [0.22119, 14], [0.25497, 24], [0.28752, 39], [0.32522, 49], [0.36468, 102], [0.40037, 162], [0.44521, 302], [0.48174, 313], [0.51393, 390], [0.54483, 577], [0.58039, 786], [0.61862, 436], [0.65332, 264], [0.69035, 201], [0.73108, 189], [0.76138, 80], [0.79402, 67], [0.8292, 54], [0.87414, 54], [0.91682, 28], [0.95289, 24], [0.98277, 21], [1.03083, 7], [1.07495, 10], [1.11294, 4], [1.17769, 6], [1.23391, 3], [1.34455, 3], [1.44784, 4], [1.50437, 1]], "exact_histogram": {"open_max": 20, "populations": [24, 28, 50, 64, 171, 258, 469, 747, 927, 594, 311, 237, 127, 75, 53, 33, 38, 8, 11], "start": 0.15, "width": 0.05}, "maximum": 1.50437, "mean": 0.57462, "median": 0.56604, "minimum": 0.15461, "population": 4245, "standard_deviation": 0.13985, "sum": 2439.27072, "sum_squares": 1484.66544, "variance": 0.01956}, "id": "000028", "name": "Cluster 40"}, {"center": {"000000": 2835.88912, "000001": 317.06758, "000002": 17.94931, "000003": 482.566, "000004": 168.03062, "000005": 1338.71172, "000006": 178.55755, "000007": 219.98205, "000008": 177.86378, "000009": 1367.58712, "00000a": "Comanche Peak", "00000b": "", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 5120, "distance": {"bins": [[0.27964, 1], [0.30388, 2], [0.33319, 35], [0.35764, 89], [0.38455, 103], [0.40885, 142], [0.43087, 197], [0.45245, 274], [0.47304, 472], [0.4948, 422], [0.51412, 420], [0.53427, 442], [0.557, 478], [0.58414, 491], [0.61369, 433], [0.64284, 337], [0.67048, 290], [0.69632, 153], [0.71864, 130], [0.74299, 83], [0.76919, 42], [0.79037, 24], [0.80833, 14], [0.83101, 15], [0.86549, 13], [0.88968, 5], [0.91037, 1], [0.9328, 1], [0.9662, 4], [0.98885, 4], [1.02327, 2], [1.07966, 1]], "exact_histogram": {"open_max": 18, "populations": [1, 1, 3, 26, 58, 67, 93, 126, 184, 262, 392, 438, 432, 416, 413, 336, 335, 294, 254, 250, 194, 159, 126, 84, 55, 37, 25, 15, 11, 5, 10], "start": 0.26, "width": 0.02}, "maximum": 1.07966, "mean": 0.55275, "median": 0.54321, "minimum": 0.27964, "population": 5120, "standard_deviation": 0.0991, "sum": 2830.09236, "sum_squares": 1614.61033, "variance": 0.00982}, "id": "000029", "name": "Cluster 41"}, {"center": {"000000": 3098.31531, "000001": 312.48673, "000002": 30.09082, "000003": 252.58061, "000004": 71.91939, "000005": 2073.1898, "000006": 130.94694, "000007": 201.43878, "000008": 201.53469, "000009": 1939.68776, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Spruce-Fur"}, "count": 5199, "distance": {"bins": [[0.20777, 20], [0.25704, 21], [0.29632, 43], [0.33808, 124], [0.39526, 294], [0.44523, 298], [0.48535, 509], [0.52349, 596], [0.56036, 693], [0.59694, 677], [0.64349, 691], [0.69311, 374], [0.73404, 223], [0.77536, 196], [0.8181, 116], [0.86102, 74], [0.90571, 80], [0.95708, 37], [0.99824, 35], [1.05158, 38], [1.09546, 9], [1.13222, 10], [1.17577, 14], [1.21459, 5], [1.27443, 6], [1.35356, 2], [1.40539, 2], [1.43383, 4], [1.47952, 2], [1.52574, 3], [1.60931, 2], [1.68243, 1]], "exact_histogram": {"open_max": 21, "populations": [7, 18, 40, 122, 191, 298, 557, 811, 956, 708, 510, 334, 210, 131, 89, 58, 44, 34, 28, 12, 15, 5], "start": 0.15, "width": 0.05}, "maximum": 1.68243, "mean": 0.59638, "median": 0.57861, "minimum": 0.18177, "population": 5199, "standard_deviation": 0.1558, "sum": 3100.57362, "sum_squares": 1975.28359, "variance": 0.02427}, "id": "00002a", "name": "Cluster 42"}, {"center": {"000000": 3171.98755, "000001": 300.51388, "000002": 17.52059, "000003": 230.14012, "000004": 38.24417, "000005": 2659.47814, "000006": 175.10884, "000007": 229.20587, "000008": 191.62719, "000009": 1590.74657, "00000a": "Comanche Peak", "00000b": "", "00000c": "", "00000d": "Spruce-Fur"}, "count": 16176, "distance": {"bins": [[0.12352, 2], [0.14888, 28], [0.18112, 60], [0.22199, 144], [0.25274, 209], [0.29196, 709], [0.32752, 729], [0.35644, 1370], [0.38422, 1227], [0.42242, 2931], [0.46559, 2700], [0.50351, 2063], [0.53724, 1033], [0.56369, 738], [0.59903, 1029], [0.64002, 433], [0.67594, 327], [0.72109, 153], [0.75127, 92], [0.78719, 65], [0.8227, 29], [0.87021, 24], [0.91103, 16], [0.94704, 14], [0.97361, 17], [1.00389, 11], [1.03196, 11], [1.08821, 1], [1.12899, 1], [1.17984, 7], [1.22372, 2], [1.26129, 1]], "exact_histogram": {"open_max": 78, "populations": [16, 73, 221, 601, 1363, 2378, 3035, 3280, 2178, 1364, 814, 389, 218, 100, 42, 26], "start": 0.1, "width": 0.05}, "maximum": 1.26129, "mean": 0.4625, "median": 0.45621, "minimum": 0.12339, "population": 16176, "standard_deviation": 0.11335, "sum": 7481.39663, "sum_squares": 3667.97041, "variance": 0.01285}, "id": "00002b", "name": "Cluster 43"}, {"center": {"000000": 2858.11053, "000001": 337.96632, "000002": 21.31452, "000003": 183.58397, "000004": 39.10863, "000005": 1650.95209, "000006": 169.75806, "000007": 204.92837, "000008": 170.70304, "000009": 1607.1371, "00000a": "Comanche Peak", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 11062, "distance": {"bins": [[0.13722, 5], [0.16408, 8], [0.20058, 61], [0.23028, 61], [0.253, 84], [0.27469, 119], [0.29657, 177], [0.31935, 264], [0.35103, 712], [0.37982, 767], [0.4062, 1251], [0.43878, 2096], [0.47214, 1466], [0.49859, 1096], [0.5217, 719], [0.55175, 917], [0.58212, 326], [0.60454, 238], [0.62835, 239], [0.65357, 124], [0.67712, 88], [0.7056, 76], [0.73836, 66], [0.76888, 43], [0.80307, 28], [0.83937, 9], [0.88147, 12], [0.92271, 2], [0.94818, 4], [0.9752, 2], [1.0079, 1], [1.05222, 1]], "exact_histogram": {"open_max": 45, "populations": [5, 38, 123, 284, 646, 1508, 2560, 2537, 1621, 879, 453, 190, 104, 69], "start": 0.1, "width": 0.05}, "maximum": 1.05222, "mean": 0.46266, "median": 0.45647, "minimum": 0.13389, "population": 11062, "standard_deviation": 0.09736, "sum": 5117.92823, "sum_squares": 2472.70012, "variance": 0.00948}, "id": "00002c", "name": "Cluster 44"}, {"center": {"000000": 2848.01105, "000001": 330.01852, "000002": 10.71248, "000003": 146.08187, "000004": 22.01754, "000005": 1621.08577, "000006": 196.02502, "000007": 226.56075, "000008": 169.14327, "000009": 1840.01007, "00000a": "Comanche Peak", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 15455, "distance": {"bins": [[0.15058, 2], [0.17666, 1], [0.19255, 2], [0.21446, 10], [0.24036, 14], [0.25987, 37], [0.2759, 76], [0.29713, 272], [0.31635, 365], [0.33244, 488], [0.35078, 734], [0.36803, 1053], [0.38481, 1192], [0.40792, 2678], [0.4317, 1606], [0.44962, 1416], [0.46864, 1633], [0.49159, 1564], [0.51393, 710], [0.53134, 461], [0.54773, 354], [0.56417, 224], [0.58361, 267], [0.61079, 123], [0.63174, 66], [0.64947, 41], [0.66777, 40], [0.69395, 12], [0.7134, 5], [0.72976, 4], [0.7532, 4], [0.77219, 1]], "exact_histogram": {"populations": [2, 1, 2, 8, 7, 29, 77, 187, 375, 555, 821, 1228, 1570, 1810, 1771, 1644, 1533, 1248, 870, 583, 386, 283, 175, 101, 77, 49, 36, 10, 8, 3, 5, 1], "start": 0.14, "width": 0.02}, "maximum": 0.77219, "mean": 0.43548, "median": 0.4318, "minimum": 0.14787, "population": 15455, "standard_deviation": 0.07069, "sum": 6730.38529, "sum_squares": 3008.20009, "variance": 0.005}, "id": "00002d", "name": "Cluster 45"}, {"center": {"000000": 2801.08029, "000001": 228.78821, "000002": 24.49392, "000003": 184.46225, "000004": 44.43757, "000005": 1799.62357, "000006": 179.04862, "000007": 248.45709, "000008": 196.2221, "000009": 1300.7639, "00000a": "Comanche Peak", "00000b": "Montane", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "count": 13878, "distance": {"bins": [[0.1276, 3], [0.15426, 15], [0.18677, 37], [0.21308, 71], [0.24379, 190], [0.27322, 253], [0.30594, 629], [0.33906, 553], [0.36642, 806], [0.39378, 829], [0.41864, 946], [0.45035, 1908], [0.48212, 1422], [0.5058, 1238], [0.52941, 1132], [0.55633, 1122], [0.58278, 716], [0.60702, 538], [0.63597, 479], [0.66611, 271], [0.69053, 225], [0.7146, 114], [0.73774, 93], [0.76329, 78], [0.78941, 64], [0.81365, 51], [0.83648, 33], [0.86575, 33], [0.8964, 15], [0.92474, 5], [0.95367, 8], [1.03382, 1]], "exact_histogram": {"open_max": 62, "populations": [7, 52, 197, 506, 952, 1455, 2061, 2726, 2412, 1599, 881, 502, 240, 139, 87], "start": 0.1, "width": 0.05}, "maximum": 1.03382, "mean": 0.48288, "median": 0.48189, "minimum": 0.11772, "population": 13878, "standard_deviation": 0.11579, "sum": 6701.3435, "sum_squares": 3421.9611, "variance": 0.01341}, "id": "00002e", "name": "Cluster 46"}, {"center": {"000000": 2289.89247, "000001": 313.57389, "000002": 29.69005, "000003": 188.04888, "000004": 81.49741, "000005": 780.38125, "000006": 135.3364, "000007": 201.67625, "000008": 197.09661, "000009": 800.93732, "00000a": "Cache la Poudre", "00000b": "Montane", "00000c": "Igneous", "00000d": "Ponderosa Pine"}, "count": 9030, "distance": {"bins": [[0.11847, 7], [0.16829, 55], [0.20516, 101], [0.23916, 166], [0.27483, 246], [0.30679, 351], [0.33756, 409], [0.37181, 645], [0.41125, 861], [0.4519, 947], [0.49525, 965], [0.5436, 1153], [0.59286, 884], [0.63815, 694], [0.68152, 479], [0.71906, 296], [0.75262, 201], [0.78966, 166], [0.83342, 106], [0.87592, 107], [0.92645, 54], [0.96168, 36], [0.99821, 34], [1.04149, 24], [1.08926, 13], [1.13738, 3], [1.16579, 8], [1.20357, 5], [1.25813, 8], [1.35958, 4], [1.56319, 1], [1.59161, 1]], "exact_histogram": {"open_max": 33, "populations": [12, 86, 202, 369, 618, 883, 1108, 1107, 1096, 1007, 830, 618, 416, 242, 129, 112, 65, 48, 32, 17], "start": 0.1, "width": 0.05}, "maximum": 1.59161, "mean": 0.51786, "median": 0.50655, "minimum": 0.10065, "population": 9030, "standard_deviation": 0.16356, "sum": 4676.23937, "sum_squares": 2663.15174, "variance": 0.02675}, "id": "00002f", "name": "Cluster 47"}, {"center": {"000000": 2347.85146, "000001": 301.89171, "000002": 16.64782, "000003": 174.77959, "000004": 45.4322, "000005": 767.43939, "000006": 179.50359, "000007": 228.83325, "000008": 186.35218, "000009": 788.68567, "00000a": "Cache la Poudre", "00000b": "Montane", "00000c": "Igneous", "00000d": "Ponderosa Pine"}, "count": 10797, "distance": {"bins": [[0.14032, 8], [0.16396, 29], [0.19601, 52], [0.22839, 80], [0.25838, 131], [0.2844, 249], [0.31234, 558], [0.34298, 637], [0.37354, 854], [0.40331, 898], [0.4287, 773], [0.45232, 842], [0.47576, 839], [0.49794, 861], [0.52022, 827], [0.5435, 841], [0.56634, 569], [0.5881, 461], [0.60937, 373], [0.63125, 293], [0.65957, 273], [0.69043, 122], [0.7212, 120], [0.74934, 38], [0.78019, 37], [0.81343, 16], [0.86576, 4], [0.90133, 1], [0.9303, 5], [0.96689, 3], [0.98909, 1], [1.03279, 2]], "exact_histogram": {"open_max": 34, "populations": [7, 61, 122, 434, 956, 1360, 1653, 1868, 1840, 1221, 712, 316, 162, 51], "start": 0.1, "width": 0.05}, "maximum": 1.03342, "mean": 0.4707, "median": 0.47218, "minimum": 0.12634, "population": 10797, "standard_deviation": 0.11116, "sum": 5082.15691, "sum_squares": 2525.5849, "variance": 0.01236}, "id": "000030", "name": "Cluster 48"}], "fields": {"000000": {"column_number": 0, "datatype": "int16", "name": "Elevation", "optype": "numeric", "order": 0, "preferred": true, "summary": {"bins": [[1920.54132, 484], [1976.93606, 782], [2029.75316, 1422], [2078.35864, 2331], [2149.22315, 4423], [2214.17135, 2778], [2264.40651, 3840], [2320.7674, 6552], [2388.91528, 8805], [2460.79333, 9266], [2532.89363, 13077], [2597.68729, 18474], [2672.65264, 25720], [2735.82147, 22988], [2787.86884, 27341], [2846.3561, 35299], [2907.42263, 47841], [2970.69066, 66962], [3031.46244, 52625], [3087.62228, 42172], [3141.12845, 48681], [3199.02871, 48725], [3254.67244, 39376], [3309.46012, 24596], [3375.35696, 17341], [3436.23291, 5809], [3504.10368, 1765], [3567.56542, 642], [3635.29082, 392], [3713.76563, 256], [3775.57778, 90], [3828, 157]], "kurtosis": 0.74923, "maximum": 3858, "mean": 2959.3653, "median": 2994.9638, "minimum": 1859, "missing_count": 0, "population": 581012, "skewness": -0.81759, "standard_deviation": 279.98473, "sum": 1719426752, "sum_squares": 5133958162274, "variance": 78391.45141}}, "000001": {"column_number": 1, "datatype": "int16", "name": "Aspect", "optype": "numeric", "order": 1, "preferred": true, "summary": {"bins": [[3.857, 21909], [14.30505, 24806], [24.26179, 23083], [33.3271, 24259], [44.01561, 29529], [55.53855, 28959], [67.03261, 29443], [78.67159, 25459], [90.65597, 27050], [102.46136, 22414], [113.73287, 20357], [124.94409, 18994], [137.20212, 21037], [149.98047, 15464], [161.78404, 13924], [173.83321, 13688], [185.503, 13326], [198.52139, 13602], [211.65582, 12479], [225.10612, 11185], [235.32011, 6279], [244.82289, 10248], [257.31765, 11012], [270.02309, 12475], [282.08976, 11620], [292.05282, 10904], [302.14347, 13766], [312.77816, 16940], [323.37442, 18992], [334.07914, 19813], [343.71652, 16400], [353.45448, 21596]], "kurtosis": -1.22024, "maximum": 360, "mean": 155.65681, "median": 127.33335, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": 0.40263, "standard_deviation": 111.91372, "sum": 90438473, "sum_squares": 21354341379, "variance": 12524.68095}}, "000002": {"column_number": 2, "datatype": "int8", "name": "Slope", "optype": "numeric", "order": 2, "preferred": true, "summary": {"bins": [[0.60408, 490], [2.18325, 19443], [4.29403, 33772], [6.15353, 45797], [8.07074, 58752], [10.01122, 65871], [11.96976, 66069], [13.93968, 60610], [15.89649, 52671], [17.89003, 42303], [19.85528, 33348], [21.82877, 26041], [23.80922, 21166], [25.82147, 16361], [28.1103, 14587], [30.54344, 10095], [32.9201, 5294], [34.86183, 3503], [36.76701, 2116], [38.64665, 1282], [40.56829, 637], [42.45513, 312], [44.41981, 212], [46.40476, 126], [48.89412, 85], [51.22222, 27], [53.53846, 13], [56.61538, 13], [59, 3], [60.66667, 6], [62.33333, 3], [65, 4]], "kurtosis": 0.58118, "maximum": 66, "mean": 14.1037, "median": 12.98567, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": 0.78927, "standard_deviation": 7.48824, "sum": 8194421, "sum_squares": 148151159, "variance": 56.07377}}, "000003": {"column_number": 3, "datatype": "int16", "name": "Dist. to water", "optype": "numeric", "order": 3, "preferred": true, "summary": {"bins": [[24.0374, 76600], [76.15073, 62078], [118.58803, 51662], [161.47182, 48281], [199.23181, 51482], [243.54234, 45079], [291.25892, 49012], [341.89913, 40170], [383.62717, 22069], [420.17104, 23766], [462.65824, 21995], [506.45123, 19460], [555.80928, 17617], [599.70202, 9128], [641.4217, 10370], [683.3007, 6578], [734.31454, 7983], [791.4307, 4755], [837.74327, 3455], [883.37842, 2336], [924.88896, 1657], [961.83347, 1201], [996.97431, 1051], [1036.09969, 953], [1075.86197, 710], [1115.08182, 550], [1156.97778, 405], [1202.73047, 256], [1241.13415, 164], [1278.7913, 115], [1324.37736, 53], [1368.90476, 21]], "kurtosis": 1.36616, "maximum": 1397, "mean": 269.42822, "median": 222.49333, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": 1.14043, "standard_deviation": 212.54936, "sum": 156541027, "sum_squares": 68425036479, "variance": 45177.22856}}, "000004": {"column_number": 4, "datatype": "int16", "name": "Depth to water", "optype": "numeric", "order": 4, "preferred": true, "summary": {"bins": [[-173, 1], [-153.17073, 41], [-130.07556, 225], [-108.03118, 449], [-82.0875, 1120], [-57.47057, 2922], [-32.51441, 8221], [-12.60013, 17961], [8.746, 238767], [35.42734, 95966], [57.52127, 75431], [83.48084, 54020], [107.46842, 24653], [132.03873, 23416], [159.24623, 11347], [184.27167, 11050], [211.85431, 6548], [239.91357, 3691], [270.56623, 2144], [297.23371, 967], [321.79328, 953], [347.55655, 336], [370.78517, 391], [402.54386, 228], [440.06667, 15], [460.78571, 14], [484.54545, 22], [508.10526, 19], [528.4, 20], [548.21739, 23], [569.08333, 24], [590.51852, 27]], "kurtosis": 5.25024, "maximum": 601, "mean": 46.41886, "median": 29.01573, "minimum": -173, "missing_count": 0, "population": 581012, "skewness": 1.79025, "standard_deviation": 58.29523, "sum": 26969912, "sum_squares": 3226381898, "variance": 3398.33403}}, "000005": {"column_number": 5, "datatype": "int16", "name": "Dist. to road", "optype": "numeric", "order": 5, "preferred": true, "summary": {"bins": [[186.1199, 18048], [417.20997, 32614], [665.3243, 38477], [901.297, 38367], [1116.40413, 40212], [1381.80052, 57072], [1661.32852, 35066], [1871.36325, 25847], [2060.62184, 26957], [2257.83075, 23268], [2433.5463, 19275], [2638.1014, 25257], [2834.0936, 16133], [3014.17802, 20031], [3233.11234, 21737], [3505.67316, 21512], [3757.19379, 12328], [3973.22942, 14162], [4191.59889, 11199], [4393.61446, 12048], [4603.63017, 9764], [4827.89847, 9859], [5071.72523, 9972], [5303.73802, 10848], [5554.541, 9438], [5708.32683, 4565], [5906.03926, 10163], [6164.28728, 3742], [6322.21171, 1384], [6518.88953, 869], [6711.1306, 513], [6925.12281, 285]], "kurtosis": -0.38372, "maximum": 7117, "mean": 2350.14661, "median": 1999.30424, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": 0.71368, "standard_deviation": 1559.25487, "sum": 1365463383, "sum_squares": 4621637096965, "variance": 2431275.7493}}, "000006": {"column_number": 6, "datatype": "int16", "name": "Shade at 9am", "optype": "numeric", "order": 6, "preferred": true, "summary": {"bins": [[0, 13], [36, 1], [47.33333, 3], [56.89655, 29], [67.18421, 76], [74.51579, 95], [81.3631, 168], [88.28112, 249], [94.71709, 357], [102.51012, 692], [109.39055, 804], [116.13368, 1152], [121.53945, 1394], [127.40782, 1996], [133.67657, 2761], [140.23037, 4050], [148.0531, 6460], [154.32554, 5434], [160.75373, 8304], [167.26157, 10674], [173.46791, 13133], [179.92833, 21140], [186.28944, 19645], [194.42276, 52245], [202.40198, 38171], [208.60429, 47275], [214.65586, 53345], [220.49635, 57981], [225.97454, 59705], [231.88981, 67383], [238.55188, 57310], [247.03157, 48967]], "kurtosis": 1.87549, "maximum": 254, "mean": 212.14605, "median": 217.60343, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": -1.18114, "standard_deviation": 26.76989, "sum": 123259400, "sum_squares": 26565362804, "variance": 716.62695}}, "000007": {"column_number": 7, "datatype": "int16", "name": "Shade at noon", "optype": "numeric", "order": 7, "preferred": true, "summary": {"bins": [[0, 5], [30, 1], [42.33333, 3], [53, 2], [63.5, 2], [69.5, 2], [75.75, 4], [83.54545, 11], [90.88889, 9], [98.8, 45], [106.94737, 57], [113.47222, 72], [121.42446, 139], [128.52045, 269], [135.06284, 366], [140.91564, 486], [147.87568, 1287], [155.28437, 2022], [162.20663, 2686], [170.41808, 6360], [178.25774, 7329], [185.52978, 12507], [191.81688, 14089], [198.56144, 24863], [205.72587, 44457], [212.73425, 53911], [218.50974, 60509], [224.56902, 80238], [229.66734, 58173], [234.89652, 73617], [241.91922, 75029], [249.92679, 62462]], "kurtosis": 2.06618, "maximum": 254, "mean": 223.31872, "median": 225.81115, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": -1.06305, "standard_deviation": 19.7687, "sum": 129750854, "sum_squares": 29202854060, "variance": 390.80139}}, "000008": {"column_number": 8, "datatype": "int16", "name": "Shade at 3pm", "optype": "numeric", "order": 8, "preferred": true, "summary": {"bins": [[0.19309, 1419], [7, 3], [11.91724, 435], [20.86457, 827], [29.49442, 1345], [37.78986, 2032], [45.17705, 1830], [51.89991, 3327], [61.13031, 5978], [70.6014, 9029], [80.18078, 12579], [89.98087, 19128], [99.27901, 22465], [107.93646, 31886], [116.72115, 42360], [123.94711, 30079], [129.1432, 34741], [136.20024, 54159], [143.34971, 41380], [150.09725, 46344], [157.63697, 43176], [166.16825, 41903], [174.99825, 34938], [181.41394, 19469], [188.25798, 26289], [196.43686, 18864], [204.60205, 13459], [213.71655, 11480], [223.18063, 5038], [232.03009, 3556], [241.09098, 1286], [247.45192, 208]], "kurtosis": 0.39843, "maximum": 254, "mean": 142.52826, "median": 142.70121, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": -0.27705, "standard_deviation": 38.27453, "sum": 82810631, "sum_squares": 12654001389, "variance": 1464.93959}}, "000009": {"column_number": 9, "datatype": "int16", "name": "Dist. to fire", "optype": "numeric", "order": 9, "preferred": true, "summary": {"bins": [[180.63032, 12086], [350.79228, 17721], [532.34504, 35822], [755.87942, 47246], [996.2039, 52555], [1212.59435, 40343], [1418.94217, 48711], [1630.10605, 39396], [1837.82338, 43608], [2074.19429, 41685], [2301.68033, 34877], [2522.28602, 34138], [2752.55897, 30467], [3014.7698, 19075], [3279.50473, 12260], [3495.62834, 8489], [3733.41413, 7867], [4009.91647, 8596], [4282.79421, 5632], [4514.04689, 4671], [4721.13411, 4228], [4918.74741, 3955], [5114.62719, 3876], [5349.79919, 4213], [5551.75732, 3519], [5765.72237, 4225], [6008.7017, 3587], [6219.81919, 3335], [6416.23283, 2942], [6618.03695, 1326], [6842.41005, 378], [7023.97268, 183]], "kurtosis": 1.64578, "maximum": 7173, "mean": 1980.29123, "median": 1714.34873, "minimum": 0, "missing_count": 0, "population": 581012, "skewness": 1.28864, "standard_deviation": 1324.19521, "sum": 1150572966, "sum_squares": 3297268244304, "variance": 1753492.9536}}, "00000a": {"column_number": 10, "datatype": "string", "name": "Wilderness Area", "optype": "categorical", "order": 10, "preferred": true, "summary": {"categories": [["Rawah", 260796], ["Comanche Peak", 253364], ["Cache la Poudre", 36968], ["Neota", 29884]], "missing_count": 0}, "term_analysis": {"enabled": true}}, "00000b": {"column_number": 11, "datatype": "string", "name": "Climate", "optype": "categorical", "order": 11, "preferred": true, "summary": {"categories": [["Montane + subalpine", 285199], ["Montane", 93593], ["Lower montane", 35947], ["Montane dry + montane", 602], ["Montane dry", 284]], "missing_count": 165387}, "term_analysis": {"enabled": true}}, "00000c": {"column_number": 12, "datatype": "string", "name": "Geology", "optype": "categorical", "order": 12, "preferred": true, "summary": {"categories": [["Igneous", 302082], ["Glacial", 92272], ["Alluvium", 20987], ["Sedimentary", 284]], "missing_count": 165387}, "term_analysis": {"enabled": true}}, "00000d": {"column_number": 13, "datatype": "string", "name": "Forest Type", "optype": "categorical", "order": 13, "preferred": true, "summary": {"categories": [["Lodgepole Pine", 283301], ["Spruce-Fur", 211840], ["Ponderosa Pine", 35754], ["Krummholz", 20510], ["Douglas-fir", 17367], ["Aspen", 9493], ["Cottonwood-Willow", 2747]], "missing_count": 0}, "term_analysis": {"enabled": true}}}, "global": {"center": {"000000": 2959.03936, "000001": 156.39827, "000002": 14.11621, "000003": 270.59128, "000004": 46.63371, "000005": 2357.31494, "000006": 211.99132, "000007": 223.44794, "000008": 142.83455, "000009": 1977.52772, "00000a": "Rawah", "00000b": "Montane + subalpine", "00000c": "Igneous", "00000d": "Lodgepole Pine"}, "distance": {"bins": [[0.38644, 9], [0.43478, 20305], [0.5191, 34119], [0.59593, 85367], [0.68352, 151388], [0.77125, 95268], [0.84819, 59249], [0.92691, 44049], [1.00774, 28162], [1.08448, 17734], [1.15805, 13348], [1.24204, 11814], [1.33812, 7463], [1.43016, 4173], [1.51134, 2600], [1.58538, 1724], [1.65454, 1372], [1.73061, 1091], [1.81795, 824], [1.92078, 456], [2.02272, 169], [2.11562, 94], [2.22276, 47], [2.33752, 44], [2.43362, 93], [2.51603, 31], [2.61506, 6], [2.68981, 1], [2.84408, 2], [2.92884, 3], [3.05156, 1], [3.20095, 6]], "maximum": 3.25772, "mean": 0.78045, "median": 0.73194, "minimum": 0.30966, "population": 581012, "standard_deviation": 0.22339, "sum": 453451.48938, "sum_squares": 382891.36495, "variance": 0.0499}}, "ratio_ss": 0.67787, "total_ss": 382891.36495, "within_ss": 123341.75582}, "code": 200, "columns": 14, "configuration": null, "configuration_status": false, "created": "2017-06-28T16:42:49.757000", "credits": 179.47224044799805, "credits_per_prediction": 0.0, "critical_value": 5, "dataset": "dataset/59122b9f0144043f550006dd", "dataset_field_types": {"categorical": 4, "datetime": 0, "effective_fields": 14, "items": 0, "numeric": 10, "preferred": 14, "text": 0, "total": 14}, "dataset_status": true, "dataset_type": 0, "description": "", "excluded_fields": [], "field_scales": {}, "fields_meta": {"count": 14, "limit": 1000, "offset": 0, "query_total": 14, "total": 14}, "input_fields": ["000000", "000001", "000002", "000003", "000004", "000005", "000006", "000007", "000008", "000009", "00000a", "00000b", "00000c", "00000d"], "k": 49, "locale": "en-us", "max_columns": 14, "max_rows": 581012, "model_clusters": false, "name": "nice-cover dataset's cluster", "number_of_batchcentroids": 0, "number_of_centroids": 0, "number_of_public_centroids": 0, "out_of_bag": false, "price": 0.0, "private": true, "project": "project/571d74c93bbd2104dd007530", "range": [1, 581012], "replacement": false, "resource": "cluster/5953dc8949c4a136580017b5", "rows": 581012, "sample_rate": 1.0, "scales": {"000000": 0.0008353084670048263, "000001": 0.0020865203214544803, "000002": 0.031240459144704438, "000003": 0.0011001531681006048, "000004": 0.004038899343788945, "000005": 0.00014984460448436688, "000006": 0.008748540524246153, "000007": 0.01186918000911421, "000008": 0.006108710228601229, "000009": 0.00017647896795971565, "00000a": 0.23341147630513523, "00000b": 0.23341147630513523, "00000c": 0.23341147630513523, "00000d": 0.23341147630513523}, "shared": false, "size": 47047571, "source": "source/571d75c649c4a10b9d008f71", "source_status": true, "status": {"code": 5, "elapsed": 178375, "message": "The cluster has been created", "progress": 1.0}, "subscription": true, "summary_fields": [], "tags": [], "updated": "2017-06-28T16:45:54.189000", "white_box": false}
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<style>
#words {
position: absolute;
top: 50px;
left: 700px;
display: flex;
flex-direction: column;
}
</style>
<head>
<script src="//d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/seedrandom/2.4.0/seedrandom.min.js"></script>
<script src="cluster-dist.js" charset="utf-8"></script>
<script src="tsne.js" charset="utf-8"></script>
</head>
<body>
<svg width="850" height="500"></svg>
<div id="words"></div>
<script>
var width = 850;
var height = 500;
var colors = d3.scale.category20();
d3.json("clustered-cover.json", function(error, resource) {
var fields = resource.clusters.fields;
var coords = tsneLayout(resource, "defaultseed");
var clusters = resource.clusters.clusters;
var clusterCount = Object.keys(clusters).length;
var range = Array.apply(null, Array(clusterCount)).map(function (_, i) {return i;});
// scale the tsne coordinates relative to the svg size
coords = scaleDimension(width, width/10, 0, coords);
coords = scaleDimension(height, height/10, 1, coords);
var words = d3.select("#words");
var colorFn = function (i, lightness) {
return d3.lab(lightness,
(200 * coords[i][0] / width) - 100,
(200 * coords[i][1] / height) - 100);
};
var svg = d3.select("svg");
svg.style("width", width);
svg.style("height", height);
svg.selectAll(".dot").data(range).enter()
.append("circle")
.attr("class", "dot")
.attr("r", function (i) {
// set topic radius relative to the 'topic_means' score
var area = clusters[i].count / resource.rows;
r = Math.sqrt(area) * 60;
return r;
})
.on("mouseenter", function (i) {
words.selectAll(".word").remove();
var cluster = clusters[i];
for (var k in cluster.center) {
var name = fields[k].name;
var val;
if (typeof cluster.center[k] == 'object') {
name += "(tokens)";
val = Array.from(cluster.center[k]);
} else {
val = cluster.center[k];
}
name += " : ";
words.append("text")
.attr("class", "word")
.text(name + val);
}
words.append("text").attr("class", "word")
.text("Cluster Size : " + cluster.count);
})
.on("mouseleave", function (i) {
words.selectAll(".word").remove();
})
.attr("cx", function (i) {return coords[i][0];})
.attr("cy", function (i) {return coords[i][1];})
.style("fill", function (i) { return colorFn(i, 80); })
.style("stroke", function (i) { return colorFn(i, 65); });
});
function scaleDimension(dimSize, buffer, dimIndex, coords) {
var minDim = coords[0][dimIndex];
var maxDim = coords[0][dimIndex];
for (var i in coords) {
minDim = Math.min(minDim, coords[i][dimIndex]);
maxDim = Math.max(maxDim, coords[i][dimIndex]);
}
var diff = maxDim - minDim;
var dimScale = dimSize - 2 * buffer;
for (var i in coords) {
coords[i][dimIndex] = (((coords[i][dimIndex] - minDim) / diff) * dimScale) + buffer;
}
return coords;
}
function tsneLayout(resource, seed) {
Math.seedrandom(seed);
var clusterCount = resource.clusters.clusters.length;
var perplexity = Math.round(clusterCount / 10);
perplexity = Math.max(perplexity, 2);
console.log(perplexity);
var tsne = new tsnejs.tSNE({epsilon: 10, perplexity: perplexity});
tsne.initDataDist(distMatrix(resource));
for (var k = 0; k < 300; k++) {
tsne.step();
}
return tsne.getSolution();
}
</script>
</body>
</html>
// from https://github.com/karpathy/tsnejs
// create main global object
var tsnejs = tsnejs || { REVISION: 'ALPHA' };
(function(global) {
"use strict";
// utility function
var assert = function(condition, message) {
if (!condition) { throw message || "Assertion failed"; }
}
// syntax sugar
var getopt = function(opt, field, defaultval) {
if(opt.hasOwnProperty(field)) {
return opt[field];
} else {
return defaultval;
}
}
// return 0 mean unit standard deviation random number
var return_v = false;
var v_val = 0.0;
var gaussRandom = function() {
if(return_v) {
return_v = false;
return v_val;
}
var u = 2*Math.random()-1;
var v = 2*Math.random()-1;
var r = u*u + v*v;
if(r == 0 || r > 1) return gaussRandom();
var c = Math.sqrt(-2*Math.log(r)/r);
v_val = v*c; // cache this for next function call for efficiency
return_v = true;
return u*c;
}
// return random normal number
var randn = function(mu, std){ return mu+gaussRandom()*std; }
// utilitity that creates contiguous vector of zeros of size n
var zeros = function(n) {
if(typeof(n)==='undefined' || isNaN(n)) { return []; }
if(typeof ArrayBuffer === 'undefined') {
// lacking browser support
var arr = new Array(n);
for(var i=0;i<n;i++) { arr[i]= 0; }
return arr;
} else {
return new Float64Array(n); // typed arrays are faster
}
}
// utility that returns 2d array filled with random numbers
// or with value s, if provided
var randn2d = function(n,d,s) {
var uses = typeof s !== 'undefined';
var x = [];
for(var i=0;i<n;i++) {
var xhere = [];
for(var j=0;j<d;j++) {
if(uses) {
xhere.push(s);
} else {
xhere.push(randn(0.0, 1e-4));
}
}
x.push(xhere);
}
return x;
}
// compute L2 distance between two vectors
var L2 = function(x1, x2) {
var D = x1.length;
var d = 0;
for(var i=0;i<D;i++) {
var x1i = x1[i];
var x2i = x2[i];
d += (x1i-x2i)*(x1i-x2i);
}
return d;
}
// compute pairwise distance in all vectors in X
var xtod = function(X) {
var N = X.length;
var dist = zeros(N * N); // allocate contiguous array
for(var i=0;i<N;i++) {
for(var j=i+1;j<N;j++) {
var d = L2(X[i], X[j]);
dist[i*N+j] = d;
dist[j*N+i] = d;
}
}
return dist;
}
// compute (p_{i|j} + p_{j|i})/(2n)
var d2p = function(D, perplexity, tol) {
var Nf = Math.sqrt(D.length); // this better be an integer
var N = Math.floor(Nf);
assert(N === Nf, "D should have square number of elements.");
var Htarget = Math.log(perplexity); // target entropy of distribution
var P = zeros(N * N); // temporary probability matrix
var prow = zeros(N); // a temporary storage compartment
for(var i=0;i<N;i++) {
var betamin = -Infinity;
var betamax = Infinity;
var beta = 1; // initial value of precision
var done = false;
var maxtries = 50;
// perform binary search to find a suitable precision beta
// so that the entropy of the distribution is appropriate
var num = 0;
while(!done) {
//debugger;
// compute entropy and kernel row with beta precision
var psum = 0.0;
for(var j=0;j<N;j++) {
var pj = Math.exp(- D[i*N+j] * beta);
if(i===j) { pj = 0; } // we dont care about diagonals
prow[j] = pj;
psum += pj;
}
// normalize p and compute entropy
var Hhere = 0.0;
for(var j=0;j<N;j++) {
var pj = prow[j] / psum;
prow[j] = pj;
if(pj > 1e-7) Hhere -= pj * Math.log(pj);
}
// adjust beta based on result
if(Hhere > Htarget) {
// entropy was too high (distribution too diffuse)
// so we need to increase the precision for more peaky distribution
betamin = beta; // move up the bounds
if(betamax === Infinity) { beta = beta * 2; }
else { beta = (beta + betamax) / 2; }
} else {
// converse case. make distrubtion less peaky
betamax = beta;
if(betamin === -Infinity) { beta = beta / 2; }
else { beta = (beta + betamin) / 2; }
}
// stopping conditions: too many tries or got a good precision
num++;
if(Math.abs(Hhere - Htarget) < tol) { done = true; }
if(num >= maxtries) { done = true; }
}
// console.log('data point ' + i + ' gets precision ' + beta + ' after ' + num + ' binary search steps.');
// copy over the final prow to P at row i
for(var j=0;j<N;j++) { P[i*N+j] = prow[j]; }
} // end loop over examples i
// symmetrize P and normalize it to sum to 1 over all ij
var Pout = zeros(N * N);
var N2 = N*2;
for(var i=0;i<N;i++) {
for(var j=0;j<N;j++) {
Pout[i*N+j] = Math.max((P[i*N+j] + P[j*N+i])/N2, 1e-100);
}
}
return Pout;
}
// helper function
function sign(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; }
var tSNE = function(opt) {
var opt = opt || {};
this.perplexity = getopt(opt, "perplexity", 30); // effective number of nearest neighbors
this.dim = getopt(opt, "dim", 2); // by default 2-D tSNE
this.epsilon = getopt(opt, "epsilon", 10); // learning rate
this.iter = 0;
}
tSNE.prototype = {
// this function takes a set of high-dimensional points
// and creates matrix P from them using gaussian kernel
initDataRaw: function(X) {
var N = X.length;
var D = X[0].length;
assert(N > 0, " X is empty? You must have some data!");
assert(D > 0, " X[0] is empty? Where is the data?");
var dists = xtod(X); // convert X to distances using gaussian kernel
this.P = d2p(dists, this.perplexity, 1e-4); // attach to object
this.N = N; // back up the size of the dataset
this.initSolution(); // refresh this
},
// this function takes a given distance matrix and creates
// matrix P from them.
// D is assumed to be provided as a list of lists, and should be symmetric
initDataDist: function(D) {
var N = D.length;
assert(N > 0, " X is empty? You must have some data!");
// convert D to a (fast) typed array version
var dists = zeros(N * N); // allocate contiguous array
for(var i=0;i<N;i++) {
for(var j=i+1;j<N;j++) {
var d = D[i][j];
dists[i*N+j] = d;
dists[j*N+i] = d;
}
}
this.P = d2p(dists, this.perplexity, 1e-4);
this.N = N;
this.initSolution(); // refresh this
},
// (re)initializes the solution to random
initSolution: function() {
// generate random solution to t-SNE
this.Y = randn2d(this.N, this.dim); // the solution
this.gains = randn2d(this.N, this.dim, 1.0); // step gains to accelerate progress in unchanging directions
this.ystep = randn2d(this.N, this.dim, 0.0); // momentum accumulator
this.iter = 0;
},
// return pointer to current solution
getSolution: function() {
return this.Y;
},
// perform a single step of optimization to improve the embedding
step: function() {
this.iter += 1;
var N = this.N;
var cg = this.costGrad(this.Y); // evaluate gradient
var cost = cg.cost;
var grad = cg.grad;
// perform gradient step
var ymean = zeros(this.dim);
for(var i=0;i<N;i++) {
for(var d=0;d<this.dim;d++) {
var gid = grad[i][d];
var sid = this.ystep[i][d];
var gainid = this.gains[i][d];
// compute gain update
var newgain = sign(gid) === sign(sid) ? gainid * 0.8 : gainid + 0.2;
if(newgain < 0.01) newgain = 0.01; // clamp
this.gains[i][d] = newgain; // store for next turn
// compute momentum step direction
var momval = this.iter < 250 ? 0.5 : 0.8;
var newsid = momval * sid - this.epsilon * newgain * grad[i][d];
this.ystep[i][d] = newsid; // remember the step we took
// step!
this.Y[i][d] += newsid;
ymean[d] += this.Y[i][d]; // accumulate mean so that we can center later
}
}
// reproject Y to be zero mean
for(var i=0;i<N;i++) {
for(var d=0;d<this.dim;d++) {
this.Y[i][d] -= ymean[d]/N;
}
}
//if(this.iter%100===0) console.log('iter ' + this.iter + ', cost: ' + cost);
return cost; // return current cost
},
// for debugging: gradient check
debugGrad: function() {
var N = this.N;
var cg = this.costGrad(this.Y); // evaluate gradient
var cost = cg.cost;
var grad = cg.grad;
var e = 1e-5;
for(var i=0;i<N;i++) {
for(var d=0;d<this.dim;d++) {
var yold = this.Y[i][d];
this.Y[i][d] = yold + e;
var cg0 = this.costGrad(this.Y);
this.Y[i][d] = yold - e;
var cg1 = this.costGrad(this.Y);
var analytic = grad[i][d];
var numerical = (cg0.cost - cg1.cost) / ( 2 * e );
console.log(i + ',' + d + ': gradcheck analytic: ' + analytic + ' vs. numerical: ' + numerical);
this.Y[i][d] = yold;
}
}
},
// return cost and gradient, given an arrangement
costGrad: function(Y) {
var N = this.N;
var dim = this.dim; // dim of output space
var P = this.P;
var pmul = this.iter < 100 ? 4 : 1; // trick that helps with local optima
// compute current Q distribution, unnormalized first
var Qu = zeros(N * N);
var qsum = 0.0;
for(var i=0;i<N;i++) {
for(var j=i+1;j<N;j++) {
var dsum = 0.0;
for(var d=0;d<dim;d++) {
var dhere = Y[i][d] - Y[j][d];
dsum += dhere * dhere;
}
var qu = 1.0 / (1.0 + dsum); // Student t-distribution
Qu[i*N+j] = qu;
Qu[j*N+i] = qu;
qsum += 2 * qu;
}
}
// normalize Q distribution to sum to 1
var NN = N*N;
var Q = zeros(NN);
for(var q=0;q<NN;q++) { Q[q] = Math.max(Qu[q] / qsum, 1e-100); }
var cost = 0.0;
var grad = [];
for(var i=0;i<N;i++) {
var gsum = new Array(dim); // init grad for point i
for(var d=0;d<dim;d++) { gsum[d] = 0.0; }
for(var j=0;j<N;j++) {
cost += - P[i*N+j] * Math.log(Q[i*N+j]); // accumulate cost (the non-constant portion at least...)
var premult = 4 * (pmul * P[i*N+j] - Q[i*N+j]) * Qu[i*N+j];
for(var d=0;d<dim;d++) {
gsum[d] += premult * (Y[i][d] - Y[j][d]);
}
}
grad.push(gsum);
}
return {cost: cost, grad: grad};
}
}
global.tSNE = tSNE; // export tSNE class
})(tsnejs);
// export the library to window, or to module in nodejs
(function(lib) {
"use strict";
if (typeof module === "undefined" || typeof module.exports === "undefined") {
window.tsnejs = lib; // in ordinary browser attach library to window
} else {
module.exports = lib; // in nodejs
}
})(tsnejs);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment