Tree Height Estimator (Shadow/Angle Method)
ANA›Life Services Authority›National Calculator Authority›Tree Height Estimator (Shadow/Angle Method)
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Tree Height Estimator (Shadow/Angle Method)
Estimate the height of a tree using either the Shadow Method (similar triangles) or the Angle of Elevation Method (trigonometry). Choose your preferred method below.
Select Method:
Shadow Method
Angle of Elevation Method
Tree Shadow Length
meters (m) feet (ft)
The length of the shadow cast by the tree.
Known Object Height (Stick / Person)
m
Height of a person or stick whose shadow you can measure.
Known Object Shadow Length
m
Length of the shadow cast by the known object at the same time.
Horizontal Distance to Tree Base
meters (m) feet (ft)
Your distance from the base of the tree (measured horizontally).
Angle of Elevation to Tree Top
°
The angle from horizontal to the top of the tree (measured with a clinometer or phone app).
Observer Eye Height
m
Height of your eyes above the ground (adds to the calculated height).
Calculate Tree Height Enter values above and click Calculate.
function treToggleMethod() { var method = document.querySelector('input[name="tre_method"]:checked').value; document.getElementById('tre_shadow_inputs').style.display = (method === 'shadow') ? 'block' : 'none'; document.getElementById('tre_angle_inputs').style.display = (method === 'angle') ? 'block' : 'none'; document.getElementById('tre_result').innerHTML = 'Enter values above and click Calculate.'; document.getElementById('tre_result').className = 'calc-result'; }
document.getElementById('tre_shadow_unit').addEventListener('change', function() { var u = this.value; document.getElementById('tre_stick_unit_label').textContent = u; document.getElementById('tre_stick_shadow_unit_label').textContent = u; });
document.getElementById('tre_distance_unit').addEventListener('change', function() { document.getElementById('tre_eye_unit_label').textContent = this.value; });
function treCalc() { var resultDiv = document.getElementById('tre_result'); var method = document.querySelector('input[name="tre_method"]:checked').value;
if (method === 'shadow') { var treeShadow = parseFloat(document.getElementById('tre_tree_shadow').value); var stickHeight = parseFloat(document.getElementById('tre_stick_height').value); var stickShadow = parseFloat(document.getElementById('tre_stick_shadow').value); var unit = document.getElementById('tre_shadow_unit').value;
if (isNaN(treeShadow) || isNaN(stickHeight) || isNaN(stickShadow)) { resultDiv.innerHTML = 'Please fill in all three shadow method fields.'; resultDiv.className = 'calc-result calc-result-error'; return; } if (treeShadow All values must be greater than zero.'; resultDiv.className = 'calc-result calc-result-error'; return; }
// Similar triangles: Tree Height / Tree Shadow = Stick Height / Stick Shadow var treeHeight = (stickHeight / stickShadow) * treeShadow; var ratio = (stickHeight / stickShadow).toFixed(4);
resultDiv.innerHTML = 'Estimated Tree Height: ' + treeHeight.toFixed(2) + ' ' + unit + '' + 'Height-to-shadow ratio: ' + ratio + ' | ' + 'Tree Shadow: ' + treeShadow + ' ' + unit + ' × ratio = ' + treeHeight.toFixed(2) + ' ' + unit + ''; resultDiv.className = 'calc-result calc-result-success';
} else { var distance = parseFloat(document.getElementById('tre_distance').value); var angleDeg = parseFloat(document.getElementById('tre_angle').value); var eyeHeight = parseFloat(document.getElementById('tre_eye_height').value); var unit = document.getElementById('tre_distance_unit').value;
if (isNaN(distance) || isNaN(angleDeg) || isNaN(eyeHeight)) { resultDiv.innerHTML = 'Please fill in all three angle method fields.'; resultDiv.className = 'calc-result calc-result-error'; return; } if (distance Horizontal distance must be greater than zero.'; resultDiv.className = 'calc-result calc-result-error'; return; } if (angleDeg = 90) { resultDiv.innerHTML = 'Angle must be between 0° and 90° (exclusive).'; resultDiv.className = 'calc-result calc-result-error'; return; } if (eyeHeight Eye height cannot be negative.'; resultDiv.className = 'calc-result calc-result-error'; return; }
// Tree Height = distance × tan(angle) + eye_height var angleRad = angleDeg * (Math.PI / 180); var tanPart = distance * Math.tan(angleRad); var treeHeight = tanPart + eyeHeight;
resultDiv.innerHTML = 'Estimated Tree Height: ' + treeHeight.toFixed(2) + ' ' + unit + '' + '' + 'tan(' + angleDeg + '°) = ' + Math.tan(angleRad).toFixed(4) + ' | ' + distance + ' × ' + Math.tan(angleRad).toFixed(4) + ' = ' + tanPart.toFixed(2) + ' ' + unit + ' + eye height ' + eyeHeight + ' ' + unit + ' = ' + treeHeight.toFixed(2) + ' ' + unit + ''; resultDiv.className = 'calc-result calc-result-success'; } }
#### Formulas Used
Shadow Method (Similar Triangles):
Tree Height = (Known Object Height ÷ Known Object Shadow) × Tree Shadow Length
This relies on the fact that at the same moment, all vertical objects cast shadows proportional to their height.
Angle of Elevation Method (Trigonometry):
Tree Height = (Horizontal Distance × tan(Elevation Angle)) + Observer Eye Height
The tangent of the elevation angle gives the vertical rise over horizontal run. Eye height is added because the angle is measured from eye level, not ground level.
#### Assumptions & References
- Shadow Method: Both shadows must be measured at the same time and on flat, level ground so the sun angle is identical for both objects.
- Shadow Method: The known object (stick or person) must be perfectly vertical.
- Angle Method: The ground between you and the tree base must be approximately level. For sloped terrain, corrections are needed.
- Angle Method: The angle is measured from the observer's eye level to the very top of the tree.
- Reference: Avery, T.E. & Burkhart, H.E. (2002). Forest Measurements, 5th ed. McGraw-Hill.
- Reference: Similar triangles principle — Euclid's Elements, Book VI, Proposition 4.
More Calculators
- Commercial Building Permit Fee Estimator (Alabama)
- Smart Home ROI Calculator
- Commercial Zoning Compliance Square Footage Calculator
- HVAC Load Calculation (Manual J Estimator)
- AI Home Automation Cost vs. Benefit Calculator
- Refrigerant Charge Calculator
- Home Repair Budget Calculator
- Heat Load Calculator (Manual J Estimate)
- SEER Rating Savings Calculator
- HVAC Financing Cost Calculator
- HVAC Replacement Cost Estimator
- HVAC Company Quote Comparison Calculator
Read Next
Study Time Planner ANA › Life Services Authority › National Calculator Authority › Study Time Planner .calc-container { max-width: 640px; margin:...