Refinery crude distillation unit feed-rate estimation from optical activity proxies
Crude throughput at atmospheric distillation units leaves visible signatures: vent steam plumes, tank-roof positions, vehicle density. Combining Planet SkySat sub-metre passes with Sentinel-2 time series turns those proxies into a relative feed-rate index, without a single thermal band.
Sensors
- Planet Labs SkySat: 0.5 m native GSD pan-sharpened to 0.5 m colour; tasked revisit achievable same-day to 24-hour on priority sites. Resolves individual tank roof positions, vehicle counts, and column vent geometry clearly enough to detect roof displacement of roughly 1 m or more.
- Sentinel-2 MSI: 10 m resolution in visible and near-infrared bands (B2–B4, B8); 5-day revisit at mid-latitudes with both satellites. Insufficient to resolve individual vehicles but sufficient to track plume presence/absence, gross roof-position change, and yard activity density across a multi-week time series. Free and open.
- Airbus Pléiades Neo: 0.3 m native resolution, tasked. Sharpest commercially available optical data; useful for establishing a high-confidence baseline geometry of tank roof positions and column infrastructure before a monitoring campaign begins.
- Planet PlanetScope: 3 m resolution, near-daily revisit globally. Sits between SkySat and Sentinel-2 in the resolution stack; useful for daily plume-presence flags and yard-activity scoring when SkySat tasking budget is constrained.
Why a distillation unit cannot go quiet without leaving traces
An atmospheric crude distillation unit (CDU) is a continuous thermal separation process. When crude feed increases, more heat is applied, more vapour rises through the column, and the overhead condenser and vent systems handle greater loads. That activity has optical consequences: column vent steam becomes denser and more persistent, the floating-roof tanks feeding the unit draw down faster (exposing more of the pontoon rim and altering the shadow geometry), and truck movements between the tank farm and the unit boundary increase.
None of these signals gives barrels per day directly. Together, they give something more tractable for commodity analysts: a relative activity index that moves with throughput and flags step changes. The method works because refineries are constrained systems. A CDU running at 60 percent capacity looks meaningfully different from one at 95 percent, even from orbit.
What a floating roof gives away about the tank below it
Floating-roof crude tanks use a pontoon that rises and falls with the liquid level, eliminating the vapour gap that causes evaporative losses. The roof casts a shadow on the inner tank wall. The shadow's vertical extent is a function of sun elevation, tank diameter, and roof height above the base. Since tank diameter is fixed and sun elevation is known precisely for any acquisition time, the shadow height is a direct proxy for liquid level.
At SkySat's 0.5 m resolution, shadow boundaries on tanks with diameters above roughly 40 m are measurable to within a metre or two of roof height, translating to a liquid-level precision of the same order. Sentinel-2 at 10 m cannot resolve the shadow on all but the very largest tanks, so the shadow-geometry method is reserved for SkySat or Pléiades Neo acquisitions. Sentinel-2 contributes the temporal density that expensive tasked imagery cannot match alone.
A key ambiguity: roof position reflects net inventory change, not throughput rate. A tank can be drawing down because the CDU is running hard, or because crude is being transferred to another tank on site. Cross-referencing multiple tanks feeding the same unit, and correlating with plume and traffic signals, reduces but does not eliminate this ambiguity.
Plume geometry as a throughput signal
Column overhead vents and atmospheric relief points emit water vapour and light hydrocarbon aerosols that are visible in natural-colour imagery under suitable lighting. Plume length and opacity vary with atmospheric conditions, making raw plume size an unreliable absolute measure. What is more stable is plume presence or absence, and the relative change in plume density across acquisitions taken under similar meteorological conditions.
The practical approach is to build a plume-presence score per acquisition, normalised against a wind-speed estimate derived from the plume's downwind drift angle (measurable in sub-metre imagery when the plume is long enough). This is not a published standard method; it is an adaptation of techniques used in industrial emissions monitoring from aircraft and satellite. The honest limit is that cloud cover, which affects roughly 60–70 percent of Sentinel-2 passes over many refinery locations, can gap the time series significantly. SkySat tasking can be directed at cloud-clear windows, but at cost.
Vehicle traffic as a corroborating signal
Crude delivery by road tanker is common at smaller inland refineries and at facilities that blend multiple crude grades. At 0.5 m resolution, individual trucks are resolved. Counting vehicles queued at tank farm gates, or parked in loading bays, provides a crude-intake proxy that is independent of the tank and plume signals.
For pipeline-fed refineries, road traffic is less informative for crude intake but remains useful for product offtake, which correlates inversely with tank inventory. The traffic signal is also the most weather-resilient of the three proxies: vehicles are visible in clear optical imagery regardless of process conditions. SkySat's tasking cadence, which Planet publishes as capable of same-day revisit on priority targets, is the practical limit here. Daily vehicle counts require daily tasking, which is expensive. A practical compromise is two to three tasked passes per week, with daily PlanetScope passes filling the gaps at lower resolution.
Building the feed-rate index and its honest limits
The three proxy streams, roof-position change rate, plume-presence score, and vehicle count, are combined into a composite index using a weighted sum. Weights are calibrated against a reference period when the refinery's operating state is independently known, typically from public quarterly filings, port import records, or JODI (Joint Organisations Data Initiative) national data. The index is dimensionless and relative: it expresses throughput as a fraction of the observed maximum, not as a volumetric flow.
This is the method's principal limitation, and it is worth stating plainly. The index cannot distinguish a planned turnaround from an unplanned upset, a crude-grade switch that changes tank draw patterns, or a deliberate inventory build ahead of a price move. It also cannot see inside covered or fixed-roof tanks, which some refineries use for lighter crude grades. What it can do is detect sustained changes of roughly 20 percent or more in the composite score with reasonable confidence, and flag them for further investigation. Satellize applies this approach as part of broader commodity-intelligence programmes; its crop-estimation work in the Kingdom of Tonga uses a structurally similar multi-proxy index methodology, adapted to a different physical domain.
Analysts using this output should treat it as a screening tool. A significant index drop warrants checking shipping AIS data for crude tanker arrivals, reviewing public maintenance announcements, and cross-referencing with any available SO₂ or NOₓ column data from TROPOMI. The optical index is the first filter, not the final word.
Archive depth and what history buys you
Sentinel-2 archive runs from mid-2015, giving nearly a decade of 10 m optical coverage at most refinery sites globally. Planet's SkySat archive is shallower and site-dependent, but PlanetScope data is available from 2016 onwards for many locations. Pléiades archive depth depends on historical tasking, which is patchy for most industrial sites.
The archive matters because seasonality affects all three proxies. Steam plumes are more visible in cold, humid air. Vehicle activity follows local working patterns. Tank inventories swing with seasonal crude demand cycles. A meaningful baseline requires at least twelve months of historical data to separate genuine throughput change from seasonal noise. For a refinery that has been in the Sentinel-2 footprint since 2015, that baseline is available at no additional acquisition cost.
Typical figures
| Primary optical resolution (SkySat) | 0.5 m pan-sharpened colour |
| Time-series resolution (Sentinel-2) | 10 m visible and NIR bands |
| Revisit cadence (Sentinel-2) | 5 days at mid-latitudes; cloud-affected passes reduce usable frequency |
| Tasked revisit (SkySat priority) | Same-day to 24-hour; cost-constrained in practice to 2–4 passes per week |
| Minimum detectable roof displacement | Approximately 1–2 m on tanks wider than 40 m diameter at 0.5 m imagery |
| Spectral bands used | Visible RGB (all sensors); NIR B8 (Sentinel-2) for plume contrast enhancement |
| Archive depth | Sentinel-2 from 2015; PlanetScope from 2016; SkySat site-dependent |
| Latency from acquisition to index update | Typically 12–48 hours depending on processing pipeline and cloud screening |
| Output format | Relative index (dimensionless, 0–100 scale); time-series CSV and GIS polygon overlays |
| Geographic coverage | Any refinery site with clear-sky optical access; global in principle, cloud-limited in tropics |
Analytics Satellize can run
| Weekly feed-rate index score per CDU | Multi-proxy composite scoring: shadow-geometry roof displacement rate, plume-presence binary flag, vehicle count; weighted sum calibrated to reference period | Weekly time-series report with index chart, annotated acquisition thumbnails, and confidence flag per data point |
| Floating-roof liquid-level estimate | Shadow-geometry photogrammetry on SkySat or Pléiades Neo imagery; sun-angle correction applied per acquisition using USGS solar geometry tables | Per-tank roof-height estimate with uncertainty band; GIS polygon layer showing roof position |
| Plume-presence time series | Manual and semi-automated classification of column vent plumes in natural-colour imagery; plume drift angle used to estimate relative wind speed as normalisation factor | Binary plume-presence log per acquisition; scored 0–2 for absent/marginal/clear; exported as CSV and integrated into composite index |
| Vehicle count and gate-activity score | Object detection on 0.5 m SkySat imagery using published convolutional approaches for vehicle identification in industrial settings; manual QA on ambiguous scenes | Per-pass vehicle count at defined gate and bay polygons; weekly summary table |
| Step-change alert | Statistical process control on rolling 30-day composite index; alert triggered when index moves more than 1.5 standard deviations from trailing mean | Email or API alert with annotated imagery excerpt and index chart showing deviation |
| Seasonal baseline and peer-site benchmarking | Sentinel-2 archive analysis from 2015 to present; year-on-year comparison of plume frequency and gross roof-position change across multiple tanks at one site or across comparable sites | Annual baseline report; comparative index chart across selected refinery set |
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.