Floating-roof tank volume estimation from shadow geometry
External floating-roof tanks cast a shadow whose length encodes fill level. Sub-metre optical satellites convert that shadow, via sun geometry at acquisition time, into barrel-level inventory estimates without any ground access.
Sensors
- Maxar WorldView-3: 0.31 m panchromatic GSD, 1.1 m multispectral. Single-pass revisit to any point typically 1–4.5 days depending on latitude and tasking priority. The sub-30 cm pan resolution is sufficient to measure shadow lengths on tanks as small as 20 m diameter with acceptable geometric precision.
- Airbus Pléiades Neo: 0.30 m panchromatic GSD, 1.2 m multispectral. Constellation of two satellites gives roughly 1–2 day revisit at mid-latitudes. Radiometric depth and geometric stability make it well-suited to the precise edge detection that shadow measurement requires.
- Planet SkySat: 0.50 m panchromatic GSD, 0.9 m multispectral. Fleet of 21 satellites enables same-day and next-day tasking over most of the globe. Higher revisit frequency is a meaningful advantage for tracking rapidly moving inventory, though the slightly coarser resolution raises uncertainty on smaller tanks.
- Airbus SPOT 7: 1.5 m panchromatic GSD, 6 m multispectral. Adequate for large tanks (diameter above roughly 60 m) but the resolution floor makes shadow measurement on mid-sized tanks unreliable. Useful as a lower-cost archive complement when daily precision is not required.
What a floating roof gives away
An external floating-roof tank is a cylinder open to the sky, with a pontoon deck that rides directly on the product surface. As inventory falls, the roof descends. As product is pumped in, it rises. The rim of that roof, typically a steel shell 1–2 metres tall, protrudes above the product level and casts a shadow onto the inner tank wall whenever the sun is not directly overhead. The arc length and width of that shadow are a direct function of how far the roof sits below the top of the tank shell, which is itself a direct function of ullage.
The trigonometry is straightforward. Given the sun's elevation angle and azimuth at the precise moment of image acquisition, and given the known tank diameter (recoverable from the image or from public engineering databases), shadow length on the inner wall converts to roof height above the shell base. Roof height above base equals fill depth. Fill depth multiplied by tank cross-sectional area gives volume. The only external inputs required are accurate solar ephemeris data for the acquisition time and location, and a reliable tank diameter. Both are publicly available.
Resolution floors and the geometry of error
The method is elegant but not without limits, and buyers should understand them before pricing the intelligence into a trading position. Shadow measurement accuracy scales with ground sampling distance. At 0.30–0.31 m GSD (WorldView-3, Pléiades Neo), a one-pixel error in shadow-edge detection translates to roughly 0.3 m of linear uncertainty on the shadow length. For a 80 m diameter tank at a 45-degree solar elevation, that propagates to a volume uncertainty in the range of 5,000–15,000 barrels, depending on tank height. Published academic work on this method, including studies using WorldView imagery over Gulf Coast terminals, typically reports root-mean-square errors of 5–10% of tank capacity when compared against reported inventory figures.
Smaller tanks amplify the error. A 20 m diameter tank holding perhaps 30,000 barrels at full capacity will carry proportionally larger relative uncertainty from the same pixel-edge ambiguity. Very low sun elevations (below roughly 20 degrees) produce long, poorly defined shadows that spill onto the tank floor and become hard to measure cleanly. Very high sun elevations (above roughly 70 degrees) produce shadows too short to measure with confidence. The practical acquisition window for reliable shadow geometry sits between roughly 25 and 65 degrees solar elevation. Cloud cover is an absolute blocker for optical methods; there is no workaround short of waiting for a clear pass or switching to a different detection approach entirely.
From pixel to barrel: the processing chain
Automating the method at scale requires several steps that are each individually tractable but collectively demanding. First, tank detection: circular Hough transforms or trained convolutional networks identify tank locations and measure diameters across a facility. Second, shadow segmentation: the crescent-shaped shadow region inside each tank is isolated, typically using intensity thresholding combined with geometric constraints derived from the known solar angle. Third, shadow length extraction: the angular extent of the shadow arc and its maximum chord length are measured in image coordinates and converted to ground distances using the sensor's rational polynomial coefficients or orthorectification model.
Fourth, volume calculation: the trigonometric inversion yields fill height, which is multiplied by tank area. For tanks with known fixed-height shells (often recoverable from public permit filings or satellite-derived measurements of empty tanks), the absolute fill level follows directly. For tanks where shell height is uncertain, relative change between acquisitions is still meaningful and often sufficient for commodity intelligence purposes. Fifth, uncertainty quantification: a per-tank confidence interval should accompany every estimate, reflecting solar angle quality, image resolution, shadow edge clarity and any obstructions such as foam dams or wind girders that interrupt the shadow arc.
What the method cannot see
Internal floating-roof tanks have a fixed outer roof and are invisible to this technique entirely. Fixed-cone and fixed-dome tanks give no shadow signal. Tanks with secondary containment walls that shade the exterior, or tanks surrounded by tall neighbouring structures, can produce misleading shadow geometries. Heating coils and steam tracing on some heavy-crude tanks cause the product surface to sit slightly above the nominal fill level, introducing a small but real bias if not corrected.
Tanks near maximum fill or near empty both present measurement challenges. A nearly full tank has a roof very close to the shell rim; the shadow is a thin sliver that may fall below the resolution threshold. A nearly empty tank may have its roof below the level of any surrounding berm or secondary containment, again suppressing the shadow. Operators who want continuous coverage of these edge cases typically combine optical shadow analysis with SAR-based methods, though SAR volume estimation from floating-roof tanks relies on different and less direct physical signals.
Applying it at terminal and regional scale
At a single terminal, the method yields a snapshot of aggregate stored inventory with a latency equal to image acquisition plus processing time, typically same-day to 48 hours with commercial tasking. At regional scale, the same pipeline run across dozens of terminals simultaneously produces a supply-side view that is genuinely difficult to obtain any other way. Cushing, Oklahoma alone holds over 90 storage tanks visible to commercial satellites. The ARA (Amsterdam-Rotterdam-Antwerp) complex, Saldanha Bay, Fujairah and the tank farms of the Singapore Strait are all amenable to systematic monitoring.
Satellize runs shadow-geometry analytics as part of its broader energy-intelligence offering, applying the same processing chain used in published academic and government remote-sensing work. The Tonga crop-estimation programme demonstrated the organisation's capacity to run repeatable quantitative analytics on agricultural land; the tank-volume pipeline applies the same rigour to a different physical signal. Clients who want to understand the methodology before commissioning a trial run can read the detailed treatment in Satellize's Overhead column, where the solar geometry derivation is worked through with a real acquisition example.
Revisit, latency and what a practical monitoring programme looks like
For commodity trading applications, weekly snapshots of a defined basket of terminals are often sufficient to track directional inventory trends. For storage arbitrage or physical trading desks that need to monitor specific tanks ahead of a delivery window, daily tasking with next-day delivery is achievable using SkySat or Pléiades Neo. Archive depth on WorldView-3 and Pléiades reaches back to 2014 and 2021 respectively, enabling retrospective analysis of historical inventory cycles against price data.
A practical programme typically starts with a facility audit: one clear-sky pass over each terminal of interest to establish tank diameters, shell heights where measurable, and baseline fill levels. Subsequent tasking then tracks change against that baseline. The economics favour focusing tasking on the 20–30 terminals that account for the majority of price-relevant storage in a given commodity and geography, rather than attempting global coverage at high frequency, which would be expensive and analytically noisy.
Typical figures
| Typical spatial resolution (panchromatic) | 0.30–0.50 m GSD (Pléiades Neo, WorldView-3, SkySat); 1.5 m (SPOT 7) |
| Revisit frequency | 1–2 days (Pléiades Neo); 1–4.5 days (WorldView-3); same-day to next-day (SkySat fleet) |
| Processing latency | Same-day to 48 hours from tasked acquisition to volume estimate |
| Spectral bands used | Panchromatic (shadow geometry); multispectral optional for roof-type classification |
| Minimum tank diameter for reliable measurement | Approximately 20 m at 0.30 m GSD; approximately 40 m at 0.50 m GSD |
| Reported volume accuracy (published studies) | 5–10% RMSE of tank capacity at 0.30–0.50 m GSD under good solar geometry |
| Usable solar elevation window | Approximately 25–65 degrees; outside this range shadow length becomes unreliable |
| Archive depth | WorldView-3 from 2014; Pléiades Neo from 2021; SkySat from approximately 2016 |
| Cloud cover tolerance | Zero: optical shadow method fails under cloud; clear-sky acquisition required |
| Deliverable formats | Per-tank volume estimates (CSV/JSON); GIS layers (GeoJSON, GeoTIFF); time-series feed; PDF report |
Analytics Satellize can run
| Per-tank fill-level estimate | Shadow-length trigonometry from solar ephemeris and measured shadow arc in orthorectified imagery | Structured data file (CSV or JSON) with tank ID, estimated fill volume in barrels, confidence interval and acquisition metadata |
| Terminal aggregate inventory snapshot | Summation of per-tank estimates across a defined facility, with uncertainty propagation | Single-page PDF report or dashboard entry showing total stored volume and change versus prior snapshot |
| Multi-terminal regional inventory index | Repeated shadow-geometry analysis across a defined basket of terminals, normalised to a common baseline date | Weekly or daily time-series feed in JSON or CSV, suitable for ingestion into trading analytics platforms |
| Tank diameter and shell-height catalogue | Circular Hough transform detection on archive imagery combined with geometric measurement of empty-tank shadows | GeoJSON facility catalogue with tank centroids, diameters and estimated shell heights, updated on change detection |
| Retrospective inventory reconstruction | Archive tasking and batch shadow-geometry processing over historical clear-sky imagery | Multi-year time series of estimated fill levels per tank, delivered as CSV with associated imagery chips |
| Change alert on significant fill movement | Threshold trigger on inter-acquisition volume delta exceeding a client-defined percentage of tank capacity | Automated alert (email or API push) with tank location, estimated volume change and annotated image thumbnail |
Who does the work
We can get this done for you. Satellize runs its own analyst desk and a strong science team. You do not buy a data feed and work out what it means; our people source the imagery, run the analysis described on this page, and hand you the answer with its confidence limits stated. Discuss this requirement.