UNPKG

kepler.gl.geoiq

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

84 lines (65 loc) 9.71 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.aggregate = aggregate; exports.getMode = exports.getFrequency = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _d3Array = require("d3-array"); var _defaultSettings = require("../constants/default-settings"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // import { ChannelByValueSelector } from '../../dist/components/side-panel/layer-panel/layer-configurator'; // const getFrenquency = data => // data.reduce((uniques, val) => { // uniques[val] = (uniques[val] || 0) + 1; // return uniques; // }, {}); // function getMode(data) { // const occur = getFrenquency(data); // return Object.keys(occur).reduce( // (prev, key) => (occur[prev] >= occur[key] ? prev : key), // Object.keys(occur)[0] // ); // } var getFrequency = exports.getFrequency = function getFrequency(data) { return data.reduce(function (uniques, val) { return _objectSpread(_objectSpread({}, uniques), {}, (0, _defineProperty2["default"])({}, val, (uniques[val] || 0) + 1)); }, {}); }; var getMode = exports.getMode = function getMode(data) { var occur = getFrequency(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.stdev: return (0, _d3Array.deviation)(data); case _defaultSettings.AGGREGATION_TYPES.sum: return (0, _d3Array.sum)(data); case _defaultSettings.AGGREGATION_TYPES.variance: return (0, _d3Array.variance)(data); default: return data.length; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hZ2dyZWdhdGUtdXRpbHMuanMiXSwibmFtZXMiOlsiZ2V0RnJlcXVlbmN5IiwiZGF0YSIsInJlZHVjZSIsInVuaXF1ZXMiLCJ2YWwiLCJnZXRNb2RlIiwib2NjdXIiLCJPYmplY3QiLCJrZXlzIiwicHJldiIsImtleSIsImFnZ3JlZ2F0ZSIsInRlY2huaXF1ZSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiYXZlcmFnZSIsImNvdW50VW5pcXVlIiwibGVuZ3RoIiwibW9kZSIsIm1heGltdW0iLCJtaW5pbXVtIiwibWVkaWFuIiwic3RkZXYiLCJzdW0iLCJ2YXJpYW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOzs7Ozs7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLElBQU1BLFlBQVksMEJBQUcsU0FBZkEsWUFBZSxDQUFBQyxJQUFJO0FBQUEsU0FDOUJBLElBQUksQ0FBQ0MsTUFBTCxDQUNFLFVBQUNDLE9BQUQsRUFBVUMsR0FBVjtBQUFBLDJDQUNLRCxPQURMLDRDQUVHQyxHQUZILEVBRVMsQ0FBQ0QsT0FBTyxDQUFDQyxHQUFELENBQVAsSUFBZ0IsQ0FBakIsSUFBc0IsQ0FGL0I7QUFBQSxHQURGLEVBS0UsRUFMRixDQUQ4QjtBQUFBLENBQXpCOztBQVNBLElBQU1DLE9BQU8scUJBQUcsU0FBVkEsT0FBVSxDQUFBSixJQUFJLEVBQUk7QUFDN0IsTUFBTUssS0FBSyxHQUFHTixZQUFZLENBQUNDLElBQUQsQ0FBMUI7QUFDQSxTQUFPTSxNQUFNLENBQUNDLElBQVAsQ0FBWUYsS0FBWixFQUFtQkosTUFBbkIsQ0FDTCxVQUFDTyxJQUFELEVBQU9DLEdBQVA7QUFBQSxXQUFnQkosS0FBSyxDQUFDRyxJQUFELENBQUwsSUFBZUgsS0FBSyxDQUFDSSxHQUFELENBQXBCLEdBQTRCRCxJQUE1QixHQUFtQ0MsR0FBbkQ7QUFBQSxHQURLLEVBRUxILE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixLQUFaLEVBQW1CLENBQW5CLENBRkssQ0FBUDtBQUlELENBTk07O0FBUUEsU0FBU0ssU0FBVCxDQUFtQlYsSUFBbkIsRUFBeUJXLFNBQXpCLEVBQW9DO0FBQ3pDLFVBQVFBLFNBQVI7QUFDRSxTQUFLQyxtQ0FBa0JDLE9BQXZCO0FBQ0UsYUFBTyxtQkFBS2IsSUFBTCxDQUFQOztBQUNGLFNBQUtZLG1DQUFrQkUsV0FBdkI7QUFDRSxhQUFPUixNQUFNLENBQUNDLElBQVAsQ0FDTFAsSUFBSSxDQUFDQyxNQUFMLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxHQUFWLEVBQWtCO0FBQzVCRCxRQUFBQSxPQUFPLENBQUNDLEdBQUQsQ0FBUCxHQUFlRCxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUEvQjtBQUNBRCxRQUFBQSxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUFoQjtBQUNBLGVBQU9ELE9BQVA7QUFDRCxPQUpELEVBSUcsRUFKSCxDQURLLEVBTUxhLE1BTkY7O0FBT0YsU0FBS0gsbUNBQWtCSSxJQUF2QjtBQUNFLGFBQU9aLE9BQU8sQ0FBQ0osSUFBRCxDQUFkOztBQUNGLFNBQUtZLG1DQUFrQkssT0FBdkI7QUFDRSxhQUFPLGtCQUFJakIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQk0sT0FBdkI7QUFDRSxhQUFPLGtCQUFJbEIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQk8sTUFBdkI7QUFDRSxhQUFPLHFCQUFPbkIsSUFBUCxDQUFQOztBQUNGLFNBQUtZLG1DQUFrQlEsS0FBdkI7QUFDRSxhQUFPLHdCQUFVcEIsSUFBVixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQlMsR0FBdkI7QUFDRSxhQUFPLGtCQUFJckIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQlUsUUFBdkI7QUFDRSxhQUFPLHVCQUFTdEIsSUFBVCxDQUFQOztBQUNGO0FBQ0UsYUFBT0EsSUFBSSxDQUFDZSxNQUFaO0FBMUJKO0FBNEJEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtkZXZpYXRpb24sIG1pbiwgbWF4LCBtZWFuLCBtZWRpYW4sIHN1bSwgdmFyaWFuY2V9IGZyb20gJ2QzLWFycmF5JztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVN9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbi8vIGltcG9ydCB7IENoYW5uZWxCeVZhbHVlU2VsZWN0b3IgfSBmcm9tICcuLi8uLi9kaXN0L2NvbXBvbmVudHMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWd1cmF0b3InO1xuXG4vLyBjb25zdCBnZXRGcmVucXVlbmN5ID0gZGF0YSA9PlxuLy8gICBkYXRhLnJlZHVjZSgodW5pcXVlcywgdmFsKSA9PiB7XG4vLyAgICAgdW5pcXVlc1t2YWxdID0gKHVuaXF1ZXNbdmFsXSB8fCAwKSArIDE7XG4vLyAgICAgcmV0dXJuIHVuaXF1ZXM7XG4vLyAgIH0sIHt9KTtcblxuLy8gZnVuY3Rpb24gZ2V0TW9kZShkYXRhKSB7XG4vLyAgIGNvbnN0IG9jY3VyID0gZ2V0RnJlbnF1ZW5jeShkYXRhKTtcbi8vICAgcmV0dXJuIE9iamVjdC5rZXlzKG9jY3VyKS5yZWR1Y2UoXG4vLyAgICAgKHByZXYsIGtleSkgPT4gKG9jY3VyW3ByZXZdID49IG9jY3VyW2tleV0gPyBwcmV2IDoga2V5KSxcbi8vICAgICBPYmplY3Qua2V5cyhvY2N1cilbMF1cbi8vICAgKTtcbi8vIH1cbmV4cG9ydCBjb25zdCBnZXRGcmVxdWVuY3kgPSBkYXRhID0+XG4gIGRhdGEucmVkdWNlKFxuICAgICh1bmlxdWVzLCB2YWwpID0+ICh7XG4gICAgICAuLi51bmlxdWVzLFxuICAgICAgW3ZhbF06ICh1bmlxdWVzW3ZhbF0gfHwgMCkgKyAxXG4gICAgfSksXG4gICAge31cbiAgKTtcblxuZXhwb3J0IGNvbnN0IGdldE1vZGUgPSBkYXRhID0+IHtcbiAgY29uc3Qgb2NjdXIgPSBnZXRGcmVxdWVuY3koZGF0YSk7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvY2N1cikucmVkdWNlKFxuICAgIChwcmV2LCBrZXkpID0+IChvY2N1cltwcmV2XSA+PSBvY2N1cltrZXldID8gcHJldiA6IGtleSksXG4gICAgT2JqZWN0LmtleXMob2NjdXIpWzBdXG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gYWdncmVnYXRlKGRhdGEsIHRlY2huaXF1ZSkge1xuICBzd2l0Y2ggKHRlY2huaXF1ZSkge1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZTpcbiAgICAgIHJldHVybiBtZWFuKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuY291bnRVbmlxdWU6XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoXG4gICAgICAgIGRhdGEucmVkdWNlKCh1bmlxdWVzLCB2YWwpID0+IHtcbiAgICAgICAgICB1bmlxdWVzW3ZhbF0gPSB1bmlxdWVzW3ZhbF0gfHwgMDtcbiAgICAgICAgICB1bmlxdWVzW3ZhbF0gKz0gMTtcbiAgICAgICAgICByZXR1cm4gdW5pcXVlcztcbiAgICAgICAgfSwge30pXG4gICAgICApLmxlbmd0aDtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLm1vZGU6XG4gICAgICByZXR1cm4gZ2V0TW9kZShkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLm1heGltdW06XG4gICAgICByZXR1cm4gbWF4KGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMubWluaW11bTpcbiAgICAgIHJldHVybiBtaW4oZGF0YSk7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tZWRpYW46XG4gICAgICByZXR1cm4gbWVkaWFuKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuc3RkZXY6XG4gICAgICByZXR1cm4gZGV2aWF0aW9uKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuc3VtOlxuICAgICAgcmV0dXJuIHN1bShkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLnZhcmlhbmNlOlxuICAgICAgcmV0dXJuIHZhcmlhbmNlKGRhdGEpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==