Skip to content

Instantly share code, notes, and snippets.

@borgar
Last active January 1, 2020 09:08
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save borgar/5e405578d0444477d5f97585ee7aea58 to your computer and use it in GitHub Desktop.
Veðráttan, 24. árg 1947. Ágúst, bls. 30.
license: mit
height: 1420
border: no
scrolling: no

I frequent the social media Twitter. One of the many great accounts I follow there is the fantastic bot Slembitímarit. Made by my accomplished friend @pallih. Every hour, on the hour, The bot tweets a random page from the Icelandic archive of magazines, timarit.is.

Occasionally it chooses pages with data on them, usually tables, maybe from half a century ago, or more. These are often beautiful hand-crafted tables which I have no way of conveying to regular sane people why I love so much.

I wanted to make a study of one of these. See what choices went in there to create the result. Does it lose something when converted to modern computer typesetting?

I've picked a page from a 1947 issue of Veðráttan, a monthly overview of the weather in Iceland made by the Icelandic Met Office. I've tried to recreate it faithfully, but fixed a few things:

  • Precipitation does not need fractions.
  • Removed footnotes in favour of abbreviating place names.
  • Columns use a fixed rhythm.

The end result looks quite nice, in my own humble opinion.

<!DOCTYPE html>
<meta charset="utf-8">
<style>
@import url('https://fonts.googleapis.com/css?family=Noto+Serif');
body {
overflow: hidden;
}
body, text {
margin: 0;
font-family: 'Noto Serif', serif;
-moz-font-feature-settings: "lnum";
-webkit-font-feature-settings: "lnum";
font-feature-settings: "lnum";
}
</style>
<body>
<svg width=960 height=1420 viewBox="0 0 1000 1480" xmlns="http://www.w3.org/2000/svg">
<rect width=1000 height=1480 fill="rgb(230,230,230)" />
</svg>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="index.js"></script>
// no margins
const svg = d3.select('svg');
const width = 1000;
const height = 1480;
const pad = { top: 138, right: 50, bottom: 150, left: 50 };
const plotWidth = width - pad.left - pad.right;
const plotHeight = height - pad.top - pad.bottom;
const DEBUG = false;
const dash = '−';
const fontSize = 16;
let rowHeight = 18;
const colGroupH = 40;
const headHeight = 138;
const nameColWidth = 190;
const gutter = 6;
const defs = svg.append('defs');
const table = svg.append('g')
.attr('transform', `translate(${pad.left},${pad.top})`);
const rules = [
{ y: -5, width: 2, range: 0 },
{ y: 0, width: 1, range: 0 },
{ y: headHeight, width: 2, range: nameColWidth },
{ y: plotHeight, width: 2, range: 0 }
];
const colWidth = (plotWidth - nameColWidth) / 14;
const colOffs = (i) => 190 + i * colWidth;
const columns = [
{ x: 0, w: nameColWidth - 60, align: 'start', },
{ x: nameColWidth - 60, w: 60, align: 'end' },
{ x: colOffs(0), w: colWidth },
{ x: colOffs(1), w: colWidth },
{ x: colOffs(2), w: colWidth },
{ x: colOffs(3), w: colWidth, group: 1, y: 1 },
{ x: colOffs(4), w: colWidth, group: 1, y: 1 },
{ x: colOffs(5), w: colWidth, group: 1 },
{ x: colOffs(6), w: colWidth, group: 2, y: 1 },
{ x: colOffs(7), w: colWidth, group: 2, y: 1 },
{ x: colOffs(8), w: colWidth, group: 2 },
{ x: colOffs(9), w: colWidth },
{ x: colOffs(10), w: colWidth, group: 3, y: 1 },
{ x: colOffs(11), w: colWidth, group: 3, y: 1 },
{ x: colOffs(12), w: colWidth, group: 3 },
{ x: colOffs(13), w: colWidth },
];
function print (text, attr) {
const t = table.append('text').text(text);
t.attr('transform', `translate(${attr.x},${attr.y})` +
(attr.r ? `rotate(${-attr.r})` : ''));
t.attr('text-anchor', attr.align || 'middle');
attr.size && t.attr('font-size', attr.size * fontSize);
attr.spacing && t.attr('letter-spacing', attr.spacing);
attr.bold && t.attr('font-weight', 600);
attr.italic && t.attr('font-style', 'italic');
if (DEBUG) {
table.append('line')
.attr('x1', attr.x-5)
.attr('x2', attr.x+5)
.attr('y1', attr.y)
.attr('y2', attr.y)
.attr('stroke', 'red')
.attr('stroke-width', 1);
table.append('line')
.attr('x1', attr.x)
.attr('x2', attr.x)
.attr('y1', attr.y-5)
.attr('y2', attr.y+5)
.attr('stroke', 'red')
.attr('stroke-width', 1);
}
return t.node().getComputedTextLength();
}
function colHead (n, txt_is, txt_en) {
const col_cx = (columns[n].x + columns[n].w / 2) + 4;
const y = columns[n].group ? 90 : 70;
print(txt_is, { x: col_cx - 8, y: y, size: .9, r: 90 });
print(txt_en, { x: col_cx + 8, y: y, size: .84, r: 90, italic: 1 });
}
function colGroup (n, txt_is, txt_en) {
const grp = columns.filter(c => c.group == n);
const x = grp[0].x;
const w = grp.reduce((a, c) => a + c.w, 0);
print(txt_is, { x: x + w/2, y: 18, size: 1, bold: 1, spacing: 1 });
print(txt_en, { x: x + w/2, y: 34, size: .84, italic: 1 });
table.append('line')
.attr('x1', x)
.attr('x2', x + w)
.attr('y1', colGroupH)
.attr('y2', colGroupH)
.attr('stroke', 'black')
.attr('stroke-width', 1);
}
print('Ágúst', { x: 0, y: -37, size: 1.4, align: 'start' });
print('Veðráttan', { x: plotWidth / 2, y: -37, size: 1.7, bold: 1 });
print('1947', { x: plotWidth, y: -37, size: 1.4, align: 'end' });
print('(30)', { x: plotWidth/2, y: plotHeight + 60, size: 1.4 });
print('Stöðvar:', { x: columns[2].x / 2, y: 105, spacing: 2, bold: 1 });
print('Stations:', { x: columns[2].x / 2, y: 124, size: .92, italic: 1 });
colHead(2, 'Loftvægi 700 mm+', 'Pressure');
colHead(3, 'Meðalhiti °C', 'Mean temperature');
colHead(4, 'Vik frá meðallagi', 'Deviation f. normal');
colHead(5, 'Meðaltal', 'Mean');
colHead(6, 'Hæst', 'Highest');
colHead(7, 'Dag', 'Date');
colHead(8, 'Meðaltal', 'Mean');
colHead(9, 'Hæst', 'Highest');
colHead(10, 'Dag', 'Date');
colHead(11, 'Sjávarhiti', 'Sea temperature');
colHead(12, 'Alls', 'Total');
colHead(13, 'Mest á dag', 'Most per 24h.');
colHead(14, 'Dag', 'Date');
colHead(15, 'Skýjahula', 'Cloudiness');
colGroup(1, 'Hámark hitans', 'Maximum temp.');
colGroup(2, 'Lágmark hitans', 'Minimum temp.');
colGroup(3, 'Úrkoma mm', 'Percipitation');
const hr = table.append('g');
rules.forEach(r => {
hr.append('line')
.attr('x1', r.range)
.attr('x2', plotWidth)
.attr('y1', r.y)
.attr('y2', r.y)
.attr('stroke', 'black')
.attr('stroke-width', r.width);
});
columns.slice(1).forEach(r => {
hr.append('line')
.attr('x1', r.x + r.w)
.attr('x2', r.x + r.w)
.attr('y1', (r.y ? colGroupH : 0))
.attr('y2', plotHeight)
.attr('stroke', 'black')
.attr('stroke-width', r.y ? 1 : 2);
});
function fmt (n, f=1) {
if (n == null) { return dash; }
return n.toFixed(f);
}
function alignOffs (col) {
const align = col.align || 'middle';
if (align === 'end') {
return col.w - gutter;
}
else if (align === 'middle') {
return (col.w - gutter * 2) / 2 + gutter;
}
return col.x && gutter;
}
function renderTable (data) {
const rowAxis = d3.scaleBand()
.domain(d3.range(data.length))
.range([ headHeight, plotHeight ])
.paddingOuter(.7)
.paddingInner(.05);
const cell = (row, col, text) => {
return print(text, {
align: columns[col].align,
y: rowAxis(row) + rowAxis.bandwidth() * .8,
x: columns[col].x + alignOffs(columns[col]),
})
};
data.forEach((fact, y) => {
if (!fact) { return; }
table.append('rect')
.attr('x', 0)
.attr('y', rowAxis(y))
.attr('width', plotWidth)
.attr('height', rowAxis.bandwidth())
.attr('fill', 'rgba(200,0,0,0)');
let a = cell(y, 0, fact.station);
let b = cell(y, 1, fact.masl + ' m');
cell(y, 2, fmt(fact.pressure));
cell(y, 3, fmt(fact.mean_temp));
cell(y, 4, fmt(fact.dev_norm));
cell(y, 5, fmt(fact.max_temp_mean));
cell(y, 6, fmt(fact.max_temp_high));
cell(y, 7, fact.max_temp_date || dash);
cell(y, 8, fmt(fact.min_temp_mean));
cell(y, 9, fmt(fact.min_temp_high));
cell(y, 10, fact.min_temp_date || dash);
cell(y, 11, fmt(fact.sea_temp));
cell(y, 12, fmt(fact.precip_total, 0));
cell(y, 13, fmt(fact.precip_max, 0));
cell(y, 14, fact.precip_date || dash);
cell(y, 15, fmt(fact.cloudcov));
if (nameColWidth - (a + b) > 30) {
const baseline = rowAxis(y) + rowAxis.bandwidth() * .8;
defs.append('path')
.attr('id', 'elli_' + y)
.attr('stroke', 'none')
.attr('d', `
M ${a + 6},${baseline}
L ${nameColWidth - gutter - b - 6},${baseline}
`);
table.append('text')
.attr('letter-spacing', 4)
.append('textPath')
.attr('href', '#elli_' + y)
.text('............................');
}
});
}
Promise
.all([
d3.json('vedur-1947-aug.json'),
document.fonts && document.fonts.ready ? document.fonts.ready : new Promise(r => setTimeout(() => r(), 200))
])
.then(a => renderTable(a[0]));
[
{
"station": "Reykjavík",
"masl": 50.7,
"pressure": 57.8,
"mean_temp": 11,
"dev_norm": 0.4,
"max_temp_mean": 13,
"max_temp_high": 16.6,
"max_temp_date": 4,
"min_temp_mean": 8.7,
"min_temp_high": 5,
"min_temp_date": 7,
"sea_temp": 11.7,
"precip_total": 100.7,
"precip_max": 11.9,
"precip_date": 11,
"cloudcov": 9
},
{
"station": "Rafm.stöðin,Rvk.",
"masl": 16,
"pressure": null,
"mean_temp": 11.5,
"dev_norm": 0.8,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 9.2,
"min_temp_high": 6.1,
"min_temp_date": 7,
"sea_temp": null,
"precip_total": 98.9,
"precip_max": 13.2,
"precip_date": 10,
"cloudcov": null
},
{
"station": "Síðumúli",
"masl": 78,
"pressure": null,
"mean_temp": 11.2,
"dev_norm": 2.1,
"max_temp_mean": 14.1,
"max_temp_high": 19.5,
"max_temp_date": 26,
"min_temp_mean": 8.9,
"min_temp_high": 4,
"min_temp_date": 5,
"sea_temp": null,
"precip_total": 81.1,
"precip_max": 14.6,
"precip_date": 1,
"cloudcov": 9.2
},
{
"station": "Arnarstapi",
"masl": 20,
"pressure": null,
"mean_temp": 11.2,
"dev_norm": 1.5,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 196.2,
"precip_max": 27.5,
"precip_date": 1,
"cloudcov": 8.9
},
{
"station": "Hellissandur",
"masl": 15,
"pressure": null,
"mean_temp": 11.3,
"dev_norm": 2.1,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 96.4,
"precip_max": 16.2,
"precip_date": 27,
"cloudcov": 9.3
},
{
"station": "Stykkishólmur",
"masl": 25,
"pressure": 57,
"mean_temp": 11.2,
"dev_norm": 1.9,
"max_temp_mean": 14.7,
"max_temp_high": 18.5,
"max_temp_date": 6,
"min_temp_mean": 9.1,
"min_temp_high": 5.8,
"min_temp_date": 4,
"sea_temp": 10.8,
"precip_total": 83.7,
"precip_max": 10.7,
"precip_date": 10,
"cloudcov": 9
},
{
"station": "Hamraendar",
"masl": 25,
"pressure": null,
"mean_temp": 11.5,
"dev_norm": 2.7,
"max_temp_mean": 14.7,
"max_temp_high": 20.5,
"max_temp_date": 26,
"min_temp_mean": 8.9,
"min_temp_high": 5.3,
"min_temp_date": [ 5, 7 ],
"sea_temp": null,
"precip_total": 56.4,
"precip_max": 9.4,
"precip_date": 15,
"cloudcov": 6.4
},
{
"station": "Flatey",
"masl": 5,
"pressure": null,
"mean_temp": 10.9,
"dev_norm": null,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": null,
"precip_max": null,
"precip_date": null,
"cloudcov": 8.1
},
{
"station": "Lambavatn",
"masl": 5,
"pressure": null,
"mean_temp": 11.1,
"dev_norm": 1.7,
"max_temp_mean": 14.2,
"max_temp_high": 18.9,
"max_temp_date": 22,
"min_temp_mean": 9.3,
"min_temp_high": 5,
"min_temp_date": 4,
"sea_temp": null,
"precip_total": 123.7,
"precip_max": 13.4,
"precip_date": 31,
"cloudcov": 9.1
},
null,
{
"station": "Kvígindisdalur",
"masl": 43,
"pressure": null,
"mean_temp": 11.8,
"dev_norm": 1.8,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 246.3,
"precip_max": 38.3,
"precip_date": 1,
"cloudcov": 9.4
},
{
"station": "Flateyri",
"masl": 6,
"pressure": null,
"mean_temp": 12,
"dev_norm": 3.2,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": null,
"precip_max": null,
"precip_date": null,
"cloudcov": 9.3
},
{
"station": "Suðureyri",
"masl": 6,
"pressure": null,
"mean_temp": 11.8,
"dev_norm": 3,
"max_temp_mean": 13.7,
"max_temp_high": 20.4,
"max_temp_date": 26,
"min_temp_mean": 10,
"min_temp_high": 6.6,
"min_temp_date": 5,
"sea_temp": 10.8,
"precip_total": 49.1,
"precip_max": 8.5,
"precip_date": 1,
"cloudcov": 8.7
},
{
"station": "Bolungarvík",
"masl": 6,
"pressure": 55.5,
"mean_temp": 11.8,
"dev_norm": 3.4,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 21.8,
"precip_max": 4.9,
"precip_date": 13,
"cloudcov": 8.8
},
{
"station": "Hornbjargsviti",
"masl": 26,
"pressure": 56.6,
"mean_temp": 11.1,
"dev_norm": null,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 43.1,
"precip_max": 7,
"precip_date": 4,
"cloudcov": 9.4
},
{
"station": "Kjörvogur",
"masl": 12,
"pressure": null,
"mean_temp": 11.2,
"dev_norm": 3.7,
"max_temp_mean": 14.3,
"max_temp_high": 20.4,
"max_temp_date": 26,
"min_temp_mean": 9.4,
"min_temp_high": 6.2,
"min_temp_date": 5,
"sea_temp": 10.5,
"precip_total": 23.3,
"precip_max": 6.1,
"precip_date": 4,
"cloudcov": 8.7
},
null,
{
"station": "Hlaðhamrar",
"masl": 25,
"pressure": null,
"mean_temp": 11.4,
"dev_norm": 3.7,
"max_temp_mean": 14.3,
"max_temp_high": 19.6,
"max_temp_date": 22,
"min_temp_mean": 8.8,
"min_temp_high": 5.5,
"min_temp_date": 5,
"sea_temp": null,
"precip_total": 43.3,
"precip_max": 9.3,
"precip_date": 15,
"cloudcov": 7.3
},
{
"station": "Núpsdalstunga",
"masl": 125,
"pressure": null,
"mean_temp": 11.5,
"dev_norm": 3.9,
"max_temp_mean": 14.7,
"max_temp_high": 18,
"max_temp_date": 24,
"min_temp_mean": 7.3,
"min_temp_high": 5,
"min_temp_date": [ 6, 19 ],
"sea_temp": null,
"precip_total": 26.3,
"precip_max": 11.1,
"precip_date": 9,
"cloudcov": 6.9
},
{
"station": "Blönduós",
"masl": 5,
"pressure": null,
"mean_temp": 12.1,
"dev_norm": 3.4,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 45.9,
"precip_max": 7,
"precip_date": 4,
"cloudcov": 8.8
},
{
"station": "Nautabú",
"masl": 115,
"pressure": null,
"mean_temp": 11.6,
"dev_norm": null,
"max_temp_mean": 14.6,
"max_temp_high": 21,
"max_temp_date": 22,
"min_temp_mean": 8.3,
"min_temp_high": 4.5,
"min_temp_date": 5,
"sea_temp": null,
"precip_total": 29.9,
"precip_max": 9.1,
"precip_date": 15,
"cloudcov": 9.4
},
{
"station": "Skriðuland",
"masl": 150,
"pressure": null,
"mean_temp": 12.1,
"dev_norm": 3.8,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 8.6,
"min_temp_high": 4.6,
"min_temp_date": 4,
"sea_temp": null,
"precip_total": 42.5,
"precip_max": 15.6,
"precip_date": 4,
"cloudcov": 8.4
},
{
"station": "Siglunes",
"masl": 37,
"pressure": null,
"mean_temp": 12.1,
"dev_norm": 4.3,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 52.1,
"precip_max": 15.1,
"precip_date": 4,
"cloudcov": 8.3
},
{
"station": "Akureyri",
"masl": 4.5,
"pressure": 58,
"mean_temp": 13.2,
"dev_norm": 4,
"max_temp_mean": 16.9,
"max_temp_high": 24,
"max_temp_date": 22,
"min_temp_mean": 10,
"min_temp_high": 6.1,
"min_temp_date": 30,
"sea_temp": null,
"precip_total": 13.9,
"precip_max": 5.1,
"precip_date": 15,
"cloudcov": 7.8
},
{
"station": "Grímsey",
"masl": 22,
"pressure": 56.4,
"mean_temp": 10.5,
"dev_norm": 3.7,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": 9.3,
"precip_total": 28.4,
"precip_max": 14,
"precip_date": 4,
"cloudcov": 6.8
},
{
"station": "Sandur í Aðaldal",
"masl": 10,
"pressure": null,
"mean_temp": 12.7,
"dev_norm": 4.6,
"max_temp_mean": 17.8,
"max_temp_high": 27.2,
"max_temp_date": 22,
"min_temp_mean": 8.9,
"min_temp_high": 4,
"min_temp_date": 30,
"sea_temp": null,
"precip_total": 29.1,
"precip_max": 6.8,
"precip_date": 15,
"cloudcov": 6.9
},
{
"station": "Húsvík",
"masl": 23,
"pressure": null,
"mean_temp": 13.7,
"dev_norm": 5.2,
"max_temp_mean": 17,
"max_temp_high": 24.4,
"max_temp_date": 22,
"min_temp_mean": 9.8,
"min_temp_high": 6.1,
"min_temp_date": [ 5, 7 ],
"sea_temp": null,
"precip_total": 39.6,
"precip_max": 13.4,
"precip_date": 3,
"cloudcov": 6.1
},
{
"station": "Reykjahlíð",
"masl": 280,
"pressure": null,
"mean_temp": 11.8,
"dev_norm": 3.9,
"max_temp_mean": 15.7,
"max_temp_high": 22.1,
"max_temp_date": 22,
"min_temp_mean": 9.1,
"min_temp_high": 5.5,
"min_temp_date": [ 5, 19 ],
"sea_temp": null,
"precip_total": 26.5,
"precip_max": 10.2,
"precip_date": 9,
"cloudcov": 6.3
},
{
"station": "Grímsstaðir",
"masl": 385,
"pressure": null,
"mean_temp": 11.6,
"dev_norm": 3.4,
"max_temp_mean": 15.1,
"max_temp_high": 22.2,
"max_temp_date": 22,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 36.9,
"precip_max": 8,
"precip_date": 7,
"cloudcov": 7
},
{
"station": "Raufarhöfn",
"masl": 8,
"pressure": 58.3,
"mean_temp": 12,
"dev_norm": 4.4,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 64.9,
"precip_max": 13.9,
"precip_date": 3,
"cloudcov": 7.3
},
null,
{
"station": "Skoruvík",
"masl": 15,
"pressure": null,
"mean_temp": 11.4,
"dev_norm": null,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 11.2,
"precip_max": 3.2,
"precip_date": [ 4, 9 ],
"cloudcov": 6.5
},
{
"station": "Höfn í Bakkaf.",
"masl": 20,
"pressure": null,
"mean_temp": 12.3,
"dev_norm": 4.4,
"max_temp_mean": 16.3,
"max_temp_high": 24.1,
"max_temp_date": 22,
"min_temp_mean": 9.3,
"min_temp_high": 3.3,
"min_temp_date": 29,
"sea_temp": null,
"precip_total": null,
"precip_max": null,
"precip_date": null,
"cloudcov": 7.2
},
{
"station": "Fagridalur",
"masl": 35,
"pressure": null,
"mean_temp": 12.6,
"dev_norm": 4.5,
"max_temp_mean": 16.7,
"max_temp_high": 24.3,
"max_temp_date": 1,
"min_temp_mean": 9.6,
"min_temp_high": 5.3,
"min_temp_date": 5,
"sea_temp": 9.2,
"precip_total": 37.2,
"precip_max": 16,
"precip_date": 12,
"cloudcov": 6.3
},
{
"station": "Hof í Vopnaf.",
"masl": 50,
"pressure": null,
"mean_temp": 13.3,
"dev_norm": null,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 9.8,
"min_temp_high": 5,
"min_temp_date": 29,
"sea_temp": null,
"precip_total": null,
"precip_max": null,
"precip_date": null,
"cloudcov": 6.6
},
{
"station": "Möðrudalur",
"masl": 450,
"pressure": null,
"mean_temp": 12.2,
"dev_norm": 4.6,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": null,
"precip_max": null,
"precip_date": null,
"cloudcov": 6.3
},
{
"station": "Gunnhildargerði",
"masl": 40,
"pressure": null,
"mean_temp": 11.6,
"dev_norm": null,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 8.4,
"min_temp_high": 4.3,
"min_temp_date": 29,
"sea_temp": null,
"precip_total": null,
"precip_max": null,
"precip_date": null,
"cloudcov": 6.1
},
{
"station": "Hallormsstaður",
"masl": 60,
"pressure": null,
"mean_temp": 13.1,
"dev_norm": 4.2,
"max_temp_mean": 17,
"max_temp_high": 25,
"max_temp_date": 22,
"min_temp_mean": 8.7,
"min_temp_high": 3.6,
"min_temp_date": [ 27, 28 ],
"sea_temp": null,
"precip_total": 14.7,
"precip_max": 8,
"precip_date": 12,
"cloudcov": 5.6
},
{
"station": "Dalatangi",
"masl": 9,
"pressure": 59.9,
"mean_temp": 11.1,
"dev_norm": 3.5,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 63,
"precip_max": 21.9,
"precip_date": 10,
"cloudcov": 7.2
},
{
"station": "Papey",
"masl": 28,
"pressure": null,
"mean_temp": 10.2,
"dev_norm": 2.6,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": 9.3,
"precip_total": null,
"precip_max": null,
"precip_date": null,
"cloudcov": 6.9
},
{
"station": "Teigarhorn",
"masl": 18,
"pressure": null,
"mean_temp": 11.6,
"dev_norm": 2.6,
"max_temp_mean": 15,
"max_temp_high": 24.1,
"max_temp_date": 2,
"min_temp_mean": 8.8,
"min_temp_high": 5.2,
"min_temp_date": 31,
"sea_temp": 11,
"precip_total": 144.9,
"precip_max": 53.6,
"precip_date": 9,
"cloudcov": 6.9
},
{
"station": "Djúpivogur",
"masl": 25,
"pressure": 60.5,
"mean_temp": 11.6,
"dev_norm": null,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 132,
"precip_max": 34,
"precip_date": 10,
"cloudcov": 7.4
},
null,
{
"station": "Hólar í Hornaf.",
"masl": 17,
"pressure": 60.4,
"mean_temp": 11.2,
"dev_norm": 1.6,
"max_temp_mean": 13.5,
"max_temp_high": 16.4,
"max_temp_date": 4,
"min_temp_mean": 8.5,
"min_temp_high": 5.4,
"min_temp_date": 28,
"sea_temp": null,
"precip_total": 139.2,
"precip_max": 32.4,
"precip_date": [ 5, 11 ],
"cloudcov": 8.3
},
{
"station": "Fagurhólsmýri",
"masl": 40,
"pressure": null,
"mean_temp": 11.1,
"dev_norm": 1.8,
"max_temp_mean": 13.7,
"max_temp_high": 18.4,
"max_temp_date": 4,
"min_temp_mean": 8.7,
"min_temp_high": 5.3,
"min_temp_date": [ 28, 30 ],
"sea_temp": null,
"precip_total": 152.6,
"precip_max": 19.5,
"precip_date": 6,
"cloudcov": 8.6
},
{
"station": "Kirkjubæjarkl.",
"masl": 30,
"pressure": 60.3,
"mean_temp": 11.6,
"dev_norm": 0.9,
"max_temp_mean": 14.8,
"max_temp_high": 21,
"max_temp_date": 2,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 210.2,
"precip_max": 35,
"precip_date": 15,
"cloudcov": 8.6
},
{
"station": "Vík í mýrdal",
"masl": 20,
"pressure": null,
"mean_temp": 11.3,
"dev_norm": 0.8,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 9.7,
"min_temp_high": 7.3,
"min_temp_date": 12,
"sea_temp": null,
"precip_total": 268.8,
"precip_max": 46.5,
"precip_date": 2,
"cloudcov": 8.8
},
{
"station": "Loftsalir",
"masl": 14,
"pressure": null,
"mean_temp": 11.4,
"dev_norm": 0.6,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 160,
"precip_max": 34,
"precip_date": 2,
"cloudcov": 9
},
{
"station": "Vestmannaeyjar",
"masl": 122,
"pressure": 58.9,
"mean_temp": 10.4,
"dev_norm": 0.8,
"max_temp_mean": 12.3,
"max_temp_high": 17,
"max_temp_date": 4,
"min_temp_mean": 9.3,
"min_temp_high": 6.7,
"min_temp_date": 4,
"sea_temp": 11.1,
"precip_total": 137.5,
"precip_max": 33.8,
"precip_date": 26,
"cloudcov": 9.1
},
{
"station": "Sámsstaðir",
"masl": 90,
"pressure": null,
"mean_temp": 11.4,
"dev_norm": 1.1,
"max_temp_mean": 13.6,
"max_temp_high": 19.5,
"max_temp_date": 22,
"min_temp_mean": 9,
"min_temp_high": 6.5,
"min_temp_date": 30,
"sea_temp": null,
"precip_total": 122.3,
"precip_max": 16.3,
"precip_date": 15,
"cloudcov": 7.4
},
{
"station": "Hæll",
"masl": 130,
"pressure": null,
"mean_temp": 10.8,
"dev_norm": 0.9,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 7.9,
"min_temp_high": 5.1,
"min_temp_date": 2,
"sea_temp": null,
"precip_total": 113.5,
"precip_max": 15.3,
"precip_date": 20,
"cloudcov": 9.1
},
{
"station": "Eyrarbakki",
"masl": 7.4,
"pressure": null,
"mean_temp": 10.8,
"dev_norm": 0.4,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 156.2,
"precip_max": 19.7,
"precip_date": 9,
"cloudcov": null
},
{
"station": "Ljósafoss",
"masl": 72,
"pressure": null,
"mean_temp": 11,
"dev_norm": 1,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 8.8,
"min_temp_high": 4.4,
"min_temp_date": 7,
"sea_temp": null,
"precip_total": 169.9,
"precip_max": 38,
"precip_date": 25,
"cloudcov": 9
},
{
"station": "Þingvellir",
"masl": 105,
"pressure": null,
"mean_temp": 10.6,
"dev_norm": 0.9,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": 7.8,
"min_temp_high": 2,
"min_temp_date": 7,
"sea_temp": null,
"precip_total": 176,
"precip_max": 20,
"precip_date": 2,
"cloudcov": 9.2
},
{
"station": "Grindavík",
"masl": 7,
"pressure": null,
"mean_temp": 10.8,
"dev_norm": 0.8,
"max_temp_mean": null,
"max_temp_high": null,
"max_temp_date": null,
"min_temp_mean": null,
"min_temp_high": null,
"min_temp_date": null,
"sea_temp": null,
"precip_total": 147.5,
"precip_max": 43,
"precip_date": 9,
"cloudcov": 8.9
},
{
"station": "Víðistaðir",
"masl": 4,
"pressure": null,
"mean_temp": 11.3,
"dev_norm": null,
"max_temp_mean": 13.7,
"max_temp_high": 19.5,
"max_temp_date": 4,
"min_temp_mean": 9.2,
"min_temp_high": 5.9,
"min_temp_date": 13,
"sea_temp": null,
"precip_total": 107.9,
"precip_max": 11.5,
"precip_date": 10,
"cloudcov": 8.8
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment