kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
77 lines (64 loc) • 8.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.aggregate = aggregate;
var _d3Array = require("d3-array");
var _defaultSettings = require("../constants/default-settings");
// Copyright (c) 2019 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
// import { ChannelByValueSelector } from '../../dist/components/side-panel/layer-panel/layer-configurator';
var getFrenquency = function getFrenquency(data) {
return data.reduce(function (uniques, val) {
uniques[val] = (uniques[val] || 0) + 1;
return uniques;
}, {});
};
function getMode(data) {
var occur = getFrenquency(data);
return Object.keys(occur).reduce(function (prev, key) {
return occur[prev] >= occur[key] ? prev : key;
}, Object.keys(occur)[0]);
}
function aggregate(data, technique) {
switch (technique) {
case _defaultSettings.AGGREGATION_TYPES.average:
return (0, _d3Array.mean)(data);
case _defaultSettings.AGGREGATION_TYPES.countUnique:
return Object.keys(data.reduce(function (uniques, val) {
uniques[val] = uniques[val] || 0;
uniques[val] += 1;
return uniques;
}, {})).length;
case _defaultSettings.AGGREGATION_TYPES.mode:
return getMode(data);
case _defaultSettings.AGGREGATION_TYPES.maximum:
return (0, _d3Array.max)(data);
case _defaultSettings.AGGREGATION_TYPES.minimum:
return (0, _d3Array.min)(data);
case _defaultSettings.AGGREGATION_TYPES.median:
return (0, _d3Array.median)(data);
case _defaultSettings.AGGREGATION_TYPES.sum:
return (0, _d3Array.sum)(data);
default:
return data.length;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hZ2dyZWdhdGUtdXRpbHMuanMiXSwibmFtZXMiOlsiZ2V0RnJlbnF1ZW5jeSIsImRhdGEiLCJyZWR1Y2UiLCJ1bmlxdWVzIiwidmFsIiwiZ2V0TW9kZSIsIm9jY3VyIiwiT2JqZWN0Iiwia2V5cyIsInByZXYiLCJrZXkiLCJhZ2dyZWdhdGUiLCJ0ZWNobmlxdWUiLCJBR0dSRUdBVElPTl9UWVBFUyIsImF2ZXJhZ2UiLCJjb3VudFVuaXF1ZSIsImxlbmd0aCIsIm1vZGUiLCJtYXhpbXVtIiwibWluaW11bSIsIm1lZGlhbiIsInN1bSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW9CQTs7QUFDQTs7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUVBLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQUMsSUFBSTtBQUFBLFNBQ3hCQSxJQUFJLENBQUNDLE1BQUwsQ0FBWSxVQUFDQyxPQUFELEVBQVVDLEdBQVYsRUFBa0I7QUFDNUJELElBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxDQUFQLEdBQWUsQ0FBQ0QsT0FBTyxDQUFDQyxHQUFELENBQVAsSUFBZ0IsQ0FBakIsSUFBc0IsQ0FBckM7QUFDQSxXQUFPRCxPQUFQO0FBQ0QsR0FIRCxFQUdHLEVBSEgsQ0FEd0I7QUFBQSxDQUExQjs7QUFNQSxTQUFTRSxPQUFULENBQWlCSixJQUFqQixFQUF1QjtBQUNyQixNQUFNSyxLQUFLLEdBQUdOLGFBQWEsQ0FBQ0MsSUFBRCxDQUEzQjtBQUNBLFNBQU9NLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixLQUFaLEVBQW1CSixNQUFuQixDQUNMLFVBQUNPLElBQUQsRUFBT0MsR0FBUDtBQUFBLFdBQWdCSixLQUFLLENBQUNHLElBQUQsQ0FBTCxJQUFlSCxLQUFLLENBQUNJLEdBQUQsQ0FBcEIsR0FBNEJELElBQTVCLEdBQW1DQyxHQUFuRDtBQUFBLEdBREssRUFFTEgsTUFBTSxDQUFDQyxJQUFQLENBQVlGLEtBQVosRUFBbUIsQ0FBbkIsQ0FGSyxDQUFQO0FBSUQ7O0FBRU0sU0FBU0ssU0FBVCxDQUFtQlYsSUFBbkIsRUFBeUJXLFNBQXpCLEVBQW9DO0FBQ3pDLFVBQVFBLFNBQVI7QUFDRSxTQUFLQyxtQ0FBa0JDLE9BQXZCO0FBQ0UsYUFBTyxtQkFBS2IsSUFBTCxDQUFQOztBQUNGLFNBQUtZLG1DQUFrQkUsV0FBdkI7QUFDRSxhQUFPUixNQUFNLENBQUNDLElBQVAsQ0FDTFAsSUFBSSxDQUFDQyxNQUFMLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxHQUFWLEVBQWtCO0FBQzVCRCxRQUFBQSxPQUFPLENBQUNDLEdBQUQsQ0FBUCxHQUFlRCxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUEvQjtBQUNBRCxRQUFBQSxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUFoQjtBQUNBLGVBQU9ELE9BQVA7QUFDRCxPQUpELEVBSUcsRUFKSCxDQURLLEVBTUxhLE1BTkY7O0FBT0YsU0FBS0gsbUNBQWtCSSxJQUF2QjtBQUNFLGFBQU9aLE9BQU8sQ0FBQ0osSUFBRCxDQUFkOztBQUNGLFNBQUtZLG1DQUFrQkssT0FBdkI7QUFDRSxhQUFPLGtCQUFJakIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQk0sT0FBdkI7QUFDRSxhQUFPLGtCQUFJbEIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQk8sTUFBdkI7QUFDRSxhQUFPLHFCQUFPbkIsSUFBUCxDQUFQOztBQUNGLFNBQUtZLG1DQUFrQlEsR0FBdkI7QUFDRSxhQUFPLGtCQUFJcEIsSUFBSixDQUFQOztBQUNGO0FBQ0UsYUFBT0EsSUFBSSxDQUFDZSxNQUFaO0FBdEJKO0FBd0JEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE5IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHttaW4sIG1heCwgbWVhbiwgbWVkaWFuLCBzdW19IGZyb20gJ2QzLWFycmF5JztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVN9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbi8vIGltcG9ydCB7IENoYW5uZWxCeVZhbHVlU2VsZWN0b3IgfSBmcm9tICcuLi8uLi9kaXN0L2NvbXBvbmVudHMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWd1cmF0b3InO1xuXG5jb25zdCBnZXRGcmVucXVlbmN5ID0gZGF0YSA9PlxuICBkYXRhLnJlZHVjZSgodW5pcXVlcywgdmFsKSA9PiB7XG4gICAgdW5pcXVlc1t2YWxdID0gKHVuaXF1ZXNbdmFsXSB8fCAwKSArIDE7XG4gICAgcmV0dXJuIHVuaXF1ZXM7XG4gIH0sIHt9KTtcblxuZnVuY3Rpb24gZ2V0TW9kZShkYXRhKSB7XG4gIGNvbnN0IG9jY3VyID0gZ2V0RnJlbnF1ZW5jeShkYXRhKTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9jY3VyKS5yZWR1Y2UoXG4gICAgKHByZXYsIGtleSkgPT4gKG9jY3VyW3ByZXZdID49IG9jY3VyW2tleV0gPyBwcmV2IDoga2V5KSxcbiAgICBPYmplY3Qua2V5cyhvY2N1cilbMF1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0ZShkYXRhLCB0ZWNobmlxdWUpIHtcbiAgc3dpdGNoICh0ZWNobmlxdWUpIHtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2U6XG4gICAgICByZXR1cm4gbWVhbihkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLmNvdW50VW5pcXVlOlxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKFxuICAgICAgICBkYXRhLnJlZHVjZSgodW5pcXVlcywgdmFsKSA9PiB7XG4gICAgICAgICAgdW5pcXVlc1t2YWxdID0gdW5pcXVlc1t2YWxdIHx8IDA7XG4gICAgICAgICAgdW5pcXVlc1t2YWxdICs9IDE7XG4gICAgICAgICAgcmV0dXJuIHVuaXF1ZXM7XG4gICAgICAgIH0sIHt9KVxuICAgICAgKS5sZW5ndGg7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tb2RlOlxuICAgICAgcmV0dXJuIGdldE1vZGUoZGF0YSk7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tYXhpbXVtOlxuICAgICAgcmV0dXJuIG1heChkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW06XG4gICAgICByZXR1cm4gbWluKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuOlxuICAgICAgcmV0dXJuIG1lZGlhbihkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLnN1bTpcbiAgICAgIHJldHVybiBzdW0oZGF0YSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkYXRhLmxlbmd0aDtcbiAgfVxufVxuIl19