kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
46 lines (44 loc) • 6.53 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.pansharpenBrovey = void 0;
// SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
// Brovey Method: Each resampled, multispectral pixel is
// multiplied by the ratio of the corresponding
// panchromatic pixel intensity to the sum of all the
// multispectral intensities.
// Original code from https://github.com/mapbox/rio-pansharpen
//
var fs1 = "uniform sampler2D bitmapTexturePan;\n\nuniform pansharpen_broveyUniforms {\n float panWeight;\n} pansharpen_brovey;\n\nfloat pansharpen_brovey_ratio(vec4 rgb, float pan, float weight) {\n return pan / ((rgb.r + rgb.g + rgb.b * weight) / (2. + weight));\n}\n\nvec4 pansharpen_brovey_calc(vec4 rgb, float pan, float weight) {\n float ratio = pansharpen_brovey_ratio(rgb, pan, weight);\n return ratio * rgb;\n}\n";
var fs2 = "precision mediump usampler2D;\n\n#ifdef SAMPLER_TYPE\n uniform SAMPLER_TYPE bitmapTexturePan;\n#else\n uniform sampler2D bitmapTexturePan;\n#endif\n\nuniform pansharpen_broveyUniforms {\n float panWeight;\n} pansharpen_brovey;\n\nfloat pansharpen_brovey_ratio(vec4 rgb, float pan, float weight) {\n return pan / ((rgb.r + rgb.g + rgb.b * weight) / (2. + weight));\n}\n\nvec4 pansharpen_brovey_calc(vec4 rgb, float pan, float weight) {\n float ratio = pansharpen_brovey_ratio(rgb, pan, weight);\n return ratio * rgb;\n}\n";
function getUniforms() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var imagePan = opts.imagePan,
_opts$panWeight = opts.panWeight,
panWeight = _opts$panWeight === void 0 ? 0.2 : _opts$panWeight;
if (!imagePan) {
return null;
}
return {
bitmapTexturePan: imagePan,
panWeight: panWeight
};
}
var pansharpenBrovey = exports.pansharpenBrovey = {
name: 'pansharpen_brovey',
fs1: fs1,
fs2: fs2,
uniformTypes: {
panWeight: 'f32'
},
defines: {
SAMPLER_TYPE: 'sampler2D'
},
getUniforms: getUniforms,
inject: {
'fs:DECKGL_MUTATE_COLOR': "\n float pan_band = float(texture(bitmapTexturePan, coord).r);\n image = pansharpen_brovey_calc(image, pan_band, pansharpen_brovey.panWeight);\n "
}
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmczEiLCJmczIiLCJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpbWFnZVBhbiIsIl9vcHRzJHBhbldlaWdodCIsInBhbldlaWdodCIsImJpdG1hcFRleHR1cmVQYW4iLCJwYW5zaGFycGVuQnJvdmV5IiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJkZWZpbmVzIiwiU0FNUExFUl9UWVBFIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC9wYW5zaGFycGVuL3BhbnNoYXJwZW4tYnJvdmV5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB0eXBlIHtUZXh0dXJlfSBmcm9tICdAbHVtYS5nbC9jb3JlJztcbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyBCcm92ZXkgTWV0aG9kOiBFYWNoIHJlc2FtcGxlZCwgbXVsdGlzcGVjdHJhbCBwaXhlbCBpc1xuLy8gbXVsdGlwbGllZCBieSB0aGUgcmF0aW8gb2YgdGhlIGNvcnJlc3BvbmRpbmdcbi8vIHBhbmNocm9tYXRpYyBwaXhlbCBpbnRlbnNpdHkgdG8gdGhlIHN1bSBvZiBhbGwgdGhlXG4vLyBtdWx0aXNwZWN0cmFsIGludGVuc2l0aWVzLlxuLy8gT3JpZ2luYWwgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXBib3gvcmlvLXBhbnNoYXJwZW5cbi8vXG5jb25zdCBmczEgPSBgXFxcbnVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVQYW47XG5cbnVuaWZvcm0gcGFuc2hhcnBlbl9icm92ZXlVbmlmb3JtcyB7XG4gIGZsb2F0IHBhbldlaWdodDtcbn0gcGFuc2hhcnBlbl9icm92ZXk7XG5cbmZsb2F0IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICByZXR1cm4gcGFuIC8gKChyZ2IuciArIHJnYi5nICsgcmdiLmIgKiB3ZWlnaHQpIC8gKDIuICsgd2VpZ2h0KSk7XG59XG5cbnZlYzQgcGFuc2hhcnBlbl9icm92ZXlfY2FsYyh2ZWM0IHJnYiwgZmxvYXQgcGFuLCBmbG9hdCB3ZWlnaHQpIHtcbiAgZmxvYXQgcmF0aW8gPSBwYW5zaGFycGVuX2Jyb3ZleV9yYXRpbyhyZ2IsIHBhbiwgd2VpZ2h0KTtcbiAgcmV0dXJuIHJhdGlvICogcmdiO1xufVxuYDtcblxuY29uc3QgZnMyID0gYFxcXG5wcmVjaXNpb24gbWVkaXVtcCB1c2FtcGxlcjJEO1xuXG4jaWZkZWYgU0FNUExFUl9UWVBFXG4gIHVuaWZvcm0gU0FNUExFUl9UWVBFIGJpdG1hcFRleHR1cmVQYW47XG4jZWxzZVxuICB1bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlUGFuO1xuI2VuZGlmXG5cbnVuaWZvcm0gcGFuc2hhcnBlbl9icm92ZXlVbmlmb3JtcyB7XG4gIGZsb2F0IHBhbldlaWdodDtcbn0gcGFuc2hhcnBlbl9icm92ZXk7XG5cbmZsb2F0IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICByZXR1cm4gcGFuIC8gKChyZ2IuciArIHJnYi5nICsgcmdiLmIgKiB3ZWlnaHQpIC8gKDIuICsgd2VpZ2h0KSk7XG59XG5cbnZlYzQgcGFuc2hhcnBlbl9icm92ZXlfY2FsYyh2ZWM0IHJnYiwgZmxvYXQgcGFuLCBmbG9hdCB3ZWlnaHQpIHtcbiAgZmxvYXQgcmF0aW8gPSBwYW5zaGFycGVuX2Jyb3ZleV9yYXRpbyhyZ2IsIHBhbiwgd2VpZ2h0KTtcbiAgcmV0dXJuIHJhdGlvICogcmdiO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge2ltYWdlUGFuPzogVGV4dHVyZTsgcGFuV2VpZ2h0PzogbnVtYmVyfSA9IHt9KTogR2V0VW5pZm9ybXNPdXRwdXQge1xuICBjb25zdCB7aW1hZ2VQYW4sIHBhbldlaWdodCA9IDAuMn0gPSBvcHRzO1xuXG4gIGlmICghaW1hZ2VQYW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYml0bWFwVGV4dHVyZVBhbjogaW1hZ2VQYW4sXG4gICAgcGFuV2VpZ2h0XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBwYW5zaGFycGVuQnJvdmV5OiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdwYW5zaGFycGVuX2Jyb3ZleScsXG4gIGZzMSxcbiAgZnMyLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBwYW5XZWlnaHQ6ICdmMzInXG4gIH0sXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICdzYW1wbGVyMkQnXG4gIH0sXG4gIGdldFVuaWZvcm1zLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBmbG9hdCBwYW5fYmFuZCA9IGZsb2F0KHRleHR1cmUoYml0bWFwVGV4dHVyZVBhbiwgY29vcmQpLnIpO1xuICAgIGltYWdlID0gcGFuc2hhcnBlbl9icm92ZXlfY2FsYyhpbWFnZSwgcGFuX2JhbmQsIHBhbnNoYXJwZW5fYnJvdmV5LnBhbldlaWdodCk7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLEdBQUcsa2FBZVI7QUFFRCxJQUFNQyxHQUFHLG1oQkFxQlI7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBQXlFO0VBQUEsSUFBeEVDLElBQThDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUN0RSxJQUFPRyxRQUFRLEdBQXFCSixJQUFJLENBQWpDSSxRQUFRO0lBQUFDLGVBQUEsR0FBcUJMLElBQUksQ0FBdkJNLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxlQUFBLGNBQUcsR0FBRyxHQUFBQSxlQUFBO0VBRWhDLElBQUksQ0FBQ0QsUUFBUSxFQUFFO0lBQ2IsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPO0lBQ0xHLGdCQUFnQixFQUFFSCxRQUFRO0lBQzFCRSxTQUFTLEVBQVRBO0VBQ0YsQ0FBQztBQUNIO0FBRU8sSUFBTUUsZ0JBQThCLEdBQUFDLE9BQUEsQ0FBQUQsZ0JBQUEsR0FBRztFQUM1Q0UsSUFBSSxFQUFFLG1CQUFtQjtFQUN6QmIsR0FBRyxFQUFIQSxHQUFHO0VBQ0hDLEdBQUcsRUFBSEEsR0FBRztFQUNIYSxZQUFZLEVBQUU7SUFDWkwsU0FBUyxFQUFFO0VBQ2IsQ0FBQztFQUNETSxPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCLENBQUM7RUFDRGQsV0FBVyxFQUFYQSxXQUFXO0VBQ1hlLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUkxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=