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
JavaScript
;
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==