WebGL map of past GHCN/SST station temperatures

My first effort at representing monthly anomalies on a sphere was in 2012, with a map of average 2011 temperatures, using the then novel HTML 5 canvas shading. But the sphere could not be dragged, and I had to include all the data with the post. Later came the use of XMLHTTPrequest to allow data to be selected after initial loading (first described here), and WebGL to allow mouse control of sphere and much better shading (early version here)

With further technical development, I was able to post a maintained page of monthly averages, noted here, later improved to daily updating. That makes it the earliest and most detailed source of information on temperatures for the current month. The anomalies come from the nightly runs of TempLS, which uses monthly GHCN V4 and for ocean, ERSST v5. They are set to the base years 1961-90.

The display is now derived from the general WebGL facility MoyGL; you can refer to this page for more details on operation. It allows you to choose any month since 1900. The display uses TempLS triangular mesh with the stations for that month as nodes. It assigns the correct color (key at right) for the anomaly adjacent to the station, and shades within the triangle with color interpolation. You can click near a node to show on the right the name, anomaly and temperature for that month.

You can drag the trackball Earth with the mouse, or quickly recenter it using the small map image at top right. Here is the plot; some more operating details below.

Data details

Each plot is taken directly from unadjusted station readings in GHCN V3 or from the NOAA's ERSST. The latter is a reconstructed SST, and grid averages are treated as represented by a station at the centre.

How it works

You can use the Earth as a trackball, as in Google Earth, or you can click on the navigator map, top right. The latter works instantly, and keeps a conventional orientation. Where you click becomes the centre of the Earth view.

You choose date periods from the box at top far right. Each of the colored bars has squares representing a decade (starting 1900), year (0-9) or month (1-12). So if you clicked every bar far left, you would get Jan 1900. The month/year you have chosen is shown immediately below (red border). When you have what you want, click the Fetch and Show button below, and a plot for that month will appear. If you have clicked for a date beyond where there is data, it will choose the most recent available. That is also what shows initially.

You can zoom the plot by moving the pointer vertically with the right button pressed. Up is bigger.

Clicking also brings up numeric (and name) data from the nearest station. You can show dots for the stations with the checkbox under the small map.

A WebGL V2 feature is that it shows, with checkboxes, the objects that are displayed. These are Map, ghcn (the shading), GHCN_P nodes and GHCN_L (mesh lines). You can turn any of them off. The Orient button rotates the disc you see so that the centre longitude is vertical.

Some observations

In more modern times, the thing that impresses me is the spatial consistency of the land data. The SST data is also consistent, but that is partly the effect of the reconstruction. Least consistent is often the USA.

I've tried to make sure you can't ask for an unavailable file, but if that fails there will be a XMLHTTPrequest popup. It doesn't stop the program.


  1. This is a really nice visualisation Nick. Well done.


  2. I'm from the eastern US, where we well know what that deep blue color means. I have used your graphic above to show people here that the cold weather we are experiencing is localized, and our gain (of cold) is the Arctic's loss. It helps to see the whole picture.

  3. Nice tool.
    1891 - 1899 and 2015 - 2017 annual maps are not available.
    1900 - 2014 annual maps are distorted.

    1. Thanks, Erik. Yes, while the monthly plots were automatically updated, the annual ones were not, in the old version here. The new version that I just posted does not have annual - I could fix that.