Zagreb Land Surface Temperature Report

17 districts · HLS L30 + ERA5-Land · 2025-07-01 – 2025-07-31

City of Zagreb only — 17 official gradske četvrti (MO sum): 767,131

HLSL30.v2.0 ERA5-Land reanalysis IBM Granite Geospatial LST 30 m resolution SmartUp - Social Innovation Lab

UHI heat overlay

Hotspot peak: 41.0°C

Cool areas from 19.9°C

Hot nights

Nights that stay warm matter for sleep and urban heat recovery. Metrics use Europe/Zagreb local time. Tropical nights = days with district daily minimum 2 m air ≥ 20 °C (~0.1° (~9 km)). Night-window air = ERA5 mean 22:00–06:00. ECOSTRESS = land-surface snapshot (Jul 2025).

Reference stations (in situ air, not ERA5)

Meteostat 2 m air during 22:00–06:00 Europe/Zagreb (Jun–Aug mean, Meteostat in situ). These are closer to what people feel at night than ERA5 monthly means of daily minima (~17 °C), which often reflect pre-dawn lows on a coarse grid.

  • Zagreb-Gric: 20.5 °C mean night air
  • Zagreb-Maksimir: 19.4 °C mean night air
  • Zagreb-Pleso: 17.7 °C mean night air

Air frequency ≠ surface warmth

Sesvete had the most tropical nights (22 days, 23% of summer) — days when the daily minimum 2 m air stayed at or above the tropical-night threshold.

Donji grad had the warmest ECOSTRESS night land-surface (20.6 °C) — roofs and streets radiating heat.

Podsused – Vrapče had among the fewest tropical nights (13 days) yet can still rank warm on ECOSTRESS when the urban surface stays hot (e.g. central districts). Use both metrics together.

ERA5-Land (~0.1° (~9 km)): Sesvete had the most tropical nights (≥ 20 °C daily minimum) in 2025-06 – 2025-08 (95 days).

ECOSTRESS night land-surface (2 swaths, Jul 2025): Donji grad ranks warmest at night (~70 m pixels, 22:00–06:00).

District ranking — exposure score weights population × tropical nights + ECOSTRESS + night air.

# District Tropical nightslocal daily min ≥ 20 °C Night air (°C)ERA5 22:00–06:00 mean ECOSTRESS LST (°C)Land surface Exposurepop × warmth index
1Sesvete22 (23% of 95 d)19.318.974,144
2Trešnjevka – jug15 (16% of 95 d)18.820.369,769
3Gornja Dubrava15 (16% of 95 d)18.919.356,989
4Trešnjevka – sjever15 (16% of 95 d)18.820.256,330
5Novi Zagreb – zapad16 (17% of 95 d)19.017.955,268
6Peščenica – Žitnjak19 (20% of 95 d)19.318.853,921
7Novi Zagreb – istok16 (17% of 95 d)19.118.652,697
8Stenjevec15 (16% of 95 d)18.819.151,173
9Maksimir15 (16% of 95 d)18.719.546,547
10Trnje15 (16% of 95 d)18.820.644,700
11Podsused – Vrapče13 (14% of 95 d)18.819.242,236
12Črnomerec15 (16% of 95 d)18.819.136,092
13Donji grad15 (16% of 95 d)18.820.634,462
14Donja Dubrava16 (17% of 95 d)19.019.132,809
15Gornji grad – Medveščak15 (16% of 95 d)18.719.927,020
16Podsljeme14 (15% of 95 d)18.718.817,035
17Brezovica17 (18% of 95 d)19.016.79,066

Tropical-night counts from UHI-Analysis daily minimums at MO centroids (Open-Meteo ERA5). ECOSTRESS night LST joined by MO name when available.

# MO District Tropical nights ECOSTRESS LST (°C)
1DobrodolSesvete26 (28%)16.9
2Sesvetski KraljevecSesvete25 (27%)16.2
3ŽerjavinecSesvete25 (27%)14.5
4LužanSesvete25 (27%)13.8
5GlavničicaSesvete25 (27%)13.8
6KobiljakSesvete24 (26%)15.8
7DrenčecSesvete24 (26%)14.7
8BelovarSesvete24 (26%)14.7
9DumovecSesvete24 (26%)14.2
10SoblinecSesvete23 (25%)14.9
11ŠašinovecSesvete23 (25%)14.8
12Ivan MažuranićDonja Dubrava21 (23%)20.7
Limits: ERA5 is ~9 km air; district tropical-night counts cluster tightly. ECOSTRESS is two night passes. MO table uses centroid-matched daily minima from UHI-Analysis. For comfort, trust Meteostat stations above.

Understanding the metrics

Land Surface Temperature (LST)

Land Surface Temperature (LST) measures how hot the ground and built surfaces are — not the air temperature you feel in the shade. Satellite sensors detect thermal radiation emitted by rooftops, roads, vegetation, and soil.

Mean LST (°C)

Mean LST (°C) is the model-predicted surface temperature sampled at each district's representative coordinate from the 30 m LST output raster. It is a single point estimate per district, useful for comparing relative warmth across neighbourhoods.

Overall Statistics

30.7°C

Mean LST

40.6°C

Maximum LST

24.7°C

Minimum LST

2.2°C

Std Deviation

District Temperature Analysis

District Mean LST (°C)Surface temp. at district coordinate Population Area (km²)
Trešnjevka – sjever38.352,9745.82
Stenjevec37.453,86212.23
Peščenica – Žitnjak37.053,02335.29
Trnje36.640,5397.38
Trešnjevka – jug35.665,3249.83
Novi Zagreb – istok34.955,89816.54
Donji grad33.631,2093.0
Donja Dubrava33.533,53710.79
Gornji grad – Medveščak32.826,42310.19
Maksimir32.647,35614.95
Novi Zagreb – zapad31.963,91762.63
Brezovica30.012,046127.33
Črnomerec29.838,08424.16
Sesvete29.670,800165.23
Gornja Dubrava27.958,25540.43
Podsljeme24.818,97459.26
Podsused – Vrapče22.844,91036.17

Urban Heat Island Findings

Hottest district: Trešnjevka – sjever (38.3°C)
Coolest district: Podsused – Vrapče (22.8°C)
Urban heat island delta: 15.5°C between hottest and coolest sampled districts

What is Mean LST? Mean LST (°C) is the model-predicted surface temperature sampled at each district's representative coordinate from the 30 m LST output raster. It is a single point estimate per district, useful for comparing relative warmth across neighbourhoods.

Data Sources

Satellite imagery HLSL30.v2.0

Bands B02, B03, B04, B05, B06, B07 · Period 2025-07-01 – 2025-07-31

Meteorological reanalysis (model input) ERA5-Land reanalysis

2 m air temperature (monthly spatial mean, all hours) · 2025–2025

Hot nights ERA5-Land + ECOSTRESS + Meteostat

Tropical nights (daily min ≥ 20 °C) + ECOSTRESS night LST · 2025-06 – 2025-08

~0.1° (~9 km) · tropical threshold ≥ 20 °C daily minimum

Prediction model IBM Granite Geospatial LST

Prithvi SWIN-L via TerraTorch · 30 m output

Output raster 240 LST patch GeoTIFFs (mosaicked for maps)

Mode: HLS L30 + ERA5-Land

How the pipeline works

1. Input data

HLS L30 surface reflectance (B02, B03, B04, B05, B06, B07) combined with ERA5-Land 2 m air temperature (monthly spatial mean over all hours) for the Zagreb bounding box. Hot nights use ERA5 tropical-night counts and ECOSTRESS night LST when available.

2. Model inference

IBM Granite Geospatial LST predicts LST at 30 m from 224×224 input patches using Prithvi SWIN-L via TerraTorch.

3. District statistics

Mean LST is sampled at each district's representative lat/lon from the output GeoTIFF (240 LST patch GeoTIFFs (mosaicked for maps)).

Granite vs UHI-Analysis (GEE Landsat)

This tab cross-checks zagreb-2 · IBM Granite HLS L30 + ERA5 against UHI-Analysis · Google Earth Engine Landsat LST from the UHI-Analysis repository (Google Earth Engine Landsat, not ECOSTRESS). Use it to see whether both approaches point to the same warmer and cooler gradske četvrti.

Bottom line: The two pipelines tell a similar spatial story (Pearson r = 0.82). Hottest district differs: Granite → Trešnjevka – sjever, GEE → Donji grad (often because one uses a single point and the other averages the whole polygon). Coolest: Granite → Podsused – Vrapče, GEE → Podsljeme. On average, Granite is about 3.9°C cooler than GEE Landsat. That is a systematic offset (like two thermometers calibrated differently), not necessarily wrong rankings.

What is this comparison?

You are looking at two independent estimates of how hot each City of Zagreb district is at the surface (LST), not air temperature in the shade. Neither line on the chart is “ground truth” — both come from satellites and models, processed differently. The value is checking whether relative patterns match: Do we agree that Donji grad / Trešnjevka are warmer and Podsljeme / Brezovica are cooler?

Granite (blue) — this repo

IBM Granite model fed with Harmonized Landsat Sentinel-2 (HLS) imagery plus ERA5 air temperature. One value per district from model output near the district centre (or mosaic). Summer 2025 scenes from this pipeline’s download window.

GEE Landsat (orange) — UHI-Analysis

Mean LST inside each official district polygon from Landsat 8/9 in Google Earth Engine, averaged over many sample pixels and summer 2025 (June–August). Includes UHI anomaly vs a green/rural reference in that study.

Δ (Granite − GEE)

Positive Δ: Granite reads warmer at that district. Negative Δ: Granite reads cooler. Large |Δ| on one district often means different sampling (point vs whole district) or different dates/cloud masks, not necessarily that one map is “wrong”.

Three different “ranks”

# (table) = hottest → coolest using the average of Granite and GEE.
Granite rank = order using only this pipeline’s value.
GEE rank = order using only UHI-Analysis Landsat zonal means. They can disagree when one method is much warmer than the other for that district.

Why GEE says Donji grad is #1 but Granite ranks it #7

This is the largest disagreement in the comparison (Δ ≈ -8.5°C). Both are measuring the same district, but not the same place inside it:

  • GEE (rank 1, 42.1°C) — Averages Landsat LST over all pixels inside the Donji grad polygon (the whole official district, ~3 km² of dense city centre). UHI-Analysis also reports the highest UHI anomaly here (+9.6°C vs green reference), which matches it being the urban core.
  • Granite (rank 7, 33.6°C) — One value from the IBM model at the district centroid (45.81°N, 15.98°E): a single 30 m patch, not the full polygon. That point can sit on a slightly cooler surface class (street tree canopy, shadow, mixed pixels, or ERA5 influence in the model) while the rest of Donji grad stays very hot in GEE’s zonal average.
  • Combined table # (4) — The main # column sorts by the average of both methods (37.9°C), so Donji grad lands #4 because Granite pulls it down even though GEE puts it first.

So GEE is answering: “How hot is Donji grad as a whole?” Granite is answering: “How hot is it at the representative map pin?” For a small central district, those answers often diverge. GEE’s #1 for Donji grad is consistent with UHI-Analysis’s own report (highest district ΔT and LST); Granite still ranks Trešnjevka – sjever, Stenjevec, and others higher at their centroids.

Hottest by method alone: Granite → Trešnjevka – sjever (38.3°C); GEE → Donji grad (42.1°C).

Other large rank gaps:

  • Trešnjevka – jug: Granite rank 5, GEE rank 11 (GEE 36.3°C vs Granite 35.6°C)
  • Donji grad: Granite rank 7, GEE rank 1 (GEE 42.1°C vs Granite 33.6°C)
  • Brezovica: Granite rank 12, GEE rank 16 (GEE 31.9°C vs Granite 30.0°C)

How to read the summary numbers

  • Pearson r — Strong agreement: the warmest and coolest neighbourhoods largely match between methods, with some reordering in the middle of the ranking.
  • Mean |Δ| — Typical district-level difference is moderate (3.9°C). Expect similar stories for UHI hotspots, but not identical numbers on reports.
  • Mean bias — On average, Granite is about 3.9°C cooler than GEE Landsat. That is a systematic offset (like two thermometers calibrated differently), not necessarily wrong rankings.

Why the numbers are not identical

  • Different inputs: HLS + deep learning model vs GEE Landsat LST algorithm.
  • Different geography: District centroid / patch mosaic vs average over the full district polygon (thousands of pixels in GEE).
  • Different time compositing: This pipeline uses specific 2025 HLS acquisitions; GEE uses a summer window with multiple Landsat dates.
  • ERA5 in Granite only: The model sees reanalysis air temperature; GEE LST does not use ERA5 in the same way.
Do not treat small rank differences or a few °C offset as proof that one pipeline failed. Do use agreement (r, shared hottest/coolest, similar bar chart shape) as confidence that urban heat hotspots are in the right neighbourhoods for planning and communication. For legal or engineering decisions, validate with local measurements or the full UHI-Analysis report (MO-level stats, UHI anomaly, census cross-tabs).
Districts matched
17/17
Pearson r
0.82
Rank pattern agreement
Mean |Δ|
3.9°C
Mean bias (Granite − GEE)
-3.9°C
Hottest district
Granite: Trešnjevka – sjever · GEE: Donji grad
Coolest district
Granite: Podsused – Vrapče · GEE: Podsljeme
Granite (HLS + ERA5) GEE Landsat (UHI-Analysis)

Bar chart — district LST by both methods (loads when you open this tab).

Sorted by the average of Granite and GEE LST (#1 = warmest on both combined). “Granite rank” / “GEE rank” are separate orderings within each method only.

# District Granite LST (°C) GEE Landsat LST (°C) Δ (°C) Granite rank GEE rank
1Trešnjevka – sjever38.341.5-3.212
2Stenjevec37.438.7-1.324
3Trnje36.639.4-2.843
4Donji grad33.642.1-8.571
5Peščenica – Žitnjak37.037.3-0.336
6Novi Zagreb – istok34.938.2-3.365
7Trešnjevka – jug35.636.3-0.7511
8Donja Dubrava33.537.2-3.787
9Maksimir32.636.7-4.1109
10Gornji grad – Medveščak32.836.5-3.7910
11Novi Zagreb – zapad31.937.1-5.2118
12Sesvete29.633.6-4.01413
13Črnomerec29.832.6-2.81314
14Gornja Dubrava27.934.3-6.41512
15Brezovica30.031.9-1.91216
16Podsused – Vrapče22.832.5-9.71715
17Podsljeme24.829.0-4.21617

Hot nights (summary)

Tropical nights = days with district daily minimum 2 m air ≥ 20 °C on ERA5-Land (~0.1° (~9 km)). ECOSTRESS = night land-surface snapshot (Jul 2025). Full charts and station context: open the Hot nights tab. Period: 2025-06 – 2025-08.

Air frequency ≠ surface warmth

Sesvete had the most tropical nights (22 days, 23% of summer) — days when the daily minimum 2 m air stayed at or above the tropical-night threshold.

Donji grad had the warmest ECOSTRESS night land-surface (20.6 °C) — roofs and streets radiating heat.

Podsused – Vrapče had among the fewest tropical nights (13 days) yet can still rank warm on ECOSTRESS when the urban surface stays hot (e.g. central districts). Use both metrics together.

Most tropical nights: Sesvete · Warmest ECOSTRESS surface: Donji grad · 95 summer days in ERA5 count

# District Tropical nights ECOSTRESS LST (°C)
1Sesvete22 (23%)18.9
2Trešnjevka – jug15 (16%)20.3
3Gornja Dubrava15 (16%)19.3
4Trešnjevka – sjever15 (16%)20.2
5Novi Zagreb – zapad16 (17%)17.9
6Peščenica – Žitnjak19 (20%)18.8
7Novi Zagreb – istok16 (17%)18.6
8Stenjevec15 (16%)19.1

Open Hot nights tab →