Load profile explorer
The 39,424-row hourly load profile that drives every BTM economic model on this site. It is not real metered data — Johor state-level electricity consumption is not publicly available — but a calibrated synthesis built from public sources.
Where the synthesised data comes from
Section titled “Where the synthesised data comes from”Every synthesised hourly value traces back to 4 public datasets + 1 static reference:
flowchart LR
subgraph raw ["Public raw data (bronze)"]
A["NASA POWER<br/>9-pt grid × 5 yr hourly<br/>394,632 rows<br/>T2M, GHI, RH"]
B["Senai METAR (WMKJ)<br/>5 yr hourly observed<br/>45,412 rows<br/>tmpc, dwpc, sknt"]
C["DOSM peninsular monthly<br/>consumption + GDP-state + population<br/>27,908 rows total"]
D["TNB ETOU/ICPT<br/>static tariff YAML<br/>reference/tariffs/"]
end
subgraph synth ["Calibrated synthesis"]
E["weather cleaning + tz align<br/>silver.weather_hourly<br/>43,848 rows"]
F["hourly basis fn<br/>S_t = (α_0 + α_1·CDH_t) × w_etou × w_dow"]
G["monthly normalisation<br/>Σ load_mw = DOSM peninsular × Johor share<br/>(algebraic, residual 7.9e-15)"]
end
subgraph out ["Output"]
H["gold.load_hourly_state<br/>39,424 rows<br/>shown on this page"]
end
A --> E
B --> E
E --> F
D --> F
C --> G
F --> G
G --> H
Role of each source
Section titled “Role of each source”| Source | Provides | Used in synthesis at |
|---|---|---|
| NASA POWER | 5y hourly temperature / GHI / RH / wind (9-point grid) | Computes t_canonical, CDH (cooling-degree-hours) — drives diurnal + seasonal shape |
| Senai METAR (WMKJ) | 5y hourly observed airport temperature | Cross-validates POWER (5y bias 0.10 °C); removes model T offset |
| DOSM peninsular monthly | Peninsular total electricity consumption (GWh/month) | Monthly integration target — forces Σ load_mw = peninsular × Johor share |
| DOSM GDP-state-real | Per-state quarterly GDP share | Johor share modelling (11.5–11.7%) |
| TNB ETOU schedule | Weekday 14–22 peak window definition | ETOU weight term w_etou in the hourly basis function |
The synthesis math is documented in Load synthesis methodology;
all raw-source ingest manifests (with source URLs + timestamps) are at Sources & manifests;
calibration residuals (monthly reconciliation 7.9e-15 RM, ETOU peak share match) are in load_synth_diagnostics.json.
Choose year/month to load that period. ~720 rows/month; chart shows load_mw series.
| MYT | load_mw | t_canonical (°C) | CDH | ETOU peak |
|---|
What you can see in this dataset
Section titled “What you can see in this dataset”- Diurnal shape — load_mw peaks 14:00–18:00 (industrial CDH-driven cooling), troughs 04:00–06:00.
- ETOU peak-period weighting — the
is_etou_peakcolumn flags 14:00–22:00 weekdays, the TNB E2/E3 high-tariff window. Choose a month, sort table by peak; you’ll see weekend gaps. - Cooling-CDH coupling —
t_canonical(the canonical Senai temperature) andcdh(cooling-degree-hours) move together withload_mw. This is why the BTM model uses a temperature-dependent PUE. - Monthly reconciliation — sum(load_mw) for any month equals DOSM peninsular × Johor share (modelled 11.5–11.7%). Algebraic by construction.
For raw bytes, see Downloads.