Estimating stockpile height from shadow length in satellite imagery

A large industrial crane with a grapple attachment handling scrap metal inside a covered warehouse bay.

A permit file usually caps stockpile height in feet, or volume in cubic yards, long before it says anything about what the material actually is. When you can't get out to the yard that week, a shadow falling off the back of a pile in a satellite image is one of the only remote clues you have to work with.

The math behind it

The trick is basic trigonometry. If you know the sun's elevation angle at the moment the image was captured, and you can measure the shadow's length on the ground, pile height comes out as:

height = shadow length × tan(sun elevation angle)

Sun elevation angle ships with most satellite image metadata, it's not something you eyeball. Shadow length you measure in pixels on the image, then convert to ground distance using the image's ground sample distance. At 0.5 m GSD, a 40-pixel shadow is a 20 m shadow. Run that through the formula with a 30-degree sun angle and you get roughly 11.5 m of pile height.

It works the same way a sundial works, and it's the same principle surveyors used to estimate building heights from aerial photos before anyone had a clean way to measure vertically from above.

Where the estimate goes wrong

A few things throw this off fast, and most of them show up in real scrap yards more often than in a clean geometry problem:

The shadow has to land on flat ground. If it falls across a berm, a drainage swale, or another pile, the length you're measuring isn't the height you think it is. Yards are rarely flat enough for this to be a non-issue.

Sun angle matters more than people expect. Near solar noon the shadow is short and a one-pixel measurement error swings your height estimate by a meter or more. Early morning or late afternoon passes give you a longer shadow and a steadier number, but go too oblique and the shadow runs into the next row of material.

Pile shape isn't in the formula at all. A conical pile of baled aluminum throws a clean shadow from its peak, so the geometry holds up well there. A windrow of shredded material or an irregular ridge of C&D debris has no single peak; the shadow comes off whichever point along the ridge happens to be tallest at that sun angle, which makes the result a spot height rather than anything close to an average across the pile.

Shadows from adjacent piles overlap constantly on a working yard. Sorting out which shadow belongs to which pile by eye, pass after pass, is exactly the kind of thing that eats an afternoon without producing a number you'd want to put in a compliance file.

Height isn't what the permit actually asks for

Most facility licenses cap stored volume or tonnage, not a single height figure. Getting from a shadow-derived height to a volume estimate means also measuring the pile's footprint and assuming a shape, cone, frustum, or trapezoidal prism, and that assumption is doing almost as much work as the shadow math.

This is the chain an inspector has to run by hand every time: pull sun elevation from the image metadata, measure the shadow in pixels, convert to ground units, apply the formula, then pair that height with a footprint measurement and a shape guess to get a volume. Each step adds its own error, and errors in a chain compound.

Recycling Facility Map skips the chain. It reads very-high-resolution imagery monthly and produces a count and volume estimate for material stored at the site, the kind of number you'd otherwise be reconstructing from shadow geometry and a shape assumption. For a quick look at how a facility's storage looks against its permitted volume without sending someone through the gate, that's the starting point.

If a stockpile number in a permit file needs checking this month and nobody can get to the yard, that monthly read is worth pulling up before the shadows are.

Start a pilot

← Back to the blog