Have a look at the annual and daily precipitation of Wapato, a town located on the Yakama Indian Reservation. It is an agricultural community that specializes in apples and potatoes. Farming there relies on irrigation because the climate is arid. Rain falls only 38 days a year on average, and of those days only 29 inches of rain fall, on average. The most rain in one day was 2.3 inches, on November 11, 2009.

Applying a data smoothing filter to the precipitation chart produces a serendipitous effect: it looks like the surface of water! The tip of each wave represents a day when it rained. Move your mouse cursor over the chart to see individual precipitation measurements. Each data point represents one day of precipitation. The chart can be rotated, and it is possible to zoom in and out.

Viewing the data with a data smoothing filter has an averaging effect, so that the values are smaller than in actuality. To see the actual recorded values for each day, view the chart as a heat map with smoothing turned off.

2021 west coast heat spell

The west coast of the United States got a bit of a heat spell in June of 2021. In fact, it broke a number of records. Some weather stations on the west side of the Cascade Mountains recorded temperature highs of 116°F, or 47°C, where the local climate is usually mild. Heat spells like this always raise the question: are hot days like this to be expected every now and then? The frequency distribution chart above illustrates temperature highs recorded at a historical weather station, from 1891 through 2020, and these years represent the duration of record keeping at that weather station. The highest temperature recorded for that period is 106°F, or 41°C. The data available for this weather station shows 41 days above 100°F, 3 days above 105°F, and 0 days above 110°F. Use your mouse cursor to explore the temperatures by calendar day in the following interactive charts.

Frequency distribution for years 1891-2020 in °F

Frequency distribution for years 1891-2020 in °C

You have probably noticed the horizontal bands. It is more noticeable in the Fahrenheit chart because one degree Fahrenheit is 1.8 times more precise than one degree Celsius, and both charts have their frequency plotted out in one degree steps.

The pattern of horizontal banding occurs every 5 degrees Celsius, Fours and nines seem to be frequently rounded up to fives and tens, as though the station keeper were employing a rounding bias when reading the thermometer. Besides that, values in the database are rounded to a specific pattern of decimal values: 0.0, 0.6, 1.1, 1.7, 2.2, 2.8, 3.3, 3.9, 4.4, 5.0. This may be the result of values being originally recorded in half-degrees Celcius, conversion to Fahrenheit, and reconversion to Celsius for storage in the Global Historical Climate Network (GHCN) database.

This frequency distribution chart represents one of the different ways that weather data can be represented using 3D charts. Alternatively, Climate Binge can also produce a yearly chart, having x as the calendar day, y as the year, and z as the temperature. Climate Binge is built in the spirit of citizen science, where you do the science, and you draw your own conclusions! Head on over to the charting tool to choose your own weather station and create your own 3D weather chart.

Interactive 3D weather charts

Guadeloupe temperature maximums between 1950 and 2020

This chart may take 15 seconds to load, but if you’re willing to wait, you will get to see a good example of the way that interactive charts can be produced inside a blog entry.

Battle Ground

A Climate Binge chart of Battle Ground seasonal temperatures from 1929 to 2020

Climate Binge is a weather charting tool that draws data from the Global Historical Climatology Network of land weather stations, and one of the member stations is in Battle Ground. The lowest and highest temperatures recorded at the Battle Ground station are -11°F and 107.1°F.

Extreme temperatures

Extreme temperatures at the Battle Ground weather station

Head on over to the charting tool to view an interactive version of this chart, or to produce a chart from your own local weather station. The bigger the screen you have, the better, because the charts produced are highly detailed. Give a minute to load, and then explore the chart with the crosshair tool to identify those special days from the past that you remember about the weather.

Is it really that cold in Ylistaro?

A chart showing what the seasonal temperature has been like in Ylistaro over the years
Daily and seasonal temperatures in Ylistaro, Finland between 1959 and 2020

This chart shows the daily temperatures minimum between 1959 and 2020 in Ylistaro, Finland. The information presented in the chart has three dimensions: year, calendar date, and temperature. The data has been smoothed in order to reveal patterns and trends, and days with missing values are interpolated. The contour map version of the chart has a fascinating Rorschach inkblot quality to it. What shapes do you see in it? Certain years are noticeably colder than the rest. The following chart is the same, but with “raw” data, that is, the data has not been smoothed and missing values are shown as empty spots on the chart. This version is a heatmap, which does not make contour lines around similar values. That white zipper line is a column of would-be leap-days, in years that do not have the 29th of February.

A chart showing daily temperatures in Ylistaro, Finland between 1959 and 2020
Daily temperature minimums in Ylistaro, Finland, 1959-2020

Even though Ylistaro is at a high latitude, and it can get quite cold, there are some years when it hardly snows at all, and winter sports have to be cancelled completely. The coldest temperature at this weather station is -43.6°C (-46.5°F) on February 3, 1966. The Celcius and Fahrenheit values are almost the same, because the scales converge at exactly forty degrees.

The central feature of Climate Binge is the interactive charting tool, and you can analyze your local weather station of choice by looking at the data as a contour map, a heatmap, or as a 3D surface plot, shown below.

A chart showing daily and seasonal temperatures in Ylistaro, Finland between 1959 and 2020
3D surface plot of temperatures in Ylistaro, Finland 1959-2020. X-axis: calendar day, Y-axis: year, Z-axis: daily temperature minimum

I recommend that you get on a big screen and have a look at the interactive chart. It takes a minute to load, but it is well worth it. If you want to know if the weather this year is normal where you live, use the map to navigate to your own location and make a chart based on of the weather stations there.

134.1°F in Death Valley

Daily temperature maximums in Death Valley between 1910 and 1961 X-axis: calendar day, Y-axis: year, Z-axis: daily temperature max

Death Valley, California, is among the hottest places, if not the hottest place, on earth. On July 10, 1913, the mercury hit 134.1°F, or 56.7°C. Since that is about the same time that a permanent weather station was established, the record keeping is viewed with some skepticism, but imaging living in there, and being put in charge of the weather station! There was nothing automatic about it. You would have to go outside twice a day to record the low and high temperature, look at the thermometer, and write down the temperatures in a log book. Today, the records have been entered into databases, notably in the Global Historical Climate Network or land weather stations. Ironically, the name of the weather station is “Greenland Ranch,” which is a place that is now more appropriately called Furnace Creek.

Head on over to the charting tool to build your own interactive chart! Run filters on the data, download the data, and view the chart in other ways, such as in the form of a heatmap or a contour chart. The contour chart can be quite revealing about local climate trends!

The bigger the screen you have, the better, and even though it does take a minute for the chart to load, it is well worth it.

-51.5°C in Finland

Käyrä: Kittilän alimpia lämpötiloja / Chart: Temperature lows of Kittilä
Temperature lows in Kittilä, Finland

The coldest recorded temperature in Finland, -51.5°C, or -60.7°F, is in the village of Pokka, in Kittilä, and it is recorded on January 28, 1999. You’ll notice that the surface plot is viewed from below. This is because you have to look at it from underneath in order to see the inverted spikes that indicate exceptionally low temperatures. See also the scatter plot below, which is a different way of graphing out the same data.

Distribution plot showing temperature minimums in Kittilä, Finland. The record coldest temperature in Finland is indicated.

Have a look at an interactive version of the chart, and make your own new charts from nearby weather stations.

-51.5°C Kittilässä

Käyrä: Kittilän alimpia lämpötiloja / Chart: Temperature lows of Kittilä
Kittilän alimpia lämpötiloja

Katso myös alla olevan pistekaavio, mikä on eri menetelmä kuvaa samoja tietoja.

Pistekaavio, mikä näyttää ylin lämpötilojen jakauman Kittilän Pokassa. Kuvaaja viittaa Suomen alin lämpötilan ennätykselle.

Suomen alin lämpötila, -51.5°C, on mitattu Kittilän Pokan kylässä 28.1.1999. Katso kuvaajan interaktiivinen versio, ja tee uusia kuvaajien lähellä olevista sääasemista.

3D charts for seasonal financial trends

When I was working on the financial audit of a charitable organization, I gained inspiration to look at the seasonal dimension of data. They showed me how they had been tracking month-to-month contributions throughout the year. Their contributions would spike at Christmas time, because that’s when people give the most money to charities. Most of the contributions for the year would come during December, and the money would have to hold out for several months. They had recorded the accounting information in a database, which they would use to produce a series of bar graphs, one for each year, which they were able to display all in one picture, with each year of bars standing in front of the prior year’s row of bars. The following chart represents the monthly contributions to a charitable organization over the course of ten years. The organization is hypothetical, and the data is produced using a random number generating algorithm. The same chart could just as easily represent the sales of a retail business.

Seasonal financial receipts of a charitable organization
Seasonal financial receipts of a hypothetical charitable organization

The resulting chart that the organization used amounted to a three dimensional surface plot that compared each year’s seasonal giving. In this way, the organization was able to determine visually if seasonal giving was relatively high or low, or if the money had started to come in early or late. The same principal can be used for retail, which has exactly the same financial cycle. I kept the idea in the back of my mind for years until my question about local climate came up. After that, I didn’t want to look at seasonal data any other way.

Albuquerque highs 1930-2021
An example of a 3D surface chart used for revealing seasonal climate patterns. This particular chart shows the Albuquerque temperature highs from 1930-2021

This way of visualizing data can, and should be used for financial markets, because it provides insight into anomalous data points such as historic bubbles and crashes, in light of seasonal patterns.

Head on over to the chart generating tool to make your own interactive climate chart!

3D surface charts

Kauhajoki temp highs Excel 3D chart
Excel 3D surface plot of temp highs in Kauhajoki

It has been interesting trying to chart out climate trends the way I want. I couldn’t find the kind of surface plots that I was looking for on the Internet. You can always find information about local climate, and some websites will even show an annual temperature curve, but if you want anything beyond that, you have to make it yourself! I found that I could download daily records for specific land weather stations that belong to the Global Historical Climatology Network (GHCN) through the National Oceanic and Atmospheric Administration (NOAA). I entered the data for one of the stations into Excel and made a 3D surface chart from it, shown above. I wanted to get a clear, detailed picture of climate trends where I live, because the temperature had been climbing above freezing in the coldest months of the year in Finland, where I live.

I liked to be able to go outside and play ice hockey and shuffle around the fitness trail on my cross-country skis, but that didn’t seem to be possible very much anymore. When if first arrived in Finland, in 2008, we were having proper winters, with temperatures well below 20°C, for long periods, there was snow piled up high, and there was sea ice thick enough to drive a truck on. It did not seem to be that way anymore.

The Excel chart was helpful, and it gave me a better sense of what was going on with the climate where I lived. I could almost make out a warming trend by staring at my chart, standing back, and squinting. In any case, melting snow in January is normal here, but a lot of years are pretty cold, too. I wanted to explore some of the other weather stations nearby, but it was labor intensive to copy the data into Excel for each different weather station, especially since the API was only flexible enough to send one year of data at a time for a weather station. Another option was to make a JavaScript web app that would automatically download a range of years of data through the API by recursively asking for each year separately. I was very excited when I got that working! It gave me the freedom I wanted to download all of the data for any weather station that I wanted, and then make an Excel chart. This was great, but I knew I could improve the functionality even further with a third-party JavaScript data visualization library. I found several, and from those I decided on using Plotly, because it had a good selection of 3D charts. One of them that really helped the data to pop was the contour chart, which looks like a topographic terrain map. It was another rush of success for me when I got that working, which is a little bit addicting!

The next step was to improve performance. As it stood, the performance of my web app could politely be described as glacial. It took ten to fifteen minutes just to download the data for a weather station! To improve this meant downloading the entire GHCN-daily dataset, and serving it from my own database. The performance is still, um, something to improve upon, but at least now the web app is usable. You need a PC in order to get any real mileage out of it, although it is possible to load charts on a phone, if you are sufficiently patient and determined. In reality, the bigger screen you have, the more you will get out of the charting tool, because the charts are so very highly detailed.

Today I finally got around to adding an option for viewing the data as a 3D surface plot. Here’s one showing historical temperature highs in Albuquerque, New Mexico. It’s amazing how there appears to be no climate trend at all in certain inland locations, when compared with oceanic and coastal locations, where climate trends are dramatic, with alternating warm and cold periods over the course of years. This chart for Albuquerque does not show entire years that are warmer or colder, only a very steady annual temperature wave. Head on over to the web app to view the interactive chart.

Albuquerque highs 1930-2021
Albuquerque temperature highs 1930-2021