@kepler.gl/deckgl-layers 3.1.3 → 3.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -0
- package/dist/index.js +25 -2
- package/dist/layer-utils/cluster-utils.js +3 -3
- package/dist/raster/images.d.ts +9 -0
- package/dist/raster/images.js +165 -0
- package/dist/raster/raster-layer/raster-layer-webgl1.fs.d.ts +2 -0
- package/dist/raster/raster-layer/raster-layer-webgl1.fs.js +10 -0
- package/dist/raster/raster-layer/raster-layer-webgl1.vs.d.ts +2 -0
- package/dist/raster/raster-layer/raster-layer-webgl1.vs.js +10 -0
- package/dist/raster/raster-layer/raster-layer-webgl2.fs.d.ts +2 -0
- package/dist/raster/raster-layer/raster-layer-webgl2.fs.js +10 -0
- package/dist/raster/raster-layer/raster-layer-webgl2.vs.d.ts +2 -0
- package/dist/raster/raster-layer/raster-layer-webgl2.vs.js +10 -0
- package/dist/raster/raster-layer/raster-layer.d.ts +21 -0
- package/dist/raster/raster-layer/raster-layer.js +235 -0
- package/dist/raster/raster-mesh-layer/matrix.d.ts +2 -0
- package/dist/raster/raster-mesh-layer/matrix.js +18 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.d.ts +2 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +10 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.d.ts +2 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +10 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.d.ts +2 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +10 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.d.ts +2 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +10 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +22 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +263 -0
- package/dist/raster/types.d.ts +17 -0
- package/dist/raster/types.js +6 -0
- package/dist/raster/util.d.ts +10 -0
- package/dist/raster/util.js +29 -0
- package/dist/raster/webgl/color/colormap.d.ts +2 -0
- package/dist/raster/webgl/color/colormap.js +39 -0
- package/dist/raster/webgl/color/filter.d.ts +2 -0
- package/dist/raster/webgl/color/filter.js +48 -0
- package/dist/raster/webgl/color/gamma-contrast.d.ts +2 -0
- package/dist/raster/webgl/color/gamma-contrast.js +62 -0
- package/dist/raster/webgl/color/linear-rescale.d.ts +2 -0
- package/dist/raster/webgl/color/linear-rescale.js +31 -0
- package/dist/raster/webgl/color/saturation.d.ts +2 -0
- package/dist/raster/webgl/color/saturation.js +39 -0
- package/dist/raster/webgl/color/sigmoidal-contrast.d.ts +2 -0
- package/dist/raster/webgl/color/sigmoidal-contrast.js +64 -0
- package/dist/raster/webgl/index.d.ts +16 -0
- package/dist/raster/webgl/index.js +135 -0
- package/dist/raster/webgl/pansharpen/pansharpen-brovey.d.ts +2 -0
- package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +43 -0
- package/dist/raster/webgl/spectral-indices/evi.d.ts +2 -0
- package/dist/raster/webgl/spectral-indices/evi.js +26 -0
- package/dist/raster/webgl/spectral-indices/msavi.d.ts +2 -0
- package/dist/raster/webgl/spectral-indices/msavi.js +25 -0
- package/dist/raster/webgl/spectral-indices/normalized-difference.d.ts +2 -0
- package/dist/raster/webgl/spectral-indices/normalized-difference.js +19 -0
- package/dist/raster/webgl/spectral-indices/savi.d.ts +2 -0
- package/dist/raster/webgl/spectral-indices/savi.js +21 -0
- package/dist/raster/webgl/texture/combine-bands.d.ts +4 -0
- package/dist/raster/webgl/texture/combine-bands.js +65 -0
- package/dist/raster/webgl/texture/mask.d.ts +4 -0
- package/dist/raster/webgl/texture/mask.js +58 -0
- package/dist/raster/webgl/texture/reorder-bands.d.ts +10 -0
- package/dist/raster/webgl/texture/reorder-bands.js +69 -0
- package/dist/raster/webgl/texture/rgba-image.d.ts +2 -0
- package/dist/raster/webgl/texture/rgba-image.js +34 -0
- package/dist/raster/webgl/types.d.ts +23 -0
- package/dist/raster/webgl/types.js +6 -0
- package/package.json +5 -6
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.saturation = void 0;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Adjusts the saturation of a color.
|
12
|
+
* From cesium:
|
13
|
+
* https://github.com/CesiumGS/cesium/blob/master/Source/Shaders/Builtin/Functions/saturation.glsl
|
14
|
+
*
|
15
|
+
* @param {vec3} rgb The color.
|
16
|
+
* @param {float} adjustment The amount to adjust the saturation of the color. Usually between 0 and 2.
|
17
|
+
*
|
18
|
+
* @returns {vec3} The color with the saturation adjusted.
|
19
|
+
*/
|
20
|
+
var fs = "uniform float uSaturationValue;\nvec3 saturate(vec3 rgb, float adjustment) {\n // Algorithm from Chapter 16 of OpenGL Shading Language\n const vec3 W = vec3(0.2125, 0.7154, 0.0721);\n vec3 intensity = vec3(dot(rgb, W));\n return mix(intensity, rgb, adjustment);\n}\n";
|
21
|
+
function getUniforms() {
|
22
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
23
|
+
var saturationValue = opts.saturationValue;
|
24
|
+
if (!saturationValue) {
|
25
|
+
return null;
|
26
|
+
}
|
27
|
+
return {
|
28
|
+
uSaturationValue: Number.isFinite(saturationValue) ? saturationValue : 1
|
29
|
+
};
|
30
|
+
}
|
31
|
+
var saturation = exports.saturation = {
|
32
|
+
name: 'saturation',
|
33
|
+
fs: fs,
|
34
|
+
getUniforms: getUniforms,
|
35
|
+
inject: {
|
36
|
+
'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(saturate(image.rgb, uSaturationValue), image.a);\n "
|
37
|
+
}
|
38
|
+
};
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNhdHVyYXRpb25WYWx1ZSIsInVTYXR1cmF0aW9uVmFsdWUiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInNhdHVyYXRpb24iLCJleHBvcnRzIiwibmFtZSIsImluamVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yYXN0ZXIvd2ViZ2wvY29sb3Ivc2F0dXJhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0dldFVuaWZvcm1zT3V0cHV0LCBTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBBZGp1c3RzIHRoZSBzYXR1cmF0aW9uIG9mIGEgY29sb3IuXG4gKiBGcm9tIGNlc2l1bTpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9DZXNpdW1HUy9jZXNpdW0vYmxvYi9tYXN0ZXIvU291cmNlL1NoYWRlcnMvQnVpbHRpbi9GdW5jdGlvbnMvc2F0dXJhdGlvbi5nbHNsXG4gKlxuICogQHBhcmFtIHt2ZWMzfSByZ2IgVGhlIGNvbG9yLlxuICogQHBhcmFtIHtmbG9hdH0gYWRqdXN0bWVudCBUaGUgYW1vdW50IHRvIGFkanVzdCB0aGUgc2F0dXJhdGlvbiBvZiB0aGUgY29sb3IuIFVzdWFsbHkgYmV0d2VlbiAwIGFuZCAyLlxuICpcbiAqIEByZXR1cm5zIHt2ZWMzfSBUaGUgY29sb3Igd2l0aCB0aGUgc2F0dXJhdGlvbiBhZGp1c3RlZC5cbiAqL1xuY29uc3QgZnMgPSBgXFxcbnVuaWZvcm0gZmxvYXQgdVNhdHVyYXRpb25WYWx1ZTtcbnZlYzMgc2F0dXJhdGUodmVjMyByZ2IsIGZsb2F0IGFkanVzdG1lbnQpIHtcbiAgICAvLyBBbGdvcml0aG0gZnJvbSBDaGFwdGVyIDE2IG9mIE9wZW5HTCBTaGFkaW5nIExhbmd1YWdlXG4gICAgY29uc3QgdmVjMyBXID0gdmVjMygwLjIxMjUsIDAuNzE1NCwgMC4wNzIxKTtcbiAgICB2ZWMzIGludGVuc2l0eSA9IHZlYzMoZG90KHJnYiwgVykpO1xuICAgIHJldHVybiBtaXgoaW50ZW5zaXR5LCByZ2IsIGFkanVzdG1lbnQpO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge3NhdHVyYXRpb25WYWx1ZT86IG51bWJlcn0gPSB7fSk6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge3NhdHVyYXRpb25WYWx1ZX0gPSBvcHRzO1xuXG4gIGlmICghc2F0dXJhdGlvblZhbHVlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHVTYXR1cmF0aW9uVmFsdWU6IE51bWJlci5pc0Zpbml0ZShzYXR1cmF0aW9uVmFsdWUpID8gc2F0dXJhdGlvblZhbHVlIDogMVxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc2F0dXJhdGlvbjogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnc2F0dXJhdGlvbicsXG4gIGZzLFxuICBnZXRVbmlmb3JtcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSB2ZWM0KHNhdHVyYXRlKGltYWdlLnJnYiwgdVNhdHVyYXRpb25WYWx1ZSksIGltYWdlLmEpO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLEVBQUUsMlJBUVA7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBQTJEO0VBQUEsSUFBMURDLElBQWdDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUN4RCxJQUFPRyxlQUFlLEdBQUlKLElBQUksQ0FBdkJJLGVBQWU7RUFFdEIsSUFBSSxDQUFDQSxlQUFlLEVBQUU7SUFDcEIsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPO0lBQ0xDLGdCQUFnQixFQUFFQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0gsZUFBZSxDQUFDLEdBQUdBLGVBQWUsR0FBRztFQUN6RSxDQUFDO0FBQ0g7QUFFTyxJQUFNSSxVQUF3QixHQUFBQyxPQUFBLENBQUFELFVBQUEsR0FBRztFQUN0Q0UsSUFBSSxFQUFFLFlBQVk7RUFDbEJaLEVBQUUsRUFBRkEsRUFBRTtFQUNGQyxXQUFXLEVBQVhBLFdBQVc7RUFDWFksTUFBTSxFQUFFO0lBQ04sd0JBQXdCO0VBRzFCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
@@ -0,0 +1,64 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.sigmoidalContrast = void 0;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
// From mapbox/rio-color under the MIT License
|
11
|
+
//
|
12
|
+
// Sigmoidal contrast is a type of contrast control that
|
13
|
+
// adjusts the contrast without saturating highlights or shadows.
|
14
|
+
// It allows control over two factors:
|
15
|
+
// the contrast range from light to dark, and where the middle value
|
16
|
+
// of the mid-tones falls. The result is a non-linear and smooth
|
17
|
+
// contrast change.
|
18
|
+
// Parameters
|
19
|
+
// ----------
|
20
|
+
// arr : ndarray, float, 0 .. 1
|
21
|
+
// Array of color values to adjust
|
22
|
+
// contrast : integer
|
23
|
+
// Enhances the intensity differences between the lighter and darker
|
24
|
+
// elements of the image. For example, 0 is none, 3 is typical and
|
25
|
+
// 20 is a lot.
|
26
|
+
// bias : float, between 0 and 1
|
27
|
+
// Threshold level for the contrast function to center on
|
28
|
+
// (typically centered at 0.5)
|
29
|
+
// Notes
|
30
|
+
// ----------
|
31
|
+
// Sigmoidal contrast is based on the sigmoidal transfer function:
|
32
|
+
// .. math:: g(u) = ( 1/(1 + e^{- \alpha * u + \beta)})
|
33
|
+
// This sigmoid function is scaled so that the output is bound by
|
34
|
+
// the interval [0, 1].
|
35
|
+
// .. math:: ( 1/(1 + e^(\beta * (\alpha - u))) - 1/(1 + e^(\beta * \alpha)))/
|
36
|
+
// ( 1/(1 + e^(\beta*(\alpha - 1))) - 1/(1 + e^(\beta * \alpha)) )
|
37
|
+
// Where :math: `\alpha` is the threshold level, and :math: `\beta` the
|
38
|
+
// contrast factor to be applied.
|
39
|
+
// References
|
40
|
+
// ----------
|
41
|
+
// .. [CT] Hany Farid "Fundamentals of Image Processing"
|
42
|
+
// http://www.cs.dartmouth.edu/farid/downloads/tutorials/fip.pdf
|
43
|
+
var fs = "#define epsilon 0.00000001\n\nuniform float sigmoidalContrast;\nuniform float sigmoidalBias;\n\n// NOTE: Input array must have float values between 0 and 1!\n// NOTE: bias must be a scalar float between 0 and 1!\nvec4 calculateSigmoidalContrast(vec4 arr, float contrast, float bias) {\n // We use the names alpha and beta to match documentation.\n float alpha = bias;\n float beta = contrast;\n\n // alpha must be >= 0\n alpha = clamp(alpha, epsilon, alpha);\n\n if (beta > 0.) {\n vec4 numerator = 1. / (1. + exp(beta * (alpha - arr))) - 1. / (\n 1. + exp(beta * alpha)\n );\n float denominator = 1. / (1. + exp(beta * (alpha - 1.))) - 1. / (\n 1. + exp(beta * alpha)\n );\n arr = numerator / denominator;\n } else if (beta < 0.) {\n arr = (\n (beta * alpha) - log(\n (\n 1.0 / (\n (arr / (1.0 + exp((beta * alpha) - beta))) -\n (arr / (1.0 + exp(beta * alpha))) +\n (1.0 / (1.0 + exp(beta * alpha)))\n )\n ) - 1.0)\n ) / beta;\n }\n\n return arr;\n}\n";
|
44
|
+
function getUniforms() {
|
45
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
46
|
+
var sigmoidalContrast = opts.sigmoidalContrast,
|
47
|
+
sigmoidalBias = opts.sigmoidalBias;
|
48
|
+
if (!(Number.isFinite(sigmoidalContrast) || Number.isFinite(sigmoidalBias))) {
|
49
|
+
return null;
|
50
|
+
}
|
51
|
+
return {
|
52
|
+
sigmoidalContrast: Number.isFinite(sigmoidalContrast) ? sigmoidalContrast : 0,
|
53
|
+
sigmoidalBias: Number.isFinite(sigmoidalBias) ? sigmoidalBias : 0.5
|
54
|
+
};
|
55
|
+
}
|
56
|
+
var sigmoidalContrast = exports.sigmoidalContrast = {
|
57
|
+
name: 'sigmoidalContrast',
|
58
|
+
fs: fs,
|
59
|
+
getUniforms: getUniforms,
|
60
|
+
inject: {
|
61
|
+
'fs:DECKGL_MUTATE_COLOR': "\n image = calculateSigmoidalContrast(image, sigmoidalContrast, sigmoidalBias);\n "
|
62
|
+
}
|
63
|
+
};
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNpZ21vaWRhbENvbnRyYXN0Iiwic2lnbW9pZGFsQmlhcyIsIk51bWJlciIsImlzRmluaXRlIiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2NvbG9yL3NpZ21vaWRhbC1jb250cmFzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0dldFVuaWZvcm1zT3V0cHV0LCBTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gRnJvbSBtYXBib3gvcmlvLWNvbG9yIHVuZGVyIHRoZSBNSVQgTGljZW5zZVxuLy9cbi8vIFNpZ21vaWRhbCBjb250cmFzdCBpcyBhIHR5cGUgb2YgY29udHJhc3QgY29udHJvbCB0aGF0XG4vLyBhZGp1c3RzIHRoZSBjb250cmFzdCB3aXRob3V0IHNhdHVyYXRpbmcgaGlnaGxpZ2h0cyBvciBzaGFkb3dzLlxuLy8gSXQgYWxsb3dzIGNvbnRyb2wgb3ZlciB0d28gZmFjdG9yczpcbi8vIHRoZSBjb250cmFzdCByYW5nZSBmcm9tIGxpZ2h0IHRvIGRhcmssIGFuZCB3aGVyZSB0aGUgbWlkZGxlIHZhbHVlXG4vLyBvZiB0aGUgbWlkLXRvbmVzIGZhbGxzLiBUaGUgcmVzdWx0IGlzIGEgbm9uLWxpbmVhciBhbmQgc21vb3RoXG4vLyBjb250cmFzdCBjaGFuZ2UuXG4vLyBQYXJhbWV0ZXJzXG4vLyAtLS0tLS0tLS0tXG4vLyBhcnIgOiBuZGFycmF5LCBmbG9hdCwgMCAuLiAxXG4vLyAgICAgQXJyYXkgb2YgY29sb3IgdmFsdWVzIHRvIGFkanVzdFxuLy8gY29udHJhc3QgOiBpbnRlZ2VyXG4vLyAgICAgRW5oYW5jZXMgdGhlIGludGVuc2l0eSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBsaWdodGVyIGFuZCBkYXJrZXJcbi8vICAgICBlbGVtZW50cyBvZiB0aGUgaW1hZ2UuIEZvciBleGFtcGxlLCAwIGlzIG5vbmUsIDMgaXMgdHlwaWNhbCBhbmRcbi8vICAgICAyMCBpcyBhIGxvdC5cbi8vIGJpYXMgOiBmbG9hdCwgYmV0d2VlbiAwIGFuZCAxXG4vLyAgICAgVGhyZXNob2xkIGxldmVsIGZvciB0aGUgY29udHJhc3QgZnVuY3Rpb24gdG8gY2VudGVyIG9uXG4vLyAgICAgKHR5cGljYWxseSBjZW50ZXJlZCBhdCAwLjUpXG4vLyBOb3Rlc1xuLy8gLS0tLS0tLS0tLVxuLy8gU2lnbW9pZGFsIGNvbnRyYXN0IGlzIGJhc2VkIG9uIHRoZSBzaWdtb2lkYWwgdHJhbnNmZXIgZnVuY3Rpb246XG4vLyAuLiBtYXRoOjogZyh1KSA9ICggMS8oMSArIGVeey0gXFxhbHBoYSAqIHUgKyBcXGJldGEpfSlcbi8vIFRoaXMgc2lnbW9pZCBmdW5jdGlvbiBpcyBzY2FsZWQgc28gdGhhdCB0aGUgb3V0cHV0IGlzIGJvdW5kIGJ5XG4vLyB0aGUgaW50ZXJ2YWwgWzAsIDFdLlxuLy8gLi4gbWF0aDo6ICggMS8oMSArIGVeKFxcYmV0YSAqIChcXGFscGhhIC0gdSkpKSAtIDEvKDEgKyBlXihcXGJldGEgKiBcXGFscGhhKSkpL1xuLy8gICAgICggMS8oMSArIGVeKFxcYmV0YSooXFxhbHBoYSAtIDEpKSkgLSAxLygxICsgZV4oXFxiZXRhICogXFxhbHBoYSkpIClcbi8vIFdoZXJlIDptYXRoOiBgXFxhbHBoYWAgaXMgdGhlIHRocmVzaG9sZCBsZXZlbCwgYW5kIDptYXRoOiBgXFxiZXRhYCB0aGVcbi8vIGNvbnRyYXN0IGZhY3RvciB0byBiZSBhcHBsaWVkLlxuLy8gUmVmZXJlbmNlc1xuLy8gLS0tLS0tLS0tLVxuLy8gLi4gW0NUXSBIYW55IEZhcmlkIFwiRnVuZGFtZW50YWxzIG9mIEltYWdlIFByb2Nlc3NpbmdcIlxuLy8gICAgICAgICBodHRwOi8vd3d3LmNzLmRhcnRtb3V0aC5lZHUvZmFyaWQvZG93bmxvYWRzL3R1dG9yaWFscy9maXAucGRmXG5jb25zdCBmcyA9IGBcXFxuI2RlZmluZSBlcHNpbG9uIDAuMDAwMDAwMDFcblxudW5pZm9ybSBmbG9hdCBzaWdtb2lkYWxDb250cmFzdDtcbnVuaWZvcm0gZmxvYXQgc2lnbW9pZGFsQmlhcztcblxuLy8gTk9URTogSW5wdXQgYXJyYXkgbXVzdCBoYXZlIGZsb2F0IHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEhXG4vLyBOT1RFOiBiaWFzIG11c3QgYmUgYSBzY2FsYXIgZmxvYXQgYmV0d2VlbiAwIGFuZCAxIVxudmVjNCBjYWxjdWxhdGVTaWdtb2lkYWxDb250cmFzdCh2ZWM0IGFyciwgZmxvYXQgY29udHJhc3QsIGZsb2F0IGJpYXMpIHtcbiAgLy8gV2UgdXNlIHRoZSBuYW1lcyBhbHBoYSBhbmQgYmV0YSB0byBtYXRjaCBkb2N1bWVudGF0aW9uLlxuICBmbG9hdCBhbHBoYSA9IGJpYXM7XG4gIGZsb2F0IGJldGEgPSBjb250cmFzdDtcblxuICAvLyBhbHBoYSBtdXN0IGJlID49IDBcbiAgYWxwaGEgPSBjbGFtcChhbHBoYSwgZXBzaWxvbiwgYWxwaGEpO1xuXG4gIGlmIChiZXRhID4gMC4pIHtcbiAgICB2ZWM0IG51bWVyYXRvciA9IDEuIC8gKDEuICsgZXhwKGJldGEgKiAoYWxwaGEgLSBhcnIpKSkgLSAxLiAvIChcbiAgICAgIDEuICsgZXhwKGJldGEgKiBhbHBoYSlcbiAgICApO1xuICAgIGZsb2F0IGRlbm9taW5hdG9yID0gMS4gLyAoMS4gKyBleHAoYmV0YSAqIChhbHBoYSAtIDEuKSkpIC0gMS4gLyAoXG4gICAgICAxLiArIGV4cChiZXRhICogYWxwaGEpXG4gICAgKTtcbiAgICBhcnIgPSBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjtcbiAgfSBlbHNlIGlmIChiZXRhIDwgMC4pIHtcbiAgICBhcnIgPSAoXG4gICAgICAoYmV0YSAqIGFscGhhKSAtIGxvZyhcbiAgICAgICAgKFxuICAgICAgICAgIDEuMCAvIChcbiAgICAgICAgICAgIChhcnIgLyAoMS4wICsgZXhwKChiZXRhICogYWxwaGEpIC0gYmV0YSkpKSAtXG4gICAgICAgICAgICAoYXJyIC8gKDEuMCArIGV4cChiZXRhICogYWxwaGEpKSkgK1xuICAgICAgICAgICAgKDEuMCAvICgxLjAgKyBleHAoYmV0YSAqIGFscGhhKSkpXG4gICAgICAgICAgKVxuICAgICAgICApIC0gMS4wKVxuICAgICkgLyBiZXRhO1xuICB9XG5cbiAgcmV0dXJuIGFycjtcbn1cbmA7XG5cbmZ1bmN0aW9uIGdldFVuaWZvcm1zKFxuICBvcHRzOiB7c2lnbW9pZGFsQ29udHJhc3Q/OiBudW1iZXI7IHNpZ21vaWRhbEJpYXM/OiBudW1iZXJ9ID0ge31cbik6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge3NpZ21vaWRhbENvbnRyYXN0LCBzaWdtb2lkYWxCaWFzfSA9IG9wdHM7XG5cbiAgaWYgKCEoTnVtYmVyLmlzRmluaXRlKHNpZ21vaWRhbENvbnRyYXN0KSB8fCBOdW1iZXIuaXNGaW5pdGUoc2lnbW9pZGFsQmlhcykpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNpZ21vaWRhbENvbnRyYXN0OiBOdW1iZXIuaXNGaW5pdGUoc2lnbW9pZGFsQ29udHJhc3QpID8gc2lnbW9pZGFsQ29udHJhc3QgOiAwLFxuICAgIHNpZ21vaWRhbEJpYXM6IE51bWJlci5pc0Zpbml0ZShzaWdtb2lkYWxCaWFzKSA/IHNpZ21vaWRhbEJpYXMgOiAwLjVcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHNpZ21vaWRhbENvbnRyYXN0OiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdzaWdtb2lkYWxDb250cmFzdCcsXG4gIGZzLFxuICBnZXRVbmlmb3JtcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSBjYWxjdWxhdGVTaWdtb2lkYWxDb250cmFzdChpbWFnZSwgc2lnbW9pZGFsQ29udHJhc3QsIHNpZ21vaWRhbEJpYXMpO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxFQUFFLDRpQ0F1Q1A7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBRUM7RUFBQSxJQURuQkMsSUFBMEQsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBRS9ELElBQU9HLGlCQUFpQixHQUFtQkosSUFBSSxDQUF4Q0ksaUJBQWlCO0lBQUVDLGFBQWEsR0FBSUwsSUFBSSxDQUFyQkssYUFBYTtFQUV2QyxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxpQkFBaUIsQ0FBQyxJQUFJRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsYUFBYSxDQUFDLENBQUMsRUFBRTtJQUMzRSxPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEQsaUJBQWlCLEVBQUVFLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxpQkFBaUIsQ0FBQyxHQUFHQSxpQkFBaUIsR0FBRyxDQUFDO0lBQzdFQyxhQUFhLEVBQUVDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixhQUFhLENBQUMsR0FBR0EsYUFBYSxHQUFHO0VBQ2xFLENBQUM7QUFDSDtBQUVPLElBQU1ELGlCQUErQixHQUFBSSxPQUFBLENBQUFKLGlCQUFBLEdBQUc7RUFDN0NLLElBQUksRUFBRSxtQkFBbUI7RUFDekJYLEVBQUUsRUFBRkEsRUFBRTtFQUNGQyxXQUFXLEVBQVhBLFdBQVc7RUFDWFcsTUFBTSxFQUFFO0lBQ04sd0JBQXdCO0VBRzFCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
@@ -0,0 +1,16 @@
|
|
1
|
+
export { combineBandsFloat, combineBandsUint, combineBandsInt } from './texture/combine-bands';
|
2
|
+
export { rgbaImage } from './texture/rgba-image';
|
3
|
+
export { maskFloat, maskUint, maskInt } from './texture/mask';
|
4
|
+
export { reorderBands } from './texture/reorder-bands';
|
5
|
+
export { colormap } from './color/colormap';
|
6
|
+
export { linearRescale } from './color/linear-rescale';
|
7
|
+
export { sigmoidalContrast } from './color/sigmoidal-contrast';
|
8
|
+
export { gammaContrast } from './color/gamma-contrast';
|
9
|
+
export { saturation } from './color/saturation';
|
10
|
+
export { filter } from './color/filter';
|
11
|
+
export { pansharpenBrovey } from './pansharpen/pansharpen-brovey';
|
12
|
+
export { enhancedVegetationIndex } from './spectral-indices/evi';
|
13
|
+
export { modifiedSoilAdjustedVegetationIndex } from './spectral-indices/msavi';
|
14
|
+
export { normalizedDifference } from './spectral-indices/normalized-difference';
|
15
|
+
export { soilAdjustedVegetationIndex } from './spectral-indices/savi';
|
16
|
+
export type { ShaderModule } from './types';
|
@@ -0,0 +1,135 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "colormap", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function get() {
|
9
|
+
return _colormap.colormap;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
Object.defineProperty(exports, "combineBandsFloat", {
|
13
|
+
enumerable: true,
|
14
|
+
get: function get() {
|
15
|
+
return _combineBands.combineBandsFloat;
|
16
|
+
}
|
17
|
+
});
|
18
|
+
Object.defineProperty(exports, "combineBandsInt", {
|
19
|
+
enumerable: true,
|
20
|
+
get: function get() {
|
21
|
+
return _combineBands.combineBandsInt;
|
22
|
+
}
|
23
|
+
});
|
24
|
+
Object.defineProperty(exports, "combineBandsUint", {
|
25
|
+
enumerable: true,
|
26
|
+
get: function get() {
|
27
|
+
return _combineBands.combineBandsUint;
|
28
|
+
}
|
29
|
+
});
|
30
|
+
Object.defineProperty(exports, "enhancedVegetationIndex", {
|
31
|
+
enumerable: true,
|
32
|
+
get: function get() {
|
33
|
+
return _evi.enhancedVegetationIndex;
|
34
|
+
}
|
35
|
+
});
|
36
|
+
Object.defineProperty(exports, "filter", {
|
37
|
+
enumerable: true,
|
38
|
+
get: function get() {
|
39
|
+
return _filter.filter;
|
40
|
+
}
|
41
|
+
});
|
42
|
+
Object.defineProperty(exports, "gammaContrast", {
|
43
|
+
enumerable: true,
|
44
|
+
get: function get() {
|
45
|
+
return _gammaContrast.gammaContrast;
|
46
|
+
}
|
47
|
+
});
|
48
|
+
Object.defineProperty(exports, "linearRescale", {
|
49
|
+
enumerable: true,
|
50
|
+
get: function get() {
|
51
|
+
return _linearRescale.linearRescale;
|
52
|
+
}
|
53
|
+
});
|
54
|
+
Object.defineProperty(exports, "maskFloat", {
|
55
|
+
enumerable: true,
|
56
|
+
get: function get() {
|
57
|
+
return _mask.maskFloat;
|
58
|
+
}
|
59
|
+
});
|
60
|
+
Object.defineProperty(exports, "maskInt", {
|
61
|
+
enumerable: true,
|
62
|
+
get: function get() {
|
63
|
+
return _mask.maskInt;
|
64
|
+
}
|
65
|
+
});
|
66
|
+
Object.defineProperty(exports, "maskUint", {
|
67
|
+
enumerable: true,
|
68
|
+
get: function get() {
|
69
|
+
return _mask.maskUint;
|
70
|
+
}
|
71
|
+
});
|
72
|
+
Object.defineProperty(exports, "modifiedSoilAdjustedVegetationIndex", {
|
73
|
+
enumerable: true,
|
74
|
+
get: function get() {
|
75
|
+
return _msavi.modifiedSoilAdjustedVegetationIndex;
|
76
|
+
}
|
77
|
+
});
|
78
|
+
Object.defineProperty(exports, "normalizedDifference", {
|
79
|
+
enumerable: true,
|
80
|
+
get: function get() {
|
81
|
+
return _normalizedDifference.normalizedDifference;
|
82
|
+
}
|
83
|
+
});
|
84
|
+
Object.defineProperty(exports, "pansharpenBrovey", {
|
85
|
+
enumerable: true,
|
86
|
+
get: function get() {
|
87
|
+
return _pansharpenBrovey.pansharpenBrovey;
|
88
|
+
}
|
89
|
+
});
|
90
|
+
Object.defineProperty(exports, "reorderBands", {
|
91
|
+
enumerable: true,
|
92
|
+
get: function get() {
|
93
|
+
return _reorderBands.reorderBands;
|
94
|
+
}
|
95
|
+
});
|
96
|
+
Object.defineProperty(exports, "rgbaImage", {
|
97
|
+
enumerable: true,
|
98
|
+
get: function get() {
|
99
|
+
return _rgbaImage.rgbaImage;
|
100
|
+
}
|
101
|
+
});
|
102
|
+
Object.defineProperty(exports, "saturation", {
|
103
|
+
enumerable: true,
|
104
|
+
get: function get() {
|
105
|
+
return _saturation.saturation;
|
106
|
+
}
|
107
|
+
});
|
108
|
+
Object.defineProperty(exports, "sigmoidalContrast", {
|
109
|
+
enumerable: true,
|
110
|
+
get: function get() {
|
111
|
+
return _sigmoidalContrast.sigmoidalContrast;
|
112
|
+
}
|
113
|
+
});
|
114
|
+
Object.defineProperty(exports, "soilAdjustedVegetationIndex", {
|
115
|
+
enumerable: true,
|
116
|
+
get: function get() {
|
117
|
+
return _savi.soilAdjustedVegetationIndex;
|
118
|
+
}
|
119
|
+
});
|
120
|
+
var _combineBands = require("./texture/combine-bands");
|
121
|
+
var _rgbaImage = require("./texture/rgba-image");
|
122
|
+
var _mask = require("./texture/mask");
|
123
|
+
var _reorderBands = require("./texture/reorder-bands");
|
124
|
+
var _colormap = require("./color/colormap");
|
125
|
+
var _linearRescale = require("./color/linear-rescale");
|
126
|
+
var _sigmoidalContrast = require("./color/sigmoidal-contrast");
|
127
|
+
var _gammaContrast = require("./color/gamma-contrast");
|
128
|
+
var _saturation = require("./color/saturation");
|
129
|
+
var _filter = require("./color/filter");
|
130
|
+
var _pansharpenBrovey = require("./pansharpen/pansharpen-brovey");
|
131
|
+
var _evi = require("./spectral-indices/evi");
|
132
|
+
var _msavi = require("./spectral-indices/msavi");
|
133
|
+
var _normalizedDifference = require("./spectral-indices/normalized-difference");
|
134
|
+
var _savi = require("./spectral-indices/savi");
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tYmluZUJhbmRzIiwicmVxdWlyZSIsIl9yZ2JhSW1hZ2UiLCJfbWFzayIsIl9yZW9yZGVyQmFuZHMiLCJfY29sb3JtYXAiLCJfbGluZWFyUmVzY2FsZSIsIl9zaWdtb2lkYWxDb250cmFzdCIsIl9nYW1tYUNvbnRyYXN0IiwiX3NhdHVyYXRpb24iLCJfZmlsdGVyIiwiX3BhbnNoYXJwZW5Ccm92ZXkiLCJfZXZpIiwiX21zYXZpIiwiX25vcm1hbGl6ZWREaWZmZXJlbmNlIiwiX3NhdmkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIENyZWF0ZSB0ZXh0dXJlXG5leHBvcnQge2NvbWJpbmVCYW5kc0Zsb2F0LCBjb21iaW5lQmFuZHNVaW50LCBjb21iaW5lQmFuZHNJbnR9IGZyb20gJy4vdGV4dHVyZS9jb21iaW5lLWJhbmRzJztcbmV4cG9ydCB7cmdiYUltYWdlfSBmcm9tICcuL3RleHR1cmUvcmdiYS1pbWFnZSc7XG5leHBvcnQge21hc2tGbG9hdCwgbWFza1VpbnQsIG1hc2tJbnR9IGZyb20gJy4vdGV4dHVyZS9tYXNrJztcbmV4cG9ydCB7cmVvcmRlckJhbmRzfSBmcm9tICcuL3RleHR1cmUvcmVvcmRlci1iYW5kcyc7XG5cbi8vIENvbG9yIG9wZXJhdGlvbnNcbmV4cG9ydCB7Y29sb3JtYXB9IGZyb20gJy4vY29sb3IvY29sb3JtYXAnO1xuZXhwb3J0IHtsaW5lYXJSZXNjYWxlfSBmcm9tICcuL2NvbG9yL2xpbmVhci1yZXNjYWxlJztcbmV4cG9ydCB7c2lnbW9pZGFsQ29udHJhc3R9IGZyb20gJy4vY29sb3Ivc2lnbW9pZGFsLWNvbnRyYXN0JztcbmV4cG9ydCB7Z2FtbWFDb250cmFzdH0gZnJvbSAnLi9jb2xvci9nYW1tYS1jb250cmFzdCc7XG5leHBvcnQge3NhdHVyYXRpb259IGZyb20gJy4vY29sb3Ivc2F0dXJhdGlvbic7XG5leHBvcnQge2ZpbHRlcn0gZnJvbSAnLi9jb2xvci9maWx0ZXInO1xuXG4vLyBQYW5zaGFycGVuaW5nXG5leHBvcnQge3BhbnNoYXJwZW5Ccm92ZXl9IGZyb20gJy4vcGFuc2hhcnBlbi9wYW5zaGFycGVuLWJyb3ZleSc7XG5cbi8vIFNwZWN0cmFsIGluZGljZXNcbmV4cG9ydCB7ZW5oYW5jZWRWZWdldGF0aW9uSW5kZXh9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9ldmknO1xuZXhwb3J0IHttb2RpZmllZFNvaWxBZGp1c3RlZFZlZ2V0YXRpb25JbmRleH0gZnJvbSAnLi9zcGVjdHJhbC1pbmRpY2VzL21zYXZpJztcbmV4cG9ydCB7bm9ybWFsaXplZERpZmZlcmVuY2V9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9ub3JtYWxpemVkLWRpZmZlcmVuY2UnO1xuZXhwb3J0IHtzb2lsQWRqdXN0ZWRWZWdldGF0aW9uSW5kZXh9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9zYXZpJztcblxuZXhwb3J0IHR5cGUge1NoYWRlck1vZHVsZX0gZnJvbSAnLi90eXBlcyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGNBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLGlCQUFBLEdBQUFWLE9BQUE7QUFHQSxJQUFBVyxJQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxxQkFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsS0FBQSxHQUFBZCxPQUFBIiwiaWdub3JlTGlzdCI6W119
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.pansharpenBrovey = void 0;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
// Brovey Method: Each resampled, multispectral pixel is
|
11
|
+
// multiplied by the ratio of the corresponding
|
12
|
+
// panchromatic pixel intensity to the sum of all the
|
13
|
+
// multispectral intensities.
|
14
|
+
// Original code from https://github.com/mapbox/rio-pansharpen
|
15
|
+
//
|
16
|
+
var fs1 = "uniform sampler2D bitmapTexturePan;\nuniform float panWeight;\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";
|
17
|
+
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 float panWeight;\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";
|
18
|
+
function getUniforms() {
|
19
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
20
|
+
var imagePan = opts.imagePan,
|
21
|
+
_opts$panWeight = opts.panWeight,
|
22
|
+
panWeight = _opts$panWeight === void 0 ? 0.2 : _opts$panWeight;
|
23
|
+
if (!imagePan) {
|
24
|
+
return null;
|
25
|
+
}
|
26
|
+
return {
|
27
|
+
bitmapTexturePan: imagePan,
|
28
|
+
panWeight: panWeight
|
29
|
+
};
|
30
|
+
}
|
31
|
+
var pansharpenBrovey = exports.pansharpenBrovey = {
|
32
|
+
name: 'pansharpen_brovey',
|
33
|
+
fs1: fs1,
|
34
|
+
fs2: fs2,
|
35
|
+
defines: {
|
36
|
+
SAMPLER_TYPE: 'sampler2D'
|
37
|
+
},
|
38
|
+
getUniforms: getUniforms,
|
39
|
+
inject: {
|
40
|
+
'fs:DECKGL_MUTATE_COLOR': "\n float pan_band = float(texture2D(bitmapTexturePan, coord).r);\n image = pansharpen_brovey_calc(image, pan_band, panWeight);\n "
|
41
|
+
}
|
42
|
+
};
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmczEiLCJmczIiLCJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpbWFnZVBhbiIsIl9vcHRzJHBhbldlaWdodCIsInBhbldlaWdodCIsImJpdG1hcFRleHR1cmVQYW4iLCJwYW5zaGFycGVuQnJvdmV5IiwiZXhwb3J0cyIsIm5hbWUiLCJkZWZpbmVzIiwiU0FNUExFUl9UWVBFIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC9wYW5zaGFycGVuL3BhbnNoYXJwZW4tYnJvdmV5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7VGV4dHVyZTJEfSBmcm9tICdAbHVtYS5nbC93ZWJnbCc7XG5cbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyBCcm92ZXkgTWV0aG9kOiBFYWNoIHJlc2FtcGxlZCwgbXVsdGlzcGVjdHJhbCBwaXhlbCBpc1xuLy8gbXVsdGlwbGllZCBieSB0aGUgcmF0aW8gb2YgdGhlIGNvcnJlc3BvbmRpbmdcbi8vIHBhbmNocm9tYXRpYyBwaXhlbCBpbnRlbnNpdHkgdG8gdGhlIHN1bSBvZiBhbGwgdGhlXG4vLyBtdWx0aXNwZWN0cmFsIGludGVuc2l0aWVzLlxuLy8gT3JpZ2luYWwgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXBib3gvcmlvLXBhbnNoYXJwZW5cbi8vXG5jb25zdCBmczEgPSBgXFxcbnVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVQYW47XG51bmlmb3JtIGZsb2F0IHBhbldlaWdodDtcblxuZmxvYXQgcGFuc2hhcnBlbl9icm92ZXlfcmF0aW8odmVjNCByZ2IsIGZsb2F0IHBhbiwgZmxvYXQgd2VpZ2h0KSB7XG4gIHJldHVybiBwYW4gLyAoKHJnYi5yICsgcmdiLmcgKyByZ2IuYiAqIHdlaWdodCkgLyAoMi4gKyB3ZWlnaHQpKTtcbn1cblxudmVjNCBwYW5zaGFycGVuX2Jyb3ZleV9jYWxjKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICBmbG9hdCByYXRpbyA9IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHJnYiwgcGFuLCB3ZWlnaHQpO1xuICByZXR1cm4gcmF0aW8gKiByZ2I7XG59XG5gO1xuXG5jb25zdCBmczIgPSBgXFxcbnByZWNpc2lvbiBtZWRpdW1wIHVzYW1wbGVyMkQ7XG5cbiNpZmRlZiBTQU1QTEVSX1RZUEVcbiAgdW5pZm9ybSBTQU1QTEVSX1RZUEUgYml0bWFwVGV4dHVyZVBhbjtcbiNlbHNlXG4gIHVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVQYW47XG4jZW5kaWZcblxudW5pZm9ybSBmbG9hdCBwYW5XZWlnaHQ7XG5cbmZsb2F0IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICByZXR1cm4gcGFuIC8gKChyZ2IuciArIHJnYi5nICsgcmdiLmIgKiB3ZWlnaHQpIC8gKDIuICsgd2VpZ2h0KSk7XG59XG5cbnZlYzQgcGFuc2hhcnBlbl9icm92ZXlfY2FsYyh2ZWM0IHJnYiwgZmxvYXQgcGFuLCBmbG9hdCB3ZWlnaHQpIHtcbiAgZmxvYXQgcmF0aW8gPSBwYW5zaGFycGVuX2Jyb3ZleV9yYXRpbyhyZ2IsIHBhbiwgd2VpZ2h0KTtcbiAgcmV0dXJuIHJhdGlvICogcmdiO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge2ltYWdlUGFuPzogVGV4dHVyZTJEOyBwYW5XZWlnaHQ/OiBudW1iZXJ9ID0ge30pOiBHZXRVbmlmb3Jtc091dHB1dCB7XG4gIGNvbnN0IHtpbWFnZVBhbiwgcGFuV2VpZ2h0ID0gMC4yfSA9IG9wdHM7XG5cbiAgaWYgKCFpbWFnZVBhbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBiaXRtYXBUZXh0dXJlUGFuOiBpbWFnZVBhbixcbiAgICBwYW5XZWlnaHRcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHBhbnNoYXJwZW5Ccm92ZXk6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ3BhbnNoYXJwZW5fYnJvdmV5JyxcbiAgZnMxLFxuICBmczIsXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICdzYW1wbGVyMkQnXG4gIH0sXG4gIGdldFVuaWZvcm1zLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBmbG9hdCBwYW5fYmFuZCA9IGZsb2F0KHRleHR1cmUyRChiaXRtYXBUZXh0dXJlUGFuLCBjb29yZCkucik7XG4gICAgaW1hZ2UgPSBwYW5zaGFycGVuX2Jyb3ZleV9jYWxjKGltYWdlLCBwYW5fYmFuZCwgcGFuV2VpZ2h0KTtcbiAgICBgXG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsR0FBRywyV0FZUjtBQUVELElBQU1DLEdBQUcsOGRBbUJSO0FBRUQsU0FBU0MsV0FBV0EsQ0FBQSxFQUEyRTtFQUFBLElBQTFFQyxJQUFnRCxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFDeEUsSUFBT0csUUFBUSxHQUFxQkosSUFBSSxDQUFqQ0ksUUFBUTtJQUFBQyxlQUFBLEdBQXFCTCxJQUFJLENBQXZCTSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZUFBQSxjQUFHLEdBQUcsR0FBQUEsZUFBQTtFQUVoQyxJQUFJLENBQUNELFFBQVEsRUFBRTtJQUNiLE9BQU8sSUFBSTtFQUNiO0VBRUEsT0FBTztJQUNMRyxnQkFBZ0IsRUFBRUgsUUFBUTtJQUMxQkUsU0FBUyxFQUFUQTtFQUNGLENBQUM7QUFDSDtBQUVPLElBQU1FLGdCQUE4QixHQUFBQyxPQUFBLENBQUFELGdCQUFBLEdBQUc7RUFDNUNFLElBQUksRUFBRSxtQkFBbUI7RUFDekJiLEdBQUcsRUFBSEEsR0FBRztFQUNIQyxHQUFHLEVBQUhBLEdBQUc7RUFDSGEsT0FBTyxFQUFFO0lBQ1BDLFlBQVksRUFBRTtFQUNoQixDQUFDO0VBQ0RiLFdBQVcsRUFBWEEsV0FBVztFQUNYYyxNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFJMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.enhancedVegetationIndex = void 0;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
// Calculate enhanced vegetation index
|
11
|
+
// Expected to be ordered:
|
12
|
+
// red: Landsat 8 band 5
|
13
|
+
// green: Landsat 8 band 4
|
14
|
+
// blue: Landsat 8 band 2
|
15
|
+
//
|
16
|
+
// EVI = 2.5 * ((Band 5 – Band 4) / (Band 5 + 6 * Band 4 – 7.5 * Band 2 + 1))
|
17
|
+
// https://www.usgs.gov/land-resources/nli/landsat/landsat-enhanced-vegetation-index
|
18
|
+
var fs = "float enhanced_vegetation_index_calc(vec4 image) {\n float band5 = image.r;\n float band4 = image.g;\n float band2 = image.b;\n\n float numerator = band5 - band4;\n float denominator = band5 + (6. * band4) - (7.5 * band2) + 1.;\n return 2.5 * (numerator / denominator);\n}\n";
|
19
|
+
var enhancedVegetationIndex = exports.enhancedVegetationIndex = {
|
20
|
+
name: 'enhanced_vegetation_index',
|
21
|
+
fs: fs,
|
22
|
+
inject: {
|
23
|
+
'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(enhanced_vegetation_index_calc(image), 0., 0., 0.);\n "
|
24
|
+
}
|
25
|
+
};
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImVuaGFuY2VkVmVnZXRhdGlvbkluZGV4IiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3NwZWN0cmFsLWluZGljZXMvZXZpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIENhbGN1bGF0ZSBlbmhhbmNlZCB2ZWdldGF0aW9uIGluZGV4XG4vLyBFeHBlY3RlZCB0byBiZSBvcmRlcmVkOlxuLy8gcmVkOiBMYW5kc2F0IDggYmFuZCA1XG4vLyBncmVlbjogTGFuZHNhdCA4IGJhbmQgNFxuLy8gYmx1ZTogTGFuZHNhdCA4IGJhbmQgMlxuLy9cbi8vIEVWSSA9IDIuNSAqICgoQmFuZCA1IOKAkyBCYW5kIDQpIC8gKEJhbmQgNSArIDYgKiBCYW5kIDQg4oCTIDcuNSAqIEJhbmQgMiArIDEpKVxuLy8gaHR0cHM6Ly93d3cudXNncy5nb3YvbGFuZC1yZXNvdXJjZXMvbmxpL2xhbmRzYXQvbGFuZHNhdC1lbmhhbmNlZC12ZWdldGF0aW9uLWluZGV4XG5jb25zdCBmcyA9IGBcXFxuZmxvYXQgZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKHZlYzQgaW1hZ2UpIHtcbiAgZmxvYXQgYmFuZDUgPSBpbWFnZS5yO1xuICBmbG9hdCBiYW5kNCA9IGltYWdlLmc7XG4gIGZsb2F0IGJhbmQyID0gaW1hZ2UuYjtcblxuICBmbG9hdCBudW1lcmF0b3IgPSBiYW5kNSAtIGJhbmQ0O1xuICBmbG9hdCBkZW5vbWluYXRvciA9IGJhbmQ1ICsgKDYuICogYmFuZDQpIC0gKDcuNSAqIGJhbmQyKSArIDEuO1xuICByZXR1cm4gMi41ICogKG51bWVyYXRvciAvIGRlbm9taW5hdG9yKTtcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBlbmhhbmNlZFZlZ2V0YXRpb25JbmRleDogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleCcsXG4gIGZzLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBpbWFnZSA9IHZlYzQoZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKGltYWdlKSwgMC4sIDAuLCAwLik7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxFQUFFLDZSQVVQO0FBRU0sSUFBTUMsdUJBQXFDLEdBQUFDLE9BQUEsQ0FBQUQsdUJBQUEsR0FBRztFQUNuREUsSUFBSSxFQUFFLDJCQUEyQjtFQUNqQ0gsRUFBRSxFQUFGQSxFQUFFO0VBQ0ZJLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.modifiedSoilAdjustedVegetationIndex = void 0;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
// Calculate modified soil-adjusted vegetation index
|
11
|
+
// Expected to be ordered:
|
12
|
+
// red: Landsat 8 band 5
|
13
|
+
// green: Landsat 8 band 4
|
14
|
+
//
|
15
|
+
// MSAVI = (2 * Band 5 + 1 – sqrt ((2 * Band 5 + 1)^2 – 8 * (Band 5 – Band 4))) / 2
|
16
|
+
// https://www.usgs.gov/land-resources/nli/landsat/landsat-modified-soil-adjusted-vegetation-index
|
17
|
+
var fs = "float modified_soil_adjusted_vegetation_index_calc(vec4 image) {\n float band5 = image.r;\n float band4 = image.g;\n\n float to_sqrt = ((2. * band5 + 1.) * (2. * band5 + 1.)) - (8. * (band5 - band4));\n return ((2. * band5) + 1. - sqrt(to_sqrt)) / 2.;\n}\n";
|
18
|
+
var modifiedSoilAdjustedVegetationIndex = exports.modifiedSoilAdjustedVegetationIndex = {
|
19
|
+
name: 'modified_soil_adjusted_vegetation_index',
|
20
|
+
fs: fs,
|
21
|
+
inject: {
|
22
|
+
'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(modified_soil_adjusted_vegetation_index_calc(image), 0., 0., 0.);\n "
|
23
|
+
}
|
24
|
+
};
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIm1vZGlmaWVkU29pbEFkanVzdGVkVmVnZXRhdGlvbkluZGV4IiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3NwZWN0cmFsLWluZGljZXMvbXNhdmkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gQ2FsY3VsYXRlIG1vZGlmaWVkIHNvaWwtYWRqdXN0ZWQgdmVnZXRhdGlvbiBpbmRleFxuLy8gRXhwZWN0ZWQgdG8gYmUgb3JkZXJlZDpcbi8vIHJlZDogTGFuZHNhdCA4IGJhbmQgNVxuLy8gZ3JlZW46IExhbmRzYXQgOCBiYW5kIDRcbi8vXG4vLyBNU0FWSSA9ICgyICogQmFuZCA1ICsgMSDigJMgc3FydCAoKDIgKiBCYW5kIDUgKyAxKV4yIOKAkyA4ICogKEJhbmQgNSDigJMgQmFuZCA0KSkpIC8gMlxuLy8gaHR0cHM6Ly93d3cudXNncy5nb3YvbGFuZC1yZXNvdXJjZXMvbmxpL2xhbmRzYXQvbGFuZHNhdC1tb2RpZmllZC1zb2lsLWFkanVzdGVkLXZlZ2V0YXRpb24taW5kZXhcbmNvbnN0IGZzID0gYFxcXG5mbG9hdCBtb2RpZmllZF9zb2lsX2FkanVzdGVkX3ZlZ2V0YXRpb25faW5kZXhfY2FsYyh2ZWM0IGltYWdlKSB7XG4gIGZsb2F0IGJhbmQ1ID0gaW1hZ2UucjtcbiAgZmxvYXQgYmFuZDQgPSBpbWFnZS5nO1xuXG4gIGZsb2F0IHRvX3NxcnQgPSAoKDIuICogYmFuZDUgKyAxLikgKiAoMi4gKiBiYW5kNSArIDEuKSkgLSAoOC4gKiAoYmFuZDUgLSBiYW5kNCkpO1xuICByZXR1cm4gKCgyLiAqIGJhbmQ1KSArIDEuIC0gc3FydCh0b19zcXJ0KSkgLyAyLjtcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBtb2RpZmllZFNvaWxBZGp1c3RlZFZlZ2V0YXRpb25JbmRleDogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnbW9kaWZpZWRfc29pbF9hZGp1c3RlZF92ZWdldGF0aW9uX2luZGV4JyxcbiAgZnMsXG4gIGluamVjdDoge1xuICAgICdmczpERUNLR0xfTVVUQVRFX0NPTE9SJzogYFxuICAgIGltYWdlID0gdmVjNChtb2RpZmllZF9zb2lsX2FkanVzdGVkX3ZlZ2V0YXRpb25faW5kZXhfY2FsYyhpbWFnZSksIDAuLCAwLiwgMC4pO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLEVBQUUseVFBUVA7QUFFTSxJQUFNQyxtQ0FBaUQsR0FBQUMsT0FBQSxDQUFBRCxtQ0FBQSxHQUFHO0VBQy9ERSxJQUFJLEVBQUUseUNBQXlDO0VBQy9DSCxFQUFFLEVBQUZBLEVBQUU7RUFDRkksTUFBTSxFQUFFO0lBQ04sd0JBQXdCO0VBRzFCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.normalizedDifference = void 0;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
// Calculate standard normalized difference
|
11
|
+
var fs = "float normalized_difference_calc(vec4 image) {\n return ((image.r - image.g) / (image.r + image.g));\n}\n";
|
12
|
+
var normalizedDifference = exports.normalizedDifference = {
|
13
|
+
name: 'normalized_difference',
|
14
|
+
fs: fs,
|
15
|
+
inject: {
|
16
|
+
'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(normalized_difference_calc(image), 0., 0., 0.);\n "
|
17
|
+
}
|
18
|
+
};
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIm5vcm1hbGl6ZWREaWZmZXJlbmNlIiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3NwZWN0cmFsLWluZGljZXMvbm9ybWFsaXplZC1kaWZmZXJlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIENhbGN1bGF0ZSBzdGFuZGFyZCBub3JtYWxpemVkIGRpZmZlcmVuY2VcbmNvbnN0IGZzID0gYFxcXG5mbG9hdCBub3JtYWxpemVkX2RpZmZlcmVuY2VfY2FsYyh2ZWM0IGltYWdlKSB7XG4gIHJldHVybiAoKGltYWdlLnIgLSBpbWFnZS5nKSAvIChpbWFnZS5yICsgaW1hZ2UuZykpO1xufVxuYDtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZWREaWZmZXJlbmNlOiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdub3JtYWxpemVkX2RpZmZlcmVuY2UnLFxuICBmcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSB2ZWM0KG5vcm1hbGl6ZWRfZGlmZmVyZW5jZV9jYWxjKGltYWdlKSwgMC4sIDAuLCAwLik7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUlBO0FBQ0EsSUFBTUEsRUFBRSwrR0FJUDtBQUVNLElBQU1DLG9CQUFrQyxHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUc7RUFDaERFLElBQUksRUFBRSx1QkFBdUI7RUFDN0JILEVBQUUsRUFBRkEsRUFBRTtFQUNGSSxNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFHMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.soilAdjustedVegetationIndex = void 0;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
// Calculate soil-adjusted vegetation index
|
11
|
+
// SAVI = ((Band 5 – Band 4) / (Band 5 + Band 4 + 0.5)) * (1.5).
|
12
|
+
// https://www.usgs.gov/land-resources/nli/landsat/landsat-soil-adjusted-vegetation-index
|
13
|
+
var fs = "float soil_adjusted_vegetation_index_calc(vec4 image) {\n float band5 = image.r;\n float band4 = image.g;\n\n float numerator = band5 - band4;\n float denominator = (band5 + band4 + 0.5) * 1.5;\n return numerator / denominator;\n}\n";
|
14
|
+
var soilAdjustedVegetationIndex = exports.soilAdjustedVegetationIndex = {
|
15
|
+
name: 'soil_adjusted_vegetation_index',
|
16
|
+
fs: fs,
|
17
|
+
inject: {
|
18
|
+
'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(soil_adjusted_vegetation_index_calc(image), 0., 0., 0.);\n "
|
19
|
+
}
|
20
|
+
};
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsInNvaWxBZGp1c3RlZFZlZ2V0YXRpb25JbmRleCIsImV4cG9ydHMiLCJuYW1lIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC9zcGVjdHJhbC1pbmRpY2VzL3NhdmkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gQ2FsY3VsYXRlIHNvaWwtYWRqdXN0ZWQgdmVnZXRhdGlvbiBpbmRleFxuLy8gU0FWSSA9ICgoQmFuZCA1IOKAkyBCYW5kIDQpIC8gKEJhbmQgNSArIEJhbmQgNCArIDAuNSkpICogKDEuNSkuXG4vLyBodHRwczovL3d3dy51c2dzLmdvdi9sYW5kLXJlc291cmNlcy9ubGkvbGFuZHNhdC9sYW5kc2F0LXNvaWwtYWRqdXN0ZWQtdmVnZXRhdGlvbi1pbmRleFxuY29uc3QgZnMgPSBgXFxcbmZsb2F0IHNvaWxfYWRqdXN0ZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKHZlYzQgaW1hZ2UpIHtcbiAgZmxvYXQgYmFuZDUgPSBpbWFnZS5yO1xuICBmbG9hdCBiYW5kNCA9IGltYWdlLmc7XG5cbiAgZmxvYXQgbnVtZXJhdG9yID0gYmFuZDUgLSBiYW5kNDtcbiAgZmxvYXQgZGVub21pbmF0b3IgPSAoYmFuZDUgKyBiYW5kNCArIDAuNSkgKiAxLjU7XG4gIHJldHVybiBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjtcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBzb2lsQWRqdXN0ZWRWZWdldGF0aW9uSW5kZXg6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ3NvaWxfYWRqdXN0ZWRfdmVnZXRhdGlvbl9pbmRleCcsXG4gIGZzLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBpbWFnZSA9IHZlYzQoc29pbF9hZGp1c3RlZF92ZWdldGF0aW9uX2luZGV4X2NhbGMoaW1hZ2UpLCAwLiwgMC4sIDAuKTtcbiAgICBgXG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsRUFBRSxrUEFTUDtBQUVNLElBQU1DLDJCQUF5QyxHQUFBQyxPQUFBLENBQUFELDJCQUFBLEdBQUc7RUFDdkRFLElBQUksRUFBRSxnQ0FBZ0M7RUFDdENILEVBQUUsRUFBRkEsRUFBRTtFQUNGSSxNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFHMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
@@ -0,0 +1,65 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.combineBandsUint = exports.combineBandsInt = exports.combineBandsFloat = void 0;
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
10
|
+
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; }
|
11
|
+
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; }
|
12
|
+
// SPDX-License-Identifier: MIT
|
13
|
+
// Copyright contributors to the kepler.gl project
|
14
|
+
|
15
|
+
function getUniforms() {
|
16
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
17
|
+
var imageBands = opts.imageBands;
|
18
|
+
if (!imageBands || imageBands.length === 0) {
|
19
|
+
return null;
|
20
|
+
}
|
21
|
+
var _imageBands = (0, _slicedToArray2["default"])(imageBands, 4),
|
22
|
+
bitmapTextureR = _imageBands[0],
|
23
|
+
bitmapTextureG = _imageBands[1],
|
24
|
+
bitmapTextureB = _imageBands[2],
|
25
|
+
bitmapTextureA = _imageBands[3];
|
26
|
+
|
27
|
+
// return default values to prevent deck.gl validation warnings.
|
28
|
+
// Note: all bands must be set for the shadow effect to work as expected.
|
29
|
+
return {
|
30
|
+
bitmapTextureR: bitmapTextureR || bitmapTextureR,
|
31
|
+
bitmapTextureG: bitmapTextureG || bitmapTextureR,
|
32
|
+
bitmapTextureB: bitmapTextureB || bitmapTextureR,
|
33
|
+
bitmapTextureA: bitmapTextureA || bitmapTextureR
|
34
|
+
};
|
35
|
+
}
|
36
|
+
var fs1 = "uniform sampler2D bitmapTextureR;\nuniform sampler2D bitmapTextureG;\nuniform sampler2D bitmapTextureB;\nuniform sampler2D bitmapTextureA;\n";
|
37
|
+
var fs2 = "precision mediump float;\nprecision mediump int;\nprecision mediump usampler2D;\n\n#ifdef SAMPLER_TYPE\n uniform SAMPLER_TYPE bitmapTextureR;\n uniform SAMPLER_TYPE bitmapTextureG;\n uniform SAMPLER_TYPE bitmapTextureB;\n uniform SAMPLER_TYPE bitmapTextureA;\n#else\n uniform sampler2D bitmapTextureR;\n uniform sampler2D bitmapTextureG;\n uniform sampler2D bitmapTextureB;\n uniform sampler2D bitmapTextureA;\n#endif\n";
|
38
|
+
var combineBands = {
|
39
|
+
name: 'combine-bands',
|
40
|
+
fs1: fs1,
|
41
|
+
fs2: fs2,
|
42
|
+
getUniforms: getUniforms,
|
43
|
+
defines: {
|
44
|
+
SAMPLER_TYPE: 'sampler2D'
|
45
|
+
},
|
46
|
+
inject: {
|
47
|
+
'fs:DECKGL_CREATE_COLOR': "\n float channel1 = float(texture2D(bitmapTextureR, coord).r);\n float channel2 = float(texture2D(bitmapTextureG, coord).r);\n float channel3 = float(texture2D(bitmapTextureB, coord).r);\n float channel4 = float(texture2D(bitmapTextureA, coord).r);\n\n image = vec4(channel1, channel2, channel3, channel4);\n "
|
48
|
+
}
|
49
|
+
};
|
50
|
+
var combineBandsFloat = exports.combineBandsFloat = _objectSpread(_objectSpread({}, combineBands), {}, {
|
51
|
+
name: 'combine-bands-float'
|
52
|
+
});
|
53
|
+
var combineBandsUint = exports.combineBandsUint = _objectSpread(_objectSpread({}, combineBands), {}, {
|
54
|
+
name: 'combine-bands-uint',
|
55
|
+
defines: {
|
56
|
+
SAMPLER_TYPE: 'usampler2D'
|
57
|
+
}
|
58
|
+
});
|
59
|
+
var combineBandsInt = exports.combineBandsInt = _objectSpread(_objectSpread({}, combineBands), {}, {
|
60
|
+
name: 'combine-bands-int',
|
61
|
+
defines: {
|
62
|
+
SAMPLER_TYPE: 'isampler2D'
|
63
|
+
}
|
64
|
+
});
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpbWFnZUJhbmRzIiwiX2ltYWdlQmFuZHMiLCJfc2xpY2VkVG9BcnJheTIiLCJiaXRtYXBUZXh0dXJlUiIsImJpdG1hcFRleHR1cmVHIiwiYml0bWFwVGV4dHVyZUIiLCJiaXRtYXBUZXh0dXJlQSIsImZzMSIsImZzMiIsImNvbWJpbmVCYW5kcyIsIm5hbWUiLCJkZWZpbmVzIiwiU0FNUExFUl9UWVBFIiwiaW5qZWN0IiwiY29tYmluZUJhbmRzRmxvYXQiLCJleHBvcnRzIiwiX29iamVjdFNwcmVhZCIsImNvbWJpbmVCYW5kc1VpbnQiLCJjb21iaW5lQmFuZHNJbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3RleHR1cmUvY29tYmluZS1iYW5kcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1RleHR1cmUyRH0gZnJvbSAnQGx1bWEuZ2wvd2ViZ2wnO1xuXG5pbXBvcnQge0dldFVuaWZvcm1zT3V0cHV0LCBTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge2ltYWdlQmFuZHM/OiBUZXh0dXJlMkRbXX0gPSB7fSk6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge2ltYWdlQmFuZHN9ID0gb3B0cztcblxuICBpZiAoIWltYWdlQmFuZHMgfHwgaW1hZ2VCYW5kcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IFtiaXRtYXBUZXh0dXJlUiwgYml0bWFwVGV4dHVyZUcsIGJpdG1hcFRleHR1cmVCLCBiaXRtYXBUZXh0dXJlQV0gPSBpbWFnZUJhbmRzO1xuXG4gIC8vIHJldHVybiBkZWZhdWx0IHZhbHVlcyB0byBwcmV2ZW50IGRlY2suZ2wgdmFsaWRhdGlvbiB3YXJuaW5ncy5cbiAgLy8gTm90ZTogYWxsIGJhbmRzIG11c3QgYmUgc2V0IGZvciB0aGUgc2hhZG93IGVmZmVjdCB0byB3b3JrIGFzIGV4cGVjdGVkLlxuICByZXR1cm4ge1xuICAgIGJpdG1hcFRleHR1cmVSOiBiaXRtYXBUZXh0dXJlUiB8fCBiaXRtYXBUZXh0dXJlUixcbiAgICBiaXRtYXBUZXh0dXJlRzogYml0bWFwVGV4dHVyZUcgfHwgYml0bWFwVGV4dHVyZVIsXG4gICAgYml0bWFwVGV4dHVyZUI6IGJpdG1hcFRleHR1cmVCIHx8IGJpdG1hcFRleHR1cmVSLFxuICAgIGJpdG1hcFRleHR1cmVBOiBiaXRtYXBUZXh0dXJlQSB8fCBiaXRtYXBUZXh0dXJlUlxuICB9O1xufVxuXG5jb25zdCBmczEgPSBgXFxcbnVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVSO1xudW5pZm9ybSBzYW1wbGVyMkQgYml0bWFwVGV4dHVyZUc7XG51bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlQjtcbnVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVBO1xuYDtcblxuY29uc3QgZnMyID0gYFxcXG5wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbnByZWNpc2lvbiBtZWRpdW1wIGludDtcbnByZWNpc2lvbiBtZWRpdW1wIHVzYW1wbGVyMkQ7XG5cbiNpZmRlZiBTQU1QTEVSX1RZUEVcbiAgdW5pZm9ybSBTQU1QTEVSX1RZUEUgYml0bWFwVGV4dHVyZVI7XG4gIHVuaWZvcm0gU0FNUExFUl9UWVBFIGJpdG1hcFRleHR1cmVHO1xuICB1bmlmb3JtIFNBTVBMRVJfVFlQRSBiaXRtYXBUZXh0dXJlQjtcbiAgdW5pZm9ybSBTQU1QTEVSX1RZUEUgYml0bWFwVGV4dHVyZUE7XG4jZWxzZVxuICB1bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlUjtcbiAgdW5pZm9ybSBzYW1wbGVyMkQgYml0bWFwVGV4dHVyZUc7XG4gIHVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVCO1xuICB1bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlQTtcbiNlbmRpZlxuYDtcblxuY29uc3QgY29tYmluZUJhbmRzOiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdjb21iaW5lLWJhbmRzJyxcbiAgZnMxLFxuICBmczIsXG4gIGdldFVuaWZvcm1zLFxuICBkZWZpbmVzOiB7XG4gICAgU0FNUExFUl9UWVBFOiAnc2FtcGxlcjJEJ1xuICB9LFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX0NSRUFURV9DT0xPUic6IGBcbiAgICBmbG9hdCBjaGFubmVsMSA9IGZsb2F0KHRleHR1cmUyRChiaXRtYXBUZXh0dXJlUiwgY29vcmQpLnIpO1xuICAgIGZsb2F0IGNoYW5uZWwyID0gZmxvYXQodGV4dHVyZTJEKGJpdG1hcFRleHR1cmVHLCBjb29yZCkucik7XG4gICAgZmxvYXQgY2hhbm5lbDMgPSBmbG9hdCh0ZXh0dXJlMkQoYml0bWFwVGV4dHVyZUIsIGNvb3JkKS5yKTtcbiAgICBmbG9hdCBjaGFubmVsNCA9IGZsb2F0KHRleHR1cmUyRChiaXRtYXBUZXh0dXJlQSwgY29vcmQpLnIpO1xuXG4gICAgaW1hZ2UgPSB2ZWM0KGNoYW5uZWwxLCBjaGFubmVsMiwgY2hhbm5lbDMsIGNoYW5uZWw0KTtcbiAgICBgXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lQmFuZHNGbG9hdDogU2hhZGVyTW9kdWxlID0ge1xuICAuLi5jb21iaW5lQmFuZHMsXG4gIG5hbWU6ICdjb21iaW5lLWJhbmRzLWZsb2F0J1xufTtcbmV4cG9ydCBjb25zdCBjb21iaW5lQmFuZHNVaW50OiBTaGFkZXJNb2R1bGUgPSB7XG4gIC4uLmNvbWJpbmVCYW5kcyxcbiAgbmFtZTogJ2NvbWJpbmUtYmFuZHMtdWludCcsXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICd1c2FtcGxlcjJEJ1xuICB9XG59O1xuZXhwb3J0IGNvbnN0IGNvbWJpbmVCYW5kc0ludDogU2hhZGVyTW9kdWxlID0ge1xuICAuLi5jb21iaW5lQmFuZHMsXG4gIG5hbWU6ICdjb21iaW5lLWJhbmRzLWludCcsXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICdpc2FtcGxlcjJEJ1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBTUEsU0FBU0EsV0FBV0EsQ0FBQSxFQUEyRDtFQUFBLElBQTFEQyxJQUFnQyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFDeEQsSUFBT0csVUFBVSxHQUFJSixJQUFJLENBQWxCSSxVQUFVO0VBRWpCLElBQUksQ0FBQ0EsVUFBVSxJQUFJQSxVQUFVLENBQUNGLE1BQU0sS0FBSyxDQUFDLEVBQUU7SUFDMUMsT0FBTyxJQUFJO0VBQ2I7RUFFQSxJQUFBRyxXQUFBLE9BQUFDLGVBQUEsYUFBeUVGLFVBQVU7SUFBNUVHLGNBQWMsR0FBQUYsV0FBQTtJQUFFRyxjQUFjLEdBQUFILFdBQUE7SUFBRUksY0FBYyxHQUFBSixXQUFBO0lBQUVLLGNBQWMsR0FBQUwsV0FBQTs7RUFFckU7RUFDQTtFQUNBLE9BQU87SUFDTEUsY0FBYyxFQUFFQSxjQUFjLElBQUlBLGNBQWM7SUFDaERDLGNBQWMsRUFBRUEsY0FBYyxJQUFJRCxjQUFjO0lBQ2hERSxjQUFjLEVBQUVBLGNBQWMsSUFBSUYsY0FBYztJQUNoREcsY0FBYyxFQUFFQSxjQUFjLElBQUlIO0VBQ3BDLENBQUM7QUFDSDtBQUVBLElBQU1JLEdBQUcsaUpBS1I7QUFFRCxJQUFNQyxHQUFHLGdiQWdCUjtBQUVELElBQU1DLFlBQTBCLEdBQUc7RUFDakNDLElBQUksRUFBRSxlQUFlO0VBQ3JCSCxHQUFHLEVBQUhBLEdBQUc7RUFDSEMsR0FBRyxFQUFIQSxHQUFHO0VBQ0hiLFdBQVcsRUFBWEEsV0FBVztFQUNYZ0IsT0FBTyxFQUFFO0lBQ1BDLFlBQVksRUFBRTtFQUNoQixDQUFDO0VBQ0RDLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQVExQjtBQUNGLENBQUM7QUFFTSxJQUFNQyxpQkFBK0IsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFBRSxhQUFBLENBQUFBLGFBQUEsS0FDdkNQLFlBQVk7RUFDZkMsSUFBSSxFQUFFO0FBQXFCLEVBQzVCO0FBQ00sSUFBTU8sZ0JBQThCLEdBQUFGLE9BQUEsQ0FBQUUsZ0JBQUEsR0FBQUQsYUFBQSxDQUFBQSxhQUFBLEtBQ3RDUCxZQUFZO0VBQ2ZDLElBQUksRUFBRSxvQkFBb0I7RUFDMUJDLE9BQU8sRUFBRTtJQUNQQyxZQUFZLEVBQUU7RUFDaEI7QUFBQyxFQUNGO0FBQ00sSUFBTU0sZUFBNkIsR0FBQUgsT0FBQSxDQUFBRyxlQUFBLEdBQUFGLGFBQUEsQ0FBQUEsYUFBQSxLQUNyQ1AsWUFBWTtFQUNmQyxJQUFJLEVBQUUsbUJBQW1CO0VBQ3pCQyxPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCO0FBQUMsRUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
@@ -0,0 +1,58 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.maskUint = exports.maskInt = exports.maskFloat = void 0;
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
|
+
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; }
|
10
|
+
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; }
|
11
|
+
// SPDX-License-Identifier: MIT
|
12
|
+
// Copyright contributors to the kepler.gl project
|
13
|
+
|
14
|
+
var inf = Math.pow(2, 62);
|
15
|
+
function getUniforms() {
|
16
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
17
|
+
var imageMask = opts.imageMask,
|
18
|
+
maskKeepMin = opts.maskKeepMin,
|
19
|
+
maskKeepMax = opts.maskKeepMax;
|
20
|
+
if (!imageMask) {
|
21
|
+
return null;
|
22
|
+
}
|
23
|
+
return {
|
24
|
+
bitmapTextureMask: imageMask,
|
25
|
+
uMaskKeepMin: Number.isFinite(maskKeepMin) ? maskKeepMin : -inf,
|
26
|
+
uMaskKeepMax: Number.isFinite(maskKeepMax) ? maskKeepMax : inf
|
27
|
+
};
|
28
|
+
}
|
29
|
+
var fs1 = "uniform sampler2D bitmapTextureMask;\nuniform float uMaskKeepMin;\nuniform float uMaskKeepMax;\n";
|
30
|
+
var fs2 = "precision mediump float;\nprecision mediump int;\nprecision mediump usampler2D;\n\n#ifdef SAMPLER_TYPE\n uniform SAMPLER_TYPE bitmapTextureMask;\n#else\n uniform sampler2D bitmapTextureMask;\n#endif\n\nuniform float uMaskKeepMin;\nuniform float uMaskKeepMax;\n";
|
31
|
+
var mask = {
|
32
|
+
name: 'mask-image',
|
33
|
+
fs1: fs1,
|
34
|
+
fs2: fs2,
|
35
|
+
getUniforms: getUniforms,
|
36
|
+
defines: {
|
37
|
+
SAMPLER_TYPE: 'sampler2D'
|
38
|
+
},
|
39
|
+
inject: {
|
40
|
+
'fs:DECKGL_CREATE_COLOR': "\n float mask_value = float(texture2D(bitmapTextureMask, coord).r);\n if (mask_value < uMaskKeepMin) discard;\n if (mask_value > uMaskKeepMax) discard;\n "
|
41
|
+
}
|
42
|
+
};
|
43
|
+
var maskFloat = exports.maskFloat = _objectSpread(_objectSpread({}, mask), {}, {
|
44
|
+
name: 'mask-image-float'
|
45
|
+
});
|
46
|
+
var maskUint = exports.maskUint = _objectSpread(_objectSpread({}, mask), {}, {
|
47
|
+
name: 'mask-image-uint',
|
48
|
+
defines: {
|
49
|
+
SAMPLER_TYPE: 'usampler2D'
|
50
|
+
}
|
51
|
+
});
|
52
|
+
var maskInt = exports.maskInt = _objectSpread(_objectSpread({}, mask), {}, {
|
53
|
+
name: 'mask-image-int',
|
54
|
+
defines: {
|
55
|
+
SAMPLER_TYPE: 'isampler2D'
|
56
|
+
}
|
57
|
+
});
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmYiLCJNYXRoIiwicG93IiwiZ2V0VW5pZm9ybXMiLCJvcHRzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiaW1hZ2VNYXNrIiwibWFza0tlZXBNaW4iLCJtYXNrS2VlcE1heCIsImJpdG1hcFRleHR1cmVNYXNrIiwidU1hc2tLZWVwTWluIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJ1TWFza0tlZXBNYXgiLCJmczEiLCJmczIiLCJtYXNrIiwibmFtZSIsImRlZmluZXMiLCJTQU1QTEVSX1RZUEUiLCJpbmplY3QiLCJtYXNrRmxvYXQiLCJleHBvcnRzIiwiX29iamVjdFNwcmVhZCIsIm1hc2tVaW50IiwibWFza0ludCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yYXN0ZXIvd2ViZ2wvdGV4dHVyZS9tYXNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7VGV4dHVyZTJEfSBmcm9tICdAbHVtYS5nbC93ZWJnbCc7XG5cbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBpbmYgPSBNYXRoLnBvdygyLCA2Mik7XG5cbmZ1bmN0aW9uIGdldFVuaWZvcm1zKFxuICBvcHRzOiB7aW1hZ2VNYXNrPzogVGV4dHVyZTJEOyBtYXNrS2VlcE1pbj86IG51bWJlcjsgbWFza0tlZXBNYXg/OiBudW1iZXJ9ID0ge31cbik6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge2ltYWdlTWFzaywgbWFza0tlZXBNaW4sIG1hc2tLZWVwTWF4fSA9IG9wdHM7XG4gIGlmICghaW1hZ2VNYXNrKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJpdG1hcFRleHR1cmVNYXNrOiBpbWFnZU1hc2ssXG4gICAgdU1hc2tLZWVwTWluOiBOdW1iZXIuaXNGaW5pdGUobWFza0tlZXBNaW4pID8gbWFza0tlZXBNaW4gOiAtaW5mLFxuICAgIHVNYXNrS2VlcE1heDogTnVtYmVyLmlzRmluaXRlKG1hc2tLZWVwTWF4KSA/IG1hc2tLZWVwTWF4IDogaW5mXG4gIH07XG59XG5cbmNvbnN0IGZzMSA9IGBcXFxudW5pZm9ybSBzYW1wbGVyMkQgYml0bWFwVGV4dHVyZU1hc2s7XG51bmlmb3JtIGZsb2F0IHVNYXNrS2VlcE1pbjtcbnVuaWZvcm0gZmxvYXQgdU1hc2tLZWVwTWF4O1xuYDtcblxuY29uc3QgZnMyID0gYFxcXG5wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbnByZWNpc2lvbiBtZWRpdW1wIGludDtcbnByZWNpc2lvbiBtZWRpdW1wIHVzYW1wbGVyMkQ7XG5cbiNpZmRlZiBTQU1QTEVSX1RZUEVcbiAgdW5pZm9ybSBTQU1QTEVSX1RZUEUgYml0bWFwVGV4dHVyZU1hc2s7XG4jZWxzZVxuICB1bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlTWFzaztcbiNlbmRpZlxuXG51bmlmb3JtIGZsb2F0IHVNYXNrS2VlcE1pbjtcbnVuaWZvcm0gZmxvYXQgdU1hc2tLZWVwTWF4O1xuYDtcblxuY29uc3QgbWFzazogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnbWFzay1pbWFnZScsXG4gIGZzMSxcbiAgZnMyLFxuICBnZXRVbmlmb3JtcyxcbiAgZGVmaW5lczoge1xuICAgIFNBTVBMRVJfVFlQRTogJ3NhbXBsZXIyRCdcbiAgfSxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9DUkVBVEVfQ09MT1InOiBgXG4gICAgZmxvYXQgbWFza192YWx1ZSA9IGZsb2F0KHRleHR1cmUyRChiaXRtYXBUZXh0dXJlTWFzaywgY29vcmQpLnIpO1xuICAgIGlmIChtYXNrX3ZhbHVlIDwgdU1hc2tLZWVwTWluKSBkaXNjYXJkO1xuICAgIGlmIChtYXNrX3ZhbHVlID4gdU1hc2tLZWVwTWF4KSBkaXNjYXJkO1xuICAgIGBcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG1hc2tGbG9hdDogU2hhZGVyTW9kdWxlID0ge1xuICAuLi5tYXNrLFxuICBuYW1lOiAnbWFzay1pbWFnZS1mbG9hdCdcbn07XG5leHBvcnQgY29uc3QgbWFza1VpbnQ6IFNoYWRlck1vZHVsZSA9IHtcbiAgLi4ubWFzayxcbiAgbmFtZTogJ21hc2staW1hZ2UtdWludCcsXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICd1c2FtcGxlcjJEJ1xuICB9XG59O1xuZXhwb3J0IGNvbnN0IG1hc2tJbnQ6IFNoYWRlck1vZHVsZSA9IHtcbiAgLi4ubWFzayxcbiAgbmFtZTogJ21hc2staW1hZ2UtaW50JyxcbiAgZGVmaW5lczoge1xuICAgIFNBTVBMRVJfVFlQRTogJ2lzYW1wbGVyMkQnXG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQU1BLElBQU1BLEdBQUcsR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUUzQixTQUFTQyxXQUFXQSxDQUFBLEVBRUM7RUFBQSxJQURuQkMsSUFBeUUsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBRTlFLElBQU9HLFNBQVMsR0FBOEJKLElBQUksQ0FBM0NJLFNBQVM7SUFBRUMsV0FBVyxHQUFpQkwsSUFBSSxDQUFoQ0ssV0FBVztJQUFFQyxXQUFXLEdBQUlOLElBQUksQ0FBbkJNLFdBQVc7RUFDMUMsSUFBSSxDQUFDRixTQUFTLEVBQUU7SUFDZCxPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEcsaUJBQWlCLEVBQUVILFNBQVM7SUFDNUJJLFlBQVksRUFBRUMsTUFBTSxDQUFDQyxRQUFRLENBQUNMLFdBQVcsQ0FBQyxHQUFHQSxXQUFXLEdBQUcsQ0FBQ1QsR0FBRztJQUMvRGUsWUFBWSxFQUFFRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0osV0FBVyxDQUFDLEdBQUdBLFdBQVcsR0FBR1Y7RUFDN0QsQ0FBQztBQUNIO0FBRUEsSUFBTWdCLEdBQUcscUdBSVI7QUFFRCxJQUFNQyxHQUFHLDJRQWFSO0FBRUQsSUFBTUMsSUFBa0IsR0FBRztFQUN6QkMsSUFBSSxFQUFFLFlBQVk7RUFDbEJILEdBQUcsRUFBSEEsR0FBRztFQUNIQyxHQUFHLEVBQUhBLEdBQUc7RUFDSGQsV0FBVyxFQUFYQSxXQUFXO0VBQ1hpQixPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCLENBQUM7RUFDREMsTUFBTSxFQUFFO0lBQ04sd0JBQXdCO0VBSzFCO0FBQ0YsQ0FBQztBQUVNLElBQU1DLFNBQXVCLEdBQUFDLE9BQUEsQ0FBQUQsU0FBQSxHQUFBRSxhQUFBLENBQUFBLGFBQUEsS0FDL0JQLElBQUk7RUFDUEMsSUFBSSxFQUFFO0FBQWtCLEVBQ3pCO0FBQ00sSUFBTU8sUUFBc0IsR0FBQUYsT0FBQSxDQUFBRSxRQUFBLEdBQUFELGFBQUEsQ0FBQUEsYUFBQSxLQUM5QlAsSUFBSTtFQUNQQyxJQUFJLEVBQUUsaUJBQWlCO0VBQ3ZCQyxPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCO0FBQUMsRUFDRjtBQUNNLElBQU1NLE9BQXFCLEdBQUFILE9BQUEsQ0FBQUcsT0FBQSxHQUFBRixhQUFBLENBQUFBLGFBQUEsS0FDN0JQLElBQUk7RUFDUEMsSUFBSSxFQUFFLGdCQUFnQjtFQUN0QkMsT0FBTyxFQUFFO0lBQ1BDLFlBQVksRUFBRTtFQUNoQjtBQUFDLEVBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { ShaderModule } from '../types';
|
2
|
+
/**
|
3
|
+
* Construct permutation matrix from vector
|
4
|
+
*
|
5
|
+
* @param vector Vector describing how to reorder bands
|
6
|
+
*
|
7
|
+
* @return a mat4 permutation matrix representing how to reorder bands
|
8
|
+
*/
|
9
|
+
export declare function constructPermutationMatrix(vector: number[]): number[];
|
10
|
+
export declare const reorderBands: ShaderModule;
|