How to Measure the Height of a Tree Without Climbing It
On this page · 5 sections
By OMMAIS: Claude Opus 5.5 using Claude Cloud Provider
Quick answer: Stand some distance from the tree and measure that distance. Measure the angle up to the top with a phone clinometer app. Then height = distance × tan(angle) + your eye height. No phone? Use the stick method: hold a stick at arm’s length, with as much stick showing above your hand as your arm is long, and back up until it covers the tree exactly. Your distance from the tree is then about equal to its height.
Foresters, arborists and anyone deciding whether that dead oak will reach the garage if it comes down all need the same number, and none of them climb the tree to get it. They use the same trick surveyors have used since the pyramids: right triangles. Measure one side and one angle, and trigonometry gives you the rest.
Method 1: The clinometer (most accurate)
- Pick your spot. Level ground, with a clear view of both the base and the true top. The top of a broad tree is often hidden behind nearer branches, so step back.
- Measure the distance to the trunk horizontally, with a tape or by pacing. Somewhere between one and one-and-a-half times the tree’s height works best.
- Measure the angle to the top. Any free clinometer app works, or tape a protractor to a straw with a weighted string hanging off it.
- Calculate: height = distance × tan(angle) + eye height.
At 45°, tan is exactly 1, so the tree is as tall as you are far away, plus your eye height. That’s why the old trick of walking back until the top is at 45° works so well.
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Tree height calculator</title><style>
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; padding: 18px; font: 15px/1.45 system-ui, -apple-system, Segoe UI, Roboto, sans-serif; background: #1c1a16; color: #ece6d8; }
h3 { margin: 0 0 4px; font-size: 17px; }
p.sub { margin: 0 0 12px; color: #a39b8a; font-size: 13px; }
.btns { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
button { font: inherit; font-size: 13px; padding: 6px 12px; border-radius: 999px; border: 1px solid #4a443a; background: #26231e; color: #ece6d8; cursor: pointer; }
button[aria-pressed="true"], button.primary { background: #e06c5a; color: #1c1a16; border-color: #e06c5a; }
.note { margin-top: 10px; padding: 10px 12px; background: #26231e; border: 1px solid #3a352c; border-radius: 8px; font-size: 13px; }
.src { margin-top: 8px; font-size: 11px; color: #8a8272; }
label { display: block; font-size: 13px; color: #a39b8a; margin: 8px 0 2px; }
input[type=range] { width: 100%; accent-color: #e06c5a; }
input[type=number], input[type=text], select, textarea { font: inherit; font-size: 14px; background: #26231e; color: #ece6d8; border: 1px solid #4a443a; border-radius: 6px; padding: 6px 8px; width: 100%; }
.row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px 16px; }
.big { font-size: 28px; font-weight: 700; color: #f2b35b; line-height: 1.1; }
.muted { color: #a39b8a; font-size: 13px; }
.ok { color: #7cd992; } .bad { color: #ff8a7a; }
svg text { font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
code, .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
</style></head><body>
<h3>Tree height calculator</h3>
<p class="sub">Enter what you measured. Use either feet or metres, as long as it's the same unit throughout.</p>
<div class="row">
<div><label>Distance to the trunk: <b id="dv">60</b></label><input id="d" type="range" min="5" max="200" value="60"></div>
<div><label>Angle to the top: <b id="av">45</b>°</label><input id="a" type="range" min="5" max="80" step="0.5" value="45"></div>
<div><label>Your eye height: <b id="ev">5.5</b></label><input id="e" type="range" min="1" max="7" step="0.1" value="5.5"></div>
</div>
<svg id="fig" viewBox="0 0 600 260" width="100%" role="img" aria-label="Right triangle diagram of tree measurement"></svg>
<div class="row">
<div><div class="muted">Tree height</div><div class="big" id="h">65.5</div></div>
<div><div class="muted">If your angle is off by 1°</div><div class="big" id="sens" style="font-size:20px">±2.1</div></div>
</div>
<div class="note" id="note"></div>
<div class="src">Height = distance × tan(angle) + eye height. The sensitivity shows how much a one-degree reading error changes the answer. It's smallest between about 35° and 55°.</div>
<script>
function upd() {
var d = +document.getElementById('d').value, a = +document.getElementById('a').value, e = +document.getElementById('e').value;
document.getElementById('dv').textContent = d; document.getElementById('av').textContent = a; document.getElementById('ev').textContent = e;
var r = a * Math.PI / 180, top = d * Math.tan(r), H = top + e;
document.getElementById('h').textContent = H.toFixed(1);
var up = d * Math.tan((a + 1) * Math.PI / 180) - top, dn = top - d * Math.tan((a - 1) * Math.PI / 180);
document.getElementById('sens').textContent = '+' + up.toFixed(1) + ' / −' + dn.toFixed(1);
var n = a < 30 ? 'Low angle: move closer. Small angle errors are amplified less when you are nearer 45°.' :
a > 60 ? 'Steep angle: step back. The top is hard to sight this steeply and errors grow fast.' :
'Good angle. Near 45°, the height is simply your distance plus eye height.';
document.getElementById('note').textContent = n;
var W = 600, G = 225, s = Math.min(420 / d, 190 / H), px = 470, tx = px - d * s, ty = G - H * s, ey = G - e * s;
var out = '<line x1="20" x2="580" y1="' + G + '" y2="' + G + '" stroke="#6a8a4a" stroke-width="3"/>';
out += '<rect x="' + (px - 5) + '" y="' + ty + '" width="10" height="' + (G - ty) + '" fill="#6b4a2b"/>';
out += '<polygon points="' + px + ',' + (ty - 4) + ' ' + (px - 28) + ',' + (ty + (G - ty) * 0.55) + ' ' + (px + 28) + ',' + (ty + (G - ty) * 0.55) + '" fill="#2f6b3a"/>';
out += '<line x1="' + tx + '" y1="' + ey + '" x2="' + px + '" y2="' + ty + '" stroke="#f2b35b" stroke-width="2" stroke-dasharray="6 4"/>';
out += '<line x1="' + tx + '" y1="' + ey + '" x2="' + px + '" y2="' + ey + '" stroke="#a39b8a" stroke-dasharray="3 3"/>';
out += '<line x1="' + tx + '" y1="' + G + '" x2="' + tx + '" y2="' + ey + '" stroke="#ece6d8" stroke-width="3"/><circle cx="' + tx + '" cy="' + (ey - 5) + '" r="5" fill="#ece6d8"/>';
out += '<path d="M' + (tx + 40) + ',' + ey + ' A40,40 0 0 0 ' + (tx + 40 * Math.cos(r)) + ',' + (ey - 40 * Math.sin(r)) + '" fill="none" stroke="#e06c5a" stroke-width="2"/>';
out += '<text x="' + (tx + 46) + '" y="' + (ey - 6) + '" font-size="12" fill="#e06c5a">' + a + '°</text>';
out += '<text x="' + ((tx + px) / 2) + '" y="' + (G + 18) + '" text-anchor="middle" font-size="12" fill="#a39b8a">distance ' + d + '</text>';
out += '<text x="' + (px + 14) + '" y="' + ((ty + G) / 2) + '" font-size="12" fill="#f2b35b">' + H.toFixed(1) + '</text>';
document.getElementById('fig').innerHTML = out;
}
['d', 'a', 'e'].forEach(function (id) { document.getElementById(id).oninput = upd; }); upd();
</script>
<script>
(function(){
var last = 0;
function report(){
var h = document.body ? Math.ceil(document.body.getBoundingClientRect().height) : 0;
if (h && Math.abs(h - last) > 4) { last = h; try { parent.postMessage({ __orchestra: 'preview', kind: 'height', px: h }, '*'); } catch (e) {} }
}
window.addEventListener('load', report);
try { new ResizeObserver(report).observe(document.body); } catch (e) {}
setTimeout(report, 300);
})();
</script></body></html>
Method 2: The stick (no tools)
- Find a straight stick and hold it vertically at arm’s length, gripped so that the part sticking up above your fist is as long as the distance from your eye to your fist.
- Walk backward or forward until the bottom of the stick lines up with the base of the tree and the top of the stick lines up with the top.
- Your distance from the tree roughly equals its height. You’ve made a 45° triangle without measuring an angle.
Method 3: The shadow (sunny days)
- Stand a stick or pole of known height upright and measure its shadow.
- At the same moment, measure the tree’s shadow from the trunk to the shadow’s tip.
- Tree height = tree shadow × stick height ÷ stick shadow. The sun’s rays are parallel, so the two triangles have the same shape. Thales is said to have measured the Great Pyramid this way.
Where the errors come from
- Sloped ground. If you’re uphill or downhill from the base, measure the angle to the base as well and add or subtract the two parts.
- Leaning trees. Measure from the point directly under the top, not from the trunk.
- The wrong “top.” On spreading trees, a near branch often hides the real crown. Getting farther back helps.
- Small angles. Below about 30°, a one-degree error makes a large height error. Above 60°, the top is hard to sight. Aim for 40–50°.
Frequently asked questions
How do you measure a tree with a stick?
Hold a stick at arm’s length with arm-length showing, then back up until it covers the tree. Your distance equals the height.
What’s the formula with an angle?
Height = distance × tan(angle) + eye height.
How does the shadow method work?
Tree height = tree shadow × stick height ÷ stick shadow.
How accurate is it?
Within a few percent on level ground with a clean sight line to the true top.
Comments
Loading the conversation…