WHAT'S NEW
POSTINGAN SELANJUTNYA: RUMUS MENGHITUNG LUAS PERMUKAAN DAN VOLUME BANGUN RUANG (BAGIAN 2)
Dynamic Mineralogy Table

Dynamic Mineralogy Table

Depth (m) WEIGHT NON CLAY MINERALOGY (%) WEIGHT CLAY MINERALOGY (%) DENSITY NON CLAY MINERAL (g/cm³) DENSITY CLAY MINERAL (g/cm³) VOLUME CLAY (cm³)
LAS Well Log Analysis

LAS File Analysis

Number Line Reader

Number Line Reader






Estimated Number: N/A

Customizable Stacked Bar Chart

Customizable Stacked Bar Chart

Temperature Gradient and Geothermal Graph

Temperature Gradient vs Depth

Enter the surface and bottom hole temperatures, and depths, to calculate the geothermal gradient and see the graph.











Image Color Filter

Upload and Click to Select Color from Image









Contour Detection in Image

Contour Detection in Image




importScripts('https://docs.opencv.org/4.x/opencv.js'); self.onmessage = function(e) { const { imgData, minLength, maxLength } = e.data; const src = cv.matFromArray(imgData.height, imgData.width, cv.CV_8UC4, imgData.data); const gray = new cv.Mat(); cv.cvtColor(src, gray, cv.COLOR_RGBA2GRAY, 0); const edged = new cv.Mat(); cv.Canny(gray, edged, 50, 150, 3, false); const contours = new cv.MatVector(); const hierarchy = new cv.Mat(); cv.findContours(edged, contours, hierarchy, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE); const validContours = []; for (let i = 0; i < contours.size(); ++i) { const contour = contours.get(i); const length = cv.arcLength(contour, true); if (length >= minLength && length <= maxLength) { validContours.push(contour); } } const processedImage = new ImageData(new Uint8ClampedArray(src.data), src.cols, src.rows); self.postMessage({ processedImage, validContours }); src.delete(); gray.delete(); edged.delete(); contours.delete(); hierarchy.delete(); };