kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
75 lines (71 loc) • 11.2 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DataForm = void 0;
exports.createDataContainer = createDataContainer;
exports.createIndexedDataContainer = createIndexedDataContainer;
exports.getSampleData = getSampleData;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _arrowDataContainer = require("./arrow-data-container");
var _rowDataContainer = require("./row-data-container");
var _indexedDataContainer = require("./indexed-data-container");
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; } // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
var DataForm = exports.DataForm = {
ROWS_ARRAY: 'ROWS_ARRAY',
COLS_ARRAY: 'COLS_ARRAY'
};
var defaultOptions = {
inputDataFormat: DataForm.ROWS_ARRAY
};
/**
* Creates a data container wrapper for the data.
* @param data Data.
* @param options Options.
* @returns A data container object which is based on data and options.
*/
function createDataContainer(data) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
options = _objectSpread(_objectSpread({}, defaultOptions), options);
if (options.inputDataFormat === DataForm.ROWS_ARRAY) {
return new _rowDataContainer.RowDataContainer({
rows: data,
fields: options.fields
});
} else if (options.inputDataFormat === DataForm.COLS_ARRAY) {
return new _arrowDataContainer.ArrowDataContainer({
cols: data,
fields: options.fields,
arrowTable: options.arrowTable
});
}
throw Error('Failed to create a data container: not implemented format');
}
/**
* Creates a data container wrapper around another data container.
* @param dataContainer Parent data container.
* @param indices An array of row indices in the parent data container.
*/
function createIndexedDataContainer(dataContainer, indices) {
return new _indexedDataContainer.IndexedDataContainer(dataContainer, indices);
}
/**
* Get a sample of rows from a data container.
* @param dataContainer Data container to get samples from.
* @param sampleSize Max number of samples.
* @returns A data container which contains samples from the original data container.
*/
function getSampleData(dataContainer) {
var sampleSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
var numberOfRows = dataContainer.numRows();
var sampleStep = Math.max(Math.floor(numberOfRows / sampleSize), 1);
var indices = [];
for (var i = 0; i < numberOfRows; i += sampleStep) {
indices.push(i);
}
return createIndexedDataContainer(dataContainer, indices);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXJyb3dEYXRhQ29udGFpbmVyIiwicmVxdWlyZSIsIl9yb3dEYXRhQ29udGFpbmVyIiwiX2luZGV4ZWREYXRhQ29udGFpbmVyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJEYXRhRm9ybSIsImV4cG9ydHMiLCJST1dTX0FSUkFZIiwiQ09MU19BUlJBWSIsImRlZmF1bHRPcHRpb25zIiwiaW5wdXREYXRhRm9ybWF0IiwiY3JlYXRlRGF0YUNvbnRhaW5lciIsImRhdGEiLCJvcHRpb25zIiwidW5kZWZpbmVkIiwiUm93RGF0YUNvbnRhaW5lciIsInJvd3MiLCJmaWVsZHMiLCJBcnJvd0RhdGFDb250YWluZXIiLCJjb2xzIiwiYXJyb3dUYWJsZSIsIkVycm9yIiwiY3JlYXRlSW5kZXhlZERhdGFDb250YWluZXIiLCJkYXRhQ29udGFpbmVyIiwiaW5kaWNlcyIsIkluZGV4ZWREYXRhQ29udGFpbmVyIiwiZ2V0U2FtcGxlRGF0YSIsInNhbXBsZVNpemUiLCJudW1iZXJPZlJvd3MiLCJudW1Sb3dzIiwic2FtcGxlU3RlcCIsIk1hdGgiLCJtYXgiLCJmbG9vciIsImkiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YS1jb250YWluZXItdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtBcnJvd0RhdGFDb250YWluZXJ9IGZyb20gJy4vYXJyb3ctZGF0YS1jb250YWluZXInO1xuaW1wb3J0IHtSb3dEYXRhQ29udGFpbmVyfSBmcm9tICcuL3Jvdy1kYXRhLWNvbnRhaW5lcic7XG5pbXBvcnQge0luZGV4ZWREYXRhQ29udGFpbmVyfSBmcm9tICcuL2luZGV4ZWQtZGF0YS1jb250YWluZXInO1xuXG5pbXBvcnQge0RhdGFDb250YWluZXJJbnRlcmZhY2V9IGZyb20gJy4vZGF0YS1jb250YWluZXItaW50ZXJmYWNlJztcbmltcG9ydCB7UHJvdG9EYXRhc2V0RmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0ICogYXMgYXJyb3cgZnJvbSAnYXBhY2hlLWFycm93JztcblxuZXhwb3J0IHR5cGUgRGF0YUNvbnRhaW5lck9wdGlvbnMgPSB7XG4gIGlucHV0RGF0YUZvcm1hdD86IHN0cmluZzsgLy8gb25lIG9mIERhdGFGb3JtXG4gIGZpZWxkcz86IFByb3RvRGF0YXNldEZpZWxkW107XG4gIGFycm93VGFibGU/OiBhcnJvdy5UYWJsZTtcbn07XG5cbmV4cG9ydCBjb25zdCBEYXRhRm9ybSA9IHtcbiAgUk9XU19BUlJBWTogJ1JPV1NfQVJSQVknLFxuICBDT0xTX0FSUkFZOiAnQ09MU19BUlJBWSdcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBEYXRhQ29udGFpbmVyT3B0aW9ucyA9IHtcbiAgaW5wdXREYXRhRm9ybWF0OiBEYXRhRm9ybS5ST1dTX0FSUkFZXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkYXRhIGNvbnRhaW5lciB3cmFwcGVyIGZvciB0aGUgZGF0YS5cbiAqIEBwYXJhbSBkYXRhIERhdGEuXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zLlxuICogQHJldHVybnMgQSBkYXRhIGNvbnRhaW5lciBvYmplY3Qgd2hpY2ggaXMgYmFzZWQgb24gZGF0YSBhbmQgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFDb250YWluZXIoXG4gIGRhdGE6IGFueVtdLFxuICBvcHRpb25zOiBEYXRhQ29udGFpbmVyT3B0aW9ucyA9IGRlZmF1bHRPcHRpb25zXG4pOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHtcbiAgb3B0aW9ucyA9IHsuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9uc307XG5cbiAgaWYgKG9wdGlvbnMuaW5wdXREYXRhRm9ybWF0ID09PSBEYXRhRm9ybS5ST1dTX0FSUkFZKSB7XG4gICAgcmV0dXJuIG5ldyBSb3dEYXRhQ29udGFpbmVyKHtyb3dzOiBkYXRhLCBmaWVsZHM6IG9wdGlvbnMuZmllbGRzfSk7XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5pbnB1dERhdGFGb3JtYXQgPT09IERhdGFGb3JtLkNPTFNfQVJSQVkpIHtcbiAgICByZXR1cm4gbmV3IEFycm93RGF0YUNvbnRhaW5lcih7Y29sczogZGF0YSwgZmllbGRzOiBvcHRpb25zLmZpZWxkcywgYXJyb3dUYWJsZTogb3B0aW9ucy5hcnJvd1RhYmxlfSk7XG4gIH1cblxuICB0aHJvdyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBhIGRhdGEgY29udGFpbmVyOiBub3QgaW1wbGVtZW50ZWQgZm9ybWF0Jyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRhdGEgY29udGFpbmVyIHdyYXBwZXIgYXJvdW5kIGFub3RoZXIgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBQYXJlbnQgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gaW5kaWNlcyBBbiBhcnJheSBvZiByb3cgaW5kaWNlcyBpbiB0aGUgcGFyZW50IGRhdGEgY29udGFpbmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5kZXhlZERhdGFDb250YWluZXIoXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIGluZGljZXM6IG51bWJlcltdXG4pOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHtcbiAgcmV0dXJuIG5ldyBJbmRleGVkRGF0YUNvbnRhaW5lcihkYXRhQ29udGFpbmVyLCBpbmRpY2VzKTtcbn1cblxuLyoqXG4gKiBHZXQgYSBzYW1wbGUgb2Ygcm93cyBmcm9tIGEgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBEYXRhIGNvbnRhaW5lciB0byBnZXQgc2FtcGxlcyBmcm9tLlxuICogQHBhcmFtIHNhbXBsZVNpemUgTWF4IG51bWJlciBvZiBzYW1wbGVzLlxuICogQHJldHVybnMgQSBkYXRhIGNvbnRhaW5lciB3aGljaCBjb250YWlucyBzYW1wbGVzIGZyb20gdGhlIG9yaWdpbmFsIGRhdGEgY29udGFpbmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2FtcGxlRGF0YShcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSxcbiAgc2FtcGxlU2l6ZSA9IDUwMFxuKTogRGF0YUNvbnRhaW5lckludGVyZmFjZSB7XG4gIGNvbnN0IG51bWJlck9mUm93cyA9IGRhdGFDb250YWluZXIubnVtUm93cygpO1xuICBjb25zdCBzYW1wbGVTdGVwID0gTWF0aC5tYXgoTWF0aC5mbG9vcihudW1iZXJPZlJvd3MgLyBzYW1wbGVTaXplKSwgMSk7XG5cbiAgY29uc3QgaW5kaWNlczogbnVtYmVyW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJPZlJvd3M7IGkgKz0gc2FtcGxlU3RlcCkge1xuICAgIGluZGljZXMucHVzaChpKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lcihkYXRhQ29udGFpbmVyLCBpbmRpY2VzKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxtQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFBOEQsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFK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