https://blog.datawrapper.de/weekly39/
forked from 1wheel‘s block: summer-heat
(wanted to see how Loess regression looks like, instead of linear regression)
console.clear()
d3.select('body').selectAppend('div.tooltip.tooltip-hidden')
var loess = LoessJS()()
.bandwidth(0.43424)
.robustnessIterations(1);
var months = []
years.forEach(year => {
year.months
.forEach((d, i) => months.push({year: year.year, tmp: d, month: i}))
})
byMonth = d3.nestBy(months, d => d.month)
byMonth.forEach(month => {
month.forEach((d, i) => {
d.rolling = d3.mean(month.slice(i - 10, i + 1), d => d.tmp)
})
const sorted = month.sort((a,b) => a.year - b.year);
var xvals = sorted.map(d => d.year);
var yvals = sorted.map(d => d.tmp);
loess(xvals, yvals).forEach((tmpLoess, i) => {
sorted[i].tmpLoess = tmpLoess;
});
var monthReg = month.map(d => [d.year, d.tmp])
month.l = ss.linearRegressionLine(ss.linearRegression(monthReg))
month.min = d3.min(month, d => d.tmp)
if (month.key == 1) month.min += 2
if (month.key == 0) month.min += .6
})
var sel = d3.select('#graph').html('')
var c = d3.conventions({sel, margin: {left: 40}})
c.x.domain([0, 12])
c.y.domain(d3.extent(months, d => d.tmp))
c.svg.appendMany('rect', d3.range(12))
.at({
width: c.x(1),
x: d => c.x(d),
height: c.height,
opacity: d => d % 2 ? .04 : .08
})
c.xAxis
.tickFormat(i => 'Jan Feb March April May June July Aug Sept Oct Nov Dec'.split(' ')[i])
.tickValues(d3.range(12))
c.yAxis
.ticks(6)
.tickSize(c.width)
.tickFormat(d => d + '° C')
d3.drawAxis(c)
c.svg.select('.x')
.translate(0, 0)
.selectAll('.tick')
.translate(d => [c.x(d + .5), c.y(byMonth[d].min)])
c.svg.selectAll('.y')
.translate(c.width, 0)
var pad = innerWidth < 500 ? 3 : 10
var yearScale = d3.scaleLinear()
.domain(d3.extent(years, d => d.year))
.range([pad, c.x(1) - pad])
var line = d3.line()
.x(d => yearScale(d.year))
.y(d => c.y(d.tmpLoess))
.curve(d3.curveStep)
.defined(d => !isNaN(d.rolling))
var monthSel = c.svg.appendMany('g', byMonth)
.translate(d => c.x(d.key), 0)
var y0 = years[0].year
var y1 = 2017
monthSel.append('path')
.at({
d: line,
stroke: '#f0f',
strokeWidth: 2,
}).st({
fill: 'none',
fillOpacity: 0
})
.attr('marker-end', 'url(#arrow)')
months.forEach(d => delete d.rolling)
var circleSel = monthSel
.appendMany('circle', d => d)
.at({
r: .7,
strokeWidth: 5,
stroke: d => d.year == 1881 ? 'steelblue' : d.year == 2017 ? 'orange' : '#f00',
strokeOpacity: d => d.year == 1881 || d.year == 2017 ? .5 : .01,
stroke: '#f00',
strokeOpacity: .01,
opacity: innerWidth < 500 ? .7 : 1,
cx: d => yearScale(d.year),
cy: d => c.y(d.tmp)
})
.call(d3.attachTooltip)
.on('mouseover', d => {
circleSel
.classed('active', e => e.year == d.year)
})
.on('mouseout', d => {
circleSel.classed('active', 0)
})
// .classed('active', d => d.year == 1881 || d.year == 2017)
var octSel = monthSel.filter(d => d.key == 9)
octSel.append('g')
.translate(d => [pad - 27, c.y(d[0].tmp) + 2])
.append('text.anno').text(1881)
.at({textAnchor: 'end', dy: '-.3em', fontSize: 10, dx: 10, opacity: .6})
.parent()
.append('path')
.at({
d: 'M 0,0 A 13.09 13.09 0 1 0 26,1',
stroke: '#ccc',
fill: 'none',
})
octSel.append('g')
.translate(d => [c.x(1) - pad, c.y(d[136].tmp) - 2])
.append('text.anno').text(2017)
.at({textAnchor: 'start', dy: '1em', fontSize: 10, dx: 14, opacity: .6})
.parent()
.append('path')
.at({
d: 'M 0,0 A 13.09 13.09 0 1 1 26,1',
stroke: '#ccc',
fill: 'none',
})
c.svg.append('marker')
.attr('id', 'arrow')
.attr('viewBox', '-10 -10 20 20')
.attr('markerWidth', 17)
.attr('markerHeight', 17)
.attr('orient', 'auto')
.append('path')
.attr('d', 'M4,0 L0,-3 L 0,3Z')
.at({
fill: '#f0f'
})
<!DOCTYPE html>
<meta charset='utf-8'>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style.css">
<script src='https://unpkg.com/simple-statistics@6.1.0/dist/simple-statistics.min.js' />
<script>
console.log('hi')
</script>
<div id='graph'></div>
<script src='data.js'></script>
<script src='loess.js'></script>
<script src='d3_.js'></script>
<script src='_script.js'></script>
[{"months":[-5.4,-.1,2.6,5.6,11.8,15.1,18.6,15.9,12.1,5,5.7,.9],"avg_temp":7.31666666666667,"year":1881},{"months":[.4,1.5,6,7.7,12,14.3,16.8,14.9,13.1,8.9,3.9,.6],"avg_temp":8.34166666666667,"year":1882},{"months":[-.3,2.3,-1.7,6.1,12.4,16.2,16.7,15.9,13.4,8.5,4.3,.8],"avg_temp":7.88333333333333,"year":1883},{"months":[2.9,2.7,4.7,6.1,12.7,13.1,18.2,17,14.3,7.9,1.7,1.7],"avg_temp":8.58333333333333,"year":1884},{"months":[-2.8,3,2.5,9.2,10,16.7,17.3,14.6,12.7,7.4,2.7,-.3],"avg_temp":7.75,"year":1885},{"months":[-1.3,-2.9,.4,8.7,12.7,14.3,16.8,16.9,15.1,9.5,5.1,.8],"avg_temp":8.00833333333333,"year":1886},{"months":[-3.7,-.8,1.1,7.1,10,15.5,18.7,15.7,12.2,5.5,3.1,-.8],"avg_temp":6.96666666666667,"year":1887},{"months":[-1.9,-2.6,.7,5.7,12.1,15.8,14.7,15.1,12.5,6.4,3.3,.6],"avg_temp":6.86666666666667,"year":1888},{"months":[-2.4,-2.6,.3,6.9,15.8,18.6,16.4,15.4,11.1,8,2.7,-1.6],"avg_temp":7.38333333333333,"year":1889},{"months":[2,-2.6,4.1,6.8,13.6,13.9,15.4,16.5,13.1,7.2,2.9,-5.3],"avg_temp":7.3,"year":1890},{"months":[-4.5,-.6,2.6,5.1,12.7,14.7,16.2,15,13.8,9.9,2.7,1.7],"avg_temp":7.44166666666667,"year":1891},{"months":[-1.8,.5,.5,7,12.2,15.1,16,18.1,13.8,7.5,3,-1.9],"avg_temp":7.5,"year":1892},{"months":[-7.3,1.8,4.3,8.8,12.3,15.8,17.4,17,12.4,9.8,2.2,.3],"avg_temp":7.9,"year":1893},{"months":[-1.8,1.6,4.7,9.9,11.3,14.2,17.8,15.4,11,8,4.9,.5],"avg_temp":8.125,"year":1894},{"months":[-4,-6.8,1.4,8.6,12.2,15.7,17.2,16.5,15.2,7.1,4.8,-.1],"avg_temp":7.31666666666667,"year":1895},{"months":[-.8,-.2,5.3,5.9,10.7,16.7,17,14.3,12.8,8.6,1.2,-.5],"avg_temp":7.58333333333333,"year":1896},{"months":[-2.9,1.2,5,7.2,10.6,17,16.5,17.1,12.3,7.3,2.8,1.3],"avg_temp":7.95,"year":1897},{"months":[2.3,1.1,2.9,7.3,11.3,14.8,14.4,18,13.6,8.9,4.7,3],"avg_temp":8.525,"year":1898},{"months":[2.1,2,2.6,7.1,11.1,14.7,17.3,16.8,12.5,7.8,6.4,-3.3],"avg_temp":8.09166666666667,"year":1899},{"months":[.7,1.1,.6,6.5,10.8,16,18.4,16.2,13.8,8.6,4.7,2.8],"avg_temp":8.35,"year":1900},{"months":[-3.7,-4.1,2.1,8,12.8,15.6,18.5,16.4,13.4,9.1,2.7,.9],"avg_temp":7.64166666666667,"year":1901},{"months":[2.8,-1.3,3.4,7.8,8.6,15.3,15.8,14.7,12,7.1,1.6,-1.8],"avg_temp":7.16666666666667,"year":1902},{"months":[.3,3.6,5.7,4.7,12.6,14.8,16.2,15.4,13.5,9.6,4.4,-.8],"avg_temp":8.33333333333333,"year":1903},{"months":[-1.3,1.1,3,8.8,12.3,15.2,18.8,16.5,11.9,8.3,3.3,2.4],"avg_temp":8.35833333333333,"year":1904},{"months":[-1.8,1.3,4.5,5.9,12.1,17,18.6,16.5,12.8,4.5,3.1,1],"avg_temp":7.95833333333333,"year":1905},{"months":[1,.3,2.2,8,13.1,14.7,17.2,16.5,12.5,9.8,6.3,-2.2],"avg_temp":8.28333333333333,"year":1906},{"months":[-.3,-1.5,2.6,6.1,12.9,14.6,14.5,15.7,13.1,11.2,3.3,1.5],"avg_temp":7.80833333333333,"year":1907},{"months":[-2.2,1.2,2.3,5.4,13.2,17,17.2,14.5,12.1,8.1,1.5,-.5],"avg_temp":7.48333333333333,"year":1908},{"months":[-1.6,-2.5,1.5,7.8,10.9,14.1,15,16.2,12.7,10.2,2,1.9],"avg_temp":7.35,"year":1909},{"months":[1.4,2.4,3.7,7.3,12.3,16.5,15.5,15.8,12,9.1,2.2,2.6],"avg_temp":8.4,"year":1910},{"months":[-1.1,1.3,4,7.2,13.1,14.9,19.2,19.4,14.4,8.5,4.7,3],"avg_temp":9.05,"year":1911},{"months":[-1.5,2.3,6,6.9,11.9,15.6,17.9,14,9.1,6.5,2.6,3.1],"avg_temp":7.86666666666667,"year":1912},{"months":[-.2,1.3,6,7.8,12.4,14.8,14.6,14.8,12.6,9.5,6.8,2],"avg_temp":8.53333333333333,"year":1913},{"months":[-3,3.1,4.7,9.8,10.9,14.6,17.6,17.2,12.4,8.2,3.4,3.5],"avg_temp":8.53333333333333,"year":1914},{"months":[.2,1,1.7,6.9,13.1,17.5,16.2,15.2,11.8,6.4,1.5,3.5],"avg_temp":7.91666666666667,"year":1915},{"months":[3.8,.8,3.9,8.2,13.1,12.8,16,15.9,12,8.5,4.5,1.8],"avg_temp":8.44166666666667,"year":1916},{"months":[-2.6,-3.8,0,4.3,15,18.8,17.3,16.7,14.5,7.2,5.1,-2.1],"avg_temp":7.53333333333333,"year":1917},{"months":[.7,1.7,4,9,14,13,16.5,15.9,12.9,7.9,3,3.9],"avg_temp":8.54166666666667,"year":1918},{"months":[.7,-.5,3,5.6,11.6,15,14.4,16.1,14.7,6,.5,.8],"avg_temp":7.325,"year":1919},{"months":[2.3,3,6.1,9.4,13.8,14.9,17.4,15,13,6.9,1.2,.6],"avg_temp":8.63333333333333,"year":1920},{"months":[4.2,1.3,5.6,7.8,14,14.4,18.7,17.3,13.5,11,-.2,.5],"avg_temp":9.00833333333333,"year":1921},{"months":[-2.7,-1.3,3.5,5.5,13.6,15.7,15.7,15.4,11.2,5,2.5,2.2],"avg_temp":7.19166666666667,"year":1922},{"months":[1.5,1,4.9,6.8,11.4,11.2,18.6,15.7,13.1,10.3,2.9,-1.7],"avg_temp":7.975,"year":1923},{"months":[-2.9,-2.6,2.2,6.3,13.7,15.1,16.7,14.5,13.6,9.4,3,1.5],"avg_temp":7.54166666666667,"year":1924},{"months":[2.5,3.6,1.3,8.2,13.9,15,17.9,16.5,11,8.5,2,-.4],"avg_temp":8.33333333333333,"year":1925},{"months":[0,4.4,4,9.7,10.7,13.8,17.4,16,14.6,7.8,6,.6],"avg_temp":8.75,"year":1926},{"months":[1.8,.9,5.9,7.1,10.9,14.1,17.3,16.4,13.5,8.6,2.7,-2.6],"avg_temp":8.05,"year":1927},{"months":[1.6,2.5,2.9,7.5,10.1,14.1,18.4,16.2,12.5,8.6,6.2,-.3],"avg_temp":8.35833333333333,"year":1928},{"months":[-4.7,-9.6,2.6,4.5,13.1,14.5,17.5,17.1,15.5,9.7,4.7,3.6],"avg_temp":7.375,"year":1929},{"months":[2.3,-.2,4.2,8.3,11.6,18.2,16.4,16,13.2,8.7,5.9,.6],"avg_temp":8.76666666666667,"year":1930},{"months":[.2,-1.2,.2,5.8,15.1,16.1,16.8,15.4,10.2,7.3,4.7,.1],"avg_temp":7.55833333333333,"year":1931},{"months":[1.8,-1.9,.8,7,12.5,14.6,17.9,18.7,15,8.5,4.2,.8],"avg_temp":8.325,"year":1932},{"months":[-2.6,.1,5.1,7,11.5,14.3,18.1,16.9,13.5,8.8,2.5,-3.9],"avg_temp":7.60833333333333,"year":1933},{"months":[.5,1.2,4.1,10.3,13.3,16.4,18.3,16.4,15.6,9.6,4.1,4.8],"avg_temp":9.55,"year":1934},{"months":[-.8,1.9,2.7,7.3,10.5,17.2,17.8,16.6,13.7,8.6,5.2,.4],"avg_temp":8.425,"year":1935},{"months":[3.1,.2,5,6.2,12.3,16.2,16.8,16.2,13,6.4,3.8,1.5],"avg_temp":8.39166666666667,"year":1936},{"months":[-.8,2.2,2.9,8,14.7,16.3,17.2,17.1,13.3,9.5,3.3,-.5],"avg_temp":8.6,"year":1937},{"months":[1.7,.9,7,5,10.7,16,16.7,17.7,13.8,8.7,7,-1.9],"avg_temp":8.60833333333333,"year":1938},{"months":[2.6,1.6,1.7,8.6,10.5,16.3,17,17.5,13.4,6.5,5.5,-1.6],"avg_temp":8.3,"year":1939},{"months":[-9,-4.3,2.8,7.9,12.2,16.7,16.2,14.5,12.4,7.6,5.4,-2.8],"avg_temp":6.63333333333333,"year":1940},{"months":[-5.4,-.2,3.3,5.5,9.2,16.3,18.6,15,12.3,8,2,1.5],"avg_temp":7.175,"year":1941},{"months":[-7.9,-5.4,1.4,7.5,12.1,14.4,16.1,17.6,15.1,11.1,3.3,2.1],"avg_temp":7.28333333333333,"year":1942},{"months":[-.4,2.9,5.6,9.3,12.8,14.4,17.7,17.9,13.8,9.9,2.7,.2],"avg_temp":8.9,"year":1943},{"months":[3.1,-1.1,.9,8.6,11.6,14.2,17.4,19.6,12.8,8.6,4.1,-.4],"avg_temp":8.28333333333333,"year":1944},{"months":[-4,4,6,8.8,14,16.6,17.9,16.2,13.8,9.7,3.6,1.3],"avg_temp":8.99166666666667,"year":1945},{"months":[-1.8,2.4,3.7,10.2,13.9,14.8,18.4,16.2,14.1,7,4,-2.3],"avg_temp":8.38333333333333,"year":1946},{"months":[-4.7,-6.6,2.6,9.4,14.7,17.9,18.9,18.9,16.8,7.8,5.3,1.4],"avg_temp":8.53333333333333,"year":1947},{"months":[3.1,.5,5.7,10,13.6,15.6,16.2,16.4,13.8,8.7,4.2,.9],"avg_temp":9.05833333333333,"year":1948},{"months":[1.2,1.7,2,10.3,12.2,14.1,17.6,17,16.3,10.6,3.7,3],"avg_temp":9.14166666666667,"year":1949},{"months":[-1,3,4.8,6.8,13.8,17.6,18,17.5,12.9,7.8,4.3,-2],"avg_temp":8.625,"year":1950},{"months":[1.5,1.9,2.2,7.3,11.5,15.3,17.1,17.2,14.5,7.3,6.5,2.5],"avg_temp":8.73333333333333,"year":1951},{"months":[.2,-.1,2.6,10.3,12.3,15.2,18.3,17.8,10.5,7.2,1.7,-.5],"avg_temp":7.95833333333333,"year":1952},{"months":[-.8,-.1,4.8,9,13.2,16.1,17.4,16.4,13.5,10.4,4.8,2.5],"avg_temp":8.93333333333333,"year":1953},{"months":[-3.2,-3.5,4.3,5.8,12.2,16,14.4,15.8,13.5,9.9,4.1,3.2],"avg_temp":7.70833333333333,"year":1954},{"months":[-1.7,-1.9,.4,6.9,10.3,14.6,17.4,16.8,13.4,8,3.8,2.6],"avg_temp":7.55,"year":1955},{"months":[.2,-9.6,2.9,5.3,12.5,13.2,16.9,14.1,13.8,8.2,2.5,2],"avg_temp":6.83333333333333,"year":1956},{"months":[.3,3.8,6.4,7.5,9.7,16.7,17.7,15.1,11.8,9.2,4.5,.5],"avg_temp":8.6,"year":1957},{"months":[-.4,1.9,-.3,5.2,13.3,14.5,17,16.9,14.5,9.3,4.3,2.5],"avg_temp":8.225,"year":1958},{"months":[-.1,-.1,6.2,9.4,12.7,16.1,19.3,17.3,13.5,8.5,3.3,2.2],"avg_temp":9.025,"year":1959},{"months":[-.1,.4,4.3,7.4,12.8,16.2,15.4,15.8,12.5,9.1,6,1.2],"avg_temp":8.41666666666667,"year":1960},{"months":[-.8,4.4,6,10.6,10.3,16,15.1,15.7,16.3,10.5,3.7,-.6],"avg_temp":8.93333333333333,"year":1961},{"months":[1.7,.3,.2,8.2,9.8,14.2,15,15.8,12.3,9,2.7,-3.3],"avg_temp":7.15833333333333,"year":1962},{"months":[-7.4,-5.7,2.5,8.4,12,15.8,17.7,15.9,13.7,8.1,7.4,-3.1],"avg_temp":7.10833333333333,"year":1963},{"months":[-2.6,.6,.6,8.6,13.6,16.9,18.1,15.9,13.6,7.1,4.9,.4],"avg_temp":8.14166666666667,"year":1964},{"months":[1.2,-1.8,2.3,6.7,11.2,15.5,15,14.9,12.7,8.2,1.4,2.6],"avg_temp":7.49166666666667,"year":1965},{"months":[-2.7,3.5,3.3,8.6,13,16.9,15.6,15.5,13.2,11.1,2.2,2],"avg_temp":8.51666666666667,"year":1966},{"months":[.7,2.8,5.4,6.5,12.5,14.7,18.6,16.4,13.8,11.1,3.9,.4],"avg_temp":8.9,"year":1967},{"months":[-1.1,.7,4.4,9,10.9,16,16.2,16.4,13.4,10.2,3.7,-2],"avg_temp":8.15,"year":1968},{"months":[.5,-2.1,.9,7,12.9,14.8,18.4,16.5,13.8,10,5.1,-4.7],"avg_temp":7.75833333333333,"year":1969},{"months":[-2.6,-1.1,1.2,5.3,11.4,17.2,16.1,16.8,13.2,8.9,5.8,.5],"avg_temp":7.725,"year":1970},{"months":[-1.1,1.4,1,8.2,14,13.9,18,17.8,12,8.8,3.5,3.6],"avg_temp":8.425,"year":1971},{"months":[-2.3,2,5.3,7.2,11.3,14.5,17.7,15.7,10.7,6.8,4.3,.8],"avg_temp":7.83333333333333,"year":1972},{"months":[0,1,3.9,5.1,12.5,16.1,17.2,17.7,14.1,7.3,3.3,.2],"avg_temp":8.2,"year":1973},{"months":[3.3,3.2,5.7,8,11,14.1,15.3,17.1,13.2,5.5,4.9,4.8],"avg_temp":8.84166666666667,"year":1974},{"months":[4.5,1.4,3.6,6.8,11.8,14.7,18.2,18.8,15.5,7.5,3.1,1.2],"avg_temp":8.925,"year":1975},{"months":[1.2,.5,1.3,6.9,12.8,17.4,19.3,16.2,12.7,9.5,4.8,-1],"avg_temp":8.46666666666667,"year":1976},{"months":[.4,3,6.1,5.7,11.7,15.5,16.5,15.9,11.9,10.2,5.1,2.1],"avg_temp":8.675,"year":1977},{"months":[.8,-1.4,4.8,6.5,11.6,14.8,15.5,15.1,12.2,9.1,4.2,.3],"avg_temp":7.79166666666667,"year":1978},{"months":[-4.5,-1.8,3.7,6.3,12.4,16.5,15.3,15.5,13.1,8.6,3.7,3.8],"avg_temp":7.71666666666667,"year":1979},{"months":[-2.7,2.1,3.3,6,10.7,14.7,15.1,16.6,13.9,8,3,.7],"avg_temp":7.61666666666667,"year":1980},{"months":[-1.5,-.4,6.8,7.8,13.2,15.3,16.4,16.4,14,8.1,4.6,-2.2],"avg_temp":8.20833333333333,"year":1981},{"months":[-2.3,-.1,4.2,6.5,12.4,16.3,18.9,17.3,15.7,9.7,6,2.2],"avg_temp":8.9,"year":1982},{"months":[4,-1.7,4.6,8.6,11.3,16.3,20.4,18.1,13.7,9.2,3.5,.7],"avg_temp":9.05833333333333,"year":1983},{"months":[1.1,-.3,2,6.8,10.8,13.7,15.9,17,12.3,10.2,4.9,1.2],"avg_temp":7.96666666666667,"year":1984},{"months":[-5.5,-3.1,2.8,7.6,13.4,13.5,17.4,16.2,13.5,8.8,.8,3.7],"avg_temp":7.425,"year":1985},{"months":[.1,-6.4,3,6.3,14.1,15.9,17,16.3,11.3,9.6,5.9,2.1],"avg_temp":7.93333333333333,"year":1986},{"months":[-5.9,-.3,-.4,9.1,9.7,13.9,16.9,15.5,14.5,9.4,4.9,2.1],"avg_temp":7.45,"year":1987},{"months":[3.5,2.1,2.7,8,14.2,15,17,17,13.2,9.7,3,3.4],"avg_temp":9.06666666666667,"year":1988},{"months":[2.5,3.4,7,7.2,13.8,15.3,17.7,17,14.4,10.4,2.7,2.4],"avg_temp":9.48333333333333,"year":1989},{"months":[2.5,5.7,6.9,7.4,13.9,15.2,16.7,18.3,11.8,10.2,4.5,.8],"avg_temp":9.49166666666667,"year":1990},{"months":[1.5,-2.4,6.4,7.1,9.5,13.5,19.2,17.9,14.8,8.2,4,.7],"avg_temp":8.36666666666667,"year":1991},{"months":[1,2.8,4.8,7.8,14.5,17.3,18.6,19.1,13.4,6.5,5.4,1.3],"avg_temp":9.375,"year":1992},{"months":[2.5,-.7,3.6,10.4,14.6,15.7,16.1,15.8,12.2,7.9,.4,3.2],"avg_temp":8.475,"year":1993},{"months":[3,-.2,6.3,7.9,12.6,15.9,21.3,17.8,13.2,7.6,7.2,3.6],"avg_temp":9.68333333333333,"year":1994},{"months":[.2,4.6,3.1,8.5,12.2,14.3,20.1,18.3,12.6,11.8,3,-1.8],"avg_temp":8.90833333333333,"year":1995},{"months":[-2.8,-2.2,1,8.4,11.2,15.7,15.9,17.2,10.9,9.2,4.5,-2.4],"avg_temp":7.21666666666667,"year":1996},{"months":[-2.6,4.1,5.8,6.4,12.7,15.9,17.2,19.8,13.7,7.7,4,2.2],"avg_temp":8.90833333333333,"year":1997},{"months":[2.4,4.3,5,8.9,14,16.5,16.4,16.7,13.4,8.7,1.6,1],"avg_temp":9.075,"year":1998},{"months":[2.6,.4,5.4,8.9,13.8,15.2,19,17.2,16.8,9,3.5,2.2],"avg_temp":9.5,"year":1999},{"months":[1.1,3.9,5.2,10.2,14.6,17,15.3,17.6,13.9,10.6,6.1,3.1],"avg_temp":9.88333333333333,"year":2e3},{"months":[.9,2.3,4.2,7.1,14.4,14.3,18.6,18.6,11.8,12.5,3.8,-.2],"avg_temp":9.025,"year":2001},{"months":[1.2,5.1,5.4,8.1,13.8,17.4,17.7,18.8,13.2,8.3,5.6,.3],"avg_temp":9.575,"year":2002},{"months":[-.3,-1.9,5.3,8.5,14.1,19.4,19.1,20.6,13.9,5.9,6,1.8],"avg_temp":9.36666666666667,"year":2003},{"months":[-.1,2.4,4.1,9.4,11.6,15.3,16.8,18.4,14,10.1,4.2,1.1],"avg_temp":8.94166666666667,"year":2004},{"months":[2,-1,3.6,9.3,12.8,16.4,18,15.8,15,11,4.2,.9],"avg_temp":9,"year":2005},{"months":[-2.6,-.4,1.5,8,13.1,16.8,22,15.5,16.9,12.1,7,4.4],"avg_temp":9.525,"year":2006},{"months":[4.8,3.9,6.2,11.5,14.2,17.4,17.2,16.9,12.6,8.4,3.7,1.6],"avg_temp":9.86666666666667,"year":2007},{"months":[3.7,3.7,4.2,7.6,14.5,16.9,18,17.4,12.4,9.1,5.1,1.1],"avg_temp":9.475,"year":2008},{"months":[-2.2,.5,4.3,11.8,13.6,14.8,18,18.7,14.7,8.2,7.4,.3],"avg_temp":9.175,"year":2009},{"months":[-3.7,-.5,4.2,8.7,10.4,16.3,20.3,16.7,12.4,8.1,4.8,-3.7],"avg_temp":7.83333333333333,"year":2010},{"months":[1,.9,4.9,11.6,13.9,16.5,16.1,17.7,15.2,9.4,4.5,3.9],"avg_temp":9.63333333333333,"year":2011},{"months":[1.9,-2.5,6.9,8.2,14.2,15.5,17.4,18.4,13.6,8.7,5.2,1.5],"avg_temp":9.08333333333333,"year":2012},{"months":[.2,-.7,.1,8.1,11.8,15.7,19.5,17.9,13.3,10.6,4.6,3.6],"avg_temp":8.725,"year":2013},{"months":[2.1,4.3,6.9,10.8,12.4,16.1,19.3,16,14.9,11.9,6.5,2.7],"avg_temp":10.325,"year":2014},{"months":[2.2,.7,5.2,8.4,12.3,15.8,19.4,19.9,13,8.4,7.5,6.5],"avg_temp":9.94166666666667,"year":2015},{"months":[1,3.3,4,7.9,13.7,17,18.6,17.7,16.9,8.5,3.8,2.2],"avg_temp":9.55,"year":2016},{"months":[-2.2,2.9,7.2,7.4,14.1,17.8,18.1,17.9,12.8,11.1,5.1,2.7],"avg_temp":9.575,"year":2017}]
var years = [{"months":[-5.4,-.1,2.6,5.6,11.8,15.1,18.6,15.9,12.1,5,5.7,.9],"avg_temp":7.31666666666667,"year":1881},{"months":[.4,1.5,6,7.7,12,14.3,16.8,14.9,13.1,8.9,3.9,.6],"avg_temp":8.34166666666667,"year":1882},{"months":[-.3,2.3,-1.7,6.1,12.4,16.2,16.7,15.9,13.4,8.5,4.3,.8],"avg_temp":7.88333333333333,"year":1883},{"months":[2.9,2.7,4.7,6.1,12.7,13.1,18.2,17,14.3,7.9,1.7,1.7],"avg_temp":8.58333333333333,"year":1884},{"months":[-2.8,3,2.5,9.2,10,16.7,17.3,14.6,12.7,7.4,2.7,-.3],"avg_temp":7.75,"year":1885},{"months":[-1.3,-2.9,.4,8.7,12.7,14.3,16.8,16.9,15.1,9.5,5.1,.8],"avg_temp":8.00833333333333,"year":1886},{"months":[-3.7,-.8,1.1,7.1,10,15.5,18.7,15.7,12.2,5.5,3.1,-.8],"avg_temp":6.96666666666667,"year":1887},{"months":[-1.9,-2.6,.7,5.7,12.1,15.8,14.7,15.1,12.5,6.4,3.3,.6],"avg_temp":6.86666666666667,"year":1888},{"months":[-2.4,-2.6,.3,6.9,15.8,18.6,16.4,15.4,11.1,8,2.7,-1.6],"avg_temp":7.38333333333333,"year":1889},{"months":[2,-2.6,4.1,6.8,13.6,13.9,15.4,16.5,13.1,7.2,2.9,-5.3],"avg_temp":7.3,"year":1890},{"months":[-4.5,-.6,2.6,5.1,12.7,14.7,16.2,15,13.8,9.9,2.7,1.7],"avg_temp":7.44166666666667,"year":1891},{"months":[-1.8,.5,.5,7,12.2,15.1,16,18.1,13.8,7.5,3,-1.9],"avg_temp":7.5,"year":1892},{"months":[-7.3,1.8,4.3,8.8,12.3,15.8,17.4,17,12.4,9.8,2.2,.3],"avg_temp":7.9,"year":1893},{"months":[-1.8,1.6,4.7,9.9,11.3,14.2,17.8,15.4,11,8,4.9,.5],"avg_temp":8.125,"year":1894},{"months":[-4,-6.8,1.4,8.6,12.2,15.7,17.2,16.5,15.2,7.1,4.8,-.1],"avg_temp":7.31666666666667,"year":1895},{"months":[-.8,-.2,5.3,5.9,10.7,16.7,17,14.3,12.8,8.6,1.2,-.5],"avg_temp":7.58333333333333,"year":1896},{"months":[-2.9,1.2,5,7.2,10.6,17,16.5,17.1,12.3,7.3,2.8,1.3],"avg_temp":7.95,"year":1897},{"months":[2.3,1.1,2.9,7.3,11.3,14.8,14.4,18,13.6,8.9,4.7,3],"avg_temp":8.525,"year":1898},{"months":[2.1,2,2.6,7.1,11.1,14.7,17.3,16.8,12.5,7.8,6.4,-3.3],"avg_temp":8.09166666666667,"year":1899},{"months":[.7,1.1,.6,6.5,10.8,16,18.4,16.2,13.8,8.6,4.7,2.8],"avg_temp":8.35,"year":1900},{"months":[-3.7,-4.1,2.1,8,12.8,15.6,18.5,16.4,13.4,9.1,2.7,.9],"avg_temp":7.64166666666667,"year":1901},{"months":[2.8,-1.3,3.4,7.8,8.6,15.3,15.8,14.7,12,7.1,1.6,-1.8],"avg_temp":7.16666666666667,"year":1902},{"months":[.3,3.6,5.7,4.7,12.6,14.8,16.2,15.4,13.5,9.6,4.4,-.8],"avg_temp":8.33333333333333,"year":1903},{"months":[-1.3,1.1,3,8.8,12.3,15.2,18.8,16.5,11.9,8.3,3.3,2.4],"avg_temp":8.35833333333333,"year":1904},{"months":[-1.8,1.3,4.5,5.9,12.1,17,18.6,16.5,12.8,4.5,3.1,1],"avg_temp":7.95833333333333,"year":1905},{"months":[1,.3,2.2,8,13.1,14.7,17.2,16.5,12.5,9.8,6.3,-2.2],"avg_temp":8.28333333333333,"year":1906},{"months":[-.3,-1.5,2.6,6.1,12.9,14.6,14.5,15.7,13.1,11.2,3.3,1.5],"avg_temp":7.80833333333333,"year":1907},{"months":[-2.2,1.2,2.3,5.4,13.2,17,17.2,14.5,12.1,8.1,1.5,-.5],"avg_temp":7.48333333333333,"year":1908},{"months":[-1.6,-2.5,1.5,7.8,10.9,14.1,15,16.2,12.7,10.2,2,1.9],"avg_temp":7.35,"year":1909},{"months":[1.4,2.4,3.7,7.3,12.3,16.5,15.5,15.8,12,9.1,2.2,2.6],"avg_temp":8.4,"year":1910},{"months":[-1.1,1.3,4,7.2,13.1,14.9,19.2,19.4,14.4,8.5,4.7,3],"avg_temp":9.05,"year":1911},{"months":[-1.5,2.3,6,6.9,11.9,15.6,17.9,14,9.1,6.5,2.6,3.1],"avg_temp":7.86666666666667,"year":1912},{"months":[-.2,1.3,6,7.8,12.4,14.8,14.6,14.8,12.6,9.5,6.8,2],"avg_temp":8.53333333333333,"year":1913},{"months":[-3,3.1,4.7,9.8,10.9,14.6,17.6,17.2,12.4,8.2,3.4,3.5],"avg_temp":8.53333333333333,"year":1914},{"months":[.2,1,1.7,6.9,13.1,17.5,16.2,15.2,11.8,6.4,1.5,3.5],"avg_temp":7.91666666666667,"year":1915},{"months":[3.8,.8,3.9,8.2,13.1,12.8,16,15.9,12,8.5,4.5,1.8],"avg_temp":8.44166666666667,"year":1916},{"months":[-2.6,-3.8,0,4.3,15,18.8,17.3,16.7,14.5,7.2,5.1,-2.1],"avg_temp":7.53333333333333,"year":1917},{"months":[.7,1.7,4,9,14,13,16.5,15.9,12.9,7.9,3,3.9],"avg_temp":8.54166666666667,"year":1918},{"months":[.7,-.5,3,5.6,11.6,15,14.4,16.1,14.7,6,.5,.8],"avg_temp":7.325,"year":1919},{"months":[2.3,3,6.1,9.4,13.8,14.9,17.4,15,13,6.9,1.2,.6],"avg_temp":8.63333333333333,"year":1920},{"months":[4.2,1.3,5.6,7.8,14,14.4,18.7,17.3,13.5,11,-.2,.5],"avg_temp":9.00833333333333,"year":1921},{"months":[-2.7,-1.3,3.5,5.5,13.6,15.7,15.7,15.4,11.2,5,2.5,2.2],"avg_temp":7.19166666666667,"year":1922},{"months":[1.5,1,4.9,6.8,11.4,11.2,18.6,15.7,13.1,10.3,2.9,-1.7],"avg_temp":7.975,"year":1923},{"months":[-2.9,-2.6,2.2,6.3,13.7,15.1,16.7,14.5,13.6,9.4,3,1.5],"avg_temp":7.54166666666667,"year":1924},{"months":[2.5,3.6,1.3,8.2,13.9,15,17.9,16.5,11,8.5,2,-.4],"avg_temp":8.33333333333333,"year":1925},{"months":[0,4.4,4,9.7,10.7,13.8,17.4,16,14.6,7.8,6,.6],"avg_temp":8.75,"year":1926},{"months":[1.8,.9,5.9,7.1,10.9,14.1,17.3,16.4,13.5,8.6,2.7,-2.6],"avg_temp":8.05,"year":1927},{"months":[1.6,2.5,2.9,7.5,10.1,14.1,18.4,16.2,12.5,8.6,6.2,-.3],"avg_temp":8.35833333333333,"year":1928},{"months":[-4.7,-9.6,2.6,4.5,13.1,14.5,17.5,17.1,15.5,9.7,4.7,3.6],"avg_temp":7.375,"year":1929},{"months":[2.3,-.2,4.2,8.3,11.6,18.2,16.4,16,13.2,8.7,5.9,.6],"avg_temp":8.76666666666667,"year":1930},{"months":[.2,-1.2,.2,5.8,15.1,16.1,16.8,15.4,10.2,7.3,4.7,.1],"avg_temp":7.55833333333333,"year":1931},{"months":[1.8,-1.9,.8,7,12.5,14.6,17.9,18.7,15,8.5,4.2,.8],"avg_temp":8.325,"year":1932},{"months":[-2.6,.1,5.1,7,11.5,14.3,18.1,16.9,13.5,8.8,2.5,-3.9],"avg_temp":7.60833333333333,"year":1933},{"months":[.5,1.2,4.1,10.3,13.3,16.4,18.3,16.4,15.6,9.6,4.1,4.8],"avg_temp":9.55,"year":1934},{"months":[-.8,1.9,2.7,7.3,10.5,17.2,17.8,16.6,13.7,8.6,5.2,.4],"avg_temp":8.425,"year":1935},{"months":[3.1,.2,5,6.2,12.3,16.2,16.8,16.2,13,6.4,3.8,1.5],"avg_temp":8.39166666666667,"year":1936},{"months":[-.8,2.2,2.9,8,14.7,16.3,17.2,17.1,13.3,9.5,3.3,-.5],"avg_temp":8.6,"year":1937},{"months":[1.7,.9,7,5,10.7,16,16.7,17.7,13.8,8.7,7,-1.9],"avg_temp":8.60833333333333,"year":1938},{"months":[2.6,1.6,1.7,8.6,10.5,16.3,17,17.5,13.4,6.5,5.5,-1.6],"avg_temp":8.3,"year":1939},{"months":[-9,-4.3,2.8,7.9,12.2,16.7,16.2,14.5,12.4,7.6,5.4,-2.8],"avg_temp":6.63333333333333,"year":1940},{"months":[-5.4,-.2,3.3,5.5,9.2,16.3,18.6,15,12.3,8,2,1.5],"avg_temp":7.175,"year":1941},{"months":[-7.9,-5.4,1.4,7.5,12.1,14.4,16.1,17.6,15.1,11.1,3.3,2.1],"avg_temp":7.28333333333333,"year":1942},{"months":[-.4,2.9,5.6,9.3,12.8,14.4,17.7,17.9,13.8,9.9,2.7,.2],"avg_temp":8.9,"year":1943},{"months":[3.1,-1.1,.9,8.6,11.6,14.2,17.4,19.6,12.8,8.6,4.1,-.4],"avg_temp":8.28333333333333,"year":1944},{"months":[-4,4,6,8.8,14,16.6,17.9,16.2,13.8,9.7,3.6,1.3],"avg_temp":8.99166666666667,"year":1945},{"months":[-1.8,2.4,3.7,10.2,13.9,14.8,18.4,16.2,14.1,7,4,-2.3],"avg_temp":8.38333333333333,"year":1946},{"months":[-4.7,-6.6,2.6,9.4,14.7,17.9,18.9,18.9,16.8,7.8,5.3,1.4],"avg_temp":8.53333333333333,"year":1947},{"months":[3.1,.5,5.7,10,13.6,15.6,16.2,16.4,13.8,8.7,4.2,.9],"avg_temp":9.05833333333333,"year":1948},{"months":[1.2,1.7,2,10.3,12.2,14.1,17.6,17,16.3,10.6,3.7,3],"avg_temp":9.14166666666667,"year":1949},{"months":[-1,3,4.8,6.8,13.8,17.6,18,17.5,12.9,7.8,4.3,-2],"avg_temp":8.625,"year":1950},{"months":[1.5,1.9,2.2,7.3,11.5,15.3,17.1,17.2,14.5,7.3,6.5,2.5],"avg_temp":8.73333333333333,"year":1951},{"months":[.2,-.1,2.6,10.3,12.3,15.2,18.3,17.8,10.5,7.2,1.7,-.5],"avg_temp":7.95833333333333,"year":1952},{"months":[-.8,-.1,4.8,9,13.2,16.1,17.4,16.4,13.5,10.4,4.8,2.5],"avg_temp":8.93333333333333,"year":1953},{"months":[-3.2,-3.5,4.3,5.8,12.2,16,14.4,15.8,13.5,9.9,4.1,3.2],"avg_temp":7.70833333333333,"year":1954},{"months":[-1.7,-1.9,.4,6.9,10.3,14.6,17.4,16.8,13.4,8,3.8,2.6],"avg_temp":7.55,"year":1955},{"months":[.2,-9.6,2.9,5.3,12.5,13.2,16.9,14.1,13.8,8.2,2.5,2],"avg_temp":6.83333333333333,"year":1956},{"months":[.3,3.8,6.4,7.5,9.7,16.7,17.7,15.1,11.8,9.2,4.5,.5],"avg_temp":8.6,"year":1957},{"months":[-.4,1.9,-.3,5.2,13.3,14.5,17,16.9,14.5,9.3,4.3,2.5],"avg_temp":8.225,"year":1958},{"months":[-.1,-.1,6.2,9.4,12.7,16.1,19.3,17.3,13.5,8.5,3.3,2.2],"avg_temp":9.025,"year":1959},{"months":[-.1,.4,4.3,7.4,12.8,16.2,15.4,15.8,12.5,9.1,6,1.2],"avg_temp":8.41666666666667,"year":1960},{"months":[-.8,4.4,6,10.6,10.3,16,15.1,15.7,16.3,10.5,3.7,-.6],"avg_temp":8.93333333333333,"year":1961},{"months":[1.7,.3,.2,8.2,9.8,14.2,15,15.8,12.3,9,2.7,-3.3],"avg_temp":7.15833333333333,"year":1962},{"months":[-7.4,-5.7,2.5,8.4,12,15.8,17.7,15.9,13.7,8.1,7.4,-3.1],"avg_temp":7.10833333333333,"year":1963},{"months":[-2.6,.6,.6,8.6,13.6,16.9,18.1,15.9,13.6,7.1,4.9,.4],"avg_temp":8.14166666666667,"year":1964},{"months":[1.2,-1.8,2.3,6.7,11.2,15.5,15,14.9,12.7,8.2,1.4,2.6],"avg_temp":7.49166666666667,"year":1965},{"months":[-2.7,3.5,3.3,8.6,13,16.9,15.6,15.5,13.2,11.1,2.2,2],"avg_temp":8.51666666666667,"year":1966},{"months":[.7,2.8,5.4,6.5,12.5,14.7,18.6,16.4,13.8,11.1,3.9,.4],"avg_temp":8.9,"year":1967},{"months":[-1.1,.7,4.4,9,10.9,16,16.2,16.4,13.4,10.2,3.7,-2],"avg_temp":8.15,"year":1968},{"months":[.5,-2.1,.9,7,12.9,14.8,18.4,16.5,13.8,10,5.1,-4.7],"avg_temp":7.75833333333333,"year":1969},{"months":[-2.6,-1.1,1.2,5.3,11.4,17.2,16.1,16.8,13.2,8.9,5.8,.5],"avg_temp":7.725,"year":1970},{"months":[-1.1,1.4,1,8.2,14,13.9,18,17.8,12,8.8,3.5,3.6],"avg_temp":8.425,"year":1971},{"months":[-2.3,2,5.3,7.2,11.3,14.5,17.7,15.7,10.7,6.8,4.3,.8],"avg_temp":7.83333333333333,"year":1972},{"months":[0,1,3.9,5.1,12.5,16.1,17.2,17.7,14.1,7.3,3.3,.2],"avg_temp":8.2,"year":1973},{"months":[3.3,3.2,5.7,8,11,14.1,15.3,17.1,13.2,5.5,4.9,4.8],"avg_temp":8.84166666666667,"year":1974},{"months":[4.5,1.4,3.6,6.8,11.8,14.7,18.2,18.8,15.5,7.5,3.1,1.2],"avg_temp":8.925,"year":1975},{"months":[1.2,.5,1.3,6.9,12.8,17.4,19.3,16.2,12.7,9.5,4.8,-1],"avg_temp":8.46666666666667,"year":1976},{"months":[.4,3,6.1,5.7,11.7,15.5,16.5,15.9,11.9,10.2,5.1,2.1],"avg_temp":8.675,"year":1977},{"months":[.8,-1.4,4.8,6.5,11.6,14.8,15.5,15.1,12.2,9.1,4.2,.3],"avg_temp":7.79166666666667,"year":1978},{"months":[-4.5,-1.8,3.7,6.3,12.4,16.5,15.3,15.5,13.1,8.6,3.7,3.8],"avg_temp":7.71666666666667,"year":1979},{"months":[-2.7,2.1,3.3,6,10.7,14.7,15.1,16.6,13.9,8,3,.7],"avg_temp":7.61666666666667,"year":1980},{"months":[-1.5,-.4,6.8,7.8,13.2,15.3,16.4,16.4,14,8.1,4.6,-2.2],"avg_temp":8.20833333333333,"year":1981},{"months":[-2.3,-.1,4.2,6.5,12.4,16.3,18.9,17.3,15.7,9.7,6,2.2],"avg_temp":8.9,"year":1982},{"months":[4,-1.7,4.6,8.6,11.3,16.3,20.4,18.1,13.7,9.2,3.5,.7],"avg_temp":9.05833333333333,"year":1983},{"months":[1.1,-.3,2,6.8,10.8,13.7,15.9,17,12.3,10.2,4.9,1.2],"avg_temp":7.96666666666667,"year":1984},{"months":[-5.5,-3.1,2.8,7.6,13.4,13.5,17.4,16.2,13.5,8.8,.8,3.7],"avg_temp":7.425,"year":1985},{"months":[.1,-6.4,3,6.3,14.1,15.9,17,16.3,11.3,9.6,5.9,2.1],"avg_temp":7.93333333333333,"year":1986},{"months":[-5.9,-.3,-.4,9.1,9.7,13.9,16.9,15.5,14.5,9.4,4.9,2.1],"avg_temp":7.45,"year":1987},{"months":[3.5,2.1,2.7,8,14.2,15,17,17,13.2,9.7,3,3.4],"avg_temp":9.06666666666667,"year":1988},{"months":[2.5,3.4,7,7.2,13.8,15.3,17.7,17,14.4,10.4,2.7,2.4],"avg_temp":9.48333333333333,"year":1989},{"months":[2.5,5.7,6.9,7.4,13.9,15.2,16.7,18.3,11.8,10.2,4.5,.8],"avg_temp":9.49166666666667,"year":1990},{"months":[1.5,-2.4,6.4,7.1,9.5,13.5,19.2,17.9,14.8,8.2,4,.7],"avg_temp":8.36666666666667,"year":1991},{"months":[1,2.8,4.8,7.8,14.5,17.3,18.6,19.1,13.4,6.5,5.4,1.3],"avg_temp":9.375,"year":1992},{"months":[2.5,-.7,3.6,10.4,14.6,15.7,16.1,15.8,12.2,7.9,.4,3.2],"avg_temp":8.475,"year":1993},{"months":[3,-.2,6.3,7.9,12.6,15.9,21.3,17.8,13.2,7.6,7.2,3.6],"avg_temp":9.68333333333333,"year":1994},{"months":[.2,4.6,3.1,8.5,12.2,14.3,20.1,18.3,12.6,11.8,3,-1.8],"avg_temp":8.90833333333333,"year":1995},{"months":[-2.8,-2.2,1,8.4,11.2,15.7,15.9,17.2,10.9,9.2,4.5,-2.4],"avg_temp":7.21666666666667,"year":1996},{"months":[-2.6,4.1,5.8,6.4,12.7,15.9,17.2,19.8,13.7,7.7,4,2.2],"avg_temp":8.90833333333333,"year":1997},{"months":[2.4,4.3,5,8.9,14,16.5,16.4,16.7,13.4,8.7,1.6,1],"avg_temp":9.075,"year":1998},{"months":[2.6,.4,5.4,8.9,13.8,15.2,19,17.2,16.8,9,3.5,2.2],"avg_temp":9.5,"year":1999},{"months":[1.1,3.9,5.2,10.2,14.6,17,15.3,17.6,13.9,10.6,6.1,3.1],"avg_temp":9.88333333333333,"year":2e3},{"months":[.9,2.3,4.2,7.1,14.4,14.3,18.6,18.6,11.8,12.5,3.8,-.2],"avg_temp":9.025,"year":2001},{"months":[1.2,5.1,5.4,8.1,13.8,17.4,17.7,18.8,13.2,8.3,5.6,.3],"avg_temp":9.575,"year":2002},{"months":[-.3,-1.9,5.3,8.5,14.1,19.4,19.1,20.6,13.9,5.9,6,1.8],"avg_temp":9.36666666666667,"year":2003},{"months":[-.1,2.4,4.1,9.4,11.6,15.3,16.8,18.4,14,10.1,4.2,1.1],"avg_temp":8.94166666666667,"year":2004},{"months":[2,-1,3.6,9.3,12.8,16.4,18,15.8,15,11,4.2,.9],"avg_temp":9,"year":2005},{"months":[-2.6,-.4,1.5,8,13.1,16.8,22,15.5,16.9,12.1,7,4.4],"avg_temp":9.525,"year":2006},{"months":[4.8,3.9,6.2,11.5,14.2,17.4,17.2,16.9,12.6,8.4,3.7,1.6],"avg_temp":9.86666666666667,"year":2007},{"months":[3.7,3.7,4.2,7.6,14.5,16.9,18,17.4,12.4,9.1,5.1,1.1],"avg_temp":9.475,"year":2008},{"months":[-2.2,.5,4.3,11.8,13.6,14.8,18,18.7,14.7,8.2,7.4,.3],"avg_temp":9.175,"year":2009},{"months":[-3.7,-.5,4.2,8.7,10.4,16.3,20.3,16.7,12.4,8.1,4.8,-3.7],"avg_temp":7.83333333333333,"year":2010},{"months":[1,.9,4.9,11.6,13.9,16.5,16.1,17.7,15.2,9.4,4.5,3.9],"avg_temp":9.63333333333333,"year":2011},{"months":[1.9,-2.5,6.9,8.2,14.2,15.5,17.4,18.4,13.6,8.7,5.2,1.5],"avg_temp":9.08333333333333,"year":2012},{"months":[.2,-.7,.1,8.1,11.8,15.7,19.5,17.9,13.3,10.6,4.6,3.6],"avg_temp":8.725,"year":2013},{"months":[2.1,4.3,6.9,10.8,12.4,16.1,19.3,16,14.9,11.9,6.5,2.7],"avg_temp":10.325,"year":2014},{"months":[2.2,.7,5.2,8.4,12.3,15.8,19.4,19.9,13,8.4,7.5,6.5],"avg_temp":9.94166666666667,"year":2015},{"months":[1,3.3,4,7.9,13.7,17,18.6,17.7,16.9,8.5,3.8,2.2],"avg_temp":9.55,"year":2016},{"months":[-2.2,2.9,7.2,7.4,14.1,17.8,18.1,17.9,12.8,11.1,5.1,2.7],"avg_temp":9.575,"year":2017}]
{trendlines:{0:{slope:.0142946512355333,intercept:-28.23481388802},1:{slope:.00840043928043856,intercept:-15.9962215946063},all:{slope:.0107990707845127,intercept:-12.7116627029214},3:{slope:.0127322832308574,intercept:-17.1143397817449},4:{slope:.00809677868622273,intercept:-3.33901787487817},5:{slope:.00658235709115982,intercept:2.71552093774046},6:{slope:.0102450061531226,intercept:-2.66104529261399},7:{slope:.0138116750984748,intercept:-10.2773489275112},8:{slope:.00726193365318198,intercept:-.838180222898394},9:{slope:.0122244105512723,intercept:-15.167711930853},10:{slope:.0115220191535833,intercept:-18.4651744544215},11:{slope:.0117054343159034,intercept:-21.9343294379002},2:{slope:.0133316133510202,intercept:-22.4211396481038}},monthAverages:[{avg_temp:-.367391304347826,month:0},{avg_temp:.380434782608696,month:1},{avg_temp:3.56884057971015,month:2},{avg_temp:7.70724637681159,month:3},{avg_temp:12.445652173913,month:4},{avg_temp:15.5478260869565,month:5},{avg_temp:17.3115942028986,month:6},{avg_temp:16.6416058394161,month:7},{avg_temp:13.3153284671533,month:8},{avg_temp:8.65766423357664,month:9},{avg_temp:3.99124087591241,month:10},{avg_temp:.87956204379562,month:11}],extremes:[{year:1940,type:"min",temp:-9,month:0},{year:2007,type:"max",temp:4.8,month:0},{year:1929,type:"min",temp:-9.6,month:1},{year:1990,type:"max",temp:5.7,month:1},{year:1883,type:"min",temp:-1.7,month:2},{year:2017,type:"max",temp:7.2,month:2},{year:1917,type:"min",temp:4.3,month:3},{year:2018,type:"max",temp:12.3,month:3},{year:1902,type:"min",temp:8.6,month:4},{year:2018,type:"max",temp:16,month:4},{year:1923,type:"min",temp:11.2,month:5},{year:2003,type:"max",temp:19.4,month:5},{year:1898,type:"min",temp:14.4,month:6},{year:2006,type:"max",temp:22,month:6},{year:1912,type:"min",temp:14,month:7},{year:2003,type:"max",temp:20.6,month:7},{year:1912,type:"min",temp:9.1,month:8},{year:2006,type:"max",temp:16.9,month:8},{year:1905,type:"min",temp:4.5,month:9},{year:2001,type:"max",temp:12.5,month:9},{year:1921,type:"min",temp:-.2,month:10},{year:2015,type:"max",temp:7.5,month:10},{year:1890,type:"min",temp:-5.3,month:11},{year:2015,type:"max",temp:6.5,month:11}],decades:[{start:1889,months:[-2.12,-.66,3.11,7.35,12.27,15.65,16.43,16.33,12.91,8.23,3.19,-.26],end:1898},{start:1899,months:[-.24,.37,2.9,6.83,11.95,15.49,17.25,15.92,12.76,8.41,3.73,-3.32931382115986e-17],end:1908},{start:1909,months:[-.39,.76,3.55,7.52,12.67,15.26,16.58,16.11,12.44,8.2,3.58,2.32],end:1918},{start:1919,months:[.9,1.23,3.94,7.39,12.37,14.33,17.25,15.91,13.07,8.21,2.68,.12],end:1928},{start:1929,months:[.07,-.64,3.46,6.94,12.53,15.98,17.35,16.81,13.68,8.58,4.54,.55],end:1938},{start:1939,months:[-2.44,-.62,3.37,8.58,12.46,15.72,17.44,16.98,13.83,8.49,4.01,.03],end:1948},{start:1949,months:[-.37,-.29,3.01,7.44,12.1,15.33,17.18,16.46,13.47,8.79,4.02,1.63],end:1958},{start:1959,months:[-1.12,.51,3.52,8.34,11.88,15.83,16.6,15.96,13.5,9.29,3.92,-.02],end:1968},{start:1969,months:[.47,.79,3.38,6.67,12.1,15.3,17.22,16.76,12.93,8.36,4.41,.78],end:1978},{start:1979,months:[-1.37,-.99,3.27,7.3,12.22,15.11,17.03,16.59,13.52,9.13,4.03,1.77],end:1988},{start:1989,months:[1.02,1.94,4.99,8,12.9,15.53,17.92,17.79,13.04,8.82,3.73,1.1],end:1998},{start:1999,months:[1.33,1.84,4.51,8.86,13.69,16.61,18.17,17.68,14.05,9.7,4.92,1.63],end:2008},{start:2009,months:[.4,.7,4.61,9.52,13.24,16.32,18.7,17.8777777777778,14.0888888888889,9.43333333333333,5.48888888888889,2.18888888888889],end:2018}],years:[{months:[-5.4,-.1,2.6,5.6,11.8,15.1,18.6,15.9,12.1,5,5.7,.9],avg_temp:7.31666666666667,year:1881},{months:[.4,1.5,6,7.7,12,14.3,16.8,14.9,13.1,8.9,3.9,.6],avg_temp:8.34166666666667,year:1882},{months:[-.3,2.3,-1.7,6.1,12.4,16.2,16.7,15.9,13.4,8.5,4.3,.8],avg_temp:7.88333333333333,year:1883},{months:[2.9,2.7,4.7,6.1,12.7,13.1,18.2,17,14.3,7.9,1.7,1.7],avg_temp:8.58333333333333,year:1884},{months:[-2.8,3,2.5,9.2,10,16.7,17.3,14.6,12.7,7.4,2.7,-.3],avg_temp:7.75,year:1885},{months:[-1.3,-2.9,.4,8.7,12.7,14.3,16.8,16.9,15.1,9.5,5.1,.8],avg_temp:8.00833333333333,year:1886},{months:[-3.7,-.8,1.1,7.1,10,15.5,18.7,15.7,12.2,5.5,3.1,-.8],avg_temp:6.96666666666667,year:1887},{months:[-1.9,-2.6,.7,5.7,12.1,15.8,14.7,15.1,12.5,6.4,3.3,.6],avg_temp:6.86666666666667,year:1888},{months:[-2.4,-2.6,.3,6.9,15.8,18.6,16.4,15.4,11.1,8,2.7,-1.6],avg_temp:7.38333333333333,year:1889},{months:[2,-2.6,4.1,6.8,13.6,13.9,15.4,16.5,13.1,7.2,2.9,-5.3],avg_temp:7.3,year:1890},{months:[-4.5,-.6,2.6,5.1,12.7,14.7,16.2,15,13.8,9.9,2.7,1.7],avg_temp:7.44166666666667,year:1891},{months:[-1.8,.5,.5,7,12.2,15.1,16,18.1,13.8,7.5,3,-1.9],avg_temp:7.5,year:1892},{months:[-7.3,1.8,4.3,8.8,12.3,15.8,17.4,17,12.4,9.8,2.2,.3],avg_temp:7.9,year:1893},{months:[-1.8,1.6,4.7,9.9,11.3,14.2,17.8,15.4,11,8,4.9,.5],avg_temp:8.125,year:1894},{months:[-4,-6.8,1.4,8.6,12.2,15.7,17.2,16.5,15.2,7.1,4.8,-.1],avg_temp:7.31666666666667,year:1895},{months:[-.8,-.2,5.3,5.9,10.7,16.7,17,14.3,12.8,8.6,1.2,-.5],avg_temp:7.58333333333333,year:1896},{months:[-2.9,1.2,5,7.2,10.6,17,16.5,17.1,12.3,7.3,2.8,1.3],avg_temp:7.95,year:1897},{months:[2.3,1.1,2.9,7.3,11.3,14.8,14.4,18,13.6,8.9,4.7,3],avg_temp:8.525,year:1898},{months:[2.1,2,2.6,7.1,11.1,14.7,17.3,16.8,12.5,7.8,6.4,-3.3],avg_temp:8.09166666666667,year:1899},{months:[.7,1.1,.6,6.5,10.8,16,18.4,16.2,13.8,8.6,4.7,2.8],avg_temp:8.35,year:1900},{months:[-3.7,-4.1,2.1,8,12.8,15.6,18.5,16.4,13.4,9.1,2.7,.9],avg_temp:7.64166666666667,year:1901},{months:[2.8,-1.3,3.4,7.8,8.6,15.3,15.8,14.7,12,7.1,1.6,-1.8],avg_temp:7.16666666666667,year:1902},{months:[.3,3.6,5.7,4.7,12.6,14.8,16.2,15.4,13.5,9.6,4.4,-.8],avg_temp:8.33333333333333,year:1903},{months:[-1.3,1.1,3,8.8,12.3,15.2,18.8,16.5,11.9,8.3,3.3,2.4],avg_temp:8.35833333333333,year:1904},{months:[-1.8,1.3,4.5,5.9,12.1,17,18.6,16.5,12.8,4.5,3.1,1],avg_temp:7.95833333333333,year:1905},{months:[1,.3,2.2,8,13.1,14.7,17.2,16.5,12.5,9.8,6.3,-2.2],avg_temp:8.28333333333333,year:1906},{months:[-.3,-1.5,2.6,6.1,12.9,14.6,14.5,15.7,13.1,11.2,3.3,1.5],avg_temp:7.80833333333333,year:1907},{months:[-2.2,1.2,2.3,5.4,13.2,17,17.2,14.5,12.1,8.1,1.5,-.5],avg_temp:7.48333333333333,year:1908},{months:[-1.6,-2.5,1.5,7.8,10.9,14.1,15,16.2,12.7,10.2,2,1.9],avg_temp:7.35,year:1909},{months:[1.4,2.4,3.7,7.3,12.3,16.5,15.5,15.8,12,9.1,2.2,2.6],avg_temp:8.4,year:1910},{months:[-1.1,1.3,4,7.2,13.1,14.9,19.2,19.4,14.4,8.5,4.7,3],avg_temp:9.05,year:1911},{months:[-1.5,2.3,6,6.9,11.9,15.6,17.9,14,9.1,6.5,2.6,3.1],avg_temp:7.86666666666667,year:1912},{months:[-.2,1.3,6,7.8,12.4,14.8,14.6,14.8,12.6,9.5,6.8,2],avg_temp:8.53333333333333,year:1913},{months:[-3,3.1,4.7,9.8,10.9,14.6,17.6,17.2,12.4,8.2,3.4,3.5],avg_temp:8.53333333333333,year:1914},{months:[.2,1,1.7,6.9,13.1,17.5,16.2,15.2,11.8,6.4,1.5,3.5],avg_temp:7.91666666666667,year:1915},{months:[3.8,.8,3.9,8.2,13.1,12.8,16,15.9,12,8.5,4.5,1.8],avg_temp:8.44166666666667,year:1916},{months:[-2.6,-3.8,0,4.3,15,18.8,17.3,16.7,14.5,7.2,5.1,-2.1],avg_temp:7.53333333333333,year:1917},{months:[.7,1.7,4,9,14,13,16.5,15.9,12.9,7.9,3,3.9],avg_temp:8.54166666666667,year:1918},{months:[.7,-.5,3,5.6,11.6,15,14.4,16.1,14.7,6,.5,.8],avg_temp:7.325,year:1919},{months:[2.3,3,6.1,9.4,13.8,14.9,17.4,15,13,6.9,1.2,.6],avg_temp:8.63333333333333,year:1920},{months:[4.2,1.3,5.6,7.8,14,14.4,18.7,17.3,13.5,11,-.2,.5],avg_temp:9.00833333333333,year:1921},{months:[-2.7,-1.3,3.5,5.5,13.6,15.7,15.7,15.4,11.2,5,2.5,2.2],avg_temp:7.19166666666667,year:1922},{months:[1.5,1,4.9,6.8,11.4,11.2,18.6,15.7,13.1,10.3,2.9,-1.7],avg_temp:7.975,year:1923},{months:[-2.9,-2.6,2.2,6.3,13.7,15.1,16.7,14.5,13.6,9.4,3,1.5],avg_temp:7.54166666666667,year:1924},{months:[2.5,3.6,1.3,8.2,13.9,15,17.9,16.5,11,8.5,2,-.4],avg_temp:8.33333333333333,year:1925},{months:[0,4.4,4,9.7,10.7,13.8,17.4,16,14.6,7.8,6,.6],avg_temp:8.75,year:1926},{months:[1.8,.9,5.9,7.1,10.9,14.1,17.3,16.4,13.5,8.6,2.7,-2.6],avg_temp:8.05,year:1927},{months:[1.6,2.5,2.9,7.5,10.1,14.1,18.4,16.2,12.5,8.6,6.2,-.3],avg_temp:8.35833333333333,year:1928},{months:[-4.7,-9.6,2.6,4.5,13.1,14.5,17.5,17.1,15.5,9.7,4.7,3.6],avg_temp:7.375,year:1929},{months:[2.3,-.2,4.2,8.3,11.6,18.2,16.4,16,13.2,8.7,5.9,.6],avg_temp:8.76666666666667,year:1930},{months:[.2,-1.2,.2,5.8,15.1,16.1,16.8,15.4,10.2,7.3,4.7,.1],avg_temp:7.55833333333333,year:1931},{months:[1.8,-1.9,.8,7,12.5,14.6,17.9,18.7,15,8.5,4.2,.8],avg_temp:8.325,year:1932},{months:[-2.6,.1,5.1,7,11.5,14.3,18.1,16.9,13.5,8.8,2.5,-3.9],avg_temp:7.60833333333333,year:1933},{months:[.5,1.2,4.1,10.3,13.3,16.4,18.3,16.4,15.6,9.6,4.1,4.8],avg_temp:9.55,year:1934},{months:[-.8,1.9,2.7,7.3,10.5,17.2,17.8,16.6,13.7,8.6,5.2,.4],avg_temp:8.425,year:1935},{months:[3.1,.2,5,6.2,12.3,16.2,16.8,16.2,13,6.4,3.8,1.5],avg_temp:8.39166666666667,year:1936},{months:[-.8,2.2,2.9,8,14.7,16.3,17.2,17.1,13.3,9.5,3.3,-.5],avg_temp:8.6,year:1937},{months:[1.7,.9,7,5,10.7,16,16.7,17.7,13.8,8.7,7,-1.9],avg_temp:8.60833333333333,year:1938},{months:[2.6,1.6,1.7,8.6,10.5,16.3,17,17.5,13.4,6.5,5.5,-1.6],avg_temp:8.3,year:1939},{months:[-9,-4.3,2.8,7.9,12.2,16.7,16.2,14.5,12.4,7.6,5.4,-2.8],avg_temp:6.63333333333333,year:1940},{months:[-5.4,-.2,3.3,5.5,9.2,16.3,18.6,15,12.3,8,2,1.5],avg_temp:7.175,year:1941},{months:[-7.9,-5.4,1.4,7.5,12.1,14.4,16.1,17.6,15.1,11.1,3.3,2.1],avg_temp:7.28333333333333,year:1942},{months:[-.4,2.9,5.6,9.3,12.8,14.4,17.7,17.9,13.8,9.9,2.7,.2],avg_temp:8.9,year:1943},{months:[3.1,-1.1,.9,8.6,11.6,14.2,17.4,19.6,12.8,8.6,4.1,-.4],avg_temp:8.28333333333333,year:1944},{months:[-4,4,6,8.8,14,16.6,17.9,16.2,13.8,9.7,3.6,1.3],avg_temp:8.99166666666667,year:1945},{months:[-1.8,2.4,3.7,10.2,13.9,14.8,18.4,16.2,14.1,7,4,-2.3],avg_temp:8.38333333333333,year:1946},{months:[-4.7,-6.6,2.6,9.4,14.7,17.9,18.9,18.9,16.8,7.8,5.3,1.4],avg_temp:8.53333333333333,year:1947},{months:[3.1,.5,5.7,10,13.6,15.6,16.2,16.4,13.8,8.7,4.2,.9],avg_temp:9.05833333333333,year:1948},{months:[1.2,1.7,2,10.3,12.2,14.1,17.6,17,16.3,10.6,3.7,3],avg_temp:9.14166666666667,year:1949},{months:[-1,3,4.8,6.8,13.8,17.6,18,17.5,12.9,7.8,4.3,-2],avg_temp:8.625,year:1950},{months:[1.5,1.9,2.2,7.3,11.5,15.3,17.1,17.2,14.5,7.3,6.5,2.5],avg_temp:8.73333333333333,year:1951},{months:[.2,-.1,2.6,10.3,12.3,15.2,18.3,17.8,10.5,7.2,1.7,-.5],avg_temp:7.95833333333333,year:1952},{months:[-.8,-.1,4.8,9,13.2,16.1,17.4,16.4,13.5,10.4,4.8,2.5],avg_temp:8.93333333333333,year:1953},{months:[-3.2,-3.5,4.3,5.8,12.2,16,14.4,15.8,13.5,9.9,4.1,3.2],avg_temp:7.70833333333333,year:1954},{months:[-1.7,-1.9,.4,6.9,10.3,14.6,17.4,16.8,13.4,8,3.8,2.6],avg_temp:7.55,year:1955},{months:[.2,-9.6,2.9,5.3,12.5,13.2,16.9,14.1,13.8,8.2,2.5,2],avg_temp:6.83333333333333,year:1956},{months:[.3,3.8,6.4,7.5,9.7,16.7,17.7,15.1,11.8,9.2,4.5,.5],avg_temp:8.6,year:1957},{months:[-.4,1.9,-.3,5.2,13.3,14.5,17,16.9,14.5,9.3,4.3,2.5],avg_temp:8.225,year:1958},{months:[-.1,-.1,6.2,9.4,12.7,16.1,19.3,17.3,13.5,8.5,3.3,2.2],avg_temp:9.025,year:1959},{months:[-.1,.4,4.3,7.4,12.8,16.2,15.4,15.8,12.5,9.1,6,1.2],avg_temp:8.41666666666667,year:1960},{months:[-.8,4.4,6,10.6,10.3,16,15.1,15.7,16.3,10.5,3.7,-.6],avg_temp:8.93333333333333,year:1961},{months:[1.7,.3,.2,8.2,9.8,14.2,15,15.8,12.3,9,2.7,-3.3],avg_temp:7.15833333333333,year:1962},{months:[-7.4,-5.7,2.5,8.4,12,15.8,17.7,15.9,13.7,8.1,7.4,-3.1],avg_temp:7.10833333333333,year:1963},{months:[-2.6,.6,.6,8.6,13.6,16.9,18.1,15.9,13.6,7.1,4.9,.4],avg_temp:8.14166666666667,year:1964},{months:[1.2,-1.8,2.3,6.7,11.2,15.5,15,14.9,12.7,8.2,1.4,2.6],avg_temp:7.49166666666667,year:1965},{months:[-2.7,3.5,3.3,8.6,13,16.9,15.6,15.5,13.2,11.1,2.2,2],avg_temp:8.51666666666667,year:1966},{months:[.7,2.8,5.4,6.5,12.5,14.7,18.6,16.4,13.8,11.1,3.9,.4],avg_temp:8.9,year:1967},{months:[-1.1,.7,4.4,9,10.9,16,16.2,16.4,13.4,10.2,3.7,-2],avg_temp:8.15,year:1968},{months:[.5,-2.1,.9,7,12.9,14.8,18.4,16.5,13.8,10,5.1,-4.7],avg_temp:7.75833333333333,year:1969},{months:[-2.6,-1.1,1.2,5.3,11.4,17.2,16.1,16.8,13.2,8.9,5.8,.5],avg_temp:7.725,year:1970},{months:[-1.1,1.4,1,8.2,14,13.9,18,17.8,12,8.8,3.5,3.6],avg_temp:8.425,year:1971},{months:[-2.3,2,5.3,7.2,11.3,14.5,17.7,15.7,10.7,6.8,4.3,.8],avg_temp:7.83333333333333,year:1972},{months:[0,1,3.9,5.1,12.5,16.1,17.2,17.7,14.1,7.3,3.3,.2],avg_temp:8.2,year:1973},{months:[3.3,3.2,5.7,8,11,14.1,15.3,17.1,13.2,5.5,4.9,4.8],avg_temp:8.84166666666667,year:1974},{months:[4.5,1.4,3.6,6.8,11.8,14.7,18.2,18.8,15.5,7.5,3.1,1.2],avg_temp:8.925,year:1975},{months:[1.2,.5,1.3,6.9,12.8,17.4,19.3,16.2,12.7,9.5,4.8,-1],avg_temp:8.46666666666667,year:1976},{months:[.4,3,6.1,5.7,11.7,15.5,16.5,15.9,11.9,10.2,5.1,2.1],avg_temp:8.675,year:1977},{months:[.8,-1.4,4.8,6.5,11.6,14.8,15.5,15.1,12.2,9.1,4.2,.3],avg_temp:7.79166666666667,year:1978},{months:[-4.5,-1.8,3.7,6.3,12.4,16.5,15.3,15.5,13.1,8.6,3.7,3.8],avg_temp:7.71666666666667,year:1979},{months:[-2.7,2.1,3.3,6,10.7,14.7,15.1,16.6,13.9,8,3,.7],avg_temp:7.61666666666667,year:1980},{months:[-1.5,-.4,6.8,7.8,13.2,15.3,16.4,16.4,14,8.1,4.6,-2.2],avg_temp:8.20833333333333,year:1981},{months:[-2.3,-.1,4.2,6.5,12.4,16.3,18.9,17.3,15.7,9.7,6,2.2],avg_temp:8.9,year:1982},{months:[4,-1.7,4.6,8.6,11.3,16.3,20.4,18.1,13.7,9.2,3.5,.7],avg_temp:9.05833333333333,year:1983},{months:[1.1,-.3,2,6.8,10.8,13.7,15.9,17,12.3,10.2,4.9,1.2],avg_temp:7.96666666666667,year:1984},{months:[-5.5,-3.1,2.8,7.6,13.4,13.5,17.4,16.2,13.5,8.8,.8,3.7],avg_temp:7.425,year:1985},{months:[.1,-6.4,3,6.3,14.1,15.9,17,16.3,11.3,9.6,5.9,2.1],avg_temp:7.93333333333333,year:1986},{months:[-5.9,-.3,-.4,9.1,9.7,13.9,16.9,15.5,14.5,9.4,4.9,2.1],avg_temp:7.45,year:1987},{months:[3.5,2.1,2.7,8,14.2,15,17,17,13.2,9.7,3,3.4],avg_temp:9.06666666666667,year:1988},{months:[2.5,3.4,7,7.2,13.8,15.3,17.7,17,14.4,10.4,2.7,2.4],avg_temp:9.48333333333333,year:1989},{months:[2.5,5.7,6.9,7.4,13.9,15.2,16.7,18.3,11.8,10.2,4.5,.8],avg_temp:9.49166666666667,year:1990},{months:[1.5,-2.4,6.4,7.1,9.5,13.5,19.2,17.9,14.8,8.2,4,.7],avg_temp:8.36666666666667,year:1991},{months:[1,2.8,4.8,7.8,14.5,17.3,18.6,19.1,13.4,6.5,5.4,1.3],avg_temp:9.375,year:1992},{months:[2.5,-.7,3.6,10.4,14.6,15.7,16.1,15.8,12.2,7.9,.4,3.2],avg_temp:8.475,year:1993},{months:[3,-.2,6.3,7.9,12.6,15.9,21.3,17.8,13.2,7.6,7.2,3.6],avg_temp:9.68333333333333,year:1994},{months:[.2,4.6,3.1,8.5,12.2,14.3,20.1,18.3,12.6,11.8,3,-1.8],avg_temp:8.90833333333333,year:1995},{months:[-2.8,-2.2,1,8.4,11.2,15.7,15.9,17.2,10.9,9.2,4.5,-2.4],avg_temp:7.21666666666667,year:1996},{months:[-2.6,4.1,5.8,6.4,12.7,15.9,17.2,19.8,13.7,7.7,4,2.2],avg_temp:8.90833333333333,year:1997},{months:[2.4,4.3,5,8.9,14,16.5,16.4,16.7,13.4,8.7,1.6,1],avg_temp:9.075,year:1998},{months:[2.6,.4,5.4,8.9,13.8,15.2,19,17.2,16.8,9,3.5,2.2],avg_temp:9.5,year:1999},{months:[1.1,3.9,5.2,10.2,14.6,17,15.3,17.6,13.9,10.6,6.1,3.1],avg_temp:9.88333333333333,year:2e3},{months:[.9,2.3,4.2,7.1,14.4,14.3,18.6,18.6,11.8,12.5,3.8,-.2],avg_temp:9.025,year:2001},{months:[1.2,5.1,5.4,8.1,13.8,17.4,17.7,18.8,13.2,8.3,5.6,.3],avg_temp:9.575,year:2002},{months:[-.3,-1.9,5.3,8.5,14.1,19.4,19.1,20.6,13.9,5.9,6,1.8],avg_temp:9.36666666666667,year:2003},{months:[-.1,2.4,4.1,9.4,11.6,15.3,16.8,18.4,14,10.1,4.2,1.1],avg_temp:8.94166666666667,year:2004},{months:[2,-1,3.6,9.3,12.8,16.4,18,15.8,15,11,4.2,.9],avg_temp:9,year:2005},{months:[-2.6,-.4,1.5,8,13.1,16.8,22,15.5,16.9,12.1,7,4.4],avg_temp:9.525,year:2006},{months:[4.8,3.9,6.2,11.5,14.2,17.4,17.2,16.9,12.6,8.4,3.7,1.6],avg_temp:9.86666666666667,year:2007},{months:[3.7,3.7,4.2,7.6,14.5,16.9,18,17.4,12.4,9.1,5.1,1.1],avg_temp:9.475,year:2008},{months:[-2.2,.5,4.3,11.8,13.6,14.8,18,18.7,14.7,8.2,7.4,.3],avg_temp:9.175,year:2009},{months:[-3.7,-.5,4.2,8.7,10.4,16.3,20.3,16.7,12.4,8.1,4.8,-3.7],avg_temp:7.83333333333333,year:2010},{months:[1,.9,4.9,11.6,13.9,16.5,16.1,17.7,15.2,9.4,4.5,3.9],avg_temp:9.63333333333333,year:2011},{months:[1.9,-2.5,6.9,8.2,14.2,15.5,17.4,18.4,13.6,8.7,5.2,1.5],avg_temp:9.08333333333333,year:2012},{months:[.2,-.7,.1,8.1,11.8,15.7,19.5,17.9,13.3,10.6,4.6,3.6],avg_temp:8.725,year:2013},{months:[2.1,4.3,6.9,10.8,12.4,16.1,19.3,16,14.9,11.9,6.5,2.7],avg_temp:10.325,year:2014},{months:[2.2,.7,5.2,8.4,12.3,15.8,19.4,19.9,13,8.4,7.5,6.5],avg_temp:9.94166666666667,year:2015},{months:[1,3.3,4,7.9,13.7,17,18.6,17.7,16.9,8.5,3.8,2.2],avg_temp:9.55,year:2016},{months:[-2.2,2.9,7.2,7.4,14.1,17.8,18.1,17.9,12.8,11.1,5.1,2.7],avg_temp:9.575,year:2017},{months:[3.7,-1.9,2.4,12.3,16,17.7,20.3],avg_temp:null,year:2018}]}}
function LoessJS() {
// Based on org.apache.commons.math.analysis.interpolation.LoessInterpolator
// from http://commons.apache.org/math/
function loess() {
var bandwidth = 0.3;
var robustnessIters = 2;
var accuracy = 1e-12;
function smooth(xval, yval, weights) {
var n = xval.length;
var i;
if (n !== yval.length) throw Error('Mismatched array lengths');
if (n === 0) throw Error('At least one point required.');
if (arguments.length < 3) {
weights = [];
i = -1;
while (++i < n) weights[i] = 1;
}
science_stats_loessFiniteReal(xval);
science_stats_loessFiniteReal(yval);
science_stats_loessFiniteReal(weights);
science_stats_loessStrictlyIncreasing(xval);
if (n === 1) return [yval[0]];
if (n === 2) return [yval[0], yval[1]];
var bandwidthInPoints = Math.floor(bandwidth * n);
if (bandwidthInPoints < 2) throw Error('Bandwidth too small.');
var res = [];
var residuals = [];
var robustnessWeights = [];
// Do an initial fit and 'robustnessIters' robustness iterations.
// This is equivalent to doing 'robustnessIters+1' robustness iterations
// starting with all robustness weights set to 1.
i = -1;
while (++i < n) {
res[i] = 0;
residuals[i] = 0;
robustnessWeights[i] = 1;
}
var iter = -1;
while (++iter <= robustnessIters) {
var bandwidthInterval = [0, bandwidthInPoints - 1];
// At each x, compute a local weighted linear regression
var x;
i = -1;
while (++i < n) {
x = xval[i];
// Find out the interval of source points on which
// a regression is to be made.
if (i > 0) {
science_stats_loessUpdateBandwidthInterval(
xval,
weights,
i,
bandwidthInterval
);
}
var ileft = bandwidthInterval[0];
var iright = bandwidthInterval[1];
// Compute the point of the bandwidth interval that is
// farthest from x
var edge = xval[i] - xval[ileft] > xval[iright] - xval[i] ? ileft : iright;
// Compute a least-squares linear fit weighted by
// the product of robustness weights and the tricube
// weight function.
// See http://en.wikipedia.org/wiki/Linear_regression
// (section "Univariate linear case")
// and http://en.wikipedia.org/wiki/Weighted_least_squares
// (section "Weighted least squares")
var sumWeights = 0;
var sumX = 0;
var sumXSquared = 0;
var sumY = 0;
var sumXY = 0;
var denom = Math.abs(1 / (xval[edge] - x));
for (var k = ileft; k <= iright; ++k) {
var xk = xval[k];
var yk = yval[k];
var dist = k < i ? x - xk : xk - x;
var w =
science_stats_loessTricube(dist * denom) *
robustnessWeights[k] *
weights[k];
var xkw = xk * w;
sumWeights += w;
sumX += xkw;
sumXSquared += xk * xkw;
sumY += yk * w;
sumXY += yk * xkw;
}
var meanX = sumX / sumWeights;
var meanY = sumY / sumWeights;
var meanXY = sumXY / sumWeights;
var meanXSquared = sumXSquared / sumWeights;
var beta =
Math.sqrt(Math.abs(meanXSquared - meanX * meanX)) < accuracy
? 0
: (meanXY - meanX * meanY) / (meanXSquared - meanX * meanX);
var alpha = meanY - beta * meanX;
res[i] = beta * x + alpha;
residuals[i] = Math.abs(yval[i] - res[i]);
}
// No need to recompute the robustness weights at the last
// iteration, they won't be needed anymore
if (iter === robustnessIters) {
break;
}
// Recompute the robustness weights.
// Find the median residual.
var sortedResiduals = residuals.slice();
sortedResiduals.sort();
var medianResidual = sortedResiduals[Math.floor(n / 2)];
if (Math.abs(medianResidual) < accuracy) break;
let arg;
i = -1;
while (++i < n) {
arg = residuals[i] / (6 * medianResidual);
robustnessWeights[i] = arg >= 1 ? 0 : (w = 1 - arg * arg) * w;
}
}
return res;
}
smooth.bandwidth = function(x) {
if (!arguments.length) return x;
bandwidth = x;
return smooth;
};
smooth.robustnessIterations = function(x) {
if (!arguments.length) return x;
robustnessIters = x;
return smooth;
};
smooth.accuracy = function(x) {
if (!arguments.length) return x;
accuracy = x;
return smooth;
};
return smooth;
}
function science_stats_loessFiniteReal(values) {
var n = values.length;
var i = -1;
while (++i < n) if (!isFinite(values[i])) return false;
return true;
}
function science_stats_loessStrictlyIncreasing(xval) {
var n = xval.length;
var i = 0;
while (++i < n) if (xval[i - 1] >= xval[i]) return false;
return true;
}
// Compute the tricube weight function.
// http://en.wikipedia.org/wiki/Local_regression#Weight_function
function science_stats_loessTricube(x) {
return (x = 1 - x * x * x) * x * x;
}
// Given an index interval into xval that embraces a certain number of
// points closest to xval[i-1], update the interval so that it embraces
// the same number of points closest to xval[i], ignoring zero weights.
function science_stats_loessUpdateBandwidthInterval(xval, weights, i, bandwidthInterval) {
var left = bandwidthInterval[0];
var right = bandwidthInterval[1];
// The right edge should be adjusted if the next point to the right
// is closer to xval[i] than the leftmost point of the current interval
var nextRight = science_stats_loessNextNonzero(weights, right);
if (nextRight < xval.length && xval[nextRight] - xval[i] < xval[i] - xval[left]) {
var nextLeft = science_stats_loessNextNonzero(weights, left);
bandwidthInterval[0] = nextLeft;
bandwidthInterval[1] = nextRight;
}
}
function science_stats_loessNextNonzero(weights, i) {
var j = i + 1;
while (j < weights.length && weights[j] === 0) j++;
return j;
}
return loess;
}
body{
font-family: monaco, Consolas, 'Lucida Console', monospace;
margin: 0px;
}
.tooltip {
top: -1000px;
position: fixed;
padding: 10px;
background: rgba(255, 255, 255, .90);
border: 1px solid lightgray;
pointer-events: none;
}
.tooltip-hidden{
opacity: 0;
transition: all .3s;
transition-delay: .1s;
}
@media (max-width: 590px){
div.tooltip{
bottom: -1px;
width: calc(100%);
left: -1px !important;
right: -1px !important;
top: auto !important;
width: auto !important;
}
}
svg{
overflow: visible;
}
.domain{
display: none;
}
text{
/*pointer-events: none;*/
/*text-shadow: 0 1px 0 #fff, 1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff;*/
}
.axis{
opacity: .4;
}
.y line{
stroke: #ccc;
}
.x line{
opacity: 0;
}
.x{
opacity: 1;
}
.x text{
font-size: 14px
}
circle.active{
stroke-opacity: .5;
}