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