Pretoria is situated approximately 55 km (34 mi) north-northeast of Johannesburg in the northeast of South Africa, in a transitional belt between the plateau of the Highveld to the south and the lower-lying Bushveld to the north. It lies at an altitude of about 1,339 m (4,393 ft) above sea level, in a warm, sheltered, fertile valley, surrounded by the hills of the Magaliesberg range.
The city has a humid subtropical climate (Köppen: Cwa) with long hot rainy summers and short cool to cold,dry winters. The city experiences the typical winters of South Africa with cold, clear nights and mild to moderately warm days. Although the average lows during winter are mild it can get bitterly cold due to the clear skies, with nighttime low temperatures in recent years in the range of 2 to −5 °C (36 to 23 °F). The average annual temperature is 18.7 °C (65.7 °F).
This is rather high, considering the city’s relatively high altitude of about 1,339 metres (4,393 feet), and is due mainly to its sheltered valley position, which acts as a heat trap and cuts it off from cool southerly and south-easterly air masses for much of the year. Rain is chiefly concentrated in the summer months, with drought conditions prevailing over the winter months, when frosts may be sharp. Snowfall is an extremely rare event; snowflakes were spotted in 1959, 1968 and 2012 in the city, but the city has never experienced an accumulation in its history. During a nationwide heatwave in November 2011, Pretoria experienced temperatures that reached 39 °C (102 °F), unusual for that time of the year. Similar record-breaking extreme heat events also occurred in January 2013, when Pretoria experienced temperatures exceeding 37 °C (99 °F) on several days. The year 2014 was one of the wettest on record for the city. A total of 914 mm (36 in) fell up to the end of December, with 220 mm (9 in) recorded in this month alone. In 2015 Pretoria saw its worst drought since 1982; the month of November 2015 saw new records broken for high temperatures, with 43 °C (109 °F) recorded on the 11th of November after three weeks of temperatures between 35 °C (95 °F) and 43 °C (109 °F). January 2016 saw Pretoria reach a new record high of 44 °C (111 °F) on January 7, 2016.