OlmoEarth v1.2 Energy Multi-Task V3
A United States-focused, multi-task dense prediction model fine-tuned from allenai/OlmoEarth-v1_2-Base. One Sentinel-2 L2A encoder pass produces:
- power-infrastructure presence logits;
- broad power-plant fuel logits;
- five solar/wind candidate-area masks;
- renewable capacity factor, LCOE, capacity density, and generation density outputs;
- eight data-center energy-source likelihood channels;
- an auxiliary data-center geometry-type output.
Try the map application: https://sarkarghya--olmoearth-energy-grid-demo-web.modal.run
Important interpretation
This is an exploratory research checkpoint, not an operational energy audit.
- Data-center channels are raw, uncalibrated model likelihoods from Earth-observation context. They are not measured procurement, generation, or electricity-consumption percentages.
- Data-center channels were supervised inside known data-center geometry. Aggregate them only inside a user-provided/known data-center ROI; arbitrary background pixels are unconstrained.
dc_geometry_typehas no background class and is not a data-center detector.- Power fuel should be reported only after a power-presence object passes a validated detection threshold. Do not report a grid-wide fuel average.
- Frozen holdout calibration and task-specific threshold selection have not yet been completed.
- Training data and fine-tuning are U.S.-focused; performance elsewhere is unverified.
Checkpoint
| Item | Value |
|---|---|
| Selected run | olmoearth-v12-energy-multitask-h100x8-v3-continuation-20260831 |
| Step | 100 |
Selected best.pt SHA-256 | f4941377981ea1ac97d059d693837c4d7297926491d817ecab5f52ca959c2b44 |
Completion latest.pt SHA-256 | 2fe655d0f0366244c434ee9c8e8a6d8c307a4eee30669bef94451ebcb60a3930 |
| Base revision | 581aa9baaa7aed4348c0903617eb92ee9f89e2ec |
| Patch size | 4 |
| Input grid | 128 × 128 pixels at 10 m |
The selected and completion files differ at the serialized-checkpoint level, but publication verifies every model-state tensor is identical before conversion to SafeTensors.
V3 improved the deterministic ephemeral-validation composite loss by 4.4% over V2 and improved all three task losses:
| Validation family | Loss (lower is better) |
|---|---|
| Power | 1.1537 |
| Renewable | 0.7230 |
| Data center | 0.9545 |
| Composite | 2.8312 |
These are checkpoint-selection losses, not calibrated deployment metrics. No frozen holdout IoU, object F1, AUPRC, Brier score, or reliability claim is made here.
Installation
Python 3.11 and a CUDA GPU are recommended.
python -m venv .venv
source .venv/bin/activate
pip install -r https://huggingface.co/sarkarghya/olmoearth-v1.2-energy-multitask-v3/raw/main/requirements.txt
The fine-tuned weights are stored as model.safetensors. Loading also downloads the exact pinned OlmoEarth base snapshot because its config is required to instantiate the architecture; the fine-tuned state then replaces all model parameters.
Input contract
Provide harmonized Sentinel-2 L2A DN values:
dtype: uint16
shape per sample: [12 bands, 1 time, 128 height, 128 width]
resolution: 10 m
band order: B02, B03, B04, B08, B05, B06, B07, B8A, B11, B12, B01, B09
Supply the real acquisition timestamp. The model applies OlmoEarth normalization internally. Do not divide harmonized DN by 10,000 before calling the model.
For Sentinel processing baselines with BOA_ADD_OFFSET, harmonize each source band from product metadata:
reflectance = (source_DN + BOA_ADD_OFFSET) / BOA_QUANTIFICATION_VALUE
harmonized_DN = round(clip(reflectance, 0, 6.5535) * 10000)
Resample 20 m and 60 m bands onto the exact 10 m grid. Use nearest-neighbor for SCL and bilinear for reflectance. Pixels with SCL classes 0, 1, 3, 8, 9, 10, 11 should be treated as invalid for aggregation.
Python loading example
import sys
from huggingface_hub import snapshot_download
repo_id = "sarkarghya/olmoearth-v1.2-energy-multitask-v3"
repo_dir = snapshot_download(repo_id)
sys.path.insert(0, repo_dir)
import numpy as np
import torch
from modeling_energy_multitask import load_pretrained
model = load_pretrained(repo_id, device="cuda")
chip = np.load("sentinel2_l2a.npy", allow_pickle=False) # uint16 [12, 1, 128, 128]
batch = {
"sentinel2_l2a": torch.from_numpy(chip[None]).cuda(),
"acquired_at_utc": ["2026-08-29T18:25:03Z"],
}
# The OlmoEarth wrapper configures its internal autocast dtype.
with torch.inference_mode():
logits = model.predict_all(batch)
power_probability = torch.sigmoid(logits["power_presence"])
power_fuel_probability = torch.softmax(logits["power_fuel"], dim=1)
renewable_probability = torch.sigmoid(logits["renewable_masks"])
datacenter_source_likelihood = torch.sigmoid(logits["dc_energy"])
predict_all() runs the encoder once and returns raw dense heads:
| Output | Shape | Activation/meaning |
|---|---|---|
power_presence | [B,1,128,128] | sigmoid |
power_fuel | [B,8,128,128] | softmax over class dimension |
renewable_masks | [B,5,128,128] | independent sigmoids |
renewable_regression | [B,4,128,128] | robust-scaled regression |
dc_energy | [B,8,128,128] | independent sigmoids; ROI-only aggregation |
dc_geometry_type | [B,3,128,128] | positive-geometry auxiliary classes |
A command-line example is included:
python example_inference.py sentinel2_l2a.npy \
--timestamp 2026-08-29T18:25:03Z \
--roi-mask known_datacenter_roi.npy
If no ROI mask is supplied, the example deliberately does not produce a data-center source aggregate.
Output orders
power_fuel = ["background", "solar", "wind", "gas", "coal", "hydro", "nuclear", "other"]
renewable_masks = ["solar_base", "solar_constrained", "wind_base", "wind_constrained", "offshore_wind_base"]
renewable_regression = ["capacity_factor", "lcoe", "capacity_density", "generation_density"]
datacenter_sources = ["solar", "wind", "hydro", "gas", "coal", "nuclear", "grid", "other"]
datacenter_geometry = ["building", "campus", "point"]
Data-center source outputs are multi-label, so they must not automatically be normalized to sum to 100%. If a separate normalized display is desired, call it an “expected source-likelihood profile,” not an energy mix.
Renewable regression predictions use the median/IQR values in checkpoint_metadata.json. Reverse the robust scaling with value = prediction * iqr + median; then apply expm1 to capacity-density and generation-density channels. Clamp capacity factor to [0,1] and LCOE to an application-appropriate non-negative range.
Training data
| Dataset | Pinned revision | Accepted samples |
|---|---|---|
power-plant-olmoearth-segmentation | 1f992f24151342392044fe5b46eb865ab42586a9 | 12,453 |
im3-datacenter-olmoearth-segmentation | eaf7739276126b6e9e5eb6e190d8c8cd93e69dcc | 1,417 |
wind-and-solar-candidate-olmoearth-segmentation | 3f3bbb8358203bfae1a0ce46443c4bc2bc4abb66 | 12,649 |
The power release already includes purpose-built hard-negative windows. Future negative work should be driven by false-positive error analysis across its existing negative strata, not by blindly adding more negatives.
The published datasets have split="all"; training used a deterministic ephemeral site-grouped validation split. This is why a new frozen site-grouped holdout remains necessary before stronger generalization claims.
Architecture and training summary
- Shared pinned OlmoEarth v1.2 Base encoder.
- Independent power, renewable, and data-center upsampling decoders.
- Power: focal BCE + soft Dice for presence; class-weighted fuel cross entropy inside valid plant pixels.
- Renewables: independent focal BCE + Dice masks and robust-scaled Huber regression.
- Data centers: per-site/channel weighted multi-label BCE inside known geometry; geometry-type auxiliary cross entropy.
- V2 introduced equal per-site data-center weighting, lower DC learning rate, dropout, reduced DC sampling, and broader validation.
- V3 continued V2 at low learning rate; step 100 was selected.
Limitations and responsible use
Satellite context cannot establish contractual electricity procurement or real-time fuel consumption. Predictions may be wrong because of cloud, season, construction date, geographic shift, label uncertainty, spatial resolution, or visually similar industrial sites. Do not use this model alone for regulatory, financial, safety, siting, grid-reliability, or environmental-compliance decisions. Confirm important conclusions with authoritative facility and utility records.
The source model is licensed under the OlmoEarth Artifact License and is intended for use according to Ai2's Responsible Use Guidelines. This derivative includes the source weights and remains subject to those terms; review the base model repository before use. Dataset licenses and attribution requirements remain independently applicable.