{"id":1225,"date":"2026-04-10T02:47:33","date_gmt":"2026-04-10T02:47:33","guid":{"rendered":"https:\/\/industrialsafetysensor.com\/?page_id=1225"},"modified":"2026-04-10T03:00:44","modified_gmt":"2026-04-10T03:00:44","slug":"lidar-scanning-coverage-calculator","status":"publish","type":"page","link":"https:\/\/industrialsafetysensor.com\/fr\/lidar-sensors\/2d-lidar-sensor\/lidar-scanning-coverage-calculator\/","title":{"rendered":"Calculateur de couverture de num\u00e9risation LiDAR"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-7c032f0\" data-block-id=\"7c032f0\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-7c032f0-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-b6a1990\" data-v=\"4\" data-block-id=\"b6a1990\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-b6a1990-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-b6a1990-inner-blocks\"><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-41e5ad7\" data-block-id=\"41e5ad7\"><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-41e5ad7-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-466e660\" data-v=\"4\" data-block-id=\"466e660\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-466e660-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-466e660-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-dfa8421\" data-block-id=\"dfa8421\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-dfa8421-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-08785fe\" data-v=\"4\" data-block-id=\"08785fe\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-08785fe-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-08785fe-inner-blocks\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#tool-coverage-calc * {\n  box-sizing: border-box !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n#tool-coverage-calc {\n  max-width: 1200px !important;\n  margin: 0 auto !important;\n  padding: 40px 24px !important;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  color: #303030 !important;\n  background: #FFFFFF !important;\n}\n\n#tool-coverage-calc .tcc-header {\n  text-align: center !important;\n  margin-bottom: 40px !important;\n}\n\n#tool-coverage-calc .tcc-header h2 {\n  font-size: 32px !important;\n  font-weight: 700 !important;\n  color: #181818 !important;\n  margin-bottom: 8px !important;\n  line-height: 1.3 !important;\n}\n\n#tool-coverage-calc .tcc-header p {\n  font-size: 16px !important;\n  color: #484848 !important;\n  line-height: 1.5 !important;\n}\n\n#tool-coverage-calc .tcc-layout {\n  display: grid !important;\n  grid-template-columns: 1fr 1fr !important;\n  gap: 40px !important;\n  margin-bottom: 32px !important;\n}\n\n#tool-coverage-calc .tcc-inputs {\n  display: flex !important;\n  flex-direction: column !important;\n  gap: 20px !important;\n}\n\n#tool-coverage-calc .tcc-field {\n  display: flex !important;\n  flex-direction: column !important;\n}\n\n#tool-coverage-calc .tcc-field label {\n  font-size: 13px !important;\n  font-weight: 600 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.5px !important;\n  color: #484848 !important;\n  margin-bottom: 8px !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n}\n\n#tool-coverage-calc .tcc-field input,\n#tool-coverage-calc .tcc-field select {\n  height: 44px !important;\n  border: 2px solid #303030 !important;\n  border-radius: 0px !important;\n  padding: 0 12px !important;\n  font-size: 15px !important;\n  color: #181818 !important;\n  background: #FFFFFF !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n  appearance: auto !important;\n}\n\n#tool-coverage-calc .tcc-field select option {\n  color: #000018 !important;\n  background: #FFFFFF !important;\n}\n\n#tool-coverage-calc .tcc-field input:focus,\n#tool-coverage-calc .tcc-field select:focus {\n  outline: none !important;\n  border-color: #181818 !important;\n  box-shadow: 0 0 0 1px #181818 !important;\n}\n\n#tool-coverage-calc .tcc-field .tcc-hint {\n  font-size: 12px !important;\n  color: #777 !important;\n  margin-top: 4px !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n}\n\n#tool-coverage-calc .tcc-btn {\n  display: inline-block !important;\n  height: 48px !important;\n  line-height: 48px !important;\n  padding: 0 40px !important;\n  background: #303030 !important;\n  color: #F0F0F0 !important;\n  border: none !important;\n  border-radius: 0px !important;\n  font-size: 15px !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.5px !important;\n  cursor: pointer !important;\n  text-transform: uppercase !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n  transition: background 0.2s !important;\n  width: 100% !important;\n  text-align: center !important;\n  margin-top: 4px !important;\n}\n\n#tool-coverage-calc .tcc-btn:hover {\n  background: #181818 !important;\n}\n\n#tool-coverage-calc .tcc-visual {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  background: #F0F0F0 !important;\n  border: 2px solid #303030 !important;\n  border-radius: 0px !important;\n  min-height: 320px !important;\n  padding: 20px !important;\n}\n\n#tool-coverage-calc .tcc-visual svg {\n  max-width: 100% !important;\n  height: auto !important;\n}\n\n#tool-coverage-calc .tcc-result {\n  display: none;\n}\n\n#tool-coverage-calc .tcc-result.active {\n  display: block !important;\n}\n\n#tool-coverage-calc .tcc-stats-grid {\n  display: grid !important;\n  grid-template-columns: repeat(4, 1fr) !important;\n  gap: 16px !important;\n  margin-bottom: 32px !important;\n}\n\n#tool-coverage-calc .tcc-stat {\n  border: 2px solid #303030 !important;\n  border-radius: 0px !important;\n  padding: 20px 16px !important;\n  text-align: center !important;\n  background: #F0F0F0 !important;\n}\n\n#tool-coverage-calc .tcc-stat-label {\n  font-size: 11px !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.5px !important;\n  color: #484848 !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n  margin-bottom: 8px !important;\n}\n\n#tool-coverage-calc .tcc-stat-value {\n  font-size: 22px !important;\n  font-weight: 700 !important;\n  color: #181818 !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n}\n\n#tool-coverage-calc .tcc-stat-unit {\n  font-size: 13px !important;\n  color: #484848 !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n  margin-top: 2px !important;\n}\n\n#tool-coverage-calc .tcc-note {\n  font-size: 13px !important;\n  color: #484848 !important;\n  text-align: center !important;\n  margin-bottom: 24px !important;\n  line-height: 1.5 !important;\n  font-style: italic !important;\n}\n\n#tool-coverage-calc .tcc-cta-row {\n  text-align: center !important;\n}\n\n#tool-coverage-calc .tcc-cta-btn {\n  display: inline-block !important;\n  height: 48px !important;\n  line-height: 48px !important;\n  padding: 0 36px !important;\n  background: #303030 !important;\n  color: #F0F0F0 !important;\n  border: none !important;\n  border-radius: 0px !important;\n  font-size: 14px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  text-decoration: none !important;\n  font-family: 'IBM Plex Mono', monospace !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.5px !important;\n  transition: background 0.2s !important;\n}\n\n#tool-coverage-calc .tcc-cta-btn:hover {\n  background: #181818 !important;\n  color: #F0F0F0 !important;\n}\n\n<\/style>\n\n\n<div id=\"tool-coverage-calc\">\n  <div class=\"tcc-header\">\n    <h2>LiDAR Scanning Coverage Calculator<\/h2>\n    <p>Enter your sensor parameters to visualize the scanning coverage area and plan your installation.<\/p>\n  <\/div>\n\n  <div class=\"tcc-layout\">\n    <div class=\"tcc-inputs\">\n      <div class=\"tcc-field\">\n        <label for=\"tcc-fov\">Field of View (degrees)<\/label>\n        <input type=\"number\" id=\"tcc-fov\" value=\"270\" min=\"10\" max=\"360\" step=\"1\">\n        <span class=\"tcc-hint\">Typical: 190&deg; &ndash; 360&deg;<\/span>\n      <\/div>\n      <div class=\"tcc-field\">\n        <label for=\"tcc-range\">Detection Range (meters)<\/label>\n        <input type=\"number\" id=\"tcc-range\" value=\"30\" min=\"0.1\" max=\"500\" step=\"0.1\">\n        <span class=\"tcc-hint\">Max measurable distance<\/span>\n      <\/div>\n      <div class=\"tcc-field\">\n        <label for=\"tcc-height\">Mounting Height (meters)<\/label>\n        <input type=\"number\" id=\"tcc-height\" value=\"1.0\" min=\"0.1\" max=\"20\" step=\"0.1\">\n        <span class=\"tcc-hint\">Height above ground plane<\/span>\n      <\/div>\n      <div class=\"tcc-field\">\n        <label for=\"tcc-sensors\">Number of Sensors<\/label>\n        <select id=\"tcc-sensors\">\n          <option value=\"1\">1 Sensor<\/option>\n          <option value=\"2\">2 Sensors<\/option>\n          <option value=\"3\">3 Sensors<\/option>\n          <option value=\"4\">4 Sensors<\/option>\n        <\/select>\n      <\/div>\n      <button class=\"tcc-btn\" id=\"tcc-submit\">Calculate Coverage<\/button>\n    <\/div>\n\n    <div class=\"tcc-visual\" id=\"tcc-visual\">\n      <svg id=\"tcc-svg\" viewBox=\"0 0 300 300\" width=\"280\" height=\"280\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n        <text x=\"150\" y=\"150\" text-anchor=\"middle\" fill=\"#999\" font-family=\"IBM Plex Mono, monospace\" font-size=\"13\">Enter values and click Calculate<\/text>\n      <\/svg>\n    <\/div>\n  <\/div>\n\n  <div class=\"tcc-result\" id=\"tcc-result\">\n    <div class=\"tcc-stats-grid\">\n      <div class=\"tcc-stat\">\n        <div class=\"tcc-stat-label\">Single Sensor<\/div>\n        <div class=\"tcc-stat-value\" id=\"tcc-area-single\">&#8212;<\/div>\n        <div class=\"tcc-stat-unit\">m&sup2;<\/div>\n      <\/div>\n      <div class=\"tcc-stat\">\n        <div class=\"tcc-stat-label\">Total Coverage<\/div>\n        <div class=\"tcc-stat-value\" id=\"tcc-area-total\">&#8212;<\/div>\n        <div class=\"tcc-stat-unit\">m&sup2;<\/div>\n      <\/div>\n      <div class=\"tcc-stat\">\n        <div class=\"tcc-stat-label\">Arc Length<\/div>\n        <div class=\"tcc-stat-value\" id=\"tcc-arc\">&#8212;<\/div>\n        <div class=\"tcc-stat-unit\">m<\/div>\n      <\/div>\n      <div class=\"tcc-stat\">\n        <div class=\"tcc-stat-label\">Max Width<\/div>\n        <div class=\"tcc-stat-value\" id=\"tcc-width\">&#8212;<\/div>\n        <div class=\"tcc-stat-unit\">m<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"tcc-note\" id=\"tcc-overlap-note\"><\/div>\n    <div class=\"tcc-cta-row\">\n      <a href=\"#ct-popup-788\" class=\"tcc-cta-btn\">Need Help With Sensor Placement? Request a Custom Layout &rarr;<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  function calculate() {\n    var fov = parseFloat(document.getElementById('tcc-fov').value);\n    var range = parseFloat(document.getElementById('tcc-range').value);\n    var height = parseFloat(document.getElementById('tcc-height').value);\n    var sensors = parseInt(document.getElementById('tcc-sensors').value, 10);\n\n    if (isNaN(fov) || isNaN(range) || isNaN(height) || fov <= 0 || range <= 0 || height <= 0) {\n      alert('Please enter valid positive numbers for all fields.');\n      return;\n    }\n    if (fov > 360) fov = 360;\n\n    \/\/ Sector area = pi * r^2 * (fov\/360)\n    var singleArea = Math.PI * range * range * (fov \/ 360);\n    \/\/ Multiple sensors: 10% overlap deduction per additional sensor\n    var overlapFactor = 1 - (sensors - 1) * 0.10;\n    if (overlapFactor < 0.5) overlapFactor = 0.5;\n    var totalArea = singleArea * sensors * overlapFactor;\n\n    \/\/ Arc length at max range\n    var arcLength = 2 * Math.PI * range * (fov \/ 360);\n\n    \/\/ Max width (chord length across the FOV)\n    var fovRad = (fov * Math.PI) \/ 180;\n    var maxWidth;\n    if (fov >= 180) {\n      maxWidth = 2 * range;\n    } else {\n      maxWidth = 2 * range * Math.sin(fovRad \/ 2);\n    }\n\n    \/\/ Update stats\n    document.getElementById('tcc-area-single').textContent = singleArea.toFixed(1);\n    document.getElementById('tcc-area-total').textContent = totalArea.toFixed(1);\n    document.getElementById('tcc-arc').textContent = arcLength.toFixed(1);\n    document.getElementById('tcc-width').textContent = maxWidth.toFixed(1);\n\n    var note = '';\n    if (sensors > 1) {\n      var overlapPct = ((sensors - 1) * 10);\n      note = sensors + ' sensors with ~' + overlapPct + '% total overlap deduction. Effective coverage factor: ' + (overlapFactor * 100).toFixed(0) + '%.';\n    } else {\n      note = 'Single sensor coverage shown. Add more sensors for wider area coverage.';\n    }\n    document.getElementById('tcc-overlap-note').textContent = note;\n\n    \/\/ Draw SVG\n    drawCoverage(fov, range, sensors);\n\n    var result = document.getElementById('tcc-result');\n    result.classList.add('active');\n    result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n\n  function drawCoverage(fov, range, sensors) {\n    var svgEl = document.getElementById('tcc-svg');\n    var size = 300;\n    var cx = size \/ 2;\n    var cy = size \/ 2;\n    var pad = 30;\n    var r = (size \/ 2) - pad;\n\n    var fovRad = (fov * Math.PI) \/ 180;\n\n    var svg = '';\n    \/\/ Grid circles\n    for (var gi = 1; gi <= 3; gi++) {\n      var gr = (r \/ 3) * gi;\n      svg += '<circle cx=\"' + cx + '\" cy=\"' + cy + '\" r=\"' + gr + '\" fill=\"none\" stroke=\"#D0D0D0\" stroke-width=\"1\" stroke-dasharray=\"4,4\"\/>';\n      var labelDist = (range \/ 3 * gi).toFixed(0);\n      svg += '<text x=\"' + (cx + 4) + '\" y=\"' + (cy - gr - 3) + '\" fill=\"#999\" font-family=\"IBM Plex Mono, monospace\" font-size=\"10\">' + labelDist + 'm<\/text>';\n    }\n\n    \/\/ Draw sensor arcs\n    var colors = ['#303030', '#484848', '#707070', '#909090'];\n    var opacities = ['0.25', '0.20', '0.15', '0.12'];\n\n    for (var si = 0; si < sensors; si++) {\n      \/\/ Distribute sensors evenly around center\n      var baseAngle;\n      if (sensors === 1) {\n        baseAngle = -Math.PI \/ 2; \/\/ point upward\n      } else {\n        baseAngle = (2 * Math.PI \/ sensors) * si - Math.PI \/ 2;\n      }\n\n      var startAngle = baseAngle - fovRad \/ 2;\n      var endAngle = baseAngle + fovRad \/ 2;\n\n      var x1 = cx + r * Math.cos(startAngle);\n      var y1 = cy + r * Math.sin(startAngle);\n      var x2 = cx + r * Math.cos(endAngle);\n      var y2 = cy + r * Math.sin(endAngle);\n\n      var largeArc = fov > 180 ? 1 : 0;\n\n      var pathD = 'M ' + cx + ' ' + cy + ' L ' + x1 + ' ' + y1 + ' A ' + r + ' ' + r + ' 0 ' + largeArc + ' 1 ' + x2 + ' ' + y2 + ' Z';\n\n      svg += '<path d=\"' + pathD + '\" fill=\"' + colors[si % colors.length] + '\" fill-opacity=\"' + opacities[si % opacities.length] + '\" stroke=\"' + colors[si % colors.length] + '\" stroke-width=\"2\"\/>';\n\n      \/\/ Sensor dot\n      svg += '<circle cx=\"' + cx + '\" cy=\"' + cy + '\" r=\"5\" fill=\"' + colors[si % colors.length] + '\"\/>';\n\n      \/\/ Sensor label\n      var lblAngle = baseAngle;\n      var lblR = r + 14;\n      var lx = cx + lblR * Math.cos(lblAngle);\n      var ly = cy + lblR * Math.sin(lblAngle);\n      if (sensors > 1) {\n        svg += '<text x=\"' + lx + '\" y=\"' + ly + '\" text-anchor=\"middle\" dominant-baseline=\"middle\" fill=\"#303030\" font-family=\"IBM Plex Mono, monospace\" font-size=\"10\" font-weight=\"600\">S' + (si + 1) + '<\/text>';\n      }\n    }\n\n    \/\/ Center label\n    svg += '<text x=\"' + cx + '\" y=\"' + (cy + 18) + '\" text-anchor=\"middle\" fill=\"#181818\" font-family=\"IBM Plex Mono, monospace\" font-size=\"11\" font-weight=\"600\">FOV ' + fov + '\\u00B0<\/text>';\n\n    svgEl.innerHTML = svg;\n  }\n\n  document.getElementById('tcc-submit').addEventListener('click', calculate);\n})();\n<\/script>\n\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>LiDAR Scanning Coverage Calculator Enter your sensor parameters to visualize the scanning coverage area and plan your installation. Field of View (degrees) Typical: 190&deg; &ndash; 360&deg; Detection Range (meters) Max measurable distance Mounting Height (meters) Height above ground plane Number of Sensors 1 Sensor2 Sensors3 Sensors4 Sensors Calculate Coverage Enter values and click Calculate Single [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":1165,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-1225","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/pages\/1225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/comments?post=1225"}],"version-history":[{"count":0,"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/pages\/1225\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/pages\/1165"}],"wp:attachment":[{"href":"https:\/\/industrialsafetysensor.com\/fr\/wp-json\/wp\/v2\/media?parent=1225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}