HAWKEYE Intelligence Platform

Nightlights Intelligence

Real‑time economic nowcasting using satellite nightlights with 0.88 GDP correlation

Executive Summary

Economic Intelligence

HAWKEYE Nightlights Intelligence uses VIIRS DNB monthly composites as a real‑time proxy for economic activity, achieving a 0.88 correlation with historical GDP and showing +10.4% year‑over‑year radiance growth in Dhaka (2024: 23.75 vs 2023: 21.53).

The pipeline standardizes and denoises nightlight radiance, aligns it with macroeconomic series, and nowcasts GDP in near real‑time to eliminate quarterly lag in official releases.

0.88
GDP Correlation
+10.4%
YoY Growth
23.75
2024 Radiance
21.53
2023 Radiance
Project Scope

Operational Scale

Build a robust, operational GDP nowcasting signal from satellite nightlights that updates monthly, scales city‑ and district‑level, and integrates into a multi‑domain Urban Intelligence stack for planning and policy evaluation.

Primary geographical focus is Dhaka, Bangladesh (2022–2025), with generalization to other cities supported by the same VIIRS DNB compositing and normalization routines.

Intention & Objectives

Mission Critical

  • Convert VIIRS nightlight radiance into a calibrated, interpretable, and statistically validated economic indicator usable for nowcasting GDP and tracking urban economic “metabolism.”
  • Fuse the indicator with health and environmental signals in a standardized feature space to support multi‑objective urban planning, resource allocation, and intervention timing.
Data Sources

Multi-Modal Fusion

VIIRS Nighttime Lights

NOAA DNB monthly composites (avg_rad in nW/cm²/sr) at ~500 m resolution for spatially aggregated economic activity.

GDP & Macro Indicators

Annual GDP, inflation, and trade series for correlation, scaling, and policy‑aware interpretation.

Auxiliary Context

Weather and demographics for confounder checks and partial correlation tests during validation.

Target Variables

Output Specifications

  • Nightlight radiance metrics: Monthly mean/median/trimmed mean and high‑quantile (p90/p95) radiance aggregated over AOIs.
  • Economic targets: Annual GDP levels and growth, with derived monthly nowcasts and uncertainty bounds based on nightlights dynamics.
Methodology

Pipeline Architecture

Ingestion and gridding: Load monthly VIIRS composites, clip to AOI, mask stray light/cloud artifacts, and compute robust aggregate statistics.

Normalization and denoising: Z‑score or min‑max scaling across time per AOI, with trimmed means to suppress outliers and lunar contamination residuals.

Alignment and modeling: Align monthly nightlights with GDP via log‑log regression and elastic regularization; validate stability and compute nowcasts with uncertainty.

Key Processing Rules

Data Quality Controls

Key processing rules guiding the pipeline:

Spatial Aggregation

Prefer trimmed mean to reduce flare outliers:

$$ \text{Trimmed Mean} = \frac{1}{n-2k}\sum_{i=k+1}^{n-k} x_{(i)} $$

Temporal Smoothing

$$ \text{MA}_3(t) = \frac{1}{3}\sum_{i=t-1}^{t+1} \text{NL}_i $$

3-month centered average to reduce seasonal noise

Confounder Checks

Partial correlation controlling for weather:

$$ r_{xy \cdot z} = \frac{r_{xy} - r_{xz}r_{yz}}{\sqrt{(1-r_{xz}^2)(1-r_{yz}^2)}} $$

Modeling Framework

Log-Log Regression

Correlation and regression: Establish baseline correlation $$ r=0.88 $$ between aggregated nightlights and GDP, then fit a log‑log model $$ \log(\text{GDP}) = \beta_0 + \beta_1\log(\text{NL}) + \epsilon $$.

Nowcasting

  • Monthly nightlights changes
  • Continuous GDP growth estimates
  • Bootstrap confidence intervals

Multi‑Signal Fusion

Integrate nightlights with other urban indicators in gradient‑boosted regressors for sensitivity tests.

Core Mathematics

Key Formulas

Year‑Over‑Year Growth

$$ \text{YoY} = \frac{\text{NL}_{t} - \text{NL}_{t-12}}{\text{NL}_{t-12}} \times 100 $$

Yielding +10.4% radiance growth in 2024

Pearson Correlation

$$ r = \frac{\sum (x-\bar{x})(y-\bar{y})}{\sqrt{\sum (x-\bar{x})^2}\sqrt{\sum (y-\bar{y})^2}} = 0.88 $$

For nightlights vs GDP

Log‑Log Regression

$$ \log(\text{GDP}) = \beta_{0} + \beta_{1}\log(\text{NL}) + \epsilon $$

With $$\beta_1$$ interpreted as elasticity

Implementation

Code Snippets

VIIRS Preprocessing

# viirs_monthly is xarray/raster stack; aoi is polygon
arr = viirs_monthly.sel(time=slice("2022-01","2025-12"))
clipped = arr.rio.clip([aoi], all_touched=True, drop=True)
nl = clipped.where(clipped>0).where(clipped<200)  # basic mask
monthly_trimmed = nl.reduce(np.nanmean, dim=("x","y"))
# 10% trim example (vectorized):
def trimmed_mean(v, p=0.1):
    w = np.sort(v[~np.isnan(v)])
    k = int(len(w)*p)
    return w[k:len(w)-k].mean() if len(w)>2*k else np.nan

Correlation & Regression

import numpy as np
from sklearn.linear_model import LinearRegression

gdp_log = np.log(gdp.values)
nl_log  = np.log(monthly_trimmed.resample(time="A").mean().values)  # annualized
r = np.corrcoef(nl_log, gdp_log)[0,1]  # ~0.88

X = nl_log.reshape(-1,1); y = gdp_log
model = LinearRegression().fit(X, y)
beta1 = model.coef_[0]  # elasticity

Monthly Nowcasting

# Map monthly NL changes to GDP growth nowcasts via rolling regression
window = 36
nowcasts = []
for t in range(window, len(nl_series)):
    Xw = np.log(nl_series[t-window:t]).reshape(-1,1)
    yw = gdp_growth_annualized[t-window:t]
    m = LinearRegression().fit(Xw, yw)
    y_hat = m.predict(np.log(nl_series[t]).reshape(1,-1))[0]
    nowcasts.append(y_hat)
Performance Metrics

Results Obtained

Economic Proxy Strength

Nightlights–GDP correlation $$ r=0.88 $$ confirms radiance as a strong proxy for economic activity in Dhaka.

Growth Signal

Nightlight radiance increased +10.4% YoY, with 2024 aggregate 23.75 vs 21.53 in 2023, indicating broad‑based activity gains.

Data Quality

1,105 temporal records across 36 features with only 0.16% missing data in the fused urban dataset, enabling robust validation.

Growth Rate

Year-over-year growth of +10.4% indicates strong economic momentum in Dhaka.

Strategic Impact

Decision Relevance

  • Near‑real‑time nowcasting: Monthly updates provide a leading view on economic momentum, useful for budget adjustments, stimulus timing, and infrastructure phasing.
  • Spatial planning: Radiance gradients highlight growth corridors and under‑served zones for targeting utilities, transit, and safety interventions.
  • Policy evaluation: Pre/post interventions can be assessed via radiance deltas, offering a rapid, independent check on economic impact.
Technical Foundation

What Makes It Work

Robust Aggregation

Trimmed means and masking reduce flare and outlier contamination, stabilizing the relationship against artifact noise.

Elastic Scaling

Log‑log specification captures multiplicative growth and scale‑free relationships between economic output and radiance.

Multi‑Domain Controls

Incorporating weather and demographics during validation reduces spurious correlations and improves transferability.

Deployment

Operationalization & Outputs

Deliverables

  • Monthly AOI‑level time series (CSV/Parquet)
  • Annualized radiance indices
  • GDP nowcasts with confidence bands
  • District‑level choropleths

Integration

Batch job updates nightlights indices monthly; nowcasts are published to the Urban Intelligence dashboard API alongside health and climate layers.

Constraints

Limitations & Risks

Non‑Economic Radiance

Lighting policy changes, outages, or festive spikes can distort signals; smoothing and anomaly flags mitigate but do not eliminate risk.

Spatial Bias

Affluent areas may be over‑lit while informal economies are under‑lit, requiring supplemental indicators for equity‑aware analysis.

Transferability

Elasticities may differ across cities; rolling recalibration is required when applying models to new geographies.

Roadmap

Future Scope

Sectoral Disaggregation

Combine nightlights with land‑use to attribute growth to industrial, commercial, or residential segments.

Real‑Time Feeds

Ingest higher‑frequency proxies (mobile mobility, POS data) to refine intra‑month nowcasts and shock detection.

Policy Sandboxes

Run counterfactuals (e.g., tariff or curfew changes) and evaluate expected radiance and GDP impacts via structural models.