const well_ring = require('./drawers/well-ring') const well_head = require('./drawers/well-head') const corel_layer = require('./drawers/corel-layer') const BBox = require('../libs/bbox') const SvgNode = require('./svg-node') const svg_nodes = require('./drawers/svg-nodes') function get_bbox(data, min_size = 1000) { let bbox = BBox.from_array(data) if (bbox.w() == 0 || bbox.h() == 0) { bbox.r += min_size; bbox.b += min_size; } return bbox; } function build_pt_layer(wells, settings, style) { function t2r(tons) { // tonns/mm2 = tonns/cm2 / 100. S(mm)=Pi*r*r=tons/tons_in_cm2*100. r = sqrt(tons/tons_in_cm2*100 / PI) return Math.sqrt(((tons / settings.tons_in_cm2) * 100) / Math.PI); } let { ppu } = settings; const wells_layer = corel_layer("wells"); const rings_layer = corel_layer("rings"); // Круги rings_layer.append(wells.map((x) => well_ring.pt(x.wopt, x.wwpt, t2r(x.wlpt), ppu, style).move(x.lx, x.ly))); // Знак скважины wells_layer.append( wells.map((x) => well_head[t2r(x.wlpt) > 1.6 ? "prod" : "gray"](ppu, style).move(x.lx, x.ly)) ); // Имя скважины wells_layer.append(wells.map((x) => well_head.name(x.name, ppu, style).move(x.lx, x.ly))); // Обводненность wells_layer.append(wells.map((x) => well_head.wlp(x.wlf, ppu, style).move(x.lx, x.ly))); let svg = svg_nodes.container([rings_layer, wells_layer]) return { svg }; } function build_it_layer(wells, settings, style) { function t2r(tons) { // tonns/mm2 = tonns/cm2 / 100. S(mm)=Pi*r*r=tons/tons_in_cm2*100. r = sqrt(tons/tons_in_cm2*100 / PI) return Math.sqrt(((tons / settings.tons_in_cm2) * 100) / Math.PI); } let { ppu } = settings; const wells_layer = corel_layer("wells"); const rings_layer = corel_layer("rings"); // Круги rings_layer.append(wells.map((x) => well_ring.it(t2r(x.wwit), ppu, style).move(x.lx, x.ly))); // Знак скважины wells_layer.append( wells.map((x) => well_head[t2r(x.wwit) > 1.6 ? "inj" : "gray"](ppu, style).move(x.lx, x.ly)) ); // Имя скважины wells_layer.append(wells.map((x) => well_head.name(x.name, ppu, style).move(x.lx, x.ly))); let svg = svg_nodes.container([rings_layer, wells_layer]) return { svg }; } module.exports = { get_bbox, build_pt_layer, build_it_layer, }; module.exports.default = module.exports;