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
A chart showing daily temperature maximums in Death Valley between 1910 and 1961, and highlighting January 10, 1913, when it was 134.1°F.
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.

Have a look at an interactive version of the chart, to have your perspective changed about climate science! Run your own modifications to the data and view it in the chart, 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. Although the temperature is not recorded by a GHCN land station, the information available in GHCN verifies that that was the coldest day among Kittilä GHCN stations, giving a temperature of -47.2°C at the Kittilä Kaukonen station. 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. Have a look at an interactive version of the chart, and make your own new charts from nearby weather stations. 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 Kittilässä

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

Suomen alin lämpötila, -51.5°C, on mitattu Kittilän Pokan kylässä 28.1.1999. Ennätys ei ole merkitty GHCN:n sääasemalla, mutta GHCN:lta saatu tieto vahvistaa sen, että se oli Kittilän GHCN-asemien kylmin päivä, jolloin mitattiin -47.2°C lämpötila Kittilän Kaukosen kylän sääasemalla. Katso käyrän interaktiivinen versio, ja tee uusia käyriä 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. The organization showed me how they had been tracking month-to-month contributions throughout the year. The organization’s 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 app page 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

The Truth About El Niño

Chiclayo Peru temperature min
Chiclayo, Peru temperature maximums
Chiclayo Peru temperature min
Chiclayo, Peru temperature minimums

One of the most disruptive climate cycles is El Niño, which is a warm and rainy period that occurs roughly every four years. Intervals between two to seven years are common. El Niño is caused by changing ocean currents off the Pacific coast of central South America. Locally, it affects the fishing industry, agriculture, and interestingly the guano industry. The effects, however, are far-reaching, and can be observed around the globe. By looking at the interactive chart, you can pinpoint which years, and even which days were particularly warm near the coast of Peru, at the Chiclayo airport.

Brera Astronomical Observatory in Milan: The Oldest Weather Station

The oldest weather station in GHCN-daily, which is the data set used at Climate Binge, is the Brera Astronomical Observatory in Milan, in northern Italy. The data for the weather station begins in 1763, when the observatory was under construction. You can view the Milan data in the app here. The next oldest weather station is at the Clementinum in Prague. You can view the Prague data in the app here. Before Daniel Gabriel Fahrenheit invented the first mercury thermometer in 1714, weather data was imprecise. In order to get any data before that, we have to rely on things like tree ring analysis and Antarctic ice core analysis.


By looking at the chart, we can see that the winters of 1834/35 and 1835/36 were particularly long, meaning that the growing season of 1835 was short. These years are examples of the extreme cold weather brought on by the Little Ice Age, which lasted roughly between 1500 and 1900.

Have a look at the zipper line produced by leap days. The data from the Brera Astronomical Observatory is so old that you can see, in the zipper line, where leap days were skipped in 1800 and 1900.

New feature: data smoothing

I wouldn’t want to call this feature creep, because I have been wanting to enable data smoothing in the web app from the beginning. I was even using it in Excel, before I made it into a web app. Data smoothing is helpful because it removes noise, making the picture more clear, making it easier to see climate trends. I really like the effect that it has on contour maps, making them more continuous, so that you can see shapes in the picture. As with many other data visualization tools, noise reduction can be used improperly in order to mislead people. Don’t do it!

My noise reduction method is as simple as it gets, which is to take the average of each value and its preceding and following neighbors. At first, I only had data smoothing along the x-axis, and I felt trepidation about doing it in two dimensions. That would require more complex coding. Then I remembered that I already had a JavaScript function for transposing a chart, meaning that the x and y axes are flipped. I could just do the horizontal noise reduction, flip the axes, do another horizontal noise reduction on what used to be the data columns, and then flip the axes back the way they were again. What a relief! I would like to improve the data smoothing function so that there is more control over how aggressively it is applied, but I am happy to have something working to begin with.

Here is an example using temperature maximums from the Guadeloupe islands in the Carribean. With a little bit of noise reduction applied, the shapes in the image are much more apparent. Head on over to the app to view the interactive version of this chart.

Guadeloupe temp max without data smooting
Before noise reduction
Guadeloupe max temps with data smoothing
After noise reduction


Gunnison, Colorado is a Rocky Mountain town that gets cold in the winter. Best of all, it has a weather station that has been operated since 1892, which is very old for a weather station, since most weather stations were not installed before 1950. The following chart shows temperature maximums for the entire history of the weather station. You can modify the parameters for the chart yourself in the web app.

Gunnison Colorado

The Gunnison weather station produces this next chart for temperature minimums. Using the crosshair tool in the interactive chart, the temperatures on specific days can be identified. It shows that it got unseasonably hot on June 12, 1987, when the temperature was 86°F, or 30°C. The year before that, it was 19.9°F, or -6.7°C, on the same day! Western Colorado is indeed a cold place to be in the winter. On February 14, 1954, the temperature dropped to -40.6 C. Incidentally, -40 is the temperature where the scales for Fahrenheit and Celcius cross. You can make your own chart in the web app, with the following link, for the Gunnison weather station.

Gunnison, Colorado temperature minimums

There is also a chart for snow depth, which shows a vague 10-20 year cycle, and that it was especially snowy in 2007, when there was 97 inches of accumulated snow in January.

Gunnison Snow snow

You might have noticed that the months labeled acrosss the bottom of the charts are out of order. How embarrassing! Usually that doesn’t happen, but the data is a little bit glitchy for Gunnison. It’s common for weather stations to have periods of missing data, but whoever looks after the weather station at Gunnison has trouble keeping track of calendar days. This is apparent because February 29 should have a missing record for each non-leap year, but instead the missing record is moved over a few days. There should be a clean, vertical dotted white line at February 29, but for the Gunnison chart, the line is not all there. I can just imagine some poor weather station keeper, isolated in his cabin, not knowing exactly what day it is, and writing down temperatures in his notebook. This has somehow messed up my chart output, so that the months are shown incorrectly.

In any case, I’m pretty happy with my web app. I especially like it that other people are able to use it to perform their own science and come to their own conclusions about climate trends. There’s a lot of distrust and skepticism towards the scientific community, which leads to a need for people to be able have a look at the data themselves without having to rely on what they read in the news. This website is the kind of DIY science tool that the world needs.