From ed9f844cef4ff05b477f08d53a7a4a3927e27663 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 6 Feb 2020 15:27:42 -0800 Subject: [PATCH] Fix calculation of mean when accumulating attributes in clusters --- CHANGELOG.md | 4 ++ ...cat@concat_-Ethecomma@comma_-r1_-K100.json | 62 +++++++++---------- ...n_-Etheconcat@concat_-Ethecomma@comma.json | 18 +++--- tile.cpp | 42 ++++++------- version.hpp | 2 +- 5 files changed, 66 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f2647cf3..c22409082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.35.0 + +* Fix calculation of mean when accumulating attributes in clusters + ## 1.34.6 * Fix crash when there are null entries in the metadata table diff --git a/tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma_-r1_-K100.json b/tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma_-r1_-K100.json index fc7ebc8f3..c8d7c119b 100644 --- a/tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma_-r1_-K100.json +++ b/tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma_-r1_-K100.json @@ -4,7 +4,7 @@ "description": "tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma_-r1_-K100.json.check.mbtiles", "format": "pbf", "generator_options": "./tippecanoe -q -a@ -f -o tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma_-r1_-K100.json.check.mbtiles -z3 -Ethesum:sum -Etheproduct:product -Ethemax:max -Ethemin:min -Ethemean:mean -Etheconcat:concat -Ethecomma:comma -r1 -K100 tests/accumulate/in.json", -"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 3, \"fields\": {\"clustered\": \"Boolean\", \"point_count\": \"Number\", \"sqrt_point_count\": \"Number\", \"thecomma\": \"Mixed\", \"theconcat\": \"Mixed\", \"themax\": \"Number\", \"themean\": \"Number\", \"themin\": \"Number\", \"theproduct\": \"Number\", \"thesum\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 100,\"geometry\": \"Point\",\"attributeCount\": 10,\"attributes\": [{\"attribute\": \"clustered\",\"count\": 1,\"type\": \"boolean\",\"values\": [true]},{\"attribute\": \"point_count\",\"count\": 13,\"type\": \"number\",\"values\": [10,14,16,17,18,2,3,4,5,6,7,8,9],\"min\": 2,\"max\": 18},{\"attribute\": \"sqrt_point_count\",\"count\": 13,\"type\": \"number\",\"values\": [1.410000,1.730000,2.000000,2.240000,2.450000,2.650000,2.830000,3.000000,3.160000,3.740000,4.000000,4.120000,4.240000],\"min\": 1.41,\"max\": 4.24},{\"attribute\": \"thecomma\",\"count\": 159,\"type\": \"mixed\",\"values\": [1,\"1,31,70\",\"1,31,70,64,8,44,6\",10,\"10,35,79\",100,11,\"11,2,16,82,26,89,25,55,91\",12,13,14,15,16,17,\"17,62,69\",18,19,2,\"2,16\",\"2,16,82,26\",\"2,16,82,26,89,25\",20,21,\"21,13\",22,23,\"23,72,29,59\",24,25,26,27,28,\"28,67,74,65,5,12\",29,3,\"3,14\",\"3,14,78\",\"3,14,78,28,67,74,65,5,12,94,84,51,57,37\",30,31,\"31,70\",32,\"32,75\",33,\"33,17,62,69,81,7\",\"33,17,62,69,81,7,93,46,76,48,18,39,15,80,85,24\",34,35,\"35,79\",36,37,38,\"38,49\",\"38,49,43\",\"38,49,43,54,71,9,32,75\",39,4,40,41,42,\"42,100,66,22\",43,44,\"44,6\",45,46,\"46,76\",\"46,76,48,18,39\",\"46,76,48,18,39,15\",47,48,\"48,18,39\",49,5,50,51,52,\"52,61,36,87,96\",53,\"53,92\",54,\"54,71,9\",55,\"55,91\",56,57,\"57,37\",58,59,\"59,42,100,66,22,63,95,73,86,19\",6,60,61,\"61,36\",\"61,36,87,96\",62,63,\"63,95,73\",\"63,95,73,86,19\",64],\"min\": 1,\"max\": 100},{\"attribute\": \"theconcat\",\"count\": 159,\"type\": \"mixed\",\"values\": [1,10,100,\"103579\",11,\"11216822689255591\",12,13,\"13170\",\"13170648446\",14,15,16,17,\"176269\",18,19,2,20,21,\"2113\",\"216\",\"2168226\",\"21682268925\",22,23,\"23722959\",24,25,26,27,28,\"28677465512\",29,3,30,31,\"314\",\"31478\",\"31478286774655129484515737\",\"3170\",32,\"3275\",33,\"33176269817\",\"3317626981793467648183915808524\",34,35,\"3579\",36,37,38,\"3849\",\"384943\",\"384943547193275\",39,4,40,41,42,\"421006622\",43,44,\"446\",45,46,\"4676\",\"4676481839\",\"467648183915\",47,48,\"481839\",49,5,50,51,52,\"5261368796\",53,\"5392\",54,\"54719\",55,\"5591\",56,57,\"5737\",58,59,\"594210066226395738619\",6,60,61,\"6136\",\"61368796\",62,63,\"639573\",\"6395738619\",64],\"min\": 1,\"max\": 100},{\"attribute\": \"themax\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"themean\",\"count\": 145,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,23.2,24,25,26,27,27.5,28,29,3,30,31,31.5,31.666666666666669,32,33,34,35,36,37,38,38.75,39,39.75,4,40,40.333333333333339,41,41.05882352941177,42,43,43.18181818181818,43.333333333333339,43.5,43.875,44,45,45.4,45.583333333333339,46,46.375,46.57142857142857,47,47.25,47.285714285714288,47.44444444444444,47.5,47.785714285714288,48,48.27272727272727,48.5,48.666666666666667,49,49.333333333333339,49.41935483870968,49.42857142857143,5,50,50.40506329113924,50.5,51,51.357142857142857,51.492063492063497,51.75,52,52.45,52.75,53,53.333333333333339,53.8,54,54.5,55,55.111111111111117,55.75,56,57,57.666666666666667,58,59,6,60,61,62],\"min\": 1,\"max\": 100},{\"attribute\": \"themin\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"theproduct\",\"count\": 156,\"type\": \"number\",\"values\": [1,1.50635366827988e+21,10,100,11,117801216,12,123192,13,1360776186,14,1452,15,151798400,16,1611350,163200,1634,17,1767018240,18,18340992,1862,19,2,20,2040,21,2109,2170,2196,22,2294950,23,24,2400,2432430,25,256866214501512000,26,264,27,273,2765,27650,28,2833416,29,293314560,3,3.649478722049509e+25,3.663431746147758e+29,3.7235827383082715e+25,30,31,32,325,3276,33,33696,34,34506,3496,35,36,37,38,39,4,40,402696,41,42,43,436905,44,45,46,47,472972,48,4876,49,4958,5,50,5005,51,512,52,53,54,541413600,55,5589,56,567,57,58,59],\"min\": 1,\"max\": 3.663431746147758e+29},{\"attribute\": \"thesum\",\"count\": 143,\"type\": \"number\",\"values\": [1,10,100,101,102,105,107,109,11,114,12,122,124,126,13,130,134,14,141,145,146,148,15,150,16,160,17,18,183,189,19,2,20,207,21,211,22,223,224,227,229,23,230,231,24,240,242,25,251,26,261,269,27,28,280,29,3,30,31,32,323,33,332,336,34,35,36,37,371,38,39,397,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,625,63],\"min\": 1,\"max\": 960}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 3, \"fields\": {\"clustered\": \"Boolean\", \"point_count\": \"Number\", \"sqrt_point_count\": \"Number\", \"thecomma\": \"Mixed\", \"theconcat\": \"Mixed\", \"themax\": \"Number\", \"themean\": \"Number\", \"themin\": \"Number\", \"theproduct\": \"Number\", \"thesum\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 100,\"geometry\": \"Point\",\"attributeCount\": 10,\"attributes\": [{\"attribute\": \"clustered\",\"count\": 1,\"type\": \"boolean\",\"values\": [true]},{\"attribute\": \"point_count\",\"count\": 13,\"type\": \"number\",\"values\": [10,14,16,17,18,2,3,4,5,6,7,8,9],\"min\": 2,\"max\": 18},{\"attribute\": \"sqrt_point_count\",\"count\": 13,\"type\": \"number\",\"values\": [1.410000,1.730000,2.000000,2.240000,2.450000,2.650000,2.830000,3.000000,3.160000,3.740000,4.000000,4.120000,4.240000],\"min\": 1.41,\"max\": 4.24},{\"attribute\": \"thecomma\",\"count\": 159,\"type\": \"mixed\",\"values\": [1,\"1,31,70\",\"1,31,70,64,8,44,6\",10,\"10,35,79\",100,11,\"11,2,16,82,26,89,25,55,91\",12,13,14,15,16,17,\"17,62,69\",18,19,2,\"2,16\",\"2,16,82,26\",\"2,16,82,26,89,25\",20,21,\"21,13\",22,23,\"23,72,29,59\",24,25,26,27,28,\"28,67,74,65,5,12\",29,3,\"3,14\",\"3,14,78\",\"3,14,78,28,67,74,65,5,12,94,84,51,57,37\",30,31,\"31,70\",32,\"32,75\",33,\"33,17,62,69,81,7\",\"33,17,62,69,81,7,93,46,76,48,18,39,15,80,85,24\",34,35,\"35,79\",36,37,38,\"38,49\",\"38,49,43\",\"38,49,43,54,71,9,32,75\",39,4,40,41,42,\"42,100,66,22\",43,44,\"44,6\",45,46,\"46,76\",\"46,76,48,18,39\",\"46,76,48,18,39,15\",47,48,\"48,18,39\",49,5,50,51,52,\"52,61,36,87,96\",53,\"53,92\",54,\"54,71,9\",55,\"55,91\",56,57,\"57,37\",58,59,\"59,42,100,66,22,63,95,73,86,19\",6,60,61,\"61,36\",\"61,36,87,96\",62,63,\"63,95,73\",\"63,95,73,86,19\",64],\"min\": 1,\"max\": 100},{\"attribute\": \"theconcat\",\"count\": 159,\"type\": \"mixed\",\"values\": [1,10,100,\"103579\",11,\"11216822689255591\",12,13,\"13170\",\"13170648446\",14,15,16,17,\"176269\",18,19,2,20,21,\"2113\",\"216\",\"2168226\",\"21682268925\",22,23,\"23722959\",24,25,26,27,28,\"28677465512\",29,3,30,31,\"314\",\"31478\",\"31478286774655129484515737\",\"3170\",32,\"3275\",33,\"33176269817\",\"3317626981793467648183915808524\",34,35,\"3579\",36,37,38,\"3849\",\"384943\",\"384943547193275\",39,4,40,41,42,\"421006622\",43,44,\"446\",45,46,\"4676\",\"4676481839\",\"467648183915\",47,48,\"481839\",49,5,50,51,52,\"5261368796\",53,\"5392\",54,\"54719\",55,\"5591\",56,57,\"5737\",58,59,\"594210066226395738619\",6,60,61,\"6136\",\"61368796\",62,63,\"639573\",\"6395738619\",64],\"min\": 1,\"max\": 100},{\"attribute\": \"themax\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"themean\",\"count\": 138,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,31.5,31.666666666666669,32,33,34,35,36,37,38,39,4,40,40.333333333333339,41,41.333333333333339,41.833333333333339,42,43,43.333333333333339,43.5,44,44.111111111111117,44.666666666666667,44.833333333333339,45,45.4,45.75,46,46.375,47,47.785714285714288,48,48.294117647058829,48.5,49,49.333333333333339,49.5625,5,50,50.5,51,51.75,52,52.2,52.5,52.75,53,53.333333333333339,53.5,54,54.5,55,55.75,56,57,57.5,58,59,6,60,61,62,62.5,63,64,64.6,65,66,66.4,67,67.2,68,69,7],\"min\": 1,\"max\": 100},{\"attribute\": \"themin\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"theproduct\",\"count\": 156,\"type\": \"number\",\"values\": [1,1.50635366827988e+21,10,100,11,117801216,12,123192,13,1360776186,14,1452,15,151798400,16,1611350,163200,1634,17,1767018240,18,18340992,1862,19,2,20,2040,21,2109,2170,2196,22,2294950,23,24,2400,2432430,25,256866214501512000,26,264,27,273,2765,27650,28,2833416,29,293314560,3,3.649478722049509e+25,3.663431746147758e+29,3.7235827383082715e+25,30,31,32,325,3276,33,33696,34,34506,3496,35,36,37,38,39,4,40,402696,41,42,43,436905,44,45,46,47,472972,48,4876,49,4958,5,50,5005,51,512,52,53,54,541413600,55,5589,56,567,57,58,59],\"min\": 1,\"max\": 3.663431746147758e+29},{\"attribute\": \"thesum\",\"count\": 143,\"type\": \"number\",\"values\": [1,10,100,101,102,105,107,109,11,114,12,122,124,126,13,130,134,14,141,145,146,148,15,150,16,160,17,18,183,189,19,2,20,207,21,211,22,223,224,227,229,23,230,231,24,240,242,25,251,26,261,269,27,28,280,29,3,30,31,32,323,33,332,336,34,35,36,37,371,38,39,397,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,625,63],\"min\": 1,\"max\": 960}]}]}}", "maxzoom": "3", "minzoom": "0", "name": "tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma_-r1_-K100.json.check.mbtiles", @@ -15,15 +15,15 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 669, "themax": 94, "themin": 3, "theproduct": 1.50635366827988e+21, "themean": 47.785714285714288, "theconcat": "31478286774655129484515737", "thecomma": "3,14,78,28,67,74,65,5,12,94,84,51,57,37", "clustered": true, "point_count": 14, "sqrt_point_count": 3.74 }, "geometry": { "type": "Point", "coordinates": [ -128.056641, 64.358931 ] } } , -{ "type": "Feature", "properties": { "thesum": 960, "themax": 99, "themin": 9, "theproduct": 3.663431746147758e+29, "themean": 49.41935483870968, "theconcat": "97539299902113384943547193275237229", "thecomma": "97,53,92,99,90,21,13,38,49,43,54,71,9,32,75,23,72,29", "clustered": true, "point_count": 18, "sqrt_point_count": 4.24 }, "geometry": { "type": "Point", "coordinates": [ -92.109375, 13.325485 ] } } +{ "type": "Feature", "properties": { "thesum": 960, "themax": 99, "themin": 9, "theproduct": 3.663431746147758e+29, "themean": 53.333333333333339, "theconcat": "97539299902113384943547193275237229", "thecomma": "97,53,92,99,90,21,13,38,49,43,54,71,9,32,75,23,72,29", "clustered": true, "point_count": 18, "sqrt_point_count": 4.24 }, "geometry": { "type": "Point", "coordinates": [ -92.109375, 13.325485 ] } } , -{ "type": "Feature", "properties": { "thesum": 625, "themax": 100, "themin": 19, "theproduct": 256866214501512000, "themean": 52.45, "theconcat": "594210066226395738619", "thecomma": "59,42,100,66,22,63,95,73,86,19", "clustered": true, "point_count": 10, "sqrt_point_count": 3.16 }, "geometry": { "type": "Point", "coordinates": [ -71.367188, -53.696706 ] } } +{ "type": "Feature", "properties": { "thesum": 625, "themax": 100, "themin": 19, "theproduct": 256866214501512000, "themean": 62.5, "theconcat": "594210066226395738619", "thecomma": "59,42,100,66,22,63,95,73,86,19", "clustered": true, "point_count": 10, "sqrt_point_count": 3.16 }, "geometry": { "type": "Point", "coordinates": [ -71.367188, -53.696706 ] } } , -{ "type": "Feature", "properties": { "thesum": 397, "themax": 91, "themin": 2, "theproduct": 8357260912000, "themean": 51.75, "theconcat": "11216822689255591", "thecomma": "11,2,16,82,26,89,25,55,91", "clustered": true, "point_count": 9, "sqrt_point_count": 3 }, "geometry": { "type": "Point", "coordinates": [ 48.164062, 66.583217 ] } } +{ "type": "Feature", "properties": { "thesum": 397, "themax": 91, "themin": 2, "theproduct": 8357260912000, "themean": 44.111111111111117, "theconcat": "11216822689255591", "thecomma": "11,2,16,82,26,89,25,55,91", "clustered": true, "point_count": 9, "sqrt_point_count": 3 }, "geometry": { "type": "Point", "coordinates": [ 48.164062, 66.583217 ] } } , -{ "type": "Feature", "properties": { "thesum": 793, "themax": 93, "themin": 7, "theproduct": 3.649478722049509e+25, "themean": 51.492063492063497, "theconcat": "3317626981793467648183915808524", "thecomma": "33,17,62,69,81,7,93,46,76,48,18,39,15,80,85,24", "clustered": true, "point_count": 16, "sqrt_point_count": 4 }, "geometry": { "type": "MultiPoint", "coordinates": [ [ 177.363281, 76.393312 ], [ -182.636719, 76.393312 ] ] } } +{ "type": "Feature", "properties": { "thesum": 793, "themax": 93, "themin": 7, "theproduct": 3.649478722049509e+25, "themean": 49.5625, "theconcat": "3317626981793467648183915808524", "thecomma": "33,17,62,69,81,7,93,46,76,48,18,39,15,80,85,24", "clustered": true, "point_count": 16, "sqrt_point_count": 4 }, "geometry": { "type": "MultiPoint", "coordinates": [ [ 177.363281, 76.393312 ], [ -182.636719, 76.393312 ] ] } } , -{ "type": "Feature", "properties": { "thesum": 821, "themax": 96, "themin": 1, "theproduct": 3.7235827383082715e+25, "themean": 50.40506329113924, "theconcat": "8310357913170648446526136879658", "thecomma": "83,10,35,79,1,31,70,64,8,44,6,52,61,36,87,96,58", "clustered": true, "point_count": 17, "sqrt_point_count": 4.12 }, "geometry": { "type": "Point", "coordinates": [ 127.089844, -68.815927 ] } } +{ "type": "Feature", "properties": { "thesum": 821, "themax": 96, "themin": 1, "theproduct": 3.7235827383082715e+25, "themean": 48.294117647058829, "theconcat": "8310357913170648446526136879658", "thecomma": "83,10,35,79,1,31,70,64,8,44,6,52,61,36,87,96,58", "clustered": true, "point_count": 17, "sqrt_point_count": 4.12 }, "geometry": { "type": "Point", "coordinates": [ 127.089844, -68.815927 ] } } ] } ] } , @@ -33,11 +33,11 @@ , { "type": "Feature", "properties": { "thesum": 371, "themax": 75, "themin": 9, "theproduct": 6630617750400, "themean": 46.375, "theconcat": "384943547193275", "thecomma": "38,49,43,54,71,9,32,75", "clustered": true, "point_count": 8, "sqrt_point_count": 2.83 }, "geometry": { "type": "Point", "coordinates": [ -164.838867, -39.639538 ] } } , -{ "type": "Feature", "properties": { "thesum": 183, "themax": 72, "themin": 23, "theproduct": 2833416, "themean": 48.27272727272727, "theconcat": "23722959", "thecomma": "23,72,29,59", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ -155.039062, -67.424364 ] } } +{ "type": "Feature", "properties": { "thesum": 183, "themax": 72, "themin": 23, "theproduct": 2833416, "themean": 45.75, "theconcat": "23722959", "thecomma": "23,72,29,59", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ -155.039062, -67.424364 ] } } , -{ "type": "Feature", "properties": { "thesum": 230, "themax": 100, "themin": 22, "theproduct": 6098400, "themean": 51.357142857142857, "theconcat": "421006622", "thecomma": "42,100,66,22", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ -98.041992, -61.396719 ] } } +{ "type": "Feature", "properties": { "thesum": 230, "themax": 100, "themin": 22, "theproduct": 6098400, "themean": 57.5, "theconcat": "421006622", "thecomma": "42,100,66,22", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ -98.041992, -61.396719 ] } } , -{ "type": "Feature", "properties": { "thesum": 336, "themax": 95, "themin": 19, "theproduct": 713902770, "themean": 55.111111111111117, "theconcat": "6395738619", "thecomma": "63,95,73,86,19", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ -34.848633, -39.842286 ] } } +{ "type": "Feature", "properties": { "thesum": 336, "themax": 95, "themin": 19, "theproduct": 713902770, "themean": 67.2, "theconcat": "6395738619", "thecomma": "63,95,73,86,19", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ -34.848633, -39.842286 ] } } ] } ] } , @@ -45,13 +45,13 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 95, "themax": 78, "themin": 3, "theproduct": 3276, "themean": 31.666666666666669, "theconcat": "31478", "thecomma": "3,14,78", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -140.185547, 83.105798 ] } } , -{ "type": "Feature", "properties": { "thesum": 251, "themax": 74, "themin": 5, "theproduct": 541413600, "themean": 39.75, "theconcat": "28677465512", "thecomma": "28,67,74,65,5,12", "clustered": true, "point_count": 6, "sqrt_point_count": 2.45 }, "geometry": { "type": "Point", "coordinates": [ -151.831055, 34.125448 ] } } +{ "type": "Feature", "properties": { "thesum": 251, "themax": 74, "themin": 5, "theproduct": 541413600, "themean": 41.833333333333339, "theconcat": "28677465512", "thecomma": "28,67,74,65,5,12", "clustered": true, "point_count": 6, "sqrt_point_count": 2.45 }, "geometry": { "type": "Point", "coordinates": [ -151.831055, 34.125448 ] } } , -{ "type": "Feature", "properties": { "thesum": 323, "themax": 94, "themin": 37, "theproduct": 849285864, "themean": 45.583333333333339, "theconcat": "9484515737", "thecomma": "94,84,51,57,37", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ -101.381836, 58.608334 ] } } +{ "type": "Feature", "properties": { "thesum": 323, "themax": 94, "themin": 37, "theproduct": 849285864, "themean": 64.6, "theconcat": "9484515737", "thecomma": "94,84,51,57,37", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ -101.381836, 58.608334 ] } } , -{ "type": "Feature", "properties": { "thesum": 242, "themax": 97, "themin": 53, "theproduct": 472972, "themean": 49.42857142857143, "theconcat": "975392", "thecomma": "97,53,92", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -55.810547, 73.415885 ] } } +{ "type": "Feature", "properties": { "thesum": 242, "themax": 97, "themin": 53, "theproduct": 472972, "themean": 80.66666666666667, "theconcat": "975392", "thecomma": "97,53,92", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -55.810547, 73.415885 ] } } , -{ "type": "Feature", "properties": { "thesum": 261, "themax": 99, "themin": 13, "theproduct": 92432340, "themean": 47.44444444444444, "theconcat": "9990211338", "thecomma": "99,90,21,13,38", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ -50.449219, 40.380028 ] } } +{ "type": "Feature", "properties": { "thesum": 261, "themax": 99, "themin": 13, "theproduct": 92432340, "themean": 52.2, "theconcat": "9990211338", "thecomma": "99,90,21,13,38", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ -50.449219, 40.380028 ] } } , { "type": "Feature", "properties": { "thesum": 73, "themax": 73, "themin": 73, "theproduct": 73, "themean": 73, "theconcat": 73, "thecomma": 73 }, "geometry": { "type": "Point", "coordinates": [ -41.308594, -0.527336 ] } } , @@ -69,13 +69,13 @@ , { "type": "Feature", "properties": { "thesum": 242, "themax": 76, "themin": 15, "theproduct": 1767018240, "themean": 40.333333333333339, "theconcat": "467648183915", "thecomma": "46,76,48,18,39,15", "clustered": true, "point_count": 6, "sqrt_point_count": 2.45 }, "geometry": { "type": "Point", "coordinates": [ 19.731445, -41.244772 ] } } , -{ "type": "Feature", "properties": { "thesum": 189, "themax": 85, "themin": 24, "theproduct": 163200, "themean": 43.875, "theconcat": "808524", "thecomma": "80,85,24", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ 26.367188, -75.453071 ] } } +{ "type": "Feature", "properties": { "thesum": 189, "themax": 85, "themin": 24, "theproduct": 163200, "themean": 63, "theconcat": "808524", "thecomma": "80,85,24", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ 26.367188, -75.453071 ] } } , -{ "type": "Feature", "properties": { "thesum": 207, "themax": 83, "themin": 10, "theproduct": 2294950, "themean": 43.18181818181818, "theconcat": "83103579", "thecomma": "83,10,35,79", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ 60.600586, -81.127169 ] } } +{ "type": "Feature", "properties": { "thesum": 207, "themax": 83, "themin": 10, "theproduct": 2294950, "themean": 51.75, "theconcat": "83103579", "thecomma": "83,10,35,79", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ 60.600586, -81.127169 ] } } , -{ "type": "Feature", "properties": { "thesum": 224, "themax": 70, "themin": 1, "theproduct": 293314560, "themean": 41.05882352941177, "theconcat": "13170648446", "thecomma": "1,31,70,64,8,44,6", "clustered": true, "point_count": 7, "sqrt_point_count": 2.65 }, "geometry": { "type": "Point", "coordinates": [ 152.929688, -40.613952 ] } } +{ "type": "Feature", "properties": { "thesum": 224, "themax": 70, "themin": 1, "theproduct": 293314560, "themean": 32, "theconcat": "13170648446", "thecomma": "1,31,70,64,8,44,6", "clustered": true, "point_count": 7, "sqrt_point_count": 2.65 }, "geometry": { "type": "Point", "coordinates": [ 152.929688, -40.613952 ] } } , -{ "type": "Feature", "properties": { "thesum": 332, "themax": 96, "themin": 36, "theproduct": 953731584, "themean": 46.57142857142857, "theconcat": "5261368796", "thecomma": "52,61,36,87,96", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ 151.127930, -75.419921 ] } } +{ "type": "Feature", "properties": { "thesum": 332, "themax": 96, "themin": 36, "theproduct": 953731584, "themean": 66.4, "theconcat": "5261368796", "thecomma": "52,61,36,87,96", "clustered": true, "point_count": 5, "sqrt_point_count": 2.24 }, "geometry": { "type": "Point", "coordinates": [ 151.127930, -75.419921 ] } } , { "type": "Feature", "properties": { "thesum": 58, "themax": 58, "themin": 58, "theproduct": 58, "themean": 58, "theconcat": 58, "thecomma": 58 }, "geometry": { "type": "Point", "coordinates": [ 141.591797, -84.967021 ] } } ] } @@ -89,9 +89,9 @@ , { "type": "Feature", "properties": { "thesum": 240, "themax": 89, "themin": 2, "theproduct": 151798400, "themean": 40, "theconcat": "21682268925", "thecomma": "2,16,82,26,89,25", "clustered": true, "point_count": 6, "sqrt_point_count": 2.45 }, "geometry": { "type": "Point", "coordinates": [ 31.992188, 48.487486 ] } } , -{ "type": "Feature", "properties": { "thesum": 146, "themax": 91, "themin": 55, "theproduct": 5005, "themean": 47.285714285714288, "theconcat": "5591", "thecomma": "55,91", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 105.468750, 83.951540 ] } } +{ "type": "Feature", "properties": { "thesum": 146, "themax": 91, "themin": 55, "theproduct": 5005, "themean": 73, "theconcat": "5591", "thecomma": "55,91", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 105.468750, 83.951540 ] } } , -{ "type": "Feature", "properties": { "thesum": 269, "themax": 81, "themin": 7, "theproduct": 1360776186, "themean": 47.25, "theconcat": "33176269817", "thecomma": "33,17,62,69,81,7", "clustered": true, "point_count": 6, "sqrt_point_count": 2.45 }, "geometry": { "type": "Point", "coordinates": [ 128.979492, 37.265310 ] } } +{ "type": "Feature", "properties": { "thesum": 269, "themax": 81, "themin": 7, "theproduct": 1360776186, "themean": 44.833333333333339, "theconcat": "33176269817", "thecomma": "33,17,62,69,81,7", "clustered": true, "point_count": 6, "sqrt_point_count": 2.45 }, "geometry": { "type": "Point", "coordinates": [ 128.979492, 37.265310 ] } } , { "type": "Feature", "properties": { "thesum": 93, "themax": 93, "themin": 93, "theproduct": 93, "themean": 93, "theconcat": 93, "thecomma": 93 }, "geometry": { "type": "Point", "coordinates": [ 169.760742, 17.853290 ] } } , @@ -113,9 +113,9 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 130, "themax": 49, "themin": 38, "theproduct": 80066, "themean": 43.333333333333339, "theconcat": "384943", "thecomma": "38,49,43", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -174.396973, -19.539084 ] } } , -{ "type": "Feature", "properties": { "thesum": 134, "themax": 71, "themin": 9, "theproduct": 34506, "themean": 42, "theconcat": "54719", "thecomma": "54,71,9", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -160.620117, -42.261049 ] } } +{ "type": "Feature", "properties": { "thesum": 134, "themax": 71, "themin": 9, "theproduct": 34506, "themean": 44.666666666666667, "theconcat": "54719", "thecomma": "54,71,9", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -160.620117, -42.261049 ] } } , -{ "type": "Feature", "properties": { "thesum": 107, "themax": 75, "themin": 32, "theproduct": 2400, "themean": 47.5, "theconcat": "3275", "thecomma": "32,75", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -156.796875, -58.813742 ] } } +{ "type": "Feature", "properties": { "thesum": 107, "themax": 75, "themin": 32, "theproduct": 2400, "themean": 53.5, "theconcat": "3275", "thecomma": "32,75", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -156.796875, -58.813742 ] } } , { "type": "Feature", "properties": { "thesum": 23, "themax": 23, "themin": 23, "theproduct": 23, "themean": 23, "theconcat": 23, "thecomma": 23 }, "geometry": { "type": "Point", "coordinates": [ -131.440430, -48.647428 ] } } ] } @@ -127,7 +127,7 @@ , { "type": "Feature", "properties": { "thesum": 12, "themax": 12, "themin": 12, "theproduct": 12, "themean": 12, "theconcat": 12, "thecomma": 12 }, "geometry": { "type": "Point", "coordinates": [ -145.437012, 26.352498 ] } } , -{ "type": "Feature", "properties": { "thesum": 229, "themax": 94, "themin": 51, "theproduct": 402696, "themean": 57.666666666666667, "theconcat": "948451", "thecomma": "94,84,51", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -118.410645, 19.186678 ] } } +{ "type": "Feature", "properties": { "thesum": 229, "themax": 94, "themin": 51, "theproduct": 402696, "themean": 76.33333333333333, "theconcat": "948451", "thecomma": "94,84,51", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -118.410645, 19.186678 ] } } , { "type": "Feature", "properties": { "thesum": 38, "themax": 38, "themin": 38, "theproduct": 38, "themean": 38, "theconcat": 38, "thecomma": 38 }, "geometry": { "type": "Point", "coordinates": [ -176.484375, -1.164471 ] } } ] } @@ -147,9 +147,9 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 88, "themax": 66, "themin": 22, "theproduct": 1452, "themean": 44, "theconcat": "6622", "thecomma": "66,22", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -75.981445, -14.711135 ] } } , -{ "type": "Feature", "properties": { "thesum": 231, "themax": 95, "themin": 63, "theproduct": 436905, "themean": 64, "theconcat": "639573", "thecomma": "63,95,73", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -49.592285, -41.656497 ] } } +{ "type": "Feature", "properties": { "thesum": 231, "themax": 95, "themin": 63, "theproduct": 436905, "themean": 77, "theconcat": "639573", "thecomma": "63,95,73", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ -49.592285, -41.656497 ] } } , -{ "type": "Feature", "properties": { "thesum": 105, "themax": 86, "themin": 19, "theproduct": 1634, "themean": 55, "theconcat": "8619", "thecomma": "86,19", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -12.722168, -37.055177 ] } } +{ "type": "Feature", "properties": { "thesum": 105, "themax": 86, "themin": 19, "theproduct": 1634, "themean": 52.5, "theconcat": "8619", "thecomma": "86,19", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -12.722168, -37.055177 ] } } ] } ] } , @@ -157,7 +157,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 145, "themax": 92, "themin": 53, "theproduct": 4876, "themean": 72.5, "theconcat": "5392", "thecomma": "53,92", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -74.135742, 60.163376 ] } } , -{ "type": "Feature", "properties": { "thesum": 223, "themax": 99, "themin": 13, "theproduct": 2432430, "themean": 53.8, "theconcat": "99902113", "thecomma": "99,90,21,13", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ -18.918457, 48.443778 ] } } +{ "type": "Feature", "properties": { "thesum": 223, "themax": 99, "themin": 13, "theproduct": 2432430, "themean": 55.75, "theconcat": "99902113", "thecomma": "99,90,21,13", "clustered": true, "point_count": 4, "sqrt_point_count": 2 }, "geometry": { "type": "Point", "coordinates": [ -18.918457, 48.443778 ] } } , { "type": "Feature", "properties": { "thesum": 73, "themax": 73, "themin": 73, "theproduct": 73, "themean": 73, "theconcat": 73, "thecomma": 73 }, "geometry": { "type": "Point", "coordinates": [ -41.308594, -0.527336 ] } } ] } @@ -177,7 +177,7 @@ , { "type": "Feature", "properties": { "thesum": 83, "themax": 83, "themin": 83, "theproduct": 83, "themean": 83, "theconcat": 83, "thecomma": 83 }, "geometry": { "type": "Point", "coordinates": [ 43.352051, -79.993351 ] } } , -{ "type": "Feature", "properties": { "thesum": 124, "themax": 79, "themin": 10, "theproduct": 27650, "themean": 55.75, "theconcat": "103579", "thecomma": "10,35,79", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ 66.335449, -81.479293 ] } } +{ "type": "Feature", "properties": { "thesum": 124, "themax": 79, "themin": 10, "theproduct": 27650, "themean": 41.333333333333339, "theconcat": "103579", "thecomma": "10,35,79", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ 66.335449, -81.479293 ] } } ] } ] } , @@ -227,9 +227,9 @@ , { "type": "Feature", "properties": { "thesum": 102, "themax": 70, "themin": 1, "theproduct": 2170, "themean": 34, "theconcat": "13170", "thecomma": "1,31,70", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ 144.206543, -28.459033 ] } } , -{ "type": "Feature", "properties": { "thesum": 72, "themax": 64, "themin": 8, "theproduct": 512, "themean": 27.5, "theconcat": "648", "thecomma": "64,8", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 160.554199, -29.401320 ] } } +{ "type": "Feature", "properties": { "thesum": 72, "themax": 64, "themin": 8, "theproduct": 512, "themean": 36, "theconcat": "648", "thecomma": "64,8", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 160.554199, -29.401320 ] } } , -{ "type": "Feature", "properties": { "thesum": 50, "themax": 44, "themin": 6, "theproduct": 264, "themean": 23.2, "theconcat": "446", "thecomma": "44,6", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 158.422852, -62.410729 ] } } +{ "type": "Feature", "properties": { "thesum": 50, "themax": 44, "themin": 6, "theproduct": 264, "themean": 25, "theconcat": "446", "thecomma": "44,6", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 158.422852, -62.410729 ] } } ] } ] } , @@ -237,7 +237,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 148, "themax": 69, "themin": 17, "theproduct": 72726, "themean": 49.333333333333339, "theconcat": "176269", "thecomma": "17,62,69", "clustered": true, "point_count": 3, "sqrt_point_count": 1.73 }, "geometry": { "type": "Point", "coordinates": [ 114.916992, 29.267233 ] } } , -{ "type": "Feature", "properties": { "thesum": 88, "themax": 81, "themin": 7, "theproduct": 567, "themean": 38.75, "theconcat": "817", "thecomma": "81,7", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 125.925293, 13.560562 ] } } +{ "type": "Feature", "properties": { "thesum": 88, "themax": 81, "themin": 7, "theproduct": 567, "themean": 44, "theconcat": "817", "thecomma": "81,7", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ 125.925293, 13.560562 ] } } , { "type": "Feature", "properties": { "thesum": 93, "themax": 93, "themin": 93, "theproduct": 93, "themean": 93, "theconcat": 93, "thecomma": 93 }, "geometry": { "type": "Point", "coordinates": [ 169.760742, 17.853290 ] } } ] } @@ -285,7 +285,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 141, "themax": 74, "themin": 67, "theproduct": 4958, "themean": 70.5, "theconcat": "6774", "thecomma": "67,74", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -168.530273, 28.052591 ] } } , -{ "type": "Feature", "properties": { "thesum": 70, "themax": 65, "themin": 5, "theproduct": 325, "themean": 48.666666666666667, "theconcat": "655", "thecomma": "65,5", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -159.927979, 16.372851 ] } } +{ "type": "Feature", "properties": { "thesum": 70, "themax": 65, "themin": 5, "theproduct": 325, "themean": 35, "theconcat": "655", "thecomma": "65,5", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -159.927979, 16.372851 ] } } , { "type": "Feature", "properties": { "thesum": 12, "themax": 12, "themin": 12, "theproduct": 12, "themean": 12, "theconcat": 12, "thecomma": 12 }, "geometry": { "type": "Point", "coordinates": [ -145.437012, 26.342653 ] } } ] } @@ -393,7 +393,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 189, "themax": 99, "themin": 90, "theproduct": 8910, "themean": 94.5, "theconcat": "9990", "thecomma": "99,90", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -28.388672, 50.965346 ] } } , -{ "type": "Feature", "properties": { "thesum": 34, "themax": 21, "themin": 13, "theproduct": 273, "themean": 67.33333333333333, "theconcat": "2113", "thecomma": "21,13", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -9.448242, 45.782848 ] } } +{ "type": "Feature", "properties": { "thesum": 34, "themax": 21, "themin": 13, "theproduct": 273, "themean": 17, "theconcat": "2113", "thecomma": "21,13", "clustered": true, "point_count": 2, "sqrt_point_count": 1.41 }, "geometry": { "type": "Point", "coordinates": [ -9.448242, 45.782848 ] } } ] } ] } , diff --git a/tests/accumulate/out/-z5_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma.json b/tests/accumulate/out/-z5_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma.json index ce16a0273..7ab8da102 100644 --- a/tests/accumulate/out/-z5_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma.json +++ b/tests/accumulate/out/-z5_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma.json @@ -4,7 +4,7 @@ "description": "tests/accumulate/out/-z5_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma.json.check.mbtiles", "format": "pbf", "generator_options": "./tippecanoe -q -a@ -f -o tests/accumulate/out/-z5_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma.json.check.mbtiles -z5 -Ethesum:sum -Etheproduct:product -Ethemax:max -Ethemin:min -Ethemean:mean -Etheconcat:concat -Ethecomma:comma tests/accumulate/in.json", -"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"thecomma\": \"Mixed\", \"theconcat\": \"Mixed\", \"themax\": \"Number\", \"themean\": \"Number\", \"themin\": \"Number\", \"theproduct\": \"Number\", \"thesum\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 100,\"geometry\": \"Point\",\"attributeCount\": 7,\"attributes\": [{\"attribute\": \"thecomma\",\"count\": 152,\"type\": \"mixed\",\"values\": [1,\"1,8,44,6\",10,100,11,12,13,14,15,16,\"16,82\",17,\"17,62\",18,\"18,39\",\"18,39,15\",19,2,\"2,16,82\",20,21,22,23,24,\"24,83\",25,26,\"26,89,25\",\"26,89,25,55,91,33,17,62,69,81,7,93,31\",27,28,29,3,\"3,14\",\"3,14,78,28\",\"3,14,78,28,67,74,65,5,12,94,84,51,57,37,97,53,92,99,90,21,13,38,49,43,54,71,9,32,75,23,72,29,59,42,100,66,22,63,95,73,86,19,11,2,16,82,26,89,25,55,91,33,17,62,69,81,7,93,46,76,48,18,39,15,80,85,24,83,10,35,79,1,31,70,64,8,44,6,52,61,36,87,96,58\",\"3,14,78,28,67,74,65,5,12,94,84,51,57,37,97,53,92,99,90,21,13,38,73,33\",30,31,32,33,34,35,\"35,79\",\"35,79,1,31,70,64,8,44,6,52,61,36,87,96,58\",36,37,38,\"38,49\",\"38,49,43,54,71,9,32\",39,4,40,41,42,43,\"43,54\",44,45,46,47,48,49,\"49,1,31,70,64,8,44,6\",\"49,72,86,46,76,48,18,39,15,80,85,24,83,10\",5,\"5,12\",50,51,52,53,54,55,\"55,91\",\"55,91,33\",56,57,\"57,37\",\"57,37,97\",58,59,6,60,61,\"61,36\",62,63,64,65,\"65,38,49,43,54,71,9,32,75,23,72,29,59,42,100,66,22,63,95,73,86,19,96\",66,\"66,22\",\"66,22,63,95,73,86,19\",67,\"67,38,11,2,16,82\",\"67,65\",\"67,74,65,5,12,94,84,51,38\",68,69,\"69,81\"],\"min\": 1,\"max\": 100},{\"attribute\": \"theconcat\",\"count\": 152,\"type\": \"mixed\",\"values\": [1,10,100,11,12,13,14,15,16,\"1682\",17,\"1762\",18,\"1839\",\"183915\",\"18446\",19,2,20,21,\"21682\",22,23,24,\"2483\",25,26,\"268925\",\"2689255591331762698179331\",27,28,29,3,30,31,\"314\",\"3147828\",\"31478286774655129484515737975392999021133849435471932752372295942100662263957386191121682268925559133176269817934676481839158085248310357913170648446526136879658\",\"3147828677465512948451573797539299902113387333\",32,33,34,35,\"3579\",\"357913170648446526136879658\",36,37,38,\"3849\",\"3849435471932\",39,4,40,41,42,43,\"4354\",44,45,46,47,48,49,\"4913170648446\",\"4972864676481839158085248310\",5,50,51,\"512\",52,53,54,55,\"5591\",\"559133\",56,57,\"5737\",\"573797\",58,59,6,60,61,\"6136\",62,63,64,65,\"6538494354719327523722959421006622639573861996\",66,\"6622\",\"66226395738619\",67,\"67381121682\",\"6765\",\"67746551294845138\",68,69,\"6981\"],\"min\": 1,\"max\": 100},{\"attribute\": \"themax\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"themean\",\"count\": 135,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,14.75,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,28.5,29,3,30,30.75,31,32,33,33.333333333333339,34,34.125,35,36,37,37.333333333333339,38,39,39.5,39.875,4,40,41,41.75,42,42.285714285714288,42.8,43,43.5,44,45,46,47,47.333333333333339,48,48.27777777777778,48.5,49,5,50,50.5,50.773809523809529,50.857142857142857,51,52,52.214285714285718,53,53.25,53.5,54,54.44444444444444,55,55.69565217391305,55.75,56,56.2,57,58,59,59.333333333333339,59.666666666666667,6,60,60.4,60.57142857142857,61,62,63,63.666666666666667,64,64.66666666666667,65,66,67,68,69,69.33333333333333,7],\"min\": 1,\"max\": 100},{\"attribute\": \"themin\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"theproduct\",\"count\": 150,\"type\": \"number\",\"values\": [1,1.1358965693283625e+21,1.5864380887725077e+38,1.6098219495357537e+132,10,100,1036586822040,10530,1054,11,119282,12,12157085491200,13,1312,1320551424,14,14372413440,1452,15,16,16336199880,165165,1693200,17,1725,18,1862,19,1992,2,20,20448,204573,2088,21,2109,2112,2196,22,23,2322,24,2432430,25,26,2624,27,2765,28,288600,29,295891195017600,3,30,300656,31,32,33,34,35,35840,36,3638439,37,38,39,39123,3982783094784,4,4.486244263022014e+22,40,402696,41,42,43,4355,44,45,46,47,48,49,5,5.103920456870841e+38,50,5005,51,517406400,52,53,54,55,5589,56,57,57850,58,59,6],\"min\": 1,\"max\": 1.6098219495357537e+132},{\"attribute\": \"thesum\",\"count\": 136,\"type\": \"number\",\"values\": [1,10,100,101,107,11,112,114,12,123,1278,1281,13,132,14,140,142,146,15,150,156,157,16,17,178,179,18,19,191,2,20,202,208,21,216,22,223,229,23,24,25,250,26,27,273,28,29,296,3,30,302,31,32,33,34,35,352,36,37,38,388,39,4,40,408,41,42,424,4265,43,44,45,46,462,47,48,49,490,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,679,68],\"min\": 1,\"max\": 4265}]}]}}", +"json": "{\"vector_layers\": [ { \"id\": \"in\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 5, \"fields\": {\"thecomma\": \"Mixed\", \"theconcat\": \"Mixed\", \"themax\": \"Number\", \"themean\": \"Number\", \"themin\": \"Number\", \"theproduct\": \"Number\", \"thesum\": \"Number\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"in\",\"count\": 100,\"geometry\": \"Point\",\"attributeCount\": 7,\"attributes\": [{\"attribute\": \"thecomma\",\"count\": 152,\"type\": \"mixed\",\"values\": [1,\"1,8,44,6\",10,100,11,12,13,14,15,16,\"16,82\",17,\"17,62\",18,\"18,39\",\"18,39,15\",19,2,\"2,16,82\",20,21,22,23,24,\"24,83\",25,26,\"26,89,25\",\"26,89,25,55,91,33,17,62,69,81,7,93,31\",27,28,29,3,\"3,14\",\"3,14,78,28\",\"3,14,78,28,67,74,65,5,12,94,84,51,57,37,97,53,92,99,90,21,13,38,49,43,54,71,9,32,75,23,72,29,59,42,100,66,22,63,95,73,86,19,11,2,16,82,26,89,25,55,91,33,17,62,69,81,7,93,46,76,48,18,39,15,80,85,24,83,10,35,79,1,31,70,64,8,44,6,52,61,36,87,96,58\",\"3,14,78,28,67,74,65,5,12,94,84,51,57,37,97,53,92,99,90,21,13,38,73,33\",30,31,32,33,34,35,\"35,79\",\"35,79,1,31,70,64,8,44,6,52,61,36,87,96,58\",36,37,38,\"38,49\",\"38,49,43,54,71,9,32\",39,4,40,41,42,43,\"43,54\",44,45,46,47,48,49,\"49,1,31,70,64,8,44,6\",\"49,72,86,46,76,48,18,39,15,80,85,24,83,10\",5,\"5,12\",50,51,52,53,54,55,\"55,91\",\"55,91,33\",56,57,\"57,37\",\"57,37,97\",58,59,6,60,61,\"61,36\",62,63,64,65,\"65,38,49,43,54,71,9,32,75,23,72,29,59,42,100,66,22,63,95,73,86,19,96\",66,\"66,22\",\"66,22,63,95,73,86,19\",67,\"67,38,11,2,16,82\",\"67,65\",\"67,74,65,5,12,94,84,51,38\",68,69,\"69,81\"],\"min\": 1,\"max\": 100},{\"attribute\": \"theconcat\",\"count\": 152,\"type\": \"mixed\",\"values\": [1,10,100,11,12,13,14,15,16,\"1682\",17,\"1762\",18,\"1839\",\"183915\",\"18446\",19,2,20,21,\"21682\",22,23,24,\"2483\",25,26,\"268925\",\"2689255591331762698179331\",27,28,29,3,30,31,\"314\",\"3147828\",\"31478286774655129484515737975392999021133849435471932752372295942100662263957386191121682268925559133176269817934676481839158085248310357913170648446526136879658\",\"3147828677465512948451573797539299902113387333\",32,33,34,35,\"3579\",\"357913170648446526136879658\",36,37,38,\"3849\",\"3849435471932\",39,4,40,41,42,43,\"4354\",44,45,46,47,48,49,\"4913170648446\",\"4972864676481839158085248310\",5,50,51,\"512\",52,53,54,55,\"5591\",\"559133\",56,57,\"5737\",\"573797\",58,59,6,60,61,\"6136\",62,63,64,65,\"6538494354719327523722959421006622639573861996\",66,\"6622\",\"66226395738619\",67,\"67381121682\",\"6765\",\"67746551294845138\",68,69,\"6981\"],\"min\": 1,\"max\": 100},{\"attribute\": \"themax\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"themean\",\"count\": 134,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,14.75,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,28.5,29,3,30,30.75,31,32,33,33.333333333333339,34,34.125,35,36,37,37.333333333333339,38,39,39.5,4,40,41,42,42.285714285714288,43,43.5,44,45,46,46.666666666666667,47,47.333333333333339,48,48.5,48.53333333333333,49,5,50,50.5,50.773809523809529,51,52,52.214285714285718,52.23076923076923,52.333333333333339,53,53.25,53.5,54,54.44444444444444,55,55.69565217391305,55.75,56,57,58,59,59.333333333333339,59.666666666666667,6,60,60.4,60.57142857142857,61,62,62.5,63,63.666666666666667,64,64.66666666666667,65,66,67,68,69,69.33333333333333,7,70],\"min\": 1,\"max\": 100},{\"attribute\": \"themin\",\"count\": 100,\"type\": \"number\",\"values\": [1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,22,23,24,25,26,27,28,29,3,30,31,32,33,34,35,36,37,38,39,4,40,41,42,43,44,45,46,47,48,49,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,68,69,7,70,71,72,73,74,75,76,77,78,79,8,80,81,82,83,84,85,86,87,88,89,9,90,91,92,93,94,95,96,97,98,99],\"min\": 1,\"max\": 100},{\"attribute\": \"theproduct\",\"count\": 150,\"type\": \"number\",\"values\": [1,1.1358965693283625e+21,1.5864380887725077e+38,1.6098219495357537e+132,10,100,1036586822040,10530,1054,11,119282,12,12157085491200,13,1312,1320551424,14,14372413440,1452,15,16,16336199880,165165,1693200,17,1725,18,1862,19,1992,2,20,20448,204573,2088,21,2109,2112,2196,22,23,2322,24,2432430,25,26,2624,27,2765,28,288600,29,295891195017600,3,30,300656,31,32,33,34,35,35840,36,3638439,37,38,39,39123,3982783094784,4,4.486244263022014e+22,40,402696,41,42,43,4355,44,45,46,47,48,49,5,5.103920456870841e+38,50,5005,51,517406400,52,53,54,55,5589,56,57,57850,58,59,6],\"min\": 1,\"max\": 1.6098219495357537e+132},{\"attribute\": \"thesum\",\"count\": 136,\"type\": \"number\",\"values\": [1,10,100,101,107,11,112,114,12,123,1278,1281,13,132,14,140,142,146,15,150,156,157,16,17,178,179,18,19,191,2,20,202,208,21,216,22,223,229,23,24,25,250,26,27,273,28,29,296,3,30,302,31,32,33,34,35,352,36,37,38,388,39,4,40,408,41,42,424,4265,43,44,45,46,462,47,48,49,490,5,50,51,52,53,54,55,56,57,58,59,6,60,61,62,63,64,65,66,67,679,68],\"min\": 1,\"max\": 4265}]}]}}", "maxzoom": "5", "minzoom": "0", "name": "tests/accumulate/out/-z5_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat@concat_-Ethecomma@comma.json.check.mbtiles", @@ -33,7 +33,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 731, "themax": 86, "themin": 10, "theproduct": 7.2621682598253038e+22, "themean": 52.214285714285718, "theconcat": "4972864676481839158085248310", "thecomma": "49,72,86,46,76,48,18,39,15,80,85,24,83,10" }, "geometry": { "type": "Point", "coordinates": [ 181.406250, -17.978733 ] } } , -{ "type": "Feature", "properties": { "thesum": 728, "themax": 96, "themin": 1, "theproduct": 4.486244263022014e+22, "themean": 50.857142857142857, "theconcat": "357913170648446526136879658", "thecomma": "35,79,1,31,70,64,8,44,6,52,61,36,87,96,58" }, "geometry": { "type": "Point", "coordinates": [ 57.919922, -82.226115 ] } } +{ "type": "Feature", "properties": { "thesum": 728, "themax": 96, "themin": 1, "theproduct": 4.486244263022014e+22, "themean": 48.53333333333333, "theconcat": "357913170648446526136879658", "thecomma": "35,79,1,31,70,64,8,44,6,52,61,36,87,96,58" }, "geometry": { "type": "Point", "coordinates": [ 57.919922, -82.226115 ] } } ] } ] } , @@ -41,7 +41,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 216, "themax": 82, "themin": 2, "theproduct": 73487744, "themean": 36, "theconcat": "67381121682", "thecomma": "67,38,11,2,16,82" }, "geometry": { "type": "Point", "coordinates": [ 182.548828, 22.309426 ] } } , -{ "type": "Feature", "properties": { "thesum": 679, "themax": 93, "themin": 7, "theproduct": 1.1358965693283625e+21, "themean": 48.27777777777778, "theconcat": "2689255591331762698179331", "thecomma": "26,89,25,55,91,33,17,62,69,81,7,93,31" }, "geometry": { "type": "Point", "coordinates": [ 43.989258, 42.779275 ] } } +{ "type": "Feature", "properties": { "thesum": 679, "themax": 93, "themin": 7, "theproduct": 1.1358965693283625e+21, "themean": 52.23076923076923, "theconcat": "2689255591331762698179331", "thecomma": "26,89,25,55,91,33,17,62,69,81,7,93,31" }, "geometry": { "type": "Point", "coordinates": [ 43.989258, 42.779275 ] } } ] } ] } , @@ -55,7 +55,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 296, "themax": 71, "themin": 9, "theproduct": 88408236672, "themean": 42.285714285714288, "theconcat": "3849435471932", "thecomma": "38,49,43,54,71,9,32" }, "geometry": { "type": "Point", "coordinates": [ -176.484375, -1.164471 ] } } , -{ "type": "Feature", "properties": { "thesum": 98, "themax": 75, "themin": 23, "theproduct": 1725, "themean": 39.875, "theconcat": "7523", "thecomma": "75,23" }, "geometry": { "type": "Point", "coordinates": [ -157.236328, -62.925236 ] } } +{ "type": "Feature", "properties": { "thesum": 98, "themax": 75, "themin": 23, "theproduct": 1725, "themean": 49, "theconcat": "7523", "thecomma": "75,23" }, "geometry": { "type": "Point", "coordinates": [ -157.236328, -62.925236 ] } } ] } ] } , @@ -95,7 +95,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 202, "themax": 85, "themin": 10, "theproduct": 1693200, "themean": 50.5, "theconcat": "85248310", "thecomma": "85,24,83,10" }, "geometry": { "type": "Point", "coordinates": [ 7.382812, -80.386396 ] } } , -{ "type": "Feature", "properties": { "thesum": 114, "themax": 79, "themin": 35, "theproduct": 2765, "themean": 56.2, "theconcat": "3579", "thecomma": "35,79" }, "geometry": { "type": "Point", "coordinates": [ 57.941895, -82.229086 ] } } +{ "type": "Feature", "properties": { "thesum": 114, "themax": 79, "themin": 35, "theproduct": 2765, "themean": 57, "theconcat": "3579", "thecomma": "35,79" }, "geometry": { "type": "Point", "coordinates": [ 57.941895, -82.229086 ] } } ] } ] } , @@ -109,7 +109,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 100, "themax": 82, "themin": 2, "theproduct": 2624, "themean": 33.333333333333339, "theconcat": "21682", "thecomma": "2,16,82" }, "geometry": { "type": "Point", "coordinates": [ 14.040527, 46.739861 ] } } , -{ "type": "Feature", "properties": { "thesum": 140, "themax": 89, "themin": 25, "theproduct": 57850, "themean": 42.8, "theconcat": "268925", "thecomma": "26,89,25" }, "geometry": { "type": "Point", "coordinates": [ 44.011230, 42.763146 ] } } +{ "type": "Feature", "properties": { "thesum": 140, "themax": 89, "themin": 25, "theproduct": 57850, "themean": 46.666666666666667, "theconcat": "268925", "thecomma": "26,89,25" }, "geometry": { "type": "Point", "coordinates": [ 44.011230, 42.763146 ] } } ] } ] } , @@ -135,7 +135,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 79, "themax": 62, "themin": 17, "theproduct": 1054, "themean": 39.5, "theconcat": "1762", "thecomma": "17,62" }, "geometry": { "type": "Point", "coordinates": [ 110.412598, 38.376115 ] } } , -{ "type": "Feature", "properties": { "thesum": 250, "themax": 93, "themin": 7, "theproduct": 3638439, "themean": 52, "theconcat": "6981793", "thecomma": "69,81,7,93" }, "geometry": { "type": "Point", "coordinates": [ 113.598633, 13.859414 ] } } +{ "type": "Feature", "properties": { "thesum": 250, "themax": 93, "themin": 7, "theproduct": 3638439, "themean": 62.5, "theconcat": "6981793", "thecomma": "69,81,7,93" }, "geometry": { "type": "Point", "coordinates": [ 113.598633, 13.859414 ] } } ] } ] } , @@ -165,7 +165,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 87, "themax": 49, "themin": 38, "theproduct": 1862, "themean": 43.5, "theconcat": "3849", "thecomma": "38,49" }, "geometry": { "type": "Point", "coordinates": [ -176.473389, -1.164471 ] } } , -{ "type": "Feature", "properties": { "thesum": 97, "themax": 54, "themin": 43, "theproduct": 2322, "themean": 47, "theconcat": "4354", "thecomma": "43,54" }, "geometry": { "type": "Point", "coordinates": [ -168.145752, -37.378888 ] } } +{ "type": "Feature", "properties": { "thesum": 97, "themax": 54, "themin": 43, "theproduct": 2322, "themean": 48.5, "theconcat": "4354", "thecomma": "43,54" }, "geometry": { "type": "Point", "coordinates": [ -168.145752, -37.378888 ] } } ] } ] } , @@ -359,7 +359,7 @@ { "type": "FeatureCollection", "properties": { "layer": "in", "version": 2, "extent": 4096 }, "features": [ { "type": "Feature", "properties": { "thesum": 79, "themax": 62, "themin": 17, "theproduct": 1054, "themean": 39.5, "theconcat": "1762", "thecomma": "17,62" }, "geometry": { "type": "Point", "coordinates": [ 110.423584, 38.367502 ] } } , -{ "type": "Feature", "properties": { "thesum": 157, "themax": 81, "themin": 7, "theproduct": 39123, "themean": 41.75, "theconcat": "69817", "thecomma": "69,81,7" }, "geometry": { "type": "Point", "coordinates": [ 113.609619, 13.848747 ] } } +{ "type": "Feature", "properties": { "thesum": 157, "themax": 81, "themin": 7, "theproduct": 39123, "themean": 52.333333333333339, "theconcat": "69817", "thecomma": "69,81,7" }, "geometry": { "type": "Point", "coordinates": [ 113.609619, 13.848747 ] } } ] } ] } , diff --git a/tile.cpp b/tile.cpp index 2cf955252..cf419825a 100644 --- a/tile.cpp +++ b/tile.cpp @@ -355,6 +355,11 @@ void rewrite(drawvec &geom, int z, int nextzoom, int maxzoom, long long *bbox, u } } +struct accum_state { + double sum = 0; + double count = 0; +}; + struct partial { std::vector geoms = std::vector(); std::vector keys = std::vector(); @@ -379,6 +384,7 @@ struct partial { long long extent = 0; long long clustered = 0; std::set need_tilestats; + std::map attribute_accum_state; }; struct partial_arg { @@ -1560,12 +1566,7 @@ void add_tilestats(std::string const &layername, int z, std::vectorsecond.file_keys, key, attrib); } -struct accum_state { - double sum = 0; - double count = 0; -}; - -void preserve_attribute(attribute_op op, std::map &attribute_accum_state, serial_feature &, char *stringpool, long long *pool_off, std::string &key, serial_val &val, partial &p) { +void preserve_attribute(attribute_op op, serial_feature &, char *stringpool, long long *pool_off, std::string &key, serial_val &val, partial &p) { if (p.need_tilestats.count(key) == 0) { p.need_tilestats.insert(key); } @@ -1623,12 +1624,12 @@ void preserve_attribute(attribute_op op, std::map &att } case op_mean: { - auto state = attribute_accum_state.find(key); - if (state == attribute_accum_state.end()) { + auto state = p.attribute_accum_state.find(key); + if (state == p.attribute_accum_state.end()) { accum_state s; s.sum = atof(p.full_values[i].s.c_str()) + atof(val.s.c_str()); s.count = 2; - attribute_accum_state.insert(std::pair(key, s)); + p.attribute_accum_state.insert(std::pair(key, s)); p.full_values[i].s = milo::dtoa_milo(s.sum / s.count); } else { @@ -1654,7 +1655,7 @@ void preserve_attribute(attribute_op op, std::map &att } } -void preserve_attributes(std::map const *attribute_accum, std::map &attribute_accum_state, serial_feature &sf, char *stringpool, long long *pool_off, partial &p) { +void preserve_attributes(std::map const *attribute_accum, serial_feature &sf, char *stringpool, long long *pool_off, partial &p) { for (size_t i = 0; i < sf.keys.size(); i++) { std::string key = stringpool + pool_off[sf.segment] + sf.keys[i] + 1; @@ -1664,7 +1665,7 @@ void preserve_attributes(std::map const *attribute_ac auto f = attribute_accum->find(key); if (f != attribute_accum->end()) { - preserve_attribute(f->second, attribute_accum_state, sf, stringpool, pool_off, key, sv, p); + preserve_attribute(f->second, sf, stringpool, pool_off, key, sv, p); } } for (size_t i = 0; i < sf.full_keys.size(); i++) { @@ -1673,7 +1674,7 @@ void preserve_attributes(std::map const *attribute_ac auto f = attribute_accum->find(key); if (f != attribute_accum->end()) { - preserve_attribute(f->second, attribute_accum_state, sf, stringpool, pool_off, key, sv, p); + preserve_attribute(f->second, sf, stringpool, pool_off, key, sv, p); } } } @@ -1766,7 +1767,6 @@ long long write_tile(FILE *geoms, std::atomic *geompos_in, char *meta std::map> layers; std::vector indices; std::vector extents; - std::map attribute_accum_state; double coalesced_area = 0; drawvec shared_nodes; @@ -1869,14 +1869,14 @@ long long write_tile(FILE *geoms, std::atomic *geompos_in, char *meta if (sf.dropped) { if (find_partial(partials, sf, which_partial, layer_unmaps)) { - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } } if (gamma > 0) { if (manage_gap(sf.index, &previndex, scale, gamma, &gap) && find_partial(partials, sf, which_partial, layer_unmaps)) { - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } } @@ -1898,13 +1898,13 @@ long long write_tile(FILE *geoms, std::atomic *geompos_in, char *meta partials[which_partial].geoms[0][0].y = y / (partials[which_partial].clustered + 1); } - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } } else if (additional[A_DROP_DENSEST_AS_NEEDED]) { indices.push_back(sf.index); if (sf.index - merge_previndex < mingap && find_partial(partials, sf, which_partial, layer_unmaps)) { - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } } else if (additional[A_COALESCE_DENSEST_AS_NEEDED]) { @@ -1912,13 +1912,13 @@ long long write_tile(FILE *geoms, std::atomic *geompos_in, char *meta if (sf.index - merge_previndex < mingap && find_partial(partials, sf, which_partial, layer_unmaps)) { partials[which_partial].geoms.push_back(sf.geometry); coalesced_area += sf.extent; - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } } else if (additional[A_DROP_SMALLEST_AS_NEEDED]) { extents.push_back(sf.extent); if (sf.extent + coalesced_area <= minextent && sf.t != VT_POINT && find_partial(partials, sf, which_partial, layer_unmaps)) { - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } } else if (additional[A_COALESCE_SMALLEST_AS_NEEDED]) { @@ -1926,7 +1926,7 @@ long long write_tile(FILE *geoms, std::atomic *geompos_in, char *meta if (sf.extent + coalesced_area <= minextent && find_partial(partials, sf, which_partial, layer_unmaps)) { partials[which_partial].geoms.push_back(sf.geometry); coalesced_area += sf.extent; - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } } @@ -1949,7 +1949,7 @@ long long write_tile(FILE *geoms, std::atomic *geompos_in, char *meta partials[which_partial].geoms.push_back(sf.geometry); coalesced_area += sf.extent; } - preserve_attributes(arg->attribute_accum, attribute_accum_state, sf, stringpool, pool_off, partials[which_partial]); + preserve_attributes(arg->attribute_accum, sf, stringpool, pool_off, partials[which_partial]); continue; } fraction_accum -= 1; diff --git a/version.hpp b/version.hpp index a1f8a5265..7f0f6a77d 100644 --- a/version.hpp +++ b/version.hpp @@ -1,6 +1,6 @@ #ifndef VERSION_HPP #define VERSION_HPP -#define VERSION "v1.34.6" +#define VERSION "v1.35.0" #endif