In an earlier posting I created an anomalies table (temperature – average(temperature) by month by station) and then produced some SQL reports from it. Those are rather long and a mess to read (though the details can be very interesting).
In this posting I’ve used Python3 to graph that same data, average anomaly by year, both in aggregate and by continent. Easier to read, but a bit less detail in some ways. (The eye can’t see 1/100 C..)
I’d originally intended to make these line graphs, but the data are so scattered, especially in the early years, so to be better served by a scatter graph.
With that, here’s the graphs.
Total of all data in GHCN v3.3
To me, it looks like nothing much happens in terms of a warming trend until suddenly in the late 1990s the cold excursions get trimmed. There’s a general flattening of range over the years as more thermometers come in to the average (expected) and as the low excursions disappear (odd that…)
We haven’t gotten particularly more hot excursions than in the past, but you can see the climb out of the Little Ice Age as the early very cold excursions end.
Region 1 – Africa
Nothing much happens until about the 1990s when BOOM! it shows warming – just after the electronic thermometers got rolled out.
Region 2 – Asia
Same story here, a big BOOM! in the 1990s but perhaps also enhance by some massive industrialization driven UHI in China.
Region 3 – South America
This one actually looks like it has some tend over the years. Still doesn’t look significant to me as it is mostly one data point of ‘rise’ at the far right that makes the tops higher. Most of the trend still seems to come from loss of cold excursions. And again we see wild swings in the early years with few thermometers when one instrument can move the average a lot more. (Which raises the issue of changes to thermometer count suppressing excursions in the average…)
Region 4 – North America
With more thermometers than the rest of the world combined, the USA doesn’t seem to be any hotter than in the past. There is a loss of cold excursions in recent years, but “why” is not clear. Perhaps all that added asphalt at the airports with many of the thermometers along with all the snow removal and tons of kerosene being burned in the Jet Age?
Region 5 – Australia / Pacific Islands
Much like Africa and Asia, no hotter and not much at all going on, until the 1990s. Then a loss of cold excursions and general tilt up. As I recall it, we already had a LOT of CO2 inventory in the air by the 1990s, so IMHO this needs some other explanation.
Region 6 – Europe
Europe is just a mess. Highly volatile in the early years and the longest record of anyone (so the very earliest data is the first thermometer…) From about 1850 to about 1975 nothing much changes other than a bit of reduced volatility with higher thermometer counts. Then AGAIN in the 1990s with the rollout of the electronic thermometers and lots more air travel by jets, a big spike up. That doesn’t look AT ALL like the gradual accumulation of CO2 causing general warming with more in the early years and a log reduction in impact recently.
Region 7 – Antarctica
I had to make the lower bound on anomaly -4 on this graph as there’s an excursion below -3. Not much to say, really, other than it certainly isn’t warming. We get some reduction of range with added thermometers (as expected – you don’t expect a whole continent to all go to one extreme at the same time, where a single location can). The anomaly to the hot side was highest in the ’30s and now is just gone.
Here’s the Python that’s making these graphs. I’m just going to show the one for Africa. The rest vary only in the Region Number used (if any) and the titles. I commented out the setting of a constant legend of years so that the variation in years / region would show better.
It finally dawned on me I could get the years on the right axis by changing the order in which the SQL statement retrieved them ;-)
# -*- coding: utf-8 -*- import datetime import pandas as pd import numpy as np import matplotlib.pylab as plt import math import mysql.connector as MySQLdb plt.title("GHCN v3.3 Africa Anomaly by Years") plt.ylabel(" Region 1 Anomaly C") plt.xlabel("Year") plt.ylim(-3,2) #plt.ylim(1850,2020) try: db=MySQLdb.connect(user="chiefio",password="LetMeIn!",database='temps') cursor=db.cursor() sql="SELECT year,AVG(deg_c) FROM anom3 WHERE region=1 GROUP BY year;" print("stuffed SQL statement") cursor.execute(sql) print("Executed SQL") stn=cursor.fetchall() # print(stn) data = np.array(list(stn)) print("Got data") xs = data.transpose() # or xs = data.T or xs = data[:,0] ys = data.transpose() print("after the transpose") plt.scatter(xs,ys,s=1,color='red',alpha=1) plt.show() except: print ("This is the exception branch") finally: print ("All Done") if db: db.close()