# How much sun do the mountains steal from you?

Almanac sunrise times assume a flat horizon. At Băile Herculane, on 21 December, the sun rises at 8:05 but only clears the mountains at 10:54. Look up any town or village in Romania: from the terrain, we calculate when the sun reaches you on every day of the year, and how many hours of direct sun you get.

## A photograph tests the model

On 1 January 2018, the Wikimedia Commons user Leontin l photographed the centre of the spa town of Băile Herculane with a phone. The phone recorded the place (44.8825° N, 22.4178° E) and the time, twice: the camera clock read 11:24:16, and the GPS satellites gave 9:24:12 universal time, which is 11:24:12 in Romania. In the picture, the sun sits on the ridge while the pavilion and the streets are still in shade.

For the same spot and the same day, the calculation on this page says the top of the sun clears the ridge at 11:21. If the phone misplaced itself by up to 30 metres, the calculated time falls between 11:19 and 11:23. At the moment of the photograph, the centre of the sun is, by the calculation, 0.08 of a degree above the ridge. With a flat horizon, the sun would have risen that day at 8:08.

## Where the mountains take the most

We ran the same calculation for the centre of each of Romania's 3,181 communes and towns, for every day of 2026. On the shortest day of the year, 6.7 million people, 35% of the population, live in communes and towns where, at the centre, the terrain takes at least half an hour of direct sun. In places with 2.7 million inhabitants, the loss at the centre is at least an hour. The calculation is not made at every house: everyone in a commune is counted at its central point.

- **6.7 million** people live in places where, at the centre, the terrain takes at least 30 minutes of sun on 21 December
- **35** communes and towns where, on 21 December, the sun clears the mountains at 10 a.m. or later
- **41%** of the year's direct sun hidden by the mountains at Băile Herculane

The biggest losses are in narrow valleys: Băile Herculane (Caraș-Severin) loses 41% of the year's direct sun; Măguri-Răcătău (Cluj) loses 36% of the year's direct sun; Slănic-Moldova (Bacău) loses 30% of the year's direct sun. A single point can mislead: at Toplița (Hunedoara), top of the ranking below, on 21 December the sun clears the mountain at 12:37 at the village centre, but at 8:35 100 metres further north and at 14:04 100 metres further south. At Băile Herculane the result holds: at the centre and at the four points 100 metres away, the sun appears between 10:39 and 11:07. At the centre of Perișani (Vâlcea), at the foot of a hill to the south, the sun does not clear the hill at all on 25 days a year, from 9 December to 2 January. A hundred metres further south the run grows to 80 days; a hundred metres further north, 21 December has 4 hours 23 minutes of direct sun.

Over a whole year of clear skies, counting each person at the centre of their commune or town, a Romanian loses on average 157 hours of direct sun to the terrain. The big lowland cities lose around 1% or less: Bucharest under 0.1%, Timișoara 0.2%, Constanța 0.4%.

## The mountains' shadow, minute by minute

The same calculation for the whole country at once: each place is lit according to how its slope faces the sun, and put in shadow if terrain rises between it and the sun. On the morning of 21 December the Carpathians' shadows stretch tens of kilometres across the basins; at midday in June they almost disappear.

## Where the sun appears latest on 21 December

- Toplița (Hunedoara): 12:37–15:37, 3 hours / 8 hours 41 minutes
- Băița (Hunedoara): 11:24–14:03, 2 hours 39 minutes / 8 hours 39 minutes
- Moneasa (Arad): 11:21–16:17, 4 hours 56 minutes / 8 hours 35 minutes
- Vețel (Hunedoara): 11:14–15:33, 4 hours 19 minutes / 8 hours 40 minutes
- Măguri-Răcătău (Cluj): 11:13–15:31, 4 hours 18 minutes / 8 hours 34 minutes
- Scărișoara (Alba): 11:12–15:01, 3 hours 49 minutes / 8 hours 36 minutes
- Bulzeștii de Sus (Hunedoara): 11:11–16:09, 4 hours 58 minutes / 8 hours 37 minutes
- Leșu (Bistrița-Năsăud): 11:07–14:10, 3 hours 3 minutes / 8 hours 29 minutes
- Băile Herculane (Caraș-Severin): 10:54–15:38, 4 hours 44 minutes / 8 hours 48 minutes
- Ceru-Băcăinți (Alba): 10:51–15:28, 4 hours 37 minutes / 8 hours 39 minutes
- Malaia (Vâlcea): 10:50–14:58, 4 hours 8 minutes / 8 hours 44 minutes
- Romuli (Bistrița-Năsăud): 10:45–15:55, 5 hours 10 minutes / 8 hours 27 minutes
- Bicaz (Neamț): 10:44–15:28, 4 hours 44 minutes / 8 hours 32 minutes
- Gârda de Sus (Alba): 10:37–15:53, 5 hours 16 minutes / 8 hours 36 minutes
- Răstolița (Mureș): 10:36–15:08, 4 hours 32 minutes / 8 hours 31 minutes
- Râu Sadului (Sibiu): 10:35–15:34, 4 hours 59 minutes / 8 hours 42 minutes
- Dămuc (Neamț): 10:33–15:39, 5 hours 6 minutes / 8 hours 33 minutes
- Bistra (Maramureș): 10:31–16:00, 5 hours 29 minutes / 8 hours 24 minutes
- Vidra (Alba): 10:31–15:27, 4 hours 56 minutes / 8 hours 36 minutes
- Anina (Caraș-Severin): 10:23–15:18, 4 hours 55 minutes / 8 hours 46 minutes
- Iacobeni (Suceava): 10:18–15:26, 5 hours 8 minutes / 8 hours 28 minutes
- Poiana Ilvei (Bistrița-Năsăud): 10:18–16:05, 5 hours 47 minutes / 8 hours 29 minutes
- Suciu de Sus (Maramureș): 10:11–15:53, 5 hours 42 minutes / 8 hours 28 minutes
- Hida (Sălaj): 10:11–16:23, 6 hours 12 minutes / 8 hours 31 minutes
- Băile Tușnad (Harghita): 10:10–15:28, 5 hours 18 minutes / 8 hours 38 minutes

## The larger places: how much sun the terrain takes

- Reșița (Caraș-Severin): 12.7%
- Borșa (Maramureș): 10.6%
- Zalău (Sălaj): 10.4%
- Piatra-Neamț (Neamț): 10.2%
- Zărnești (Brașov): 10.2%
- Petroșani (Hunedoara): 9.2%
- Deva (Hunedoara): 8.4%
- Curtea de Argeș (Argeș): 8.2%
- Câmpulung (Argeș): 7.7%
- Odorheiu Secuiesc (Harghita): 6.9%
- Miercurea Ciuc (Harghita): 6.9%
- Codlea (Brașov): 6.3%
- Râmnicu Vâlcea (Vâlcea): 6.2%
- Turda (Cluj): 6.2%
- Aiud (Alba): 6.1%
- Săcele (Brașov): 6.1%
- Sighișoara (Mureș): 5.9%
- Cisnădie (Sibiu): 5.7%
- Dej (Cluj): 5.5%
- Hunedoara (Hunedoara): 5.5%
- Târnăveni (Mureș): 5.5%
- Sighetu Marmației (Maramureș): 5.4%
- Bistrița (Bistrița-Năsăud): 5.4%
- Sfântu Gheorghe (Covasna): 4.8%
- Huși (Vaslui): 4.8%
- Mediaș (Sibiu): 4.8%
- Alba Iulia (Alba): 4.6%
- Caransebeș (Caraș-Severin): 4.6%
- Bârlad (Vaslui): 4.5%
- Pașcani (Iași): 4.0%
- Reghin (Mureș): 4.0%
- Florești (Cluj): 4.0%
- Câmpina (Prahova): 3.9%
- Onești (Bacău): 3.7%
- Brașov (Brașov): 3.6%
- Baia Mare (Maramureș): 3.6%
- Vaslui (Vaslui): 3.6%
- Târgu Mureș (Mureș): 3.5%
- Fălticeni (Suceava): 3.3%
- Sebeș (Alba): 3.2%
- Mioveni (Argeș): 3.0%
- Tulcea (Tulcea): 3.0%
- Dorohoi (Botoșani): 2.9%
- Sibiu (Sibiu): 2.9%
- Câmpia Turzii (Cluj): 2.8%
- Bacău (Bacău): 2.8%
- Făgăraș (Brașov): 2.8%
- Cluj-Napoca (Cluj): 2.7%
- Medgidia (Constanța): 2.5%
- Miroslava (Iași): 2.4%
- Râmnicu Sărat (Buzău): 2.4%
- Slatina (Olt): 2.4%
- Drobeta-Turnu Severin (Mehedinți): 2.3%
- Pitești (Argeș): 2.2%
- Iași (Iași): 2.0%
- Târgu Jiu (Gorj): 1.9%
- Fetești (Ialomița): 1.8%
- Suceava (Suceava): 1.8%
- Roman (Neamț): 1.6%
- Focșani (Vrancea): 1.6%
- Rădăuți (Suceava): 1.6%
- Lugoj (Timiș): 1.4%
- Galați (Galați): 1.2%
- Craiova (Dolj): 1.2%
- Roșiori de Vede (Teleorman): 1.1%
- Oradea (Bihor): 1.1%
- Tecuci (Galați): 1.1%
- Alexandria (Teleorman): 1.0%
- Năvodari (Constanța): 1.0%
- Botoșani (Botoșani): 1.0%
- Buzău (Buzău): 0.8%
- Târgoviște (Dâmbovița): 0.8%
- Ploiești (Prahova): 0.7%
- Caracal (Olt): 0.7%
- Satu Mare (Satu Mare): 0.5%
- Giurgiu (Giurgiu): 0.5%
- Mangalia (Constanța): 0.4%
- Brăila (Brăila): 0.4%
- Constanța (Constanța): 0.4%
- Arad (Arad): 0.4%
- Oltenița (Călărași): 0.4%
- Dumbrăvița (Timiș): 0.3%
- Slobozia (Ialomița): 0.3%
- Giroc (Timiș): 0.2%
- Timișoara (Timiș): 0.2%
- Buftea (Ilfov): 0.2%
- Voluntari (Ilfov): 0.2%
- Călărași (Călărași): 0.2%
- Pantelimon (Ilfov): 0.1%
- Otopeni (Ilfov): 0.1%
- Bragadiru (Ilfov): 0.1%
- Popești-Leordeni (Ilfov): 0.1%
- Chiajna (Ilfov): 0.1%
- Bucharest (București): 0.0%

## How we calculated

**Terrain.** Terrain Tiles (Mapzen/Tilezen, on Amazon Web Services), a terrain model built from SRTM (NASA), EU-DEM and other sources. In mountain areas, within 8 km of you, the calculation uses cells of about 30 m; up to 60 km, cells of about 310 × 220 m; beyond that, up to 450 km within the grid (19° to 31° E, 41.5° to 49.3° N), cells of about 925 × 650 m. Outside areas with more than 250 m of relief within a few kilometres, the 30 m grid is not used, because there it would mostly see blocks of flats.

**The horizon.** From the chosen point, 1.7 m above the ground, the calculation follows 1,440 directions, one every quarter of a degree, and keeps the highest angle at which terrain appears. It subtracts the curvature of the Earth and allows for the bending of light in the air near the ground (coefficient k = 0.13).

**The sun.** The sun's position comes from Jean Meeus's formulas, as used by NOAA's solar calculator; compared with the JPL DE421 ephemeris at 1,561 random times and places, the sun's altitude differs by at most 0.012 degrees, a few seconds of clock time. The sun counts as "above the mountain" when its upper edge, with atmospheric refraction added, clears the ridge line, the same rule used for almanac sunrise.

**Clock time.** Romanian clock time: Eastern European Time, moving to summer time on the last Sunday of March and back on the last Sunday of October. The calculation is for 2026; from one year to the next the times shift by at most a minute, except on the days between the two years' clock-change dates.

**Places.** The centre of each of the 3,181 communes and towns is the OpenStreetMap point for its seat village or town, matched by the SIRUTA code of the administrative unit (3,022 points) or by name (65); for 94 we kept the coordinates from Wikidata and GeoNames. The population is from the 2021 census and is all counted at that point: a house on the sunny slope or at the edge of the village can have a different horizon.

**Checks.** The horizons were compared with those calculated by the European Commission's Joint Research Centre for PVGIS at 40 hill and mountain places picked at random: the typical difference is 1.3 degrees, and at 36 of them our horizon is lower. In 12 deep valleys, Băile Herculane among them, the typical difference is 2.2 degrees, up to 5.9, and our horizon is lower at 11. The sun losses on this page are, if anything, underestimated. The Băile Herculane photograph is a third check, independent of both.

**What the calculation leaves out.** Clouds, fog and winter temperature inversions, which in many basins hide the sun more than the mountains do. Buildings, trees and poles around you. The hours of "direct sun" are those possible under clear skies.

## Sources

1. Terrain: Terrain Tiles (Mapzen/Tilezen) on Amazon Web Services, from SRTM (NASA), EU-DEM and other sources; full source attribution.
2. Sun position: J. Meeus, Astronomical Algorithms, 2nd ed., Willmann-Bell, 1998; NOAA Global Monitoring Laboratory, Solar Calculation Details. Check: the JPL DE421 ephemeris, through the Skyfield library.
3. Control horizons: European Commission, Joint Research Centre, PVGIS 5.3, printhorizon service.
4. Terrestrial refraction: C. Hirt et al., "Monitoring of the refraction coefficient in the lower atmosphere using a controlled setup of simultaneous reciprocal vertical angle measurements", Journal of Geophysical Research 115, D21102, 2010.
5. Places: © OpenStreetMap contributors, ODbL, extracted through the Overpass API on 25 September 2026; Wikidata; GeoNames. Population: National Institute of Statistics, 2021 Population and Housing Census. Borders: Natural Earth.
6. Photograph: Leontin l, "Baile Herculane 2018 (7)", Wikimedia Commons, CC BY-SA 4.0; time and position from the file's EXIF data.
