kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
74 lines (70 loc) • 11 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
});
}
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXJyb3dEYXRhQ29udGFpbmVyIiwicmVxdWlyZSIsIl9yb3dEYXRhQ29udGFpbmVyIiwiX2luZGV4ZWREYXRhQ29udGFpbmVyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJEYXRhRm9ybSIsImV4cG9ydHMiLCJST1dTX0FSUkFZIiwiQ09MU19BUlJBWSIsImRlZmF1bHRPcHRpb25zIiwiaW5wdXREYXRhRm9ybWF0IiwiY3JlYXRlRGF0YUNvbnRhaW5lciIsImRhdGEiLCJvcHRpb25zIiwidW5kZWZpbmVkIiwiUm93RGF0YUNvbnRhaW5lciIsInJvd3MiLCJmaWVsZHMiLCJBcnJvd0RhdGFDb250YWluZXIiLCJjb2xzIiwiRXJyb3IiLCJjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lciIsImRhdGFDb250YWluZXIiLCJpbmRpY2VzIiwiSW5kZXhlZERhdGFDb250YWluZXIiLCJnZXRTYW1wbGVEYXRhIiwic2FtcGxlU2l6ZSIsIm51bWJlck9mUm93cyIsIm51bVJvd3MiLCJzYW1wbGVTdGVwIiwiTWF0aCIsIm1heCIsImZsb29yIiwiaSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhLWNvbnRhaW5lci11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0Fycm93RGF0YUNvbnRhaW5lcn0gZnJvbSAnLi9hcnJvdy1kYXRhLWNvbnRhaW5lcic7XG5pbXBvcnQge1Jvd0RhdGFDb250YWluZXJ9IGZyb20gJy4vcm93LWRhdGEtY29udGFpbmVyJztcbmltcG9ydCB7SW5kZXhlZERhdGFDb250YWluZXJ9IGZyb20gJy4vaW5kZXhlZC1kYXRhLWNvbnRhaW5lcic7XG5cbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZX0gZnJvbSAnLi9kYXRhLWNvbnRhaW5lci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtQcm90b0RhdGFzZXRGaWVsZH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIERhdGFDb250YWluZXJPcHRpb25zID0ge1xuICBpbnB1dERhdGFGb3JtYXQ/OiBzdHJpbmc7IC8vIG9uZSBvZiBEYXRhRm9ybVxuICBmaWVsZHM/OiBQcm90b0RhdGFzZXRGaWVsZFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IERhdGFGb3JtID0ge1xuICBST1dTX0FSUkFZOiAnUk9XU19BUlJBWScsXG4gIENPTFNfQVJSQVk6ICdDT0xTX0FSUkFZJ1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IERhdGFDb250YWluZXJPcHRpb25zID0ge1xuICBpbnB1dERhdGFGb3JtYXQ6IERhdGFGb3JtLlJPV1NfQVJSQVlcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRhdGEgY29udGFpbmVyIHdyYXBwZXIgZm9yIHRoZSBkYXRhLlxuICogQHBhcmFtIGRhdGEgRGF0YS5cbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMuXG4gKiBAcmV0dXJucyBBIGRhdGEgY29udGFpbmVyIG9iamVjdCB3aGljaCBpcyBiYXNlZCBvbiBkYXRhIGFuZCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YUNvbnRhaW5lcihcbiAgZGF0YTogYW55W10sXG4gIG9wdGlvbnM6IERhdGFDb250YWluZXJPcHRpb25zID0gZGVmYXVsdE9wdGlvbnNcbik6IERhdGFDb250YWluZXJJbnRlcmZhY2Uge1xuICBvcHRpb25zID0gey4uLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zfTtcblxuICBpZiAob3B0aW9ucy5pbnB1dERhdGFGb3JtYXQgPT09IERhdGFGb3JtLlJPV1NfQVJSQVkpIHtcbiAgICByZXR1cm4gbmV3IFJvd0RhdGFDb250YWluZXIoe3Jvd3M6IGRhdGEsIGZpZWxkczogb3B0aW9ucy5maWVsZHN9KTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLmlucHV0RGF0YUZvcm1hdCA9PT0gRGF0YUZvcm0uQ09MU19BUlJBWSkge1xuICAgIHJldHVybiBuZXcgQXJyb3dEYXRhQ29udGFpbmVyKHtjb2xzOiBkYXRhLCBmaWVsZHM6IG9wdGlvbnMuZmllbGRzfSk7XG4gIH1cblxuICB0aHJvdyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBhIGRhdGEgY29udGFpbmVyOiBub3QgaW1wbGVtZW50ZWQgZm9ybWF0Jyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRhdGEgY29udGFpbmVyIHdyYXBwZXIgYXJvdW5kIGFub3RoZXIgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBQYXJlbnQgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gaW5kaWNlcyBBbiBhcnJheSBvZiByb3cgaW5kaWNlcyBpbiB0aGUgcGFyZW50IGRhdGEgY29udGFpbmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5kZXhlZERhdGFDb250YWluZXIoXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIGluZGljZXM6IG51bWJlcltdXG4pOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHtcbiAgcmV0dXJuIG5ldyBJbmRleGVkRGF0YUNvbnRhaW5lcihkYXRhQ29udGFpbmVyLCBpbmRpY2VzKTtcbn1cblxuLyoqXG4gKiBHZXQgYSBzYW1wbGUgb2Ygcm93cyBmcm9tIGEgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBEYXRhIGNvbnRhaW5lciB0byBnZXQgc2FtcGxlcyBmcm9tLlxuICogQHBhcmFtIHNhbXBsZVNpemUgTWF4IG51bWJlciBvZiBzYW1wbGVzLlxuICogQHJldHVybnMgQSBkYXRhIGNvbnRhaW5lciB3aGljaCBjb250YWlucyBzYW1wbGVzIGZyb20gdGhlIG9yaWdpbmFsIGRhdGEgY29udGFpbmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2FtcGxlRGF0YShcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSxcbiAgc2FtcGxlU2l6ZSA9IDUwMFxuKTogRGF0YUNvbnRhaW5lckludGVyZmFjZSB7XG4gIGNvbnN0IG51bWJlck9mUm93cyA9IGRhdGFDb250YWluZXIubnVtUm93cygpO1xuICBjb25zdCBzYW1wbGVTdGVwID0gTWF0aC5tYXgoTWF0aC5mbG9vcihudW1iZXJPZlJvd3MgLyBzYW1wbGVTaXplKSwgMSk7XG5cbiAgY29uc3QgaW5kaWNlczogbnVtYmVyW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJPZlJvd3M7IGkgKz0gc2FtcGxlU3RlcCkge1xuICAgIGluZGljZXMucHVzaChpKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lcihkYXRhQ29udGFpbmVyLCBpbmRpY2VzKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxtQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFBOEQsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUEsSUFMOUQ7QUFDQTtBQWNPLElBQU1vQixRQUFRLEdBQUFDLE9BQUEsQ0FBQUQsUUFBQSxHQUFHO0VBQ3RCRSxVQUFVLEVBQUUsWUFBWTtFQUN4QkMsVUFBVSxFQUFFO0FBQ2QsQ0FBQztBQUVELElBQU1DLGNBQW9DLEdBQUc7RUFDM0NDLGVBQWUsRUFBRUwsUUFBUSxDQUFDRTtBQUM1QixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNJLG1CQUFtQkEsQ0FDakNDLElBQVcsRUFFYTtFQUFBLElBRHhCQyxPQUE2QixHQUFBZixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBZ0IsU0FBQSxHQUFBaEIsU0FBQSxNQUFHVyxjQUFjO0VBRTlDSSxPQUFPLEdBQUFoQixhQUFBLENBQUFBLGFBQUEsS0FBT1ksY0FBYyxHQUFLSSxPQUFPLENBQUM7RUFFekMsSUFBSUEsT0FBTyxDQUFDSCxlQUFlLEtBQUtMLFFBQVEsQ0FBQ0UsVUFBVSxFQUFFO0lBQ25ELE9BQU8sSUFBSVEsa0NBQWdCLENBQUM7TUFBQ0MsSUFBSSxFQUFFSixJQUFJO01BQUVLLE1BQU0sRUFBRUosT0FBTyxDQUFDSTtJQUFNLENBQUMsQ0FBQztFQUNuRSxDQUFDLE1BQU0sSUFBSUosT0FBTyxDQUFDSCxlQUFlLEtBQUtMLFFBQVEsQ0FBQ0csVUFBVSxFQUFFO0lBQzFELE9BQU8sSUFBSVUsc0NBQWtCLENBQUM7TUFBQ0MsSUFBSSxFQUFFUCxJQUFJO01BQUVLLE1BQU0sRUFBRUosT0FBTyxDQUFDSTtJQUFNLENBQUMsQ0FBQztFQUNyRTtFQUVBLE1BQU1HLEtBQUssQ0FBQywyREFBMkQsQ0FBQztBQUMxRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0MsMEJBQTBCQSxDQUN4Q0MsYUFBcUMsRUFDckNDLE9BQWlCLEVBQ087RUFDeEIsT0FBTyxJQUFJQywwQ0FBb0IsQ0FBQ0YsYUFBYSxFQUFFQyxPQUFPLENBQUM7QUFDekQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0UsYUFBYUEsQ0FDM0JILGFBQXFDLEVBRWI7RUFBQSxJQUR4QkksVUFBVSxHQUFBNUIsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQWdCLFNBQUEsR0FBQWhCLFNBQUEsTUFBRyxHQUFHO0VBRWhCLElBQU02QixZQUFZLEdBQUdMLGFBQWEsQ0FBQ00sT0FBTyxDQUFDLENBQUM7RUFDNUMsSUFBTUMsVUFBVSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0QsSUFBSSxDQUFDRSxLQUFLLENBQUNMLFlBQVksR0FBR0QsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBRXJFLElBQU1ILE9BQWlCLEdBQUcsRUFBRTtFQUM1QixLQUFLLElBQUlVLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR04sWUFBWSxFQUFFTSxDQUFDLElBQUlKLFVBQVUsRUFBRTtJQUNqRE4sT0FBTyxDQUFDNUIsSUFBSSxDQUFDc0MsQ0FBQyxDQUFDO0VBQ2pCO0VBRUEsT0FBT1osMEJBQTBCLENBQUNDLGFBQWEsRUFBRUMsT0FBTyxDQUFDO0FBQzNEIiwiaWdub3JlTGlzdCI6W119
;